오봉이와 함께하는 개발 블로그

스프링 MVC 2 - 메시지, 국제화 본문

BE/Spring

스프링 MVC 2 - 메시지, 국제화

오봉봉이 2022. 8. 18. 01:28
728x90

메시지, 국제화 소개

메시지

화면에 보이는 문구가 마음에 들지 않아 상품명이라는 단어를 모두 상품 이름으로 바꿔야 할 때 모든 HTML을 찾아서 고치려면 HTML 파일은 모두 하드코딩 되어 있기 때문에 매우 번거로운 일이다.

이런 다양한 메시지를 한 곳에서 관리하도록 하는 기능을 메시지 기능이라 한다.

예를 들어 messages.properties라는 메시지 관리용 파일을 만들어서

item=상품
item.id=상품 ID
item.itemName=상품명
item.price=가격
item.quantity=수량

각 HTML들은 다음과 같이 해당 데이터를 key 값으로 불러서 사용하는 것이다.

addForm.html
<label for="itemName" th:text="#{item.itemName}"></label>

국제화

메시지에서 한 발 더 나가서 messages.properties를 각 나라별로 별도로 관리하면 서비스를 국제화 할 수 있다.

messages_en.properties

item=Item
item.id=Item ID
item.itemName=Item Name
item.price=price
item.quantity=quantity

messages_ko.properties

item=상품
item.id=상품 ID
item.itemName=상품명
item.price=가격
item.quantity=수량

영미권에서는 messages_en.properties를 사용하고, 한국에서는 messages_ko.properties를 사용하도록 개발하면 된다.

어느 곳에서 접근했는지 인식하는 방법은 HTTP accept-language 헤더 값을 사용하거나, 사용자가 직접 언어를 선택하도록 하고 쿠키 등을 사용해서 처리할 수 있다.

메시지와 국제화 기능을 직접 구현할 수 있겠지만, 스프링은 기본적인 메시지와 국제화 기능을 제공한다.
타임리프도 마찬가지로 스프링이 제공하는 메시지, 국제화 기능을 편리하게 통합해서 제공한다.

출처 : 인프런 김영한 지식공유자님 강의 스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
728x90
Comments