우리가 매일 다루는 문자 코드 표에는 아무도 뜻을 모르고, 읽는 법조차 알 수 없는 글자가 몇 개 섞여 있다. 일본어 인코딩의 기준점 역할을 해 온 JIS X 0208 규격에는 출처가 불분명한 한자 몇 개가 포함되어 있는데, 이들은 '유령 문자(幽霊文字)'라 불린다. 1978년 일본 통상산업성(현 경제산업성)이 제정한 이 인코딩은 이후 모든 일본어 인코딩의 중요한 참조 기준이 되었지만, 규격이 공개된 뒤 사람들은 이상한 점을 발견했다. 새로 추가된 몇몇 글자에는 뚜렷한 출처가 없었고, 무슨 의미인지도 어떻게 발음하는지도 아는 사람이 없었다.
오랫동안 유령 문자는 설명되지 않은 채 대체로 잊힌 호기심거리로 남아 있었다. 그러다 1997년, 이들이 어디서 왔는지 밝히려는 조사가 시작됐다. 원칙적으로 JIS 규격의 모든 문자는 출처 기록을 갖추도록 되어 있었지만, 기록이 존재하더라도 그 내용은 매우 부실했다. 대개는 어느 문헌에서 가져왔다는 문서명만 적혀 있을 뿐이었다.
출처가 있어도 찾을 수 없었던 이유
출처가 적혀 있으면 기원을 추적하기 쉬울 것 같지만, 여기서 '출처'가 무엇을 뜻하는지 짚어야 한다. 유령 문자의 흔한 출처 중 하나는 일본 전역의 지명을 망라한 '국토행정구획총람(国土行政区画総覧)'이었다. 이름만 들으면 기껏해야 수백 페이지짜리 지도책 정도를 떠올리기 쉽지만, 실제 최신판은 각 권이 약 900페이지에 이르는 일곱 권짜리 전집이다. 페이지 표시도 없이 이 방대한 자료에서 글자 하나를 찾아내야 하는 작업이었던 셈이다.
그럼에도 조사는 대체로 성공했다. 조사팀은 규격 제정에 참여했던 편찬 담당자들을 인터뷰해, 일부 글자가 편찬 과정의 실수로 뜻하지 않게 만들어졌다는 사실을 밝혀냈다. 대표적인 사례가 '妛'다. 원래 어떤 지명에는 '山 아래에 女'를 겹친 글자가 쓰였는데, 이는 규격에 넣기에 적합한 실재 문자였다. 하지만 당시에는 이를 하나의 글자로 인쇄할 수 없어 山과 女를 따로 인쇄한 뒤 오려서 종이에 붙이고 그것을 복사했다. 그런데 복사본을 읽을 때 두 조각의 종이가 맞닿은 경계선이 하나의 획처럼 보였고, 그 선이 획으로 오인되어 글자에 더해졌다. 정작 원래 글자(𡚴)는 훨씬 뒤에야 JIS와 유니코드에 등록되었고, 지금도 많은 환경에서 제대로 표시되지 않는다.
끝내 정체가 밝혀지지 않은 한 글자
결국 명확한 출처도, 역사적 전례도 전혀 찾을 수 없었던 글자는 단 하나, '彁'였다. 가장 유력한 설명은 '彊'을 잘못 읽어 만들어졌다는 것이지만, 구체적으로 어떤 경위였는지는 끝내 확인되지 않았다. 작은 오독 하나가 표준 문자표에 실재하지 않는 글자를 남긴 셈이다.
JIS 규격이 널리 채택되면서 이 글자들은 모두 유니코드로 흘러 들어갔다. 그리고 유니코드에는 CJK 통합한자 작업 과정에서 생겨난 또 다른 유령 문자들이 별도로 존재한다. 서로 다른 문자 체계를 하나로 합치는 과정 자체가 새로운 유령을 만들어 낸 것이다.
실무자가 새겨야 할 교훈
이 이야기는 단순한 흥밋거리를 넘어 데이터 표준을 다루는 실무자에게 시사하는 바가 있다. 1978년의 사소한 실수들이 무에서 몇 개의 글자를 만들어 냈고, 그 오류는 오랫동안 발견되지 않은 탓에 표준으로 굳어졌다. 한번 규격에 박제된 오류는 되돌리기가 극히 어렵다. 하위 호환성을 지켜야 하는 인코딩의 특성상, 잘못 들어간 글자라도 함부로 삭제하면 기존 데이터가 깨지기 때문이다. 그 결과 이 유령들은 이제 지구상 거의 모든 컴퓨터의 문자표 한구석에 잠재적으로 자리 잡고 있다.
다만 이 사례가 곧바로 실무 재난으로 이어진다고 과장할 필요는 없다. 유령 문자는 실제 텍스트에 거의 등장하지 않으므로 대부분의 개발자는 평생 마주칠 일이 없다. 그럼에도 문자 정규화, 형태소 분석, 이름·지명 데이터 검증처럼 문자 집합의 경계를 다루는 작업에서는 이런 예외적 글자가 뜻밖의 버그를 일으킬 수 있다. 표준을 절대적 진리로 여기기보다, 그 안에 인간의 편찬 실수와 복사·오독의 흔적이 스며들 수 있다는 점을 기억하는 편이 낫다. 데이터의 권위는 그것이 표준이라는 사실이 아니라 어떤 과정을 거쳐 만들어졌는가에서 나온다.