문제 Review 엔티티에 기본형 boolean 타입의 isReported 필드가 있었는데, 이를 DTO로 변환하는 mapStruct 매퍼를 사용 중, 컴파일 시 아래와 같은 경고가 떴다. // ReviewMapper.class// ...import org.mapstruct.Mapper;import org.mapstruct.Mapping;import static org.mapstruct.MappingConstants.ComponentModel.SPRING;@Mapper(componentModel = SPRING)public interface ReviewMapper { ReviewResponseDto toReviewResponseDto(Review review);}// ReviewResponseDto..
mapstruct
Object mapping 객체 간 매핑을 뜻하며, 엔티티를 DTO로 변환하는 등과 같이 다른 객체로 변환하거나 합치는 경우에 사용한다. 보통 이 경우엔 코드 중복이 발생하기 쉽고, 실수하기도 쉽고, 필드 수정이나 삭제가 일어날 경우 역시 수정이 필요하고, 비즈니스 로직에 섞이기 때문에 생산성이 떨어진다. 따라서 객체 매핑 라이브러리를 이용하여 이를 해결하며, 대표적으로 ModelMapper와 MapStruct 가 있다. 두 라이브러리 중에서는 MapStruct가 더욱 장점이 많아서 이를 쓰며, 둘 간의 차이점은 다음과 같다. 컴파일 시점에서 어노테이션을 읽어 구현체를 만들어내서 리플렉션이 발생하지 않음. 처리속도가 더 빠름 (원본 글에선 단위가 m/s 인데 이게 머선 단위지..) 컴파일 시 오류를 확인..