메세지와 국제화란?
메시지
•
여러 화면에 보이는 상품명, 가격, 수량 등 단어를 변경하려면 화면들을 다 찾아가서 모두 변경해야한다. 화면 수가 적으면 문제가 되지 않지만, 화면이 수십개 이상이라면 수십개의 파일을 모두 고쳐야한다. (하드코딩)
•
이런 다양한 메시지를 한 곳에서 관리하도록 하는 기능을 메시지 기능이라 한다.
◦
메시지 관리용 파일을 만들고, 각 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을 만들어 바로 사용할 수 있다.