[project] Mapstruct 사용하기(1)

·

1 min read

지난 mArchive 프로젝트에서부터 사용을 고민한 Mapstruct를 FAFO 프로젝트에서 사용하기로 하였다.


Mapstruct란?

간결한 객체 간의 변환을 위해 사용하는 라이브러리이자 Mapping을 자동화해주는 코드 생성 도구이다.


전체적인 계층 사이에서는 DTO를 활용하여 데이터를 주고 받지만, 결국 실제 데이터베이스와 직접적으로 맞닿아 활용되는 객체는 Entity이므로 그 사이 변환이 필요하다. 이전의 mArchive에서 직접 변환하는 코드를 작성한 경험이 있기 때문에, 자동화 라이브러리를 사용하는 경험이 도움이 될 것이라 생각하였고, 따라서 이번 FAFO프로젝트에서는 DTO <-> Entity 변환을 위해 Mapstruct를 사용하고자 한다.

추가적인 사용 이유이자 Mapstruct의 장점은 다음과 같다

  • 사용하기 편리한 라이브러리로, 코드생산성 증가와 코드량 감소의 효과가 있음

  • 현재 구현한 모델이 복잡하지 않아 사용하기 적합

Mapstruct의 단점

  • 컴파일 시 오류를 잡지 못하고 실행해보아야만 오류를 잡을 수 있음

  • 맵핑해야 하는 모델이 복잡해지거나 서로 차이가 많이 나면 사용 시 복잡할 수 있음

사용한 후 장/단점을 더욱 명확히 파악할 수 있을 것으로 기대한다.