블로깅의 목표
스프링부트에서 제공하고 있는 국제화에 대해서 이해한다. 반드시!
국제화란?
스프링 부트에서는 기본적으로 국제화를 위한 지원 기능을 가지고 있음.
국제화의 목표는
여러 언어및 형식으로 콘텐츠를 제공할 수 있는 어플리케이션을 작성하는 것.
그럼, 국제화를 간단하게 구현해보자.
하나, 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 테크관련 파워블로거및 인플루언서가 반드시 된다!
목표를 이루기 위한 실천방안
- 꾸준한 블로깅/기록법/독서법으로 넘버원이 아닌 온리원이 되보자.
- 천사불여일행(千思不如一行)을 항상생각하며 체화 및 각인시키자.
- "천번 생각하는것보다 한번 행동하는 것이 더 중요하다."
- 기기일약 불능십보(騏驥一躍 不能十步) / 노마십가 공재불사(駑馬十駕 功在不舍)
- 천리마도 한번에 열걸음을 뛸 수 없고, 느리고 둔한말이라도 열흘이면 하룻길을 간다.
- 모든 실수에는 마술이 숨어 있다. 따라서 나는 실수하면 실수할수록, 그런 실수에서 더 많이 배울수록 삶에서 더 많은 마술을 갖는다.
'좋아하는 것_매직IT > 1.spring' 카테고리의 다른 글
39.Spring, 스프링 클라우드 슬루스관련 로그수집 솔루션 알아보기. (0) | 2021.02.07 |
---|---|
38.Spring, 스프링 클라우드 슬루스(Spring Cloud Sleuth)에 대해서 테스트 코드를 작성해보자. (0) | 2021.02.07 |
36.Spring, MSA 에서 분산 디버깅을 할 수 있는 기법 및 기술을 알아보자.(feat. 스프링 클라우드 슬루스(Spring Cloud Sleuth)) (0) | 2021.02.06 |
35.Spring, 스프링 시큐리티관련 JWT(JSON Web Token) 에 대해서 간단한 구현을 해볼께요. (0) | 2021.02.06 |
34.Spring, 스프링 시큐리티관련 JWT(JSON Web Token) 에 대해서 알아보자. (0) | 2021.02.06 |