Ubuntu 18.04 Server / 언어 변경하는 방법

Ubuntu 18.04 Server의 기본 언어는 사용할 로캘과 번역 패키지를 준비한 뒤 update-locale로 설정하고 다시 로그인하면 변경할 수 있습니다. 한국어로 바꾸는 경우 ko_KR.UTF-8을 사용하며, 설정 파일의 값과 현재 로그인 세션에 적용된 값을 나누어 확인해야 합니다.

변경 전 확인과 백업

로캘(locale)은 프로그램이 사용할 언어, 문자 인코딩, 날짜·숫자 표기와 정렬 방식 등을 정하는 설정입니다. 이 글은 Ubuntu 18.04 Server의 터미널 환경을 대상으로 하며, 데스크톱의 입력기나 키보드 배열을 바꾸는 방법은 다루지 않습니다.

Ubuntu 18.04 LTS의 일반 보안 유지보수는 2023년 5월에 종료되었습니다. 기존 서버를 관리하는 경우에는 언어 설정과 별도로 Ubuntu Pro의 확장 보안 유지보수 적용 여부나 운영체제 업그레이드 계획을 확인하세요. 지원 범위는 Ubuntu 공식 지원 주기에서 확인할 수 있습니다.

sudo 권한이 있는 계정으로 접속하여 다음 명령을 각각 실행합니다. locale은 현재 세션의 설정을, locale -a는 서버에서 사용할 수 있는 로캘을, 마지막 명령은 시스템 기본 설정 파일을 보여 줍니다.

locale
locale -a
cat /etc/default/locale

현재 세션에 LANG=en_US.UTF-8이 표시되면 기본 로캘은 미국 영어입니다. 다만 다음 변수에 값이 있으면 일부 또는 전체 설정이 달라질 수 있으므로 함께 확인하세요.

변수 역할과 확인할 점
LANG 개별 항목을 따로 지정하지 않았을 때 사용하는 기본 로캘입니다.
LC_MESSAGES 등 LC_* 메시지·시간·숫자 등 특정 항목의 설정으로, 해당 항목에서는 LANG보다 우선합니다.
LC_ALL 모든 로캘 항목을 한꺼번에 덮어씁니다. 일반적인 영구 기본값보다는 명령 실행 중 임시 지정에 적합합니다.
LANGUAGE GNU gettext를 사용하는 프로그램의 번역 메시지 우선순위입니다. 날짜·숫자 설정 전체를 바꾸는 변수는 아니며, 메시지 언어가 예상과 다를 때 확인합니다.

이 변수들의 역할과 적용 우선순위, LANGUAGE의 메시지 번역 용도는 Ubuntu 18.04 locale(7) 매뉴얼에서 확인할 수 있습니다. 번역이 없는 프로그램은 한국어 로캘에서도 영어 메시지를 표시할 수 있습니다.

변경 전에 기본 설정 파일을 백업합니다. 아래 백업 파일이 이미 있다면 기존 백업을 덮어쓰지 말고 다른 파일명을 사용하세요. 복원할 때도 실제로 저장한 파일명을 사용해야 합니다.

sudo cp -a /etc/default/locale /etc/default/locale.backup

한국어 로캘과 번역 패키지 준비

로캘 데이터와 프로그램의 번역 메시지는 역할이 다릅니다. 로캘 이름을 설정 파일에 적는 것만으로 필요한 데이터나 모든 프로그램의 번역이 설치되는 것은 아닙니다. 먼저 패키지 목록을 갱신하고 로캘 도구와 한국어 번역 패키지를 설치합니다.

sudo apt-get update
sudo apt-get install locales language-pack-ko
sudo locale-gen ko_KR.UTF-8
locale -a

각 명령이 오류 없이 끝난 뒤 다음 명령으로 넘어가세요. 마지막 목록에 ko_KR.utf8이 있으면 한국어 UTF-8 로캘을 사용할 수 있습니다. 목록의 .utf8 표기와 설정 예시의 .UTF-8 표기가 다르게 보일 수 있습니다. locale-gen은 로캘 데이터를 생성하며, 시스템 기본 언어를 선택하는 단계는 별도로 필요합니다. 자세한 동작은 Ubuntu 18.04 locale-gen 매뉴얼에서 확인할 수 있습니다.

패키지를 찾을 수 없거나 다운로드 오류가 발생하면 먼저 apt-get update의 오류, 저장소 설정과 네트워크 상태를 해결하세요. 설치에 실패한 상태에서 로캘 이름만 강제로 지정하면 이후 명령에서 로캘 관련 경고가 발생할 수 있습니다.

시스템 기본 언어 변경

언어뿐 아니라 날짜·숫자 표기 등도 한국어 로캘을 기본으로 사용하려면 다음과 같이 설정합니다.

sudo update-locale --reset LANG=ko_KR.UTF-8
cat /etc/default/locale

--reset은 /etc/default/locale에서 명령에 지정하지 않은 변수를 제거합니다. 기존 LANGUAGE나 개별 LC_* 설정이 한국어 기본값을 덮지 않게 하는 선택입니다. 날짜·숫자 등 일부 항목을 의도적으로 다른 지역 설정으로 유지하고 있다면 이 옵션을 그대로 사용하지 말고, 기존 설정을 보존하면서 필요한 변수만 변경하세요.

설정 파일에는 다음 항목이 있어야 합니다. 파일에 자동 생성 주석이 함께 있어도 괜찮습니다.

LANG=ko_KR.UTF-8

update-locale은 설정값을 검사하고 기본 설정 파일을 수정하지만, 이미 실행 중인 셸의 환경 변수까지 변경하지는 않습니다. 이 동작과 --reset의 의미는 Ubuntu 18.04 update-locale 매뉴얼에 설명되어 있습니다.

다시 로그인하여 적용 확인

SSH로 접속했다면 연결을 종료하고 새로 접속합니다. 서버 전체를 재부팅할 필요는 없지만, 기존 세션과 이미 실행 중인 프로그램은 이전 환경을 계속 사용할 수 있습니다. tmux나 screen에 다시 연결하는 것만으로 새 로그인 환경이 적용되었다고 판단하지 마세요. 시스템 서비스의 언어는 서비스별 환경 설정도 따로 확인해야 합니다.

새 세션에서 다음 명령을 실행합니다.

locale
locale charmap

LANG=ko_KR.UTF-8이 표시되고, 다른 설정이 덮어쓰지 않는 항목들이 한국어 로캘을 가리키며, 문자 인코딩이 UTF-8이면 기본 적용을 확인할 수 있습니다. LC_ALL=처럼 값이 비어 있는 것은 오류가 아니라 전체 덮어쓰기를 하지 않는 상태입니다. locale 명령 매뉴얼에 따라 실제 환경을 확인하세요.

날짜 표기의 차이는 같은 날짜를 두 로캘로 출력하여 확인할 수 있습니다. 아래 예시는 각 명령에만 임시로 로캘을 지정하므로 기본 설정 파일을 바꾸지 않습니다.

LC_ALL=C date -d '2026-01-02' '+%A %B'
LC_ALL=ko_KR.UTF-8 date -d '2026-01-02' '+%A %B'

첫 번째 명령은 Friday January처럼 영어로, 두 번째 명령은 설치된 한국어 로캘의 요일·월 이름으로 표시되어야 합니다. 날짜의 표기 언어와 시간대는 다른 설정입니다. 시각 자체가 어긋난 문제라면 Ubuntu 18.04 Server의 시간대 설정 방법을 확인하세요.

설정이 적용되지 않을 때 확인할 곳

  • 로캘 경고가 표시되는 경우: locale -a에 설정한 로캘이 있는지 확인하고, 없다면 패키지 설치와 로캘 생성 단계부터 다시 확인합니다. 파일에 문자열만 추가해 경고를 없애려 하지 마세요.
  • 설정 파일은 한국어인데 세션은 다른 언어인 경우: locale에서 LC_ALL, 개별 LC_*와 LANGUAGE 값을 확인합니다. ~/.profile, ~/.bashrc, /etc/environment 등에 별도 지정이 있는지도 살펴보고, 필요한 설정만 수정한 뒤 새로 로그인합니다.
  • SSH 접속에서만 언어가 바뀌는 경우: 클라이언트의 SendEnv와 서버의 AcceptEnv 설정에 따라 LANG·LC_*가 전달될 수 있습니다. 클라이언트 측 로캘과 서버에서 생성한 로캘을 함께 확인하세요. 이 동작은 OpenSSH 클라이언트 설정과 OpenSSH 서버 설정에서 설명합니다. 언어 문제를 해결하려고 원격 접속 설정을 무조건 변경하거나 SSH 서비스를 재시작할 필요는 없습니다.
  • 메시지만 영어로 표시되는 경우: 해당 프로그램의 한국어 번역 제공 여부와 LANGUAGE 설정을 확인합니다. 메시지 하나가 영어라는 이유만으로 로캘 적용 전체가 실패했다고 판단하지 마세요.
  • 한글이 네모나 깨진 문자로 보이는 경우: SSH 터미널의 UTF-8 문자 인코딩과 한글 지원 글꼴을 확인합니다. 서버의 로캘 변경만으로 클라이언트 글꼴이나 한글 입력기가 설치되지는 않습니다.

원래 설정으로 복원하거나 영어로 변경

처음 상태로 되돌리려면 작업 전에 만든 백업을 복원하고 새로 로그인합니다. 백업에 있던 개별 지역 설정도 함께 복원됩니다.

sudo cp -a /etc/default/locale.backup /etc/default/locale
cat /etc/default/locale

이전 상태를 복원하는 대신 미국 영어 UTF-8을 새 기본값으로 지정하려면 해당 로캘을 준비한 뒤 설정합니다. 아래 명령도 기본 설정 파일의 개별 로캘 지정값을 초기화하므로, 사용자별 예외가 필요하면 먼저 내용을 검토하세요.

sudo locale-gen en_US.UTF-8
sudo update-locale --reset LANG=en_US.UTF-8

새로 로그인한 뒤 locale과 locale charmap으로 다시 확인합니다. 복원 후에도 SSH에서만 다른 값이 보이면 백업 파일을 반복해서 덮어쓰기보다 앞서 설명한 사용자별 환경 변수와 SSH 전달 설정을 확인하세요.