메뉴

국제 주소 형식: 어순과 행정구역 이름 맞추기

국제 주소 형식이 나라마다 어떻게 달라지는지, 주소를 쓰는 순서와 행정구역 이름, 현지 문자와 로마자 표기 문제를 함께 정리합니다.

게시일

  • 주소 형식
  • 국제화

국제 주소 형식을 다룰 때 가장 먼저 부딪히는 것은 순서입니다. 같은 내용을 담고 있어도 어느 나라는 큰 단위에서 작은 단위로 내려가고, 어느 나라는 반대로 올라갑니다. 이 글에서는 주소를 쓰는 순서가 왜 나라마다 다른지, 그리고 그 차이가 데이터 설계에 어떤 영향을 주는지 살펴봅니다.

주소는 왜 나라마다 순서가 다른가요?

주소의 순서는 그 사회가 길을 찾아가는 방식과 닮아 있습니다. 동아시아 여러 나라에서는 나라, 도, 시, 구, 동네, 번지 순으로 넓은 범위에서 좁은 범위로 좁혀 들어갑니다. 우편물을 분류하는 사람이 큰 범위부터 보면 자기 담당 구역을 빠르게 판단할 수 있기 때문입니다.

유럽과 아메리카의 여러 나라에서는 반대로 좁은 범위에서 넓은 범위로 올라갑니다. 문패와 도로명이 먼저 오고, 그다음 도시, 그다음 주나 지역이 옵니다. 배달하는 사람이 눈앞의 건물을 먼저 확인한다는 발상입니다.

이 차이는 주소를 한 줄로 합쳐 보여 줄 때 문제가 됩니다. 넓은 범위에서 좁혀 들어가는 주소를 좁은 범위부터 나열하면 읽는 사람이 위치를 잘못 잡습니다. 그래서 여러 나라 주소를 한 화면에 나열할 때는 순서를 통일하기보다 각 나라 관행을 그대로 두고, 어느 나라 주소인지 분명히 표시하는 편이 정확합니다.

같은 이유로 목록을 정렬할 때도 화면에 보이는 순서가 아니라 별도로 저장한 정렬용 값을 쓰는 편이 좋습니다. 표시 순서를 바꾸는 일은 자주 생기지만, 저장된 값의 뜻은 그대로여야 하기 때문입니다.

주소를 이미지로 그려 보여 주는 경우에도 같은 원칙이 적용됩니다. 순서를 임의로 바꿔 그리면 현지 사용자가 자기 주소를 알아보지 못합니다.

국제 우편에서는 어느 순서로 쓰나요?

국제 우편에서는 목적지를 마지막에 두는 관행이 오래 자리 잡았습니다. 분류 담당자가 마지막 줄에서 목적국을 확인하고 그 나라로 보내면, 그 이후의 처리는 현지 규칙을 따르기 때문입니다. 그래서 자국 안에서 쓰는 순서를 그대로 두고 나라 이름만 맨 아래에 붙이는 방식이 널리 쓰입니다.

여기서 중요한 구분이 하나 있습니다. 이 순서는 봉투에 사람이 읽기 좋게 배열하는 문제이고, 데이터베이스에 값을 담는 문제와는 별개입니다. 화면에서 표시하는 순서를 바꾼다고 저장된 값이 달라져서는 안 됩니다.

행정구역 이름은 나라마다 무엇이 다른가요?

같은 층위의 행정구역이라도 부르는 이름이 제각각입니다. 주, 도, 현, 성, 광역시, 에미리트처럼 이름도 다르고 개수와 위계도 다릅니다. 어떤 나라는 주소에 그 이름을 반드시 쓰고, 어떤 나라는 도시와 우편번호만으로 위치가 정해져 행정구역 줄이 아예 없습니다.

나라·지역 첫 번째 층위를 부르는 말 주소에 쓰이는 방식
미국 주 두 글자 약어를 쓰는 관행이 강함
일본 도·부·현 현 이름 다음에 시·구·정이 이어짐
독일 주 주 이름을 쓰기도 하고 우편번호로 대신하기도 함
아랍에미리트 에미리트 도시 이름과 함께 쓰임

표에 적힌 이름은 나라마다 같은 층위를 서로 다르게 부르고 있다는 사실을 보여 주기 위한 예입니다. 구체적인 표기 방법은 국가마다 다르므로, 실제 값을 만들 때는 그 나라의 관행을 따로 확인하는 편이 안전합니다.

현지 문자와 로마자 표기는 어떻게 나눠 쓰나요?

국내 배달을 전제로 한 주소는 그 나라 문자가 가장 정확합니다. 반면 해외로 보내는 우편물에는 목적국의 문자를 그대로 적어도 현지에서 읽지 못하는 경우가 생기므로, 로마자 표기를 함께 적는 관행이 있습니다.

데이터 설계에서는 이 둘을 섞지 않는 편이 좋습니다. 원문 주소를 한 벌, 로마자 표기를 한 벌로 나누어 두고, 화면에서 필요한 쪽을 고릅니다. 한 필드에 두 표기를 이어 붙이면 검색도 검증도 어려워집니다.

로마자 표기를 만들 때는 나라별 변환 관행을 따르는 것이 좋습니다. 같은 글자를 어떻게 옮길지는 언어마다 정해진 방식이 있어서, 규칙 없이 임의로 옮기면 같은 주소가 사람마다 다르게 적힙니다. 국내 주소와 해외 발송용 주소는 쓰임이 다르므로, 어느 쪽을 기본으로 보여 줄지도 정해 두어야 합니다. 원문을 지우고 표기만 남기면 나중에 규칙을 바꾸더라도 다시 만들 수 없으므로, 두 값을 모두 보관하는 편이 안전합니다.

층위의 개수가 나라마다 다르다는 점도 함께 고려해야 합니다. 두 단계로 끝나는 나라가 있는가 하면 네 단계 이상을 쓰는 나라도 있습니다. 단계 수가 다른 값을 같은 열에 담으면 어느 값이 어느 단계인지 알 수 없게 되므로, 단계마다 자리를 따로 두고 비어 있는 자리를 허용하는 방식이 안전합니다. 나라마다 다른 이름을 하나의 열에 몰아넣고 해석을 코드에 맡기면, 나라가 하나 늘 때마다 해석 코드도 함께 늘어납니다.

랜덤 주소 생성기로 여러 나라 주소를 나란히 보기

랜덤 주소 생성기에서 국가를 고르면 그 나라의 실제 형식에 맞춰 주소가 배열됩니다. 도로명과 번지의 위치, 행정구역 줄의 유무, 우편번호가 들어가는 자리를 국가별로 번갈아 보면 차이가 분명해집니다.

만들어지는 주소는 시험용 합성 데이터이며 실존하는 거주지를 가리키지 않습니다. 실제 배송에 사용해서는 안 됩니다.

개발자를 위한 메모: 순서를 데이터에 새기지 말 것

  • 표시 순서는 템플릿에서 결정하고, 저장 구조는 순서와 무관하게 유지합니다. 순서가 데이터에 스며들면 국가를 하나 추가할 때마다 저장 형식을 손봐야 합니다.
  • 필드 이름은 의미로 짓습니다. 주라는 단어를 모든 나라의 첫 번째 층위에 붙이면 일본이나 아랍에미리트 값이 어색해집니다.
  • 층위 개수가 나라마다 다르다는 점을 전제로, 값이 비어 있어도 오류로 보지 않는 설계가 필요합니다.
  • 원문과 로마자 표기를 따로 두고, 어느 쪽이 비었을 때 무엇을 보여 줄지 규칙을 정합니다.
  • 주소를 한 줄로 합쳐 저장하는 방식은 피합니다. 한 줄 값은 나중에 분리할 수 없고, 국가별 검사도 적용할 수 없습니다.

다음 단계

자기 서비스가 다루는 국가 목록을 만들고, 각 국가에서 반드시 받아야 하는 항목과 받지 않아도 되는 항목을 표로 정리해 보세요. 그다음 랜덤 주소 생성기에서 같은 국가들을 생성해 보면서 양식이 요구하는 항목이 실제 주소 구성과 맞는지 확인하면 빠진 항목을 쉽게 찾을 수 있습니다. 국가별 우편번호 표기 차이는 국가별 우편번호 형식에서 따로 정리했습니다.

이어 읽기

랜덤 주소 생성기 관련 글