소나 큐브 소나 큐브는 정적 분석을 수행하는 오픈 소스 툴입니다. 중복 코드, 코딩 표준, 유닛 테스트, 코드 복잡도, 주석, 버그 및 보안 취약점에 대해서 검사하고 결과 보고서로 작성합니다. 정적 코드 분석 정적 분석은 프로그램을 실행(동적)하지 않고 소스 코드나 컴파일된 코드를 분석하는 작업을 말합니다. 왜 사용할까? - 개발 단계에서 코드의 구조적인 문제나 실수를 찾아냄 - 코드 작성 단계에서 차후 코드를 실행했을 때 발생할 가능성이 높은 문제를 미리 찾고 대처할 수 있음 - 단순이 버그나 오류를 찾아내는 것 뿐만 아니라 더 좋은 코드를 위한 개선점을 제시해 줌 사용법 1. Java JDK SE 17 설치 https://www.oracle.com/java/technologies/javase/jdk1..
LombokJava 라이브러리로 반복되는 getter, toString, 생성자 등의 반복적으로 만드는 코드를 자동으로 작성해주는 코드 다이어트 라이브러리입니다.lombok 은 컴파일 단계에서만 사용됩니다. 따라서 build.gradle 에서 compileOnly 로 설정합니다.컴파일 단계가 끝나면 lombok의 각 어노테이션에 해당하는 메서드가 자동 생성되고, 어노테이션은 제거됩니다.compileOnly "org.projectlombok:lombok:${lombokVersion}" 어노테이션컴파일 전 DTO 입니다.각 어노테이션이 컴파일 후 어떻게 코드를 자동 생성하는지 확인했습니다.@Builder@Getter@Setter@NoArgsConstructor@AllArgsConstructor@ToStrin..
Code Coverage TDD를 실천하기 위한 방법 중 하나입니다. 소프트웨어의 테스트 케이스가 얼마나 충족되었는지를 나타내는 지표 중 하나입니다. 코드 커버리지는 소스코드를 기반으로 수행하는 화이트 박스 테스트를 통해 측정합니다. 블랙 박스 테스트 소프트웨어의 내부 구조나 작동 원리를 모르는 상태에서 동작을 검사하는 방식 올바른 입력과 올바르지 않은 입력을 입력하여 옳바른 출력이 나오는지 테스트하는 기법 사용자 관점의 테스트 방법 화이트 박스 테스트 응용 프로그램의 내부 구조와 동작을 검사하는 테스트 방식 소프트웨어 내부 소스 코드를 테스트 하는 기법 개발자 관점의 단위테스트 방법 측정기준 구문(Statement) 라인 커버리지라고 부릅니다. 프로덕션 코드의 전체 구문 중 몇 줄의 구문이 실행되었는지..
MapStruct는 여러 계층 간의 DTO를 매핑하는 라이브러리입니다. 객체들에 대한 매핑 코드를 작성하는 것은 지루하고 오류가 발생하기 쉬우므로 이를 최대한 자동화하여 단순화하는 것을 목표로 합니다. 인터페이스만 작성하면 구현부는 컴파일 시점에 자동 생성되기 때문에 손쉽게 매핑할 수 있습니다. 사용법 @Mapper(componentModel = "spring") public interface OrderReqDTOMapper { OrderCommand toCommand(OrderReqDTO orderReqDTO, String productId, String productName ); @Mappings({ @Mapping(target = "productId", ignore = true), @Mapping(..