Model Mapper 라이브러리란?
ModelMapper는 Java의 오픈 소스 라이브러리로, 객체 간의 매핑을 쉽게 수행할 수 있도록 도와줍니다. ModelMapper를 사용하면, 객체의 필드 이름이나 속성만으로 객체 간의 매핑을 수행할 수 있습니다. 또한, ModelMapper는 다양한 매핑 전략을 제공하여, 복잡한 객체 간의 매핑도 쉽게 수행할 수 있습니다.
Model Mapper 장점
Model Mapper는 가장 번거러운 DTO->VO, VO->DTO 변환을 쉽게 매핑할수있습니다.
즉 getter,setter 등을 이용해서 객체의 정보를 다른객체로 복사하는 기능을 제공합니다.
Model Mapper 사용법
Model Mapper 객체 생성 및 설정을합니다
DTO
@Getter
@Setter
public class EmployeeDTO {
private String employeeId;
private String employeeName;
private String employeeAddr;
}
VO
@Getter
@Setter
public class EmployeeVO {
private String employeeId;
private String employeeName;
private String employeeAddr;
private String employeePhone;
}
이제 DTO와 VO 간의 매핑을 수행하려면 ModelMapper 객체를 사용합니다.
다음은 ModelMapper 객체를 사용하여 DTO와 VO 간의 매핑을 수행하는 예입니다.
ModelMapper modelMapper = ModelMapper.getInstance();
EmployeeDTO employeeDTO = new EmployeeDTO();
employeeDTO.setEmployeeId("12345");
employeeDTO.setEmployeeName("John Doe");
employeeDTO.setEmployeeAddr("123 Main Street");
EmployeeVO employeeVO = modelMapper.map(employeeDTO, EmployeeVO.class);
System.out.println(employeeVO.getEmployeeId()); // 12345
System.out.println(employeeVO.getEmployeeName()); // John Doe
System.out.println(employeeVO.getEmployeeAddr());// 123 Main
Model Mapper 사용 시 주의사항
ModelMapper는 객체의 필드 이름이나 속성만으로 객체 간의 매핑을 수행합니다. 따라서, 객체의 필드 이름이나 속성이 일치하지 않으면 매핑이 제대로 수행되지 않을 수 있습니다.
또한 다양한 매핑 전략을 제공합니다. 따라서, 매핑 전략을 잘 선택해야 합니다.
복잡한 객체 간의 매핑도 수행할 수 있지만, 매핑이 복잡해질수록 성능이 저하될 수 있습니다. 따라서, 매핑이 복잡해지면 직접 매핑을 수행하는 것이 더 나은 경우가 있습니다.
ModelMapper는 객체 간의 매핑을 쉽게 수행할 수 있는 유용한 라이브러리이지만, 사용 시에는 성능저하같은 이슈가 일어날수있기 때문에 주의 사항을 지켜야 합니다.
'자바 정리' 카테고리의 다른 글
JPA 연관관계 매핑 (0) | 2023.08.24 |
---|---|
[TDD] 테스트 코드 작성하는이유 (0) | 2023.08.22 |
서블릿과 JSP를 활용하여 간단한 뉴스 CRUD 웹페이지 (0) | 2023.08.02 |
UUID 고유한 식별자 in java (0) | 2023.08.01 |
자바에서 builder()... @builder 는 뭘까? (0) | 2023.08.01 |