코딩/Spring

[Spring] ModelMapper를 이용해 DTO와 Entity 변환 방법

it 끄적이기 2022. 11. 18. 09:10

[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 간의 데이터 변환을 간단하게 할 수 있습니다. 이를 이용해 데이터의 흐름을 분리하고, 코드의 가독성과 유지보수성을 높일 수 있습니다.