Search
〰️

메시지, 국제화

메세지와 국제화란?

메시지

여러 화면에 보이는 상품명, 가격, 수량 등 단어를 변경하려면 화면들을 다 찾아가서 모두 변경해야한다. 화면 수가 적으면 문제가 되지 않지만, 화면이 수십개 이상이라면 수십개의 파일을 모두 고쳐야한다. (하드코딩)
이런 다양한 메시지를 한 곳에서 관리하도록 하는 기능을 메시지 기능이라 한다.
메시지 관리용 파일을 만들고, 각 HTML들을 key값을 불러 사용하도록 하는 것이다.

국제화

메시지 파일을 각 나라별로 별도로 관리하면, 서비스를 국제화할 수 있다.
# messages_en.yml item=Item # messages_ko.yml item=상품
YAML
복사
영어를 사용하는 사람이면 messages_en.properties을, message_ko.properties을 사용하게 개발하면 된다.
한국에서 접근한 것인지, 영어권에서 접근한 것인지 인식하는 방법은 Http accept-language 헤더 값을 사용하거나 사용자가 직접 언어를 선택하도록 하고, 쿠키 등을 사용해서 처리하면 된다.
스프링은 기본적인 메시지, 국제화 기능을 제공한다!

메시지

스프링 메시지 소스 설정

스프링은 기본적인 메시지 관리 기능을 제공한다.
메시지 관리 기능을 제공하려면, 스프링이 제공하는 MessageSource를 스프링 빈으로 등록해야한다.
/resources/message.properties를 기본으로 사용한다.

스프링 부트 메시지 소스 설정

스프링 부트가 MessageSource를 자동으로 스프링 빈으로 등록한다.
spring: messages: basename: messages,config.i18n.messages
YAML
복사
MessageSource를 스프링 빈으로 등록하지 않고, 스프링부트와 관련된 별도의 설정을 하지 않으면 messages라는 이름으로 기본 등록된다.
따라서, messages_en.properties, message_ko.properties을 만들어 바로 사용할 수 있다.