← 테크곳간 목록으로

NAVER Pay Dev Blog - Medium · 2025. 08. 05.

똑같은 코드인데 왜 안 돼? Spring JDBC 컨버터 미궁 탈출기

AI 엔지니어링 브리핑

Spring Data JDBC에서 같은 방식으로 만든 날짜 변환기가 다르게 동작한 원인은, 커스텀 변환보다 JDBC가 특정 날짜 타입을 처리하는 규칙이 먼저 적용되었기 때문입니다.

문제 & 배경

문제 & 배경: LocalDate를 문자열로 바꾸는 컨버터를 등록했지만 Oracle에서는 원하는 문자열 대신 DATE 형식으로 저장되었고, 같은 방식의 LocalDateTime 컨버터는 정상적으로 작동했습니다.

기술 & 해결책

기술 & 해결책: Spring JDBC의 처리 과정에서는 LocalDate가 JDBC의 날짜 타입으로 인식되어 커스텀 변환보다 기본 처리가 우선될 수 있으므로, 계층별 타입 변환 우선순위를 확인해 실제 바인딩 과정을 기준으로 해결해야 합니다.

교훈 & 주의점

교훈 & 주의점: 컨버터를 등록했다는 사실만으로 항상 해당 변환이 적용되는 것은 아니며, 데이터베이스 종류와 JDBC 계층의 기본 타입 처리 규칙까지 함께 확인해야 합니다.

원문 읽기 ↗
내용이 비슷해요

내용이 비슷한 글을 먼저 보여드려요. 같은 문제나 해결책을 다룬다는 뜻은 아니에요.