들어가기 앞서 이 글은 제가 공부하면서 쓴 사견이 들어간 글입니다.
잘못된 정보나 다른 의견을 있다면 꼭 알려주시면 감사합니다. 많은 도움이 될 거 같아요 : )
Mapstruct 란?
Mapstruct 정의
Mapstruct 는 필요한 Mapping 방법을 Interface에 정의하면 자동으로 Mapping 클래스를 구현
해주는 Java 라이브러리 입니다.
객체 Mapping 을 하기 위한 방법
방법 1. Java 코드로 직접 매핑
필요한 변환을 위해 Java 코드로 직접 작성 (ex: 정적 팩토리 메소드, 빌더 등)
- 장점
- 다른 라이브러리에 의존성이 낮다.
- Reflection 방식인 ModelMapper 라이브러리를 사용할 때 보다 안정적이다.
- 단순 Mapping 이 아닌 복잡한 Mapping 에 대해서 대응이 잘 된다.
- 단점
- 필드가 많은 Domain, 혹은 변환할 Domain이 많을 때 비용이 많이 들어간다.
- 필드명이 변경되거나 추가되었을 때 코드를 다 수정해야 한다.
- Entity or Dto 클래스에 보일러 플레이트 코드가 들어가게 되어 코드가 길어질 수 있다.
방법 2. ModelMapping 라이브러리
런타임 시점에 Reflection API를 사용하여 객체를 Mapping 하는 라이브러리