이름 데이터는 나라마다 구조가 달라서, 이름 한 칸과 성 한 칸으로는 세계의 이름을 담을 수 없습니다. 이 글에서는 이름의 순서가 어떻게 다른지, 성이 없거나 이름이 하나뿐인 경우, 부칭과 복성, 그리고 같은 글자를 다르게 적는 문제를 살펴봅니다. 시험 데이터를 만들 때 이름 필드를 어떻게 두어야 하는지도 함께 정리합니다.
이름의 순서는 나라마다 어떻게 다른가요?
동아시아의 여러 나라와 헝가리에서는 성을 먼저 적고 이름을 뒤에 적습니다. 반대로 많은 유럽과 아메리카 나라에서는 이름을 먼저 적고 성을 뒤에 둡니다. 순서가 반대이므로, 한 칸에 이름 전체를 받아 두었다가 나중에 다시 나누는 방식은 두 나라 가운데 한쪽에서 반드시 틀립니다.
표시 순서와 저장 순서는 별개로 두는 편이 좋습니다. 저장할 때는 어느 부분이 성이고 어느 부분이 이름인지 구분해 두고, 화면에 보여 줄 때만 나라별 관행에 맞게 순서를 정합니다. 인사말과 문서 서식도 같은 관행을 따르므로, 순서를 어디에서 정할지 한 곳으로 모아 두는 편이 안전합니다.
사람을 부르는 방식도 순서와 함께 달라집니다. 성을 붙여 부르는지 이름만 부르는지에 따라 알림 문구가 어색해지고, 호칭을 붙이는 자리도 언어마다 다릅니다. 문구를 만들 때도 같은 관행 정보를 참고해야 화면과 메일이 자연스러워집니다.
성이 없거나 이름이 하나뿐인 경우도 있나요?
있습니다. 어떤 문화권에서는 이름 하나만으로 사람을 부르고 공식 문서에도 그 하나만 적습니다. 성을 필수로 요구하는 양식은 이런 사람을 가입 단계에서 막아 버립니다. 성을 선택 항목으로 두거나, 값이 비어 있을 수 있다는 사실을 검증 규칙에 반영해야 합니다.
가족 관계를 나타내는 이름도 나라마다 다릅니다. 부칭이나 모칭을 함께 쓰는 문화권이 있고, 결혼이나 관습에 따라 성이 두 개가 되거나 붙임표로 이어지는 경우도 있습니다. 성을 하나만 받는 입력란은 이런 값을 제대로 담지 못하고, 담더라도 원래 구조를 잃습니다.
이름의 길이도 편차가 큽니다. 아주 짧은 이름과 아주 긴 이름이 같은 필드에 들어가므로 표시 폭과 저장 길이를 넉넉히 잡아 두는 편이 좋습니다. 긴 이름이 잘리는 문제는 상세 화면보다 목록 화면에서 먼저 드러납니다.
같은 글자를 다르게 적는 문제는 무엇인가요?
같은 글자라도 컴퓨터에 저장되는 방식이 두 가지일 수 있습니다. 하나는 완성된 한 글자로 저장하는 방식이고, 다른 하나는 기본 글자와 결합 기호를 따로 저장하는 방식입니다. 화면에는 똑같이 보이지만 저장된 바이트가 다르므로, 단순히 같은지 비교하면 다른 값으로 판정됩니다.
비교하거나 검색하거나 중복을 찾을 때는 먼저 표기를 하나로 맞추는 과정이 필요합니다. 맞추지 않으면 같은 사람이 두 건으로 들어가고 목록 화면에서 하나로 합쳐지지 않습니다. 회원 찾기나 본인 확인처럼 이름을 대조하는 기능에서 이 문제가 특히 크게 드러납니다.
대소문자와 표기 기호는 어떻게 다루나요?
언어마다 대소문자를 바꾸는 규칙이 다릅니다. 어떤 글자는 하나에서 둘로 늘어나기도 하고, 어떤 문자 체계는 대소문자 구분 자체가 없습니다. 이름을 전부 대문자로 바꿔 저장하면 원래 표기를 잃고, 다시 되돌릴 수도 없습니다.
발음 구별 기호도 그대로 보존해야 합니다. 기호를 지우고 기본 글자만 남기면 검색에는 도움이 될 수 있지만 원래 이름과는 다른 값이 됩니다. 검색용으로 변환한 값을 따로 두고 원본은 그대로 두는 편이 안전합니다.
이름을 전부 대문자로 바꿔 저장하는 관행은 오래된 시스템에서 흔합니다. 지금은 원래 표기를 되살릴 수 없으므로, 표시할 때만 바꾸고 저장값은 그대로 두는 편이 좋습니다.
정렬도 언어마다 규칙이 다릅니다. 같은 글자라도 언어에 따라 순서가 달라지므로 정렬 규칙을 지정하지 않으면 목록이 기대와 다르게 나옵니다. 이름 목록을 다루는 화면이라면 정렬 기준을 어디에서 정하는지도 함께 확인해 두는 편이 좋습니다.
신원 생성기에서 여러 나라 이름 비교하기
신원 생성기에서 국가를 바꾸면 그 나라의 관행에 맞는 이름이 만들어집니다. 성을 먼저 쓰는 나라의 값과 이름을 먼저 쓰는 나라의 값을 나란히 만들어 보면, 화면이 순서를 어떻게 다루는지 금방 드러납니다. 이름이 주소나 공적 번호와 같은 지역 데이터에서 나오는지도 함께 확인해 볼 만합니다.
여기서 만들어지는 이름은 알고리즘이 조합한 것이며 실존 인물과 무관합니다. 시험용으로만 쓰고 실제 인물을 사칭하는 데 사용하지 마세요.
이름이 어긋나면 어디서 문제가 되나요?
이름의 구조를 잘못 다루면 증상이 여러 곳에서 나타납니다. 인사말에 성과 이름이 뒤바뀌어 들어가거나, 목록의 정렬이 사전 순서와 다르게 나오거나, 알림 문구가 어색해집니다. 검색에서 같은 사람이 두 건으로 나오는 문제도 여기서 시작합니다.
이런 증상은 각각 다른 원인처럼 보이지만, 실제로는 저장할 때 이름의 구조를 잃은 결과인 경우가 많습니다.
주소 라벨이나 영수증처럼 이름이 다른 값과 함께 인쇄되는 자리에서는 순서가 틀어졌을 때 눈에 잘 띕니다. 반대로 저장 단계의 문제는 조용히 남아 있다가 검색이나 중복 판정에서 드러나므로, 이름을 다루는 변경을 할 때는 두 자리를 함께 확인하는 편이 좋습니다. 이름이 다른 항목과 어긋나는 문제는 신원 데이터 일관성에서 더 넓게 다룹니다.
개발자를 위한 메모: 이름을 두 칸에 밀어 넣지 마라
- 이름 필드는 나라별 구조를 담을 수 있어야 합니다. 이름 하나와 성 하나로 고정하면 예외가 계속 늘어납니다.
- 저장할 때는 표기를 하나로 맞추고, 보여 줄 때는 원래 표기를 되살리는 방식을 검토합니다. 맞춘 값을 원본 자리에 덮어쓰면 되돌릴 수 없습니다.
- 정렬은 언어별 규칙을 따릅니다. 문자 코드 순서로 정렬하면 사전 순서와 다른 결과가 나옵니다.
- 경계 표본을 고정해 둡니다. 이름만 있는 경우, 성이 두 개인 경우, 붙임표가 들어간 경우, 결합 기호를 쓰는 경우가 좋은 출발점입니다.
- 이름 길이의 상한을 정할 때는 실제로 존재하는 긴 이름을 기준으로 삼습니다. 너무 짧게 잡으면 정상 값을 잘라 냅니다.
- 대소문자를 바꾸는 일은 화면에 보여 줄 때만 합니다. 저장 단계에서 바꾸면 원래 값을 잃습니다.
다음 단계
여러 나라 사용자를 받는 양식이라면 신원 생성기에서 이름 순서가 다른 나라를 몇 개 골라 값을 만들어 보고, 저장과 표시가 모두 견디는지 확인해 보세요. 시험 데이터를 어떤 단위로 묶을지는 테스트 신원 데이터란 무엇인가에서 이어서 볼 수 있습니다.