본문 바로가기

좋아하는 것_매직IT/1.spring

37.Spring, 스프링부트에서 제공하고 있는 국제화에 대해서 알아보고 간단하게 구현해보자.

반응형

블로깅의 목표

스프링부트에서 제공하고 있는 국제화에 대해서 이해한다. 반드시!

국제화란?

스프링 부트에서는 기본적으로 국제화를 위한 지원 기능을 가지고 있음.

국제화의 목표는

여러 언어및 형식으로 콘텐츠를 제공할 수 있는 어플리케이션을 작성하는 것.

그럼, 국제화를 간단하게 구현해보자.

하나, InternationApplication.java 를 코딩해보자.

첫째, LocaleResolver 추가 작성

둘째, messageSource 추가 작성

InternationApplication.java (코딩코딩코딩....)

설명

23번 줄 :

sessionLocaleResolver.setDefaultLocale(Locale.US);

기본로케일을 Locale.US 로 설정함.

32번 줄 :

messageSource.setBasenames("messages");

메세지 소스의 기본 이름을 "messages" 로 설정함.

예를들어, 프랑스일 경우(fr)

messages_fr.properties 의 메시지를 사용함.

만약, 해당 메시지를 사용할 수 없으면, 디폴트검색은 아래와 같음.

messages.properties 를 검색

33번 줄 :

messageSource.setUseCodeAsDefaultMessage(true);

메시지를 찾을 수 없는 경우, 코드는 기본메시지 반환함.

둘, 메시지 설정 파일을 구성함.

messages.properties (디폴트)

 

messages_fr.properties (프랑스일 경우)

messages_ko.properties( 한국일 경우)

 

셋, InterController.java(콘트롤러) 를 코딩해 보자.

첫째, 요청 HTTP 의 "Accept-Language" 헤더에 지정된 Locale 를 사용해 특정 메시지를 반환하는 로직 구현.

InterController.java(코딩코딩코딩...)

17번 줄 :

@GetMapping("/hello-inter")

HTTP의 GET 메소드 처리 할 수 있도록 함.

요청 URL : "/hello-inter"

18번 줄 :

@RequestHeader(value="Accept-Language", required = false)Locale locale

HTTP 요청 헤더 중 Accept-Language 을 참고로 하여 로케일 선택.

19번 줄 :

return messageSource.getMessage("hello.message",null, locale);

세팅했던 hello.message 의 내용을 가져와서 리턴해줌.

넷, 그럼 프로그램을 컴파일 하고 실행해보자.

설명

8080 포트로 정상 기동됨을 확인할 수 있습니다.

마지막으로, 정확하게 구현되었는지 테스트를 해보자.

당구니, 저는 애용하는 Postman 을 사용해서 테스트 해보겠습니다.

하나, HTTP 요청 헤더에 Accept-Language 를 세팅(fr/프랑스)해서 요청함

설명

정상적으로, messages_fr.properties 의 내용을 서버로 부터 수신함을 알 수 있음.

둘, HTTP 요청 헤더에 Accept-Language 를 세팅(ko/대한민국)해서 요청함

설명

정상적으로, messages_ko.properties 의 내용을 서버로 부터 수신함을 알 수 있음.

결론

이번 블로깅을 통해서 아래 내용은 꼭 머리속에 넣어두자.

국제화란?

스프링 부트에서는 기본적으로 국제화를 위한 지원 기능을 가지고 있음.

국제화의 목표는

여러 언어및 형식으로 콘텐츠를 제공할 수 있는 어플리케이션을 작성하는 것.

오늘도, 스프링부트에서 제공하고 있는 국제화에 대한 지식 한가지 획득완료! 감사합니다.


오늘의 명언 한마디

사람이 처한 어려움은 본인이 허락하지 않는 한, 결코 의식을 온통 점유할 수 없다.

문제는 청하지 않는 손님과 같다.

손님에게 예의를 갖추되 분명하게 지금은 초대할 수 없다고 말하면된다.

그러면 보통은 손님이 가버린다.

그럼에도 머물러 있다면 무시하면 된다. 그를 공기처럼 취급하며 다른 것에 주의를 기울여라.

문제도 그와 같이 대할 수 있다.

토마스 호엔제 지음, "평정심, 나를 지켜내는 힘" 중에서..


오늘의 영어 한마디

It has came as a shock for him.

그일은 다가왔다. / 충격적인 사건으로 / 그에게

설명

"come" 은 왔다라는 뜻.

came 은 과거형임.

"shock" 는 충격이라는 뜻이고 동의어는 아래와 같음.

동의어

impact, impulse, bombardment, stun, percussion


오늘의 재무제표 공부 한마디

당좌자산(當座資産)

유동자산 중에서 판매과정을 거치지 않고 1년 이내에 현금화가 가능한 자산을 말함.

세부적으로는 현금 및 현금성자산과 단기금융상품, 매출채권 등으로 구분됨


목표

- 나의 강점을 바탕으로 나의 일을 잘해냄으로써 타인과 사회를 아릅답게 만든다.

- 현재 내가 가진 능력으로 누군가에 도움이 될 수 있을까? 에 대해서 항상 생각하기

- 나는 블로그 생태계에서 IT 테크관련 파워블로거및 인플루언서가 반드시 된다!

목표를 이루기 위한 실천방안

- 꾸준한 블로깅/기록법/독서법으로 넘버원이 아닌 온리원이 되보자.

- 천사불여일행(千思不如一行)을 항상생각하며 체화 및 각인시키자.

- "천번 생각하는것보다 한번 행동하는 것이 더 중요하다."

- 기기일약 불능십보(騏驥一躍 不能十步) / 노마십가 공재불사(駑馬十駕 功在不舍)

- 천리마도 한번에 열걸음을 뛸 수 없고, 느리고 둔한말이라도 열흘이면 하룻길을 간다.

- 모든 실수에는 마술이 숨어 있다. 따라서 나는 실수하면 실수할수록, 그런 실수에서 더 많이 배울수록 삶에서 더 많은 마술을 갖는다.

300x250