메뉴

국가명 매칭과 별칭: 정규명을 먼저 정하기

국가명 매칭은 별칭 목록보다 정규명 정의에서 시작합니다. 표기 차이를 다루는 순서와 흔한 실수를 정리합니다.

게시일

  • 이름 매칭
  • 별칭

국가명 매칭과 별칭 관리는 이름을 많이 모으는 일이 아니라 하나를 기준으로 정하는 일에서 시작합니다. 기준이 없으면 별칭이 늘어날수록 어느 표기가 정본인지 알 수 없게 됩니다. 이 글은 정규명을 정하고, 그 위에 별칭을 얹는 순서를 다룹니다.

정규명은 무엇을 기준으로 정하나요?

정규명은 화면에 보여 줄 이름이 아니라, 모든 비교의 기준이 되는 이름입니다. 그래서 짧거나 익숙한 이름보다 안정된 이름이 좋습니다. 표기가 자주 바뀌지 않고, 어느 출처에서 왔는지 분명한 이름이 적합합니다.

정할 때는 두 가지를 함께 봅니다. 하나는 그 이름이 어느 언어의 관례를 따르는지이고, 다른 하나는 그것이 공식 명칭인지 통칭인지입니다. 두 기준을 섞으면 같은 목록 안에 성격이 다른 이름이 섞여 들어옵니다.

정규명은 하나만 두는 편이 좋습니다. 언어별로 정규명을 따로 두고 싶다면, 그것은 정규명이 아니라 표시 이름입니다. 표시 이름은 화면 언어를 따라 바뀌고, 정규명은 바뀌지 않습니다.

표기 차이는 어디까지 흡수해야 하나요?

사용자가 입력하는 차이는 몇 가지로 나뉩니다. 띄어쓰기, 대소문자, 발음 구별 기호, 하이픈과 마침표, 그리고 흔히 쓰는 줄임말입니다. 이 가운데 앞의 네 가지는 흡수하는 편이 좋고, 마지막은 별칭으로 다루는 편이 좋습니다.

흡수하는 방식은 값을 지우는 것이 아니라 비교할 때만 적용합니다. 저장된 값은 원래 표기를 유지하고, 검색용으로만 정리된 형태를 따로 만듭니다. 저장 단계에서 기호를 지우면 나중에 원래 표기를 복원할 수 없습니다.

어디까지 흡수할지는 문서로 정해 둡니다. 같은 글자로 보이는 다른 문자를 하나로 합치는 일은 언어에 따라 결과가 달라질 수 있고, 합치는 범위를 넓힐수록 서로 다른 이름이 같은 것으로 취급될 위험이 커집니다.

별칭 표에는 무엇을 넣나요?

별칭은 사용자가 실제로 입력하는 표기를 담습니다. 다른 언어의 이름, 옛 이름, 널리 쓰이는 줄임말, 흔한 오타가 여기에 들어갑니다. 무엇을 넣을지는 상상이 아니라 기록에서 가져옵니다.

  • 다른 언어 이름: 같은 나라를 다른 언어로 부르는 표기입니다.
  • 옛 이름: 공식 명칭이 바뀌기 전에 쓰이던 이름입니다.
  • 줄임말: 공식 명칭을 줄여 부르는 형태입니다.
  • 흔한 오타: 검색 기록에서 반복적으로 나타나는 표기입니다.

표에는 각 별칭이 어느 정규명에 대응하는지, 그리고 그 별칭이 지금도 유효한지를 함께 적습니다. 유효 기간을 적어 두지 않으면 오래된 이름이 영원히 검색 결과에 남습니다.

정확 매칭과 유사 매칭은 언제 나누나요?

순서를 정하는 것이 핵심입니다. 먼저 정확히 같은 값을 찾고, 없으면 별칭에서 찾고, 그래도 없으면 유사도를 봅니다. 이 순서를 지키면 대부분의 입력이 앞 단계에서 끝나고, 애매한 경우만 뒤 단계로 넘어갑니다.

유사 매칭은 마지막 수단으로 두는 편이 좋습니다. 글자가 비슷한 다른 나라를 잘못 골라 주면, 사용자는 자기가 고르지 않은 나라의 값이 저장된 것을 나중에 발견합니다. 검색 결과가 하나도 없는 편이 잘못된 하나보다 낫습니다.

유사 매칭을 쓸 때는 결과를 확정하지 않고 후보로 보여 줍니다. 사용자가 고르게 하면 잘못된 확정을 막을 수 있고, 어떤 입력이 애매했는지도 기록으로 남습니다.

단계 찾는 대상 결과 처리
정확 매칭 정규명과 같은 값 바로 확정
별칭 매칭 별칭 표에 있는 값 바로 확정
유사 매칭 비슷한 표기 후보로 제시

이 순서는 검색 입력뿐 아니라 목록 정렬에도 영향을 줍니다. 같은 단계에서 여러 값이 나오면 정렬 기준이 다시 필요해지고, 그 기준은 화면 언어를 따라가는 편이 자연스럽습니다. 선택 필드에서 이 동작을 확인하는 방법은 국가 선택 필드 테스트에서 다룹니다.

두 이름이 같은 나라인지 판단하기 어려울 때는 어떻게 하나요?

판단이 어려운 짝은 반드시 남습니다. 이름이 비슷하지만 다른 나라인 경우, 한 나라가 여러 이름으로 불리는 경우, 표기가 시대에 따라 바뀐 경우입니다. 이때 추측으로 합치면 데이터가 조용히 섞입니다.

그래서 판단이 어려운 짝은 따로 모아 두고, 합칠지 말지를 명시적으로 결정합니다. 결정한 짝은 별칭 표에 근거와 함께 남기고, 결정하지 못한 짝은 미결로 표시합니다. 미결 목록을 두는 것만으로도 같은 논의를 반복하는 일이 줄어듭니다.

이 판단은 코드가 아니라 데이터의 문제입니다. 규칙을 코드에 넣으면 새 짝이 생길 때마다 배포가 필요하고, 결정의 근거도 코드 밖에 남지 않습니다.

국가와 언어를 서로 대신 쓰면 이런 판단이 더 어려워집니다. 두 축을 나눠 두는 이유는 국가와 언어의 차이에서 다뤘습니다.

개발자를 위한 메모: 비교용 키와 표시용 이름을 나눠라

  • 정규명은 하나만 두고, 언어별 이름은 표시용으로 따로 저장합니다. 정규명이 여러 개면 어느 것이 기준인지 알 수 없습니다.
  • 비교할 때만 기호와 대소문자를 정리합니다. 저장된 값을 정리하면 원래 표기를 잃습니다.
  • 별칭에는 대응하는 정규명과 유효 여부를 함께 저장합니다. 유효 여부가 없으면 옛 이름이 계속 검색됩니다.
  • 유사 매칭은 후보 제시까지만 하고 자동 확정하지 않습니다. 잘못된 확정은 사용자가 알아채기 어렵습니다.
  • 매칭이 어느 단계에서 성공했는지 기록합니다. 이 기록이 다음에 별칭을 늘릴 근거가 됩니다.

다음 단계

지금 목록에서 같은 나라를 가리키는 이름이 몇 개인지 세어 보세요. 두 개 이상이라면 그중 하나를 정규명으로 정하고 나머지를 별칭으로 옮기는 것만으로도 검색 결과가 안정됩니다. 어떤 나라를 목록에 둘지에 대한 기준은 국가 선정 기준에서, 이름을 표시하고 정렬하는 화면의 문제는 국가 선택 필드 테스트에서 이어집니다. 이름 표기의 실제 예는 국가와 지역 디렉터리에서 비교할 수 있습니다.

이 글의 별칭 표와 입력 예시는 매칭 단계를 설명하려고 지어낸 합성 데이터이며, 실제 검색 기록이나 실제 사용자 입력을 옮긴 것이 아닙니다.

이어 읽기

국가별 주소 및 신원 데이터 형식 관련 글