[java] 스프링 부트와 하이버네이트를 사용한 다국어 처리

다국어 지원은 현대적인 웹 애플리케이션에서 매우 중요한 기능입니다. 사용자들은 각자의 언어로 애플리케이션을 이해하기를 원하며, 이를 지원하지 않는 애플리케이션은 사용자 경험에 부정적인 영향을 미칠 수 있습니다. 이번 포스트에서는 스프링 부트(Spring Boot)와 하이버네이트(Hibernate)를 사용하여 다국어 처리를 구현하는 방법에 대해 살펴보겠습니다.

스프링 부트와 하이버네이트 설정

스프링 부트와 하이버네이트를 사용하여 다국어 처리를 구현하려면, 먼저 MessageSource와 함께 LocalValidatorFactoryBean을 구성해야 합니다. 이를 통해 메시지 소스 및 로케일 기반으로 유효성 검사 메시지를 다국어로 지원할 수 있습니다.

@Configuration
public class MessageConfig {

    @Bean
    public LocalValidatorFactoryBean validator(MessageSource messageSource) {
        LocalValidatorFactoryBean bean = new LocalValidatorFactoryBean();
        bean.setValidationMessageSource(messageSource);
        return bean;
    }
}

그리고 application.properties 파일에 다국어 지원을 위한 메시지 소스를 추가해야 합니다.

spring.messages.basename=messages

메시지 리소스 파일 작성

이제 각 언어별 메시지 리소스 파일을 작성해야 합니다. 예를 들어, messages_en.properties 파일에는 영어로 된 메시지들을, messages_ko.properties 파일에는 한국어로 된 메시지들을 정의합니다.

messages_en.properties
greeting=Hello
messages_ko.properties
greeting=안녕하세요

다국어 메시지 사용

애플리케이션에서 메시지를 사용할 때는 MessageSource 빈을 주입받아 해당 메시지를 가져와야 합니다.

@Service
public class GreetingService {

    @Autowired
    private MessageSource messageSource;

    public String getGreeting(String lang) {
        return messageSource.getMessage("greeting", null, new Locale(lang));
    }
}

이제 스프링 부트와 하이버네이트를 사용하여 언어별 다국어 처리를 구현할 수 있습니다. 사용자가 선호하는 언어에 맞게 메시지를 제공함으로써 애플리케이션의 사용자 경험을 향상시킬 수 있습니다.