AI Briefing

Exposed에서 사라진 Escape 문자를 찾아서 (feat. MySQL)

·2025.02.21 14:32

Exposed ORM 사용 중 발생한 MySQL Escape 문자열 처리 오류의 원인을 디버깅을 통해 추적한다.

카카오뱅크의 서비스 운영 중 ExposedMySQL 환경에서 SQLSyntaxErrorException이 발생했다. 원인은 사용자가 입력한 백슬래시(\) 문자가 데이터베이스에 삽입될 때 Escape 처리가 제대로 되지 않았기 때문이다.

디버깅 결과, 로그에 찍히는 쿼리와 실제 DB로 전송되는 쿼리가 다르다는 점을 발견했다. IDE 디버거를 통해 com.mysql.cj.NativeSession.execSQL 메서드를 추적한 결과, INSERT 문에서는 Escape 처리가 이루어지지만 ON DUPLICATE KEY UPDATE 절의 컬럼에서는 Escape 처리가 누락되는 현상을 확인했다.

이 과정은 단순히 에러를 해결하는 것을 넘어, 오픈소스의 동작 원리를 파악하고 디버깅을 통해 근본적인 원인을 찾아가는 과정을 보여준다.

이 요약은 원문 이해를 돕기 위한 큐레이션입니다. 저작권은 원저작자에게 있으며, 정확한 내용과 맥락은 원문을 확인하세요.

요약 오류, 출처 표기 문제, 삭제 요청은 문의 · 건의로 알려주세요.