728x90
https://meetup.toast.com/posts/213
사실 ObjectMapper 에서도 convertValue() 라는 메소드로 객체 매핑을 지원한다. 또한 이보다 객체매핑에 특화된 ModelMapper나 Orika 같은 라이브러리도 있다.
그런데 ObjectMapper, ModelMapper, Orika의 가장 큰 단점은 runtime 시점에 reflection을 통해 맵핑을 하기 떄문에 맵핑 객체의 사이즈가 커질수록 메모리 사용량이 선형적으로 증가하기 때문에 성능이 저하된다는 점이다.
이에 비해 MapStruct는 Lombok과 같이 annotation processor를 통해서 compile 시점에 객체간 맵핑이 이루어지기 떄문에 runtime 시점에 성능 저하가 없다. 코드작성량은 줄어들면서 컴파일 언어의 자바의 장점은 제대로 누릴 수 있는 것이다.
사실 MapStruct 를 처음 접했을 때 가장 궁금했던 점은 ObjectMapper 를 대체하는가? 였다. 결론부터 말하면 그렇지 않다. ObejctMapper 에서 객체매핑 기능을 지원하고 있기는 하나 주 목적은 직렬화/역직렬화이고 MapStruct 주목적은 객체매핑이고 직렬화/역직렬화 기능은 제공하지 않는다.
결국 직렬화/역직렬화는 ObjectMapper나 Gson을 사용하고 객체매핑은 MapStruct 를 사용하면 되겠다.
728x90
'Frontend > WebView개발' 카테고리의 다른 글
맥북에서 아이폰 디버깅 하기 (0) | 2021.04.02 |
---|