Mapstruct 3

[MapStruct] @MappingTarget: 기존 객체 수정 매핑

📚 MapStruct 시리즈기본 사용법Default 메서드 활용한 커스텀 매핑 전략@MappingTarget: 기존 객체 수정 매핑 목적기존 객체(Entity)에 DTO 값을 덮어쓰기(업데이트) 하고 싶을 때 사용기본 개념MapStruct는 기본적으로 새로운 객체를 생성해서 리턴@MappingTarget은 이미 존재하는 객체에 필드를 덮어씌우는 데 사용JPA와 함께 쓰면 변경 감지(dirty checking) 활용 가능즉, save() 없이도 DB에 반영 가능WHEN? 영속 상태인 Entity를 DTO로 업데이트할 때JPA의 변경 감지(Dirty Checking) 기능을 활용하고 싶을 때새 객체를 만드는 대신 기존 객체를 수정하고자 할 때 사용 예시1. 매퍼 인터페이스@Mapper(componentM..

[MapStruct] Default 메서드 활용한 커스텀 매핑 전략

📚 MapStruct 시리즈기본 사용법Default 메서드 활용한 커스텀 매핑 전략 @MappingTarget: 기존 객체 수정 매핑개념자동 매핑이 어려운 로직이나 직접 커스텀 매핑이 필요한 경우 사용직접 생성자 호출이 필요한 경우두 개 이상의 매개변수를 조합해서 하나의 객체를 만들 경우MapStruct가 default 메서드도 Spring Bean으로 등록사용법@Mapper(componentModel = "spring")public interface UserStatusMapper { // 자동 매핑 (MapStruct가 처리) UserStatusDto toDto(UserStatus userStatus); // 수동 매핑 (직접 로직 작성, default 메서드) default U..

[MapStruct] 기본 사용법

📚 MapStruct 시리즈기본 사용법 Default 메서드 활용한 커스텀 매핑 전략@MappingTarget: 기존 객체 수정 매핑1. MapStruct란?DTO와 Entity 간 매핑을 자동화해주는 Java 어노테이션 기반 코드 생성기반복적인 setter, builder 코드 제거@Mapping, @Mapper 등의 어노테이션 기반으로 설정2. Why DTO?Entity ↔ JSON 변환 시 생기는 문제점문제점설명보안 이슈비밀번호, 내부 ID 등 민감한 정보 노출 위험유연성 저하Entity 변경 시 API 응답/요청도 영향받음캡슐화 위반DB와 API 설계가 강하게 결합됨Validation 혼란입력 값 검증 로직이 분리되기 어려움DTO ← (MapStruct) → EntityController: DT..

728x90