티스토리 뷰

국제화

  • 작년에 미국, 캐나다 국민을 대상으로 하는 REST API 서비스를 설계한 적이 있다. 당시 고객의 요구사항은 파라메터 입출력에 있어 영어 뿐만 아니라 프랑스어도 지원해달라는 요구가 있었다. 이유는 캐나다의 퀘벡 주는 프랑스어를 사용하기 때문이다. (유명 팝 가수인 셀린 디옹이 퀘벡 출신으로 프랑스어를 구사한다.)

  • 이러한 국제화를 i18n이라고 부른다. 뭔가 거창해 보이고 욕(?) 같아 보이기도 하지만 진짜 의미는 굉장히 단순하다. 그냥 Internationalization의 맨 앞글자 i와 맨 뒷글자 n 사이의 글자수가 18개라서 줄여서 i18n이라고 부르는 것이다.
  • 서비스의 국제화 범위는 단순히 메시지에 대한 다국어 지원을 하는 것에서 부터 각 국가의 통화, 날짜 등을 표현하는 것까지 다양하다.

  • 국제화를 적용하려면 각 국가와 언어권을 식별할 수 있는 코드가 필요하다. 대표적으로 Language Tags이 널리 쓰인다. 미국을 예로 들면 en-US, 대한민국은 ko-KR로 부르는 식이다. 모든 영어권을 통틀어 en으로 축약하기도 한다. [관련 링크]

REST API의 국제화 적용

  • HTTP 기반의 REST API에 국제화를 적용하는 방법은 매우 간단하다. 요청 헤더에는 Accept-Language를, 응답 헤더에는 Content-Language를 추가하면 된다. 값으로는 앞서 언급한 Language Tags를 입력한다.
// 요청 헤더
Accept-Language: en

// 응답 헤더
Content-Language: en
  • 요청 헤더를 생략할 경우 서버 측에서 기본 언어권을 설정해두는 것도 필요하다. (ex: i18n.default_locale = en)

참고 글

댓글
댓글쓰기 폼