더북(TheBook)

4.8.1 MessageSource를 사용한 국제화

스프링의 뛰어난 점 중 하나는 국제화 지원(i18n)입니다. MessageSource 인터페이스를 사용하면 애플리케이션에서 메시지라 불리는 다양한 언어로 저장된 String 리소스에 접근할 수 있습니다. 애플리케이션에서 지원할 언어별로 각 언어의 메시지에 대응되는 키를 사용해 메시지 목록을 유지해야 합니다. 예를 들어 “The quick brown fox jumped over the lazy dog”라는 메시지를 영어와 한국어로 표시하려고 하면 msg라는 키를 부여한 두 메시지를 생성합니다. 하나는 영어로 “The quick brown fox jumped over the lazy dog”이 될 것이고 다른 하나는 한국어로 “날쌘 갈색 여우가 게으른 개를 뛰어넘었습니다.”가 될 것입니다.

MessageSource를 사용하려고 ApplicationContext를 사용할 필요는 없습니다. Application Context 인터페이스가 MessageSource를 상속해 메시지를 읽어 들이고 애플리케이션 환경에서 읽어 들인 메시지에 자동으로 접근하는 특수한 기능을 제공하기 때문입니다. 이 중 메시지를 자동으로 읽어 들이는 것은 어느 환경에서나 가능합니다. 하지만 자동으로 메시지에 접근하는 기능은 스프링 기반 특정 시나리오에서만 가능한데, 이런 시나리오 중 하나로 스프링 MVC 프레임워크로 웹 애플리케이션을 만들 때를 들 수 있습니다. 어떤 클래스라도 ApplicationContextAware를 구현해 자동으로 읽어 들인 메시지에 접근할 수는 있지만 ‘4.8.2 독립형 애플리케이션에서 MessageSource 사용하기’에서 제시하는 더 좋은 방안을 사용하는 것이 좋습니다.

자바의 i18n 지원 기능이 익숙하지 않다면 더 진행하기 전에 최소한 관련 자바독을 읽어볼 것을 권장합니다(https://docs.oracle.com/javase/8/docs/api/).

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.