WSL 우분투 한글·로케일·시간 깔끔하게 맞추기
WSL 우분투에서 한글이 깨지거나 시간대가 안 맞을 때, 로케일과 인코딩, 타임존을 입문자 눈높이에서 차근차근 맞추는 방법을 점검 순서로 정리했습니다.
왜 필요한가 · WSL 우분투를 처음 설치하면 한글이 깨지거나 시간대가 윈도우와 달라 헷갈리는 경우가 많아, 작업 전에 한 번 정리해 두면 두고두고 편하기 때문입니다.
누구에게 · WSL 우분투를 막 설치했고, 한글 표시나 시간대 문제로 불편을 느낀 입문자
읽고 나면 · 로케일을 한국어 UTF-8 로 맞추고, 한글이 제대로 보이도록 인코딩과 글꼴을 점검하며, 시간대를 서울로 설정할 수 있습니다.
핵심 요약
- 한글이 깨지는 대부분의 원인은 로케일 설정으로, locale-gen 으로 ko_KR.UTF-8 을 만들고 LANG 을 지정하면 해결됩니다.
- 한글이 □(빈 네모)로 보이면 로케일이 아니라 터미널 글꼴 문제일 때가 많습니다.
- 시간대가 안 맞으면 timedatectl 로 Asia/Seoul 을 지정하거나, 안 되면 tzdata 를 다시 설정하면 됩니다.
WSL에 우분투를 막 설치하고 나면, 한글 파일 이름이 깨져 보이거나 시간이 윈도우와 다르게 표시되는 일이 흔합니다. 처음에는 “설치가 잘못됐나” 싶지만, 대부분은 로케일과 시간대 설정이 기본값 그대로라서 생기는 일입니다. 이 글에서는 그 문제들을 한글 로케일, 한글 표시, 시간대 순서로 하나씩 짚어 정리합니다. 한 번에 여러 가지를 바꾸기보다, 확인 → 설정 → 적용을 단계로 밟아 가는 편이 원인을 좁히기 쉽습니다.
로케일이 무엇이고 왜 한글이 깨지나
로케일(locale)은 시스템이 “어떤 언어와 문자 인코딩을 기본으로 쓸지” 정해 둔 설정입니다. 우분투를 영어 기본으로 설치하면 로케일이 영어로 잡혀 있어, 한글을 다루는 일부 상황에서 글자가 깨지거나 정렬·정규식 처리가 어긋날 수 있습니다.
여기서 중요한 두 가지가 언어(LANG) 와 인코딩(UTF-8) 입니다. 한글 자체는 UTF-8 인코딩으로 표현되는데, 시스템 기본이 C/POSIX 처럼 아스키 위주 로케일이면 한글 바이트를 글자로 해석하지 못해 깨져 보이게 됩니다.
지금 로케일 확인하기
먼저 현재 상태를 봅니다.
localeLANG= 옆이 비어 있거나 C 또는 POSIX 로 되어 있으면, 한글을 위한 설정이 아직 없는 상태입니다. 어떤 로케일을 쓸 수 있는지(이미 생성된 목록)는 다음으로 확인합니다.
locale -a이 목록에 ko_KR.utf8 이 보이지 않는다면, 아직 한국어 로케일이 생성되지 않은 것입니다. 다음 단계에서 만들면 됩니다.
💡 Tip
한글이 깨져 나올 때 글꼴 문제인지 인코딩 문제인지 구분이 안 돼 한참 엉뚱한 곳을 손댔습니다. 로케일을 제대로 잡고 나니 거짓말처럼 정리됐습니다.
한국어 로케일 만들고 적용하기
한국어 UTF-8 로케일을 생성한 뒤, 기본 언어로 지정합니다.
sudo locale-gen ko_KR.UTF-8
sudo update-locale LANG=ko_KR.UTF-8첫 줄은 한국어 로케일 데이터를 만들어 두는 명령이고, 둘째 줄은 시스템 기본 LANG 값을 그 로케일로 바꾸는 명령입니다. update-locale 은 /etc/default/locale 파일을 손봐 다음 로그인부터 적용되게 합니다.
만약 locale-gen 단계에서 로케일이 만들어지지 않는다면, 어떤 로케일을 생성할지 고르는 설정 화면을 직접 띄워 목록에서 ko_KR.UTF-8 을 선택하는 방법도 있습니다.
sudo dpkg-reconfigure locales적용은 세션을 새로 열어야 반영된다
설정을 바꿔도 이미 열려 있는 터미널에는 곧바로 반영되지 않습니다. 터미널을 새로 열거나, 확실히 하려면 WSL을 한 번 완전히 껐다 켭니다.
wsl.exe --shutdown위 명령은 윈도우 쪽에서 WSL을 완전히 종료해, 다음 실행 때 설정을 새로 읽게 합니다. 다시 켠 뒤 locale 을 실행해 LANG=ko_KR.UTF-8 로 바뀌었는지 확인하세요.
영어 메시지를 유지하고 싶다면
명령 결과나 에러 메시지는 영어가 더 익숙한 경우도 많습니다. 그럴 때는 시스템 언어는 영어로 두되, 한글 입출력에 필요한 부분만 UTF-8 로 맞추는 선택도 있습니다. 예를 들어 특정 작업에서만 한국어 로케일을 임시로 쓰고 싶다면, 그 명령 앞에 환경 변수를 붙이는 방식도 가능합니다.
LANG=ko_KR.UTF-8 date이렇게 하면 그 한 번의 실행에만 한국어 로케일이 적용되고, 전체 설정은 그대로 둡니다.
한글이 보이긴 하는데 깨질 때
로케일을 맞췄는데도 한글이 이상하게 보인다면, 원인은 보통 둘 중 하나입니다. 둘은 증상이 다르니 구분해서 봐야 합니다.
인코딩 불일치 — 글자가
한글처럼 다른 문자가 섞여 깨져 보이는 경우입니다. 거의 모든 현대 리눅스 환경은 UTF-8 을 쓰므로, 외부에서 가져온 파일이 EUC-KR 같은 다른 인코딩일 때 주로 생깁니다.터미널 글꼴 — 한글이
□같은 빈 네모로 보이면 인코딩보다 글꼴 문제일 때가 많습니다. 시스템은 한글을 제대로 처리하고 있는데, 터미널이 그 글자를 그릴 글꼴이 없는 상태입니다.
글꼴 문제는 리눅스가 아니라 터미널 프로그램 쪽 설정에서 풉니다. Windows Terminal 같은 프로그램의 설정에서 한글을 지원하는 고정폭(monospace) 글꼴로 바꾸면 대부분 해결됩니다. 인코딩이 의심되면, 가져온 파일이 UTF-8 인지 먼저 확인하는 습관이 도움이 됩니다.
file 파일이름.txt # 텍스트 인코딩 힌트를 보여 줍니다시간대(타임존) 맞추기
WSL 우분투의 시간이 윈도우와 다르게 보이면 타임존이 기본값(UTC 등)으로 잡혀 있는 경우가 많습니다. 현재 시간 설정은 다음으로 확인합니다.
timedatectl여기서 Time zone 항목이 Etc/UTC 등으로 되어 있다면 한국 시간과 어긋나 보입니다. 서울 시간대로 바꾸는 가장 간단한 방법은 timedatectl 로 직접 지정하는 것입니다.
sudo timedatectl set-timezone Asia/Seoul환경에 따라 위 명령이 동작하지 않으면, tzdata 설정 화면을 다시 띄워 목록에서 Asia → Seoul 을 고르는 방법을 씁니다.
sudo dpkg-reconfigure tzdata설정 후 date 명령으로 시간이 한국 시간(KST)으로 나오는지 확인하면 됩니다.
date윈도우와 시간이 어긋나 보일 때
WSL을 오래 켜 두거나 윈도우가 절전·최대 절전에서 깨어난 뒤, WSL 안의 시계만 살짝 어긋나 보이는 경우가 있습니다. 이는 타임존이 아니라 가상 환경의 시계가 윈도우와 다시 동기화되지 못한 상황일 수 있습니다. 이럴 때는 무거운 설정을 손대기 전에, WSL을 한 번 껐다 켜서 시계를 다시 맞추는 것부터 시도해 보세요.
wsl.exe --shutdown시계 어긋남은 단순히 보기 불편한 데서 끝나지 않고, 뒤에서 다룰 네트워크·인증 문제로 이어지기도 하니 가볍게 넘기지 않는 편이 좋습니다.
초보자가 자주 막히는 부분
설정을 바꿨는데 그대로다 — 로케일은 터미널을 새로 열거나 WSL을 재시작해야 적용됩니다.
wsl.exe --shutdown후 다시 켜 보세요.로케일과 글꼴 문제를 혼동 — 한글이 깨지는 것과 네모(□)로 보이는 것은 원인이 다릅니다. 네모는 보통 글꼴 문제입니다.
locale -a에 ko_KR 이 없는데 LANG만 바꿈 — 로케일을 생성하지 않고LANG만 지정하면 오히려 경고가 납니다.locale-gen으로 먼저 만들어야 합니다.timedatectl 이 안 먹힘 — 일부 WSL 환경에서는
dpkg-reconfigure tzdata쪽이 더 확실하게 동작합니다.영어 메시지가 사라져 당황 — 로케일을 한국어로 바꾸면 일부 안내가 한글로 나옵니다. 영어가 익숙하면 LANG 을 영어로 두는 선택도 가능합니다.
한글·시간 설정 체크리스트
locale로 현재 LANG 값을 확인했다locale -a에 ko_KR.utf8 이 있는지 확인했다sudo locale-gen ko_KR.UTF-8로 한국어 로케일을 만들었다sudo update-locale LANG=ko_KR.UTF-8로 기본 언어를 지정했다WSL을 재시작해 설정을 적용했다
timedatectl또는tzdata로 시간대를 Asia/Seoul 로 맞췄다
정리
WSL 우분투의 한글과 시간 문제는 설치가 잘못된 것이 아니라, 기본 설정이 한국 환경에 맞춰져 있지 않아서 생깁니다. 로케일을 한국어 UTF-8 로 만들고, 글꼴까지 한 번 점검하고, 타임존을 서울로 맞추면 이후 작업이 한결 깔끔해집니다. 한 번에 다 바꾸기보다 확인 → 설정 → 적용을 순서대로 밟아 두면, 다음에 비슷한 문제를 만나도 침착하게 풀어갈 수 있습니다. 설정을 마쳤다면 이제 환경을 손에 익히면서 다음 작업으로 넘어가 보세요.
자주 묻는 질문
- 로케일을 한국어로 바꾸면 명령어 결과도 전부 한글로 나오나요?
- 에러 메시지나 일부 안내 문구가 한국어로 보일 수 있지만, 명령어 자체나 옵션은 그대로입니다. 영어 메시지가 더 익숙하다면 LANG 을 영어 로케일로 두고 한글 입출력만 UTF-8 로 맞추는 방법도 있습니다.
- 한글이 네모(□)로만 보이는데 로케일 문제인가요?
- 그 경우는 보통 로케일이 아니라 터미널이 쓰는 글꼴 문제입니다. 사용 중인 터미널(예: Windows Terminal)에서 한글을 지원하는 고정폭 글꼴로 바꾸면 해결되는 경우가 많습니다.
이 글은 입문자 기준으로 이해하기 쉽게 정리했으며, 내용은 운영 과정에서 순차적으로 보완될 수 있습니다. 환경에 따라 화면이나 명령이 다르게 보일 수 있으니, 막히는 부분이 있으면 isense2021@gmail.com 로 알려주세요.