화면 속 한 글자와 내부 표기
두 문자열에 모두 ‘é’가 보입니다. 첫 번째는 U+00E9 하나로 표현할 수 있고, 두 번째는 U+0065 다음에 U+0301을 붙여 표현할 수 있습니다. 화면 글꼴이 두 형태를 비슷하게 그리면 눈으로 구별하기 어렵습니다.
컴퓨터가 내부 코드 포인트 배열을 그대로 비교하면 두 문자열은 다릅니다. 화면에서 본 글자 모양이 같다는 관찰과 저장된 순서열이 같다는 판단을 구분해야 합니다.
정규화라는 변환
유니코드 표준의 NFC는 정규화할 수 있는 결합 표현을 합성된 형태로 맞춥니다. NFD는 반대로 분해하는 표현을 사용합니다. 정규화된 문자열끼리 비교하면 이 예시의 두 표기는 같아집니다.
서로 비슷하게 보인다고 모든 문자열을 같은 대상으로 취급해서는 곤란합니다. 공백, 언어별 차이, 의미가 다른 기호는 별도 규칙이 필요합니다. NFKC처럼 호환 문자를 바꾸는 방식은 구별해 두려던 표시까지 합칠 수 있습니다.
AI 검색에서의 활용
AI가 자료에서 이름을 추출하여 검색 인덱스에 넣는다고 가정해 봅시다. 저장할 때 NFC로 통일하고 검색 질의에도 같은 정규화 규칙을 적용하면, 표현 방식의 차이 때문에 일치 항목을 놓치는 일을 줄일 수 있습니다.
반대로 원문 자체의 정확한 코드가 필요한 분석에서는 원본을 함께 보존해야 합니다. 정규화는 목적에 맞는 비교 방식이며 원문 기록을 무조건 버리라는 뜻은 아닙니다.
비교 규칙을 먼저 밝히기
‘동일한 이름’이라는 질문에 답하려면 문자 단위의 동일성, 코드 포인트 단위의 동일성, 문맥상 같은 사람의 이름인지 등을 구분해야 합니다. 정규화가 해결하는 것은 이 가운데 특정 문자 표현의 동등성입니다.
실습에서 원본 배열과 NFC 변환 뒤의 배열을 차례로 비교해 보세요. AI가 최종 판정을 내리기 전에 어떤 비교 규칙을 사용했는지 설명할 수 있어야 합니다.

