[스프링] 다국어 지원 방법

스프링 애플리케이션을 다국어로 지원해야 하는 경우, 다양한 방법으로 다국어 지원을 할 수 있습니다.

1. MessageSource를 사용한 다국어 지원

스프링에서는 MessageSource 인터페이스를 사용하여 다국어 메시지를 관리하고 제공할 수 있습니다. MessageSource를 구현한 ResourceBundleMessageSourceReloadableResourceBundleMessageSource를 사용하여 properties 파일에 저장된 메시지를 읽어올 수 있습니다. 프로퍼티 파일은 각 언어별로 따로 만들어 관리하며, 해당 언어에 따라 적절한 메시지를 제공합니다.

@Bean
public MessageSource messageSource() {
    ResourceBundleMessageSource messageSource = new ResourceBundleMessageSource();
    messageSource.setBasename("messages");
    messageSource.setDefaultEncoding("UTF-8");
    return messageSource;
}

2. 어노테이션을 사용한 다국어 지원

@Value 어노테이션을 사용하여 다국어 메시지를 주입할 수 있습니다. 각 언어별로 properties 파일을 만들어 해당 프로퍼티를 @Value 어노테이션을 이용해 주입받을 수 있습니다.

@Value("${message.greeting}")
private String greetingMessage;

3. Thymeleaf 등의 뷰 템플릿을 사용한 다국어 지원

스프링에서 Thymeleaf 등의 뷰 템플릿을 사용하는 경우, 해당 템플릿에서 다국어 메시지를 쉽게 다룰 수 있습니다. Thymeleaf에서는 #messages를 사용하여 다국어 메시지를 출력할 수 있습니다.

<div th:text="#{welcome.message}">Welcome, User!</div>

다국어 지원은 사용자 경험을 향상시키고 국제 시장에서의 경쟁력을 강화하는 데 있어 중요한 요소입니다. 스프링에서 다국어를 지원하는 방법은 다양하니, 프로젝트의 요구사항과 팀의 선호도에 맞는 방법을 선택하여 적용해 보시기 바랍니다.

참고 자료