최근 Brew의 업데이트로 인해서 vim 실행시 Locale 오류가 발생하고 있는 것으로 보입니다. 해외 커뮤니티에도 관련 내용으로 여러가지 포스팅들이 올라오고 있는데요. 저 또한 nvim 사용시 비슷한 오류가 발생하였습니다.

❯ vi kamerka.py
Warning: Failed to set locale category LC_NUMERIC to en_KR.UTF-8.
Warning: Failed to set locale category LC_TIME to en_KR.UTF-8.
Warning: Failed to set locale category LC_COLLATE to en_KR.UTF-8.
Warning: Failed to set locale category LC_MONETARY to en_KR.UTF-8.
Warning: Failed to set locale category LC_MESSAGES to en_KR.UTF-8.
Warning: Failed to set locale category LC_NUMERIC to en_KR.UTF-8.
Warning: Failed to set locale category LC_TIME to en_KR.UTF-8.
Warning: Failed to set locale category LC_COLLATE to en_KR.UTF-8.
Warning: Failed to set locale category LC_MONETARY to en_KR.UTF-8.
Warning: Failed to set locale category LC_MESSAGES to en_KR.UTF-8.

정확한 이유는 알 수 없으나 brew 업데이트시 Locale 설정이 변경되거나 깨져버리는 것이 아닌가 추정됩니다. 여하튼 아래와 같이 export 환경설정 명령으로 Locale을 ko_KR.UTF-8 로 변경하면 더 이상 오류가 발생하지 않습니다.

 

❯ export LC_ALL=ko_KR.UTF-8

하지만 위와 같은 설정은 휘발성으로써 Mac을 재부팅 하면 다시 오류가 발생 할 수 있으므로 ~/.bashrc 에 환경설정을 추가하여 줍니다. 편집 후 source 명령을 이용하여 편집된 환경변수를 적용하면 더 이상 오류는 발생하지 않습니다.

❯ vi ~/.bashrc
export LC_ALL=ko_KR.UTF-8

❯ source ~/.bashrc

만약 zsh 를 사용하고 계신다면 .zshrc 에 아래와 같이 추가합니다.

❯ vi ~/.zshrc
export LC_ALL=ko_KR.UTF-8

❯ source ~/.zshrc

Locale 이 잘 적용되어 있는지는 아래 명령으로 확인 할 수 있습니다.

❯ locale
LANG=
LC_COLLATE="ko_KR.UTF-8"
LC_CTYPE="ko_KR.UTF-8"
LC_MESSAGES="ko_KR.UTF-8"
LC_MONETARY="ko_KR.UTF-8"
LC_NUMERIC="ko_KR.UTF-8"
LC_TIME="ko_KR.UTF-8"
LC_ALL="ko_KR.UTF-8"

Locale 이란 맥/리눅스 등에서 사용하는 언어셋이라고 간단히 생각 할 수 있지만, 실제로는 조금 다릅니다. 일반적으로 language_territory.codeset (언어_지역.코드셋) 형식으로 표현 됩니다. 언어 (language) 는 ISO 639-1, 지역 (territory) 는 ISO 3166-1 을 따르며, 코드셋 (codeset) 은 UTF-8 이나 EUC-KR 같은 값이 올 수 있습니다. 따라서 한글이라는 언어를 사용하는 한국지역의 UTF-8 코드셋은 (한글_한국_UTF-8) ko_KR.UTF-8 이 되는 것이지요.

여기까지 MAC에서 Locate 오류 해결법 및 Locale의 의미에 대해서 알아보았습니다. 감사합니다~