MySQL) API 응답에서 한글 깨짐 현상.

Wonjun Lee·2025년 8월 9일

문제 상황

로컬에서 개발한 뒤 아무 문제 없던 API를 서버에 배포하니, 응답에서 한글이 깨지는 문제가 발생했다.

정확히 어디서 문제가 생기는지 체크하기 위해 프론트엔드 담당자와 얘기 해보니, 프로필 정보 등 다른 데이터에선 한글 깨짐이 발생하지 않는다고 했고, 직접 Postman으로 요청을 날려 체크해봤다.

Springboot 서버, mysql 모두 기본 인코딩을 utf-8로 설정해둔 터라 당연히 한글이 문제 없을 것이라 생각했지만, 이런 현상이 발생해 당황했다.

조치

발생 원인 분석을 위해 데이터 삽입에 사용한 script의 encoding type을 알아봤다.

:set encoding

확인결과 utf-8이었다.

mysql에 저장된 데이터도 역시 한글이 깨지지 않은 상태에서 select가 되었다.

서버에서 생성한 String 데이터 응답들은 모두 한글이 깨지지 않았다.

깨진 데이터는 Script 파일을 사용해 초기화했다.

다음 명령어로 MySQL 컨테이너에서 mysql에 접속하니 다시 select해본 결과 한글이 깨졌다.

mysqldump -h <host> -u <user> -p --default-character-set=utf8mb4

결국 Script 파일을 적용하는 과정에서 인코딩 에러가 발생한 것으로 추정되었다.
기존 데이터를 제거하고(연관관계를 만들지 않아 삭제가 가능했다.)
다음 명령으로 다시 데이터를 초기화했다.

mysql --default-character-set=utf8mb4 -u e104 -p < 01_license_data.sql

결과

성공적으로 한글을 받아볼 수 있었다.

profile
Samsung Electronics. SW Engineering.

0개의 댓글