[MapStruct] 03. 심화 사용법
·
공부/Java
이제 기본적인 MapStruct 사용법을 익혔으니, 좀더 심화적으로 사용할 수 있는 방법들을 소개하려 합니다. 1. 필드명 지정DTO 간의 전환에서 각 필드명이 꼭 동일하다는 보장은 없습니다. MapStruct 에서는 소스 필드와 타켓 필드를 각각 지정해 줄 수 있습니다.@Mapperpublic interface UserMapper { UserMapper INSTANCE = Mappers.getMapper(UserMapper.class); User toEntity(UserDto userDto); @Mapping(target = "id", source = "address.id") UserDto toDto(User user);} 위와 같은 식으로 source 필드와 target 필드를 각각 주입해 줄 수 있..
[MapStruct] 02. 기본 사용법
·
공부/Java
이번에는 MapStruct의 기본적인 사용버에 대해서 알아봅니다. 1. 의존성 설정dependencies { ... // lombok compileOnly 'org.projectlombok:lombok' annotationProcessor 'org.projectlombok:lombok' // mapstruct implementation 'org.mapstruct:mapstruct:1.5.5.Final' // ⭐ annotationProcessor 'org.mapstruct:mapstruct-processor:1.5.5.Final' // ⭐ // (optional)lombok - mapstruct binding implementation 'org.projectlombok:lombok..
[MapStruct] 01. MapStruct란 무엇인가?
·
공부/Java
도입 배경🧱 레이어드 아키텍쳐와 DTO 변환의 반복Spring Boot로 백엔드 개발을 하다 보면 자연스럽게 Layered Architecture를 따르게 됩니다.보통은 MVC 패턴에 따라 Controller → Service → Repository 구조로 구성되며, 각 계층 간 데이터 전달을 위해 **DTO(Data Transfer Object)**를 사용합니다.문제는, 계층을 넘나들 때마다 객체를 DTO로 변환하는 작업이 반복된다는 점입니다. 이 작업은 지루하고, 실수하기 쉬운(Human Error) 영역입니다. 필드가 많아질수록, 구조가 복잡해질수록 실수 확률은 더욱 높아집니다.더 나아가 퍼사드(Facade) 패턴을 도입하여 Controller ↔ Service 사이에 추가적인 유스케이스 계층을 ..