언어와 나라
한국은 한국어만 쓰기 때문에 한 영토 안에서 한 언어만 쓰지 않을까 하는 생각을 하기 쉽지만, 사실은 그렇지 않다. 아래의 지도를 보자. 언어를 기준으로 그린 세계지도를 보면 우리가 알고있는 지도와 많이 다르다.
이를 감안하여 안드로이드에서는 언어를 표기하는 방법을 다음과 같이 하고 있다. 영어를 “en”으로 표기하는 ISO 639-1 언어 코드와 미국을 “US”로 나타내는 ISO 3166-1 alpha-2 국가 코드를 조합하여 표현한다. 예를 들어 영어-미국이나 한국어-한국을 표기한다면,
예) en-US, ko-KR
이런 표준을 사용하면 이를 인식하는 라이브러리도 많고, 또한 다른 개발자와도 혼란을 줄일 수 있다.
다른 참고할만한 표준은 무엇이 있나?
- 사실 날짜/시간에 관련된 표준이 제일 많다. 하지만, 안드로이드/웹 개발자라면 ISO 8601을 참고하면 좋다. 연속된 스트링으로 작성할 수 있어 공백이 무슨 문제를 일으킬지 모르는 공간에서도 올바로 표기될 수 있다. 그리고, joda-time과 같이 안정적인 라이브러리도 많다. 게다가, 세계 시간을 올바르게 표현할 수 있고, 허락되는 저장공간에 따라 여러가지 길이로 표현할 수 있다.
- 국가를 표기하는 경우는 ISO 3166-1 alpha-3이 ISO 3166-1 alpha-2보다 좋다. 3글자로 국가를 “GBR”과 같이 표기한다. alpha-2의 두글자로만 나라를 표현하려는 시도는 좋았다. 표준을 만들 때 글자만 보고도 나라를 유추까지 할 수 있도록 만들려 했(었던 것 같)다. 하지만, 막상 전세계의 나라 이름을 계속 추가하다보니 두글자만으로는 표기가 겹치는 나라들이 자꾸 생겨났는지, 나중에 추가된 (대체적으로 IT분야에서 뒤떨어진) 나라들에게 할당된 두글자의 표기로는 도저히 유추할 수 없는 코드를 가지고 있다. 아무래도, 이 생각을 할 때 모든 국가 이름을 가지고 충분히 고려하지 않았던 것 같다.
- 통화는 세글자로 표현하는 ISO 4217이 있다. USD(미국 달러), KRW(원)와 같이 표현한다.