요약

  • RFC 1345는 여러 문자 집합이 공유하는 작은 기호 목록으로 문자 이름을 만들어, 좁은 전송 경로에 없는 문자도 구분해 보낼 방법을 적었다.
  • 도입 순서를 0으로 정하면 시작 표시와 긴 이름 양쪽의 밑줄이 빠진다. 문서는 읽기는 쉬워지지만 정보가 사라져 되돌릴 수 없다고 명시했다.

한 사람의 이름을 메일로 보내는데 중간 시스템이 그 이름의 한 글자를 표현하지 못한다고 해 보자. 비슷한 글자로 바꾸면 화면에는 무언가 나타난다. 나중에 원래 글자가 무엇이었는지는 다른 문제다. Keld Simonsen의 1992년 6월 RFC 1345는 해당 문자를 널리 통하는 기호로 만든 이름으로 보내자고 제안했다. 받는 화면이 글자 모양을 그리지 못해도, 기록은 어떤 글자였는지 남길 수 있었다.

이름만 있으면 부족하다. 평범한 두 글자와 다른 문자를 가리키는 두 글자를 어떻게 구분할까. RFC는 십진수 38, ASCII의 앰퍼샌드를 도입 기호로 권했다. 그 기호 자체를 원문에 쓰려면 도입 순서를 두 번 썼다. 두 글자를 넘는 이름은 밑줄로 감쌌다. 눈에 거슬리는 작은 표지가 복원의 길잡이였다.

재료가 된 것은 ISO 646 여러 판에서 변하지 않는 그래픽 문자 83개다. 두 글자 이름은 라틴, 그리스, 키릴, 히브리, 아랍 문자 같은 알파벳 계열에 주로 쓰였다. 일본어와 중국어 같은 비알파벳 계열에는 길이가 일정하지 않은 이름도 두었다. 보낼 수 있는 문자와 표시할 수 있는 문자가 달라도, 경계 표지만 유지되면 기록의 구분은 이어질 수 있었다.

4.3.2절에는 솔깃한 설정이 하나 더 있다. 도입 순서를 0으로 지정하면 그 표지가 전송되지 않는다. 긴 이름을 감싼 밑줄도 없어진다. 사람은 덜 복잡한 줄을 읽는다. 하지만 뒤의 프로그램은 어떤 문자열이 처음부터 있던 글자인지, 다른 문자를 대신한 이름인지 확실히 가릴 수 없다. RFC는 정보 손실과 비가역성을 명시하고 mnemonic+ascii+0이 보통의 ascii와 같다고 적었다.

이는 전송 사고로 글자가 찢긴 장면이 아니다. 형식 자체가 읽기 좋은 출력을 위해 되돌릴 단서를 버리는 선택을 제공한 장면이다. 표지가 있는 판은 복잡해 보여도 원래 문자의 신원을 지킨다. 0을 쓴 판은 깔끔하지만 다음 기록 관리자에게 덜 알려 준다. 나중에 문자 집합 이름을 붙여도 애초에 보내지 않은 경계는 생기지 않는다.

문서에는 동아시아 문자에 대한 현실적인 경고도 있다. 중국, 일본, 한국에서 쓰이는 한자 계열 글자에 니모닉을 쓰는 일을 권하지 않았다. 예정된 수신 장비가 원래 인코딩을 처리할 가능성이 높고, 긴 대체 이름은 읽기 불편하기 때문이다. 표에서 이름을 만들 수 있다는 사실과 그 이름으로 실제 사람이 읽어야 한다는 판단은 다르다.

RFC 1345는 정보 제공 문서였다. 그 중요성은 작은 설정값의 가격을 숨기지 않았다는 데 있다. 경계를 남기면 원문으로 돌아갈 수 있다. 0을 고르면 지금 보기에는 좋지만 훗날 복원할 근거가 사라진다. 남긴 기록의 모양이 다음 세대가 답할 수 있는 질문을 정한다.

자료: RFC 1345, Character Mnemonics & Character Sets 2절과 4.3절, RFC Editor 문서 정보.