java에서 json 데이터를 처리하기 위해 사용할 수 있는 라이브러리는 크게 두가지가 존재한다.
FEP(REST API)에서, 다른 업무에서도 마찬가지이겠지만 기본적으로 json body 파싱할 경우 사용할 라이브러리를 일원화하여 관리하는 것이 좋다.
사용하고 있는 프레임워크나 환경 등에 맞춰서 알맞은 라이브러리를 선택하여 사용해야 한다.
장점
-> spring framework에서 기본적으로 사용, 다른 라이브러리와 상호 호환성이 높다.
-> json, xml, yaml 등 다양한 데이터 형식을 지원한다.
-> 변환처리 시 gson에 비해 속도가 약간 유리하다.
-> Jackosn 라이브러리에 내장된 object mapper가 다양한 커스텀을 지원한다.
-> 보안 등 지속적인 라이브러리 업데이트가 가능하다.
단점
-> 초기 설정이 복잡하고 높은 이해도가 필요하다.
장점
-> 사용 및 설정이 간단하다.
-> Gson 내장 객체인 JsonObject를 활용하여 key-value를 가지는 map 형태 marshal / unmarshal에 적합하다.
단점
-> 사용자 custom에 제한적이다.
-> Jackson 대비하여 변환, 지원범위 등이 떨어진다.
-> 추가적인 dependency가 필요하다(기본 내장 라이브러리가 아님)
FEP에서는 key-value형태의 전문 데이터를 파싱하기 위한 용도로 사용하므로 gson이 유리할 수 있지만, 후에 일원화할 경우 두 기능의 차이가 심하므로 초기 단계부터 일관적인 라이브러리를 사용해야 한다.
jackson 개념1 - https://hianna.tistory.com/631
jackson 개념2 - https://www.lesstif.com/java/java-json-library-jackson-24445183.html
jakson 라이브러리 - https://edder773.tistory.com/312