MapStruct
-
[Java] 리플렉션 (reflection) 에 대해 알아보자!Language/Java 2025. 4. 23. 15:13
Java 리플렉션(Reflection)이란?Java의 리플렉션은 런타임에 객체의 클래스 정보에 접근하거나 메서드를 호출하고, 필드를 읽거나 쓸 수 있게 해주는 기능입니다. 보통은 컴파일 타임에 클래스 정보를 사용하지만, 리플렉션을 사용하면 프로그램 실행 중에 유연하게 객체를 다룰 수 있습니다.ObjectMapper, ModelMapper, MapStruct와 리플렉션1. ObjectMapper (Jackson)ObjectMapper는 JSON과 Java 객체 간의 직렬화/역직렬화를 담당하는 Jackson 라이브러리의 핵심 클래스입니다. 내부적으로 리플렉션을 사용하여 객체의 필드를 분석하고 값을 읽거나 씁니다.ObjectMapper mapper = new ObjectMapper();User user = m..
-
MapStruct 의 다양한 사용에 대해 알아보자Server/Spring Boot 2025. 4. 16. 13:08
🚀 MapStruct 고급 매핑 예제이번엔 MapStruct를 좀 더 깊이 있게 사용하는 예제들을 소개합니다.List 매핑, @AfterMapping, @Named, @InheritInverseConfiguration 등 실제 프로젝트에서도 매우 유용한 기능들이에요.1️⃣ List 매핑컬렉션 타입도 자동 매핑 가능합니다.// 단일 DTO 매핑 메서드UserDto toDto(User user);// 리스트 매핑List toDtoList(List users);단, 단일 객체 매핑 메서드가 정의되어 있어야 리스트 매핑도 동작합니다.---2️⃣ @AfterMapping - 매핑 후 추가 작업 처리매핑이 완료된 후 후처리를 하고 싶을 경우 @AfterMapping을 사용합니다.@Mapper(componentMo..
-
MapStruct 의 @Mapping 사용 방법을 알아보자!Server/Spring Boot 2025. 4. 16. 11:38
🎯 @Mapping 어노테이션 사용 예제@Mapping은 DTO와 Entity 간에 필드명이 다를 때나 특정 필드 매핑을 제어하고 싶을 때 사용합니다.예시 1️⃣: 필드명이 다를 경우// User 엔티티public class User { private Long id; private String name;}// UserDtopublic class UserDto { private Long id; private String username; // 엔티티에서는 'name'}@Mapper(componentModel = "spring")public interface UserMapper { @Mapping(source = "name", target = "username") UserD..
-
MapStruct 의 @Mapper 사용에 대해 알아보자!Server/Spring Boot 2025. 4. 16. 11:37
🛠️ Mapper 인터페이스 작성 & 사용 예제1. Entity, DTO 클래스 예시// User 엔티티public class User { private Long id; private String username; private String email; // getter/setter 생략}// UserDtopublic class UserDto { private String username; private String email; // getter/setter 생략}2. Mapper 인터페이스 작성import org.mapstruct.Mapper;import org.mapstruct.Mapping;@Mapper(componentModel = "spring")publi..