Jackson Deserializer 코드 분석하기
·2023.03.09 19:00
Spring Boot 환경에서 QueryParam과 JSON Body의 공백 문자를 자동으로 제거하는 방법을 소개한다.
데이터베이스에는 값이 존재하지만 백오피스에 노출되지 않는 문제는 종종 공백 문자나 눈에 보이지 않는 특수 문자로 인해 발생한다. 이를 방지하기 위해 시스템 입력 단계에서부터 공백을 제거하여 데이터의 정확성을 확보하는 것이 중요하다.
QueryParam의 공백을 제거하려면 @RestControllerAdvice와 @InitBinder를 조합하여 사용할 수 있다. StringTrimmerEditor를 등록하면 모든 컨트롤러의 쿼리 파라미터에 대해 trim() 처리를 수행하며, emptyAsNull 옵션을 통해 빈 문자열을 null로 변환하여 유효성 검사 과정을 간소화할 수 있다.
RequestBody로 전달되는 JSON 데이터의 경우, Jackson의 Deserializer를 커스텀하여 처리한다.
- **JsonDeserializer**을 상속받은 커스텀 클래스 구현
- ObjectMapper에 SimpleModule을 통해 해당 Deserializer 등록
이 방식을 적용하면 JSON 데이터를 읽을 때마다 문자열 양옆의 공백을 자동으로 제거하여 데이터의 일관성을 유지할 수 있다.
이 요약은 원문 이해를 돕기 위한 큐레이션입니다. 저작권은 원저작자에게 있으며, 정확한 내용과 맥락은 원문을 확인하세요.
요약 오류, 출처 표기 문제, 삭제 요청은 문의 · 건의로 알려주세요.