Jackson
[Spring] x-www-form-urlencoded 요청 JSON 으로 변환하여 받기
들어가며 스프링을 사용한 프로젝트에서 NHN KCP 결제 시스템을 연동하는 요구사항이 있었다. 우리 서버에서는 객체 필드명에 카멜 케이스를 사용하는데, 결제 서버에서는 스네이크 케이스로 보내주는 상황. 이를 @JsonProperty 로 매핑시키려고 했으나 해당 결제 서버에서 보내는 콜백 요청은 x-www-form-urlencded 를 사용 중이었다 따라서 Jackson 이 아닌 다른 컨버터가 사용되어 @JsonProperty 가 먹히지 않았다. 이를 커스텀 컨버터를 등록하여 JSON 으로 매핑시키도록 하여 해결해보자. 인코딩 application/x-www-form-urlencoded HTML 의 form 태그에서 서버에 전송할 때 주로 사용되는 방식이다. 말 그대로 데이터를 서버에 전송하기 전에 URL..
[Spring] Jackson Module 을 이용한 Jackson 확장
Custom Serializer / Deserializer 를 만들어 Jackson Module 에 등록하고, 이를 통해 Jackson 을 확장하여 기본 JSON 처리 방식을 변경하는 방법에 대한 글입니다. 들어가며 Java Spring 서버를 개발하다보면 Jackson 이라는 라이브러리를 많이 들어봤을 것이다. Jackson 은 Java 진영에서 JSON 처리를 담당하는 라이브러리이다. Java 객체를 JSON 으로 직렬화, 혹은 반대로 역직렬화할 수 있는 데이터 바인딩 기능을 제공한다. 현재 REST API 처리 방식에 JSON 요청, 응답을 가장 많이 사용하기 때문에 중요한 라이브러리라 할 수 있다. 그래서인지 현재 스프링 프레임워크에도 Jackson 이 기본적으로 탑재되어 있기도 하다. Jacks..
[Spring] 스프링 날짜 타입 JSON 변환 및 포맷팅하기 - @JsonFormat, @JacksonAnnotationsInside
개발을 하다보면 좋든 싫든 항상 날짜에 대한 포맷팅을 마주하게 된다. 이 글에서는 그 과정에서 공부했던, @JsonFormat 을 활용하여 LocalDateTime 등 날짜에 대한 JSON 직렬화하기와 또 날짜 포맷팅, Jackson 을 활용한 커스텀 어노테이션까지 적어보았다. 💥 LocalDateTime 형식 { "name": "hello", "startAt": "2023-02-26T15:12:17.536Z", "endAt": "2023-02-26T15:12:17.536Z" } LocalDateTime 같은 경우에는 기본적으로 중간에 알파벳 등이 섞여있어 응답 시 같이 내보내게 된다. { "name": "hello", "startAt": "2023.03.20 12:00", "endAt": "2023.0..