우분투 Locale 설정하기!

박일우·2022년 4월 20일
3

linux

목록 보기
1/1

AWS EC2를 서울 리전으로 생성하여도 Default Locale값은 'C.UTF-8'이다!

이에 따른 문제상황과 해결방법을 공유 해보려 한다!

문제사항

간단한 Spring Boot API 프로젝트 구조이다.
다국어 처리(훗날 세계적인 서비스가 될 수도..^^)를 위해 MessageProperty를 사용하였고 아래 스크린샷처럼 yml파일을 생성해주었다.

아직은 영어나 다른 언어로 서비스할 필요가 없기 때문에 _ko.yml 파일만 생성하였다.
이러한 상황에서 EC2 서버에 해당 서비스를 배포하고 실행을 하였는데, 아래와 같은 로그가 확인 되었다.

locale en에 맞는 메세지리소스를 못찾는다는 내용인데, message_en.yml이 없어서 생긴 문제였다! 그리고 이에 따라 API Response의 응답코드와 메세지를 message.yml에 정의했던터라 실제 Response가 아래와 같이 잘못 출력이 되는 문제가 생겼다.

해결방법

사실 해결방법으로 간단하게 message_en.yml을 만들어주면 해결이 되기는 한다.
허나 우리는 한국어 사용자를 타겟으로 만든건데, message_en.yml에 한글을 쓴다(?) 뭔가 어불성설이다. 그래서 근본적인 문제인 '서버의 locale을 바꾸자!' 라고 생각하였다.

먼저 변경 가능한 locale 목록을 보자 (locale-a)

한글 패키지가 없으니 다운로드를 받도록 하자!

sudo apt-get install language-pack-ko

잘 설치가 되었다. 그럼 이제 locale을 생성해보자!

sudo locale-gen ko_KR.UTF-8

잘 생성이 되어서 ko_KR.utf8이 변경 가능한 목록에 나타난다!
locale의 설정은 /etc/default/locale에서 확인이 가능하다.

이제 locale을 업데이트해보자!

sudo update-locale LANG=ko_KR.UTF-8 LC_MESSAGES=POSIX

해당 명령어로 업데이트 후 서버를 재기동 시키면 잘 업데이트 된 걸 확인할 수 있다!

profile
열정!열정!열정!

0개의 댓글