국가 데이터 커버리지 목록은 “몇 개국을 지원하는가”라는 한 줄이 아니라, 국가와 항목의 조합마다 지금 어떤 상태인지를 적어 둔 표입니다. 한 줄 요약은 보기에는 편하지만, 어디가 비었는지 알려 주지 않습니다. 이 글은 그 표를 어떻게 만들고 어떻게 읽을지 다룹니다.
커버리지 목록에서 무엇을 세야 하나요?
세어야 하는 것은 국가의 수가 아니라 조합의 상태입니다. 국가 하나와 항목 하나가 만나는 자리마다 값이 있는지, 제도상 없는지, 있어야 하는데 비었는지를 적습니다. 이렇게 하면 목록은 곧 작업 지시서가 됩니다.
두 번째로 세어야 하는 것은 적용 범위입니다. 어떤 항목은 모든 국가에 해당하지만, 어떤 항목은 특정 유형의 국가에만 해당합니다. 적용 범위를 적어 두지 않으면, 해당되지 않는 국가가 영원히 미완성으로 보입니다.
세 번째는 값의 출처와 시점입니다. 같은 값이라도 언제 어디서 온 값인지에 따라 신뢰도가 다릅니다. 이 두 가지가 없으면 나중에 다른 목록과 비교할 때 어느 쪽이 최신인지 판단할 수 없습니다.
세 가지 상태: 적용과 값, 적용되지 않음, 누락
상태는 세 가지로 나누는 편이 안전합니다.
- 적용되고 값이 있음: 이 항목이 이 국가에 해당하고, 값도 채워져 있습니다.
- 적용되지 않음: 이 국가의 제도나 구조상 이 항목이 존재하지 않습니다. 채워 넣으면 오히려 잘못된 값이 됩니다.
- 누락: 해당하는 항목인데 값이 없습니다. 지금 채워야 할 대상입니다.
세 상태를 한 칸에 몰아넣으면 두 번째와 세 번째가 섞입니다. 그러면 목록은 실제보다 잘 채워진 것처럼 보이고, 진짜 빠진 값은 눈에 띄지 않습니다. 상태를 나누는 일은 통계를 예쁘게 만들기 위한 것이 아니라, 고쳐야 할 곳을 남기기 위한 것입니다.
| 상태 | 뜻 | 다음에 할 일 |
|---|---|---|
| 적용과 값 | 이 국가에 해당하고 값이 있음 | 주기적으로 다시 확인 |
| 적용되지 않음 | 구조상 항목이 없음 | 이유를 적고 검증에서 제외 |
| 누락 | 해당하는데 값이 없음 | 채우거나 미완성으로 표시 |
국가 수로 세나요, 항목 수로 세나요?
같은 목록이라도 무엇을 분모로 삼는지에 따라 결론이 달라집니다. 국가 수로 세면 항목이 적은 나라와 많은 나라가 같은 무게를 갖고, 항목 수로 세면 값이 많은 나라가 전체 인상을 좌우합니다.
그래서 목록에는 두 가지를 함께 적는 편이 좋습니다. 국가를 기준으로 본 상태와 항목을 기준으로 본 상태를 나란히 두면, 어느 한쪽만 볼 때 생기는 착각을 줄일 수 있습니다. 중요한 것은 숫자의 크기가 아니라, 어떤 기준으로 센 숫자인지가 문서에 남아 있는지입니다.
이때 항목을 가중치로 더하는 방식은 되도록 피합니다. 가중치는 정한 사람마다 달라지고, 나중에 그 근거를 설명하기 어려워집니다. 가중치가 정말 필요하다면 누가 어떤 기준으로 정했는지 함께 적습니다.
최소 항목 집합과 선택 항목
먼저 거의 모든 국가에 해당하는 최소 항목 집합을 정합니다. 두 글자 국가 코드, 이름, 통화, 시간대처럼 어느 나라에도 적용되는 항목입니다. 이 집합이 목록의 뼈대가 되고, 여기서 비어 있는 값은 곧바로 문제로 이어집니다.
그 위에 선택 항목을 얹습니다. 우편번호나 하위 행정구역처럼 나라에 따라 있기도 하고 없기도 한 항목입니다. 선택 항목은 최소 집합과 같은 잣대로 재면 안 되고, 적용되는 국가 안에서만 채움 정도를 봅니다.
행정구역 표기처럼 항목의 세부 이름이 나라마다 다른 경우에는 이름을 나라별로 맞추기보다 층위의 순서를 기준으로 자리를 잡습니다. 층위를 어떻게 나누는지는 국가 코드와 하위 행정구역 코드에서 더 자세히 다룹니다.
공용어가 여러 개인 국가는 어떻게 적나요?
한 국가에 공용어가 여러 개면 한 줄에 한 국가라는 틀 자체가 흔들립니다. 언어 칸을 하나로 두면 어느 하나를 대표로 삼아야 하고, 그 선택은 곧 다른 언어를 지웁니다. 그래서 언어는 한 줄에 여러 값을 담을 수 있는 형태로 두는 편이 맞습니다.
다만 여러 값을 담는 순간 비교가 어려워집니다. 정렬도, 검색도, 중복 제거도 한 값을 전제로 만들어져 있기 때문입니다. 저장은 여러 값으로 하되, 비교할 때 쓰는 기준값을 하나 따로 정해 두는 방식이 현실적입니다.
언어와 국가를 서로 대신 쓰지 않는 원칙은 이 자리에서도 그대로 적용됩니다. 언어 칸이 여러 개라고 해서 국가 칸을 늘리거나, 국가가 하나라고 해서 언어를 하나로 줄이면 두 축이 다시 뒤섞입니다. 두 축의 관계는 테스트 데이터에서 국가와 언어의 차이에서 따로 다룹니다.
개발자를 위한 메모: 목록을 조회할 수 있게 만들라
- 상태를 코드가 아니라 값으로 저장합니다. 채움, 적용되지 않음, 누락을 각각 다른 값으로 두어야 집계가 정직해집니다.
- 누락에는 언제부터 비어 있었는지를 함께 남깁니다. 오래 비어 있는 값과 어제 생긴 빈칸은 대응이 다릅니다.
- 목록은 사람이 읽는 문서와 기계가 읽는 표를 같은 원본에서 만듭니다. 두 벌을 손으로 관리하면 반드시 어긋납니다.
- 적용되지 않음에는 이유를 한 줄로 적습니다. 이유가 없는 예외는 다음 사람이 누락으로 고쳐 버립니다.
- 목록을 갱신할 때 바뀐 칸만 기록합니다. 전체를 다시 쓰면 무엇이 달라졌는지 알 수 없습니다.
다음 단계
지금 가진 국가 목록에서 항목 하나를 골라 국가별로 세 칸을 채워 보세요. 채우는 과정에서 적용되지 않음이 생각보다 많다는 사실을 발견하게 됩니다. 그 상태를 그대로 둔 채 규모를 늘리는 방법은 국가 전반의 테스트 데이터 확장에서 이어지고, 어떤 국가를 목록에 둘지부터 다시 정하고 싶다면 국가 선정 기준으로 돌아가면 됩니다. 목록에 쓰는 값 자체를 확인하려면 국가와 지역 디렉터리가 기준이 됩니다.
여기 적힌 항목 이름과 상태 표시는 구조를 설명하기 위해 만든 합성 예시이며, 어떤 시스템의 실제 집계 결과가 아닙니다. 표에 담긴 분류도 예시이므로 실제 데이터 감사의 근거로 쓸 수 없습니다.