Computer >> 컴퓨터 >  >> 프로그래밍 >> Java

Java에서 Locale(로케일) 클래스가 중요한 이유와 활용 방법

Java의 Locale 클래스로케일 관련 작업을 수행하고 사용자에게 로케일 정보를 제공하는 역할을 합니다. Locale이란 특정 작업이 수행되는 지리적 위치지역을 나타내는 일련의 매개변수 집합으로 정의할 수 있습니다.

국제화(i18n) 애플리케이션을 개발할 때 Locale 클래스는 필수적입니다. 날짜, 숫자, 통화, 텍스트 등을 사용자의 지역과 언어에 맞게 표시하려면 각 지역별 형식 정보가 필요한데, 이를 Locale 객체가 담당합니다.

Locale 클래스의 주요 메서드

  • getAvailableLocales(): 시스템에서 사용 가능한 모든 로케일 배열을 반환합니다.
  • getDefault(): JVM의 기본 로케일을 반환합니다.
  • getCountry(): 로케일의 국가 코드(대문자 2자리, ISO 3166)를 반환합니다.
  • getDisplayLanguage(): 사용자에게 표시하기 적합한 언어 이름을 반환합니다.
  • getDisplayCountry(): 사용자에게 표시하기 적합한 국가 이름을 반환합니다.
  • getUnicodeLocaleKeys(): 유니코드 로케일 키 집합을 반환합니다.

Locale 클래스의 생성자

Locale 클래스는 다음과 같은 생성자를 제공합니다.

  • Locale(String L): 인자로 전달된 언어 코드로 로케일을 초기화합니다. 예: new Locale("ko")
  • Locale(String L, String C): 인자로 전달된 언어 코드국가 코드로 로케일을 초기화합니다. 예: new Locale("ko", "KR")
  • Locale(String L, String C, String V): 인자로 전달된 언어, 국가, 변형(variant)으로 로케일을 초기화합니다.

클래스 선언 구문

public final class Locale extends Object implements Cloneable, Serializable

Locale 클래스는 final로 선언되어 상속할 수 없으며, Cloneable과 Serializable 인터페이스를 구현하여 복제 및 직렬화가 가능합니다.

예제 코드

아래 예제는 SimpleDateFormat의 getAvailableLocales() 메서드를 통해 사용 가능한 로케일 목록을 가져와 처음 15개의 로케일 이름과 문자열 표현을 출력합니다.

import java.text.SimpleDateFormat;
import java.util.Locale;

public class LocaleTest {
   public static void main(String[] args) {
      Locale loc[] = SimpleDateFormat.getAvailableLocales();
      for (int i = 1; i <= 15; i++) {
         System.out.printf("\n%s (%s) ", loc[i].getDisplayName(), loc[i].toString());
      }
   }
}

실행 결과

Arabic (United Arab Emirates) (ar_AE)
Arabic (Jordan) (ar_JO)
Arabic (Syria) (ar_SY)
Croatian (Croatia) (hr_HR)
French (Belgium) (fr_BE)
Spanish (Panama) (es_PA)
Maltese (Malta) (mt_MT)
Spanish (Venezuela) (es_VE)
Bulgarian (bg)
Chinese (Taiwan) (zh_TW)
Italian (it)
Korean (ko)
Ukrainian (uk)
Latvian (lv)
Danish (Denmark) (da_DK)

정리

Locale 클래스는 Java 애플리케이션을 다양한 언어와 지역에 맞게 적응시키는 국제화의 핵심 요소입니다. 언어 코드와 국가 코드를 조합해 로케일을 정의하면, SimpleDateFormat이나 NumberFormat 같은 포맷 클래스와 함께 사용하여 지역별 형식에 맞는 데이터 처리가 가능합니다. 실행 결과에서 볼 수 있듯이 JVM 환경에서 지원하는 다양한 로케일을 손쉽게 조회하고 활용할 수 있습니다.