분류 전체보기
-
[appling] 코드품질 관련 설정 (jacoco)appling 프로젝트 2024. 9. 1. 22:18
🔴 jacoco테스트코드의 커버리지를 강제할 수 있는 jacoco 설정을 진행하려고 한다.🟠 설정plugins { ... id("jacoco")}dependencies { ...// developmentOnly("org.springframework.boot:spring-boot-docker-compose") runtimeOnly("com.h2database:h2")}tasks.withType { useJUnitPlatform() finalizedBy(tasks.jacocoTestReport)}jacoco { toolVersion = "0.8.12" // JaCoCo의 버전을 명시합니다.}tasks.jacocoTestReport { dependsOn(ta..
-
읽기 좋은 코드 작성하기 [3] SOLID 원칙개인 공부/읽기 좋은 코드 2024. 9. 1. 16:35
출처 인프런 Readable Codegit 소스 깃 소스 참고🔴 SOLID 란SRP Single Responsibility PrincipleOCP Open-Closed PrincipleLSP Liskov Substitution PrincipleISP Interface Segregation PrincipleDIP Dependency Inversion Principle다음 의미를 가지고 있다. 코드에 SOLID 원칙이 적용되는 예시를 하나씩 적어보려 한다.🟠 SRP(Single Responsibility Principle)단일 책임 원칙으로 하나의 class는 하나의 책임을 가진다는 것이다.🟢 예시public class Main { public static void main(String[] arg..
-
[appling] 프로젝트 기초 설계 (Swagger 설정)appling 프로젝트 2024. 8. 30. 00:30
🔴 프로젝트 기초 설계간단한 프로젝트라도 기본 설정을 먼저 한 후에 진행하려고 한다.🟠 SwaggerSpring에서 문서는 Swagger와 Restdoc이 있는데 예전에는 테스트코드가 강제되는 Restdoc을 선호했으나 요즘에는 Swagger를 좀더 선호하는 편이다. 그 이유는 Restdoc은 spring에서만 사용하고 있는 반면 Swagger는 다른 api에서 제공이 되고 있어 api에 접근하는 앱, 프론트 개발자 분들이 따로 익히거나 알 필요성이 없이 바로 적응이 가능하기 때문에 더 선호한다.또한 테스트 코드의 강제는 꼭 restdoc이 아니더라도 jacoco와 같은 설정으로 강제할 수 있기 때문에 큰 문제가 되지 않는다고 생각한다.Restdoc으로 Swagger 파일을 생성하여 굳이 Restdo..
-
[appling] 프로젝트 설정appling 프로젝트 2024. 8. 29. 08:44
🔴 프로젝트 세팅🟠 Spring Initializr프로젝트 자체가 가볍게 해볼 내용으로 db와 web 정도만 세팅해서 진행하려고 한다.🟢 테스트용 db h2를 사용하지 않는 이유참고로 이번에는 h2를 사용하지 않고 spring에서 지원하는 docker compose support를 사용하여 개발 환경에서는 docker로 mysql 서버를 띄워서 테스트 db로 사용해보려고 한다.h2가 가벼워서 좋지만 docker를 사용할 줄 안다면 docker compose support로 세팅해서 여러가지를 테스트용도로 쓰는것이 redis나 kafka등 다른 시스템을 추가하기도 좋을거 같아서다.🟠 프로젝트 실행프로젝트를 실행시키고 해당 페이지로 접근했다면 정상적으로 실행 완료🟢 docker compose sup..
-
개발자로써 소통하기(w. 유스케이스, 흐름도, erd)개인 공부 2024. 8. 5. 20:20
🔴 개발자와 소통?개발자로써 다른 개발자들과 소통하는 것은 중요한 일이다.나는 개발 기술만 공부했지 이전에 문서를 작성하고 소통하는 방법에 대해 놓치고 있었던 것 같다.간단한 게시판 프로젝트를 만든다는 가정하에유스케이스 다이어그램시퀀스 다이어그램 (sequence diagram)순서도erd순서로 작성해보려고 한다.🟠 유스케이스 다이어그램유스케이스 다이어그램 작성에 대해 설명을 간단히 설명 해보자!🟢 액터졸라맨 사람은 액터로 시스템 외부를 의미한다. 게시판 시스템의 경우 사용자라는 큰 외부 접근자가 있으며 사용자 안에는 인증 회원이 포함된다.사용자는 회원가입에 접근이 가능하고 인증회원은 사용자가 사용하는 회원가입 이외에 로그인, 게시글 조회, 게시글 작성등을 사용할 수 있다.🟢 유스케이스시스템에서 ..
-
Spring Stop Watch 로직 속도 체크개인 공부/spring 2024. 8. 5. 20:18
🔴 StopWatchspring에서 자체적으로 제공해주는 StopWatch 라이브러리로 간편하게 로직의 성능을 체크해볼 수 있다.🟠 사용법🟢 객체 만들기import org.springframework.util.StopWatch;StopWatch stopWatch = new StopWatch();stopWatch.start();stopWatch.stop();위와 같이 객체로써 받아오면 끝이다.그리고 start와 stop으로 시간을 체크할 수 있다.🟢 시간 체크하기stopWatch.start("Task1");stopWatch.stop();stopWatch.start("Task2");stopWatch.stop();stopWatch.start("Task3");stopWatch.stop();log.info..
-
Java에서 테스트 코드란? (작성 예시 포함, 깃허브 소스 첨부)개인 공부/java 2024. 8. 5. 20:11
🔴 테스트란?🟠 테스트의 종류🟢 단위 테스트 (Unit Testing)단위 테스트는 소프트웨어의 개별적인 부분, 즉 "단위"를 격리된 환경에서 테스트하는 것입니다.주로 클래스, 메서드, 함수와 같은 작은 코드 조각을 대상으로 합니다.목적은 개별 단위가 예상대로 동작하는지 검증하고 코드의 신뢰성을 확보하는 것입니다.🟢 통합 테스트 (Integration Testing)통합 테스트는 여러 개의 단위나 컴포넌트를 함께 테스트하여 이들이 올바르게 상호 작용하는지를 확인하는 것입니다.각 단위 테스트가 개별적으로 잘 작동한다고 해도, 통합할 때 발생할 수 있는 문제를 찾아내기 위해 필요합니다.데이터베이스 연동, 외부 API 호출 등과 같은 상호 작용을 테스트하는 데 사용됩니다.🟢 인수 테스트 (Accept..