[Spring MVC] 메세지, 국제화
- [ Backend ]/Spring Web
- 2022. 7. 8.
개요
- 메세지
협업이나 실무의 과정에서 화면에 보이는 문구를 고치기 위해서는 HTML에 일일히 하드코딩된 단어들을 변경해야 할 수 있다. 이러한 경우 실수가 일어날 수 있고 단어의 수에 따라 매우 번거로울수도 있다.
따라서 이러한 단점을 해결하기 위해서 메세지를 한 곳에서 관리하는 방법이 있다.
item=상품
item.id=상품 ID
<label for="itemName" th:text="#{item.itemName}"></label>
이런 식으로 messages.properties와 같이 메세지 관리 파일을 만들고, HTML에서는 해당 데이터를 key값으로 불러서 사용하는 것이다.
- 국제화
메세지를 각 나라별로 별도로 관리하면, 서비스 자체를 국제화 할 수 있다. properties파일을 여러개 만들어서 분리해서 접속 지역(HTTP 헤더 accept-language)에 따라서 별도의 파일이 사용되게 개발하면 된다.
그런데 스프링을 이용하면 이러한 기능을 직접 구현하지 않고도 기본적으로 제공되는 기능을 이용하면 된다.
스프링으로 활용하기
먼저 메세지 관리 기능을 사용하려면 스프링이 제공하는 인터페이스 'MessageSource'를 스프링 빈으로 등록하면 된다. 스프링 부트를 사용하면 이것조차 직접 구현하지 않고 자동으로 기능을 제공해준다.
spring.messages.basename=messages,config.i18n.messages
MessageSource 를 스프링 빈으로 등록하지 않고, 스프링 부트와 관련된 별도의 설정을 하지 않으면 'messages' 라는 이름이 기본 등록된다. 따라서 messages_en.properties , messages_ko.properties , messages.properties 파일만 등록하면 자동으로 등록된다. (messages.properties가 default값이므로 ko, en 이외의 경우 그것으로 출력된다)
'[ Backend ] > Spring Web' 카테고리의 다른 글
[Spring MVC] 검증 2 - Bean Validation (0) | 2022.07.14 |
---|---|
[Spring MVC] 검증 - BindingResult, @InitBinder (0) | 2022.07.08 |
[Spring MVC] URL 매핑, 데이터 전송/조회 (0) | 2022.02.19 |
[Spring MVC] 서블릿과 스프링, 프론트 컨트롤러 (0) | 2022.02.09 |
[Spring MVC] 웹 서버, WAS, 서블릿 (0) | 2022.02.08 |