[Spring] ModelMapper를 이용해 DTO와 Entity 변환 방법
- 코딩/Spring
- 2022. 11. 18.
[Spring] ModelMapper를 이용해 DTO와 Entity 변환 방법 알아보기
ModelMapper는 Java 객체 간에 데이터를 매핑하는 라이브러리입니다. 이를 이용해 DTO와 Entity 간의 데이터 변환을 쉽게 할 수 있습니다.
다음은 ModelMapper를 이용해 DTO와 Entity 간의 데이터 변환을 하는 방법입니다.
1. ModelMapper 의존성 추가
dependencies {
implementation 'org.modelmapper:modelmapper:2.4.4'
}
2. ModelMapper Bean 등록
Spring Boot를 사용하는 경우, ModelMapper를 Bean으로 등록해주어야 합니다.
@Configuration
public class AppConfig {
@Bean
public ModelMapper modelMapper() {
return new ModelMapper();
}
}
3. DTO 클래스와 Entity 클래스 생성
DTO와 Entity 클래스를 생성합니다. 두 클래스의 필드명과 타입이 같아야 합니다.
public class UserDTO {
private String name;
private int age;
// Getter, Setter
}
@Entity
@Table(name = "users")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name;
private int age;
// Getter, Setter
}
4. DTO -> Entity 매핑
public User convertToEntity(UserDTO userDTO) {
ModelMapper modelMapper = new ModelMapper();
User user = modelMapper.map(userDTO, User.class);
return user;
}
5. Entity -> DTO 매핑
public UserDTO convertToDTO(User user) {
ModelMapper modelMapper = new ModelMapper();
UserDTO userDTO = modelMapper.map(user, UserDTO.class);
return userDTO;
}
위와 같이 ModelMapper를 사용하면 DTO와 Entity 간의 데이터 변환을 간단하게 할 수 있습니다. 이를 이용해 데이터의 흐름을 분리하고, 코드의 가독성과 유지보수성을 높일 수 있습니다.
'코딩 > Spring' 카테고리의 다른 글
Over-fetching vs Under-fetching (0) | 2022.11.22 |
---|---|
[Spring] default_batch_fetch_size의 작동원리 (0) | 2022.11.22 |
Spring @Cacheable을 내부 메서드에 쓰면 안되는 이유 (0) | 2022.11.16 |
[Spring] 캐시(Cache) 추상화와 사용법(@Cacheable, @CachePut, @CacheEvict) (0) | 2022.11.16 |
[Spring] Entity에 protected 생성자를 만드는 이유(@Noargsconstructor) (0) | 2022.11.15 |