Changwoo Hacks

Hack n. : A non-obvious solution to an interesting problem

2018/07/12

오픈소스 역사: 한텀 야사

by 류창우

“한텀”(hanterm)에 대한 기록은 많은 편이다. 80-90년대 대한민국의 학교와 연구기관에 인터넷이 깔리고 유닉스가 사용되면서 필요한 한글 입출력의 수요를 해결해 주었던 한텀은 한국 컴퓨터 역사의 중요한 일부였다. 이러한 긍정적인 면을 인정하지만 그 초창기 시대가 지나고 2000년대에 접어들면서 데비안 패키지를 관리했던 입장에서 한텀은 그리 유쾌한 기억이 아니었다.

한텀이 만들어진 당시 한텀의 필요성은 당시 2MB의 메모리밖에 없었던 흑백/모노크롬 X 터미널이 들어선 카이스트 전산실을 보면 알 수 있었다. (X 터미널이 무슨 말인지 모르겠으면 일종의 원격 데스크톱 기능을 수행하는 전용 모니터/키보드 세트라고 생각하면 된다.) X 윈도우의 구조상 X 글꼴을 그 2MB 터미널 기기의 메모리에 로딩해야 했기 때문에 한글을 사용하면서도 가능한 메모리의 몇 KB라도 아끼는 게 지상 과제였다. (요즘은 리눅스에서 같은 X 윈도우라도 이렇게 하지 않는다. 클라이언트의 글꼴을 렌더링한 결과를 공유 메모리를 통해 렌더링한다.)

데비안 패키징이 되던 90년대 중후반 이후는 이미 초창기 개발자들이 손을 뗀 후 지속적으로 관리하는 사람이 없는 상황이었고, 인터넷의 여러 사람들이 저마다 나름대로의 오토마타 실험, 글꼴 실험 등에 저마다의 패치 이름을 붙여 배포하는 시대가 되어 버렸다. 오늘날 오픈소스 기준으로 생각했을 때 이 쯤 되면 정리해서 배포하는 프로젝트가 나올만도 한데, “오픈소스”라는 말이 나오지도 전이었던 시절에 그런 게 있을리가 없었다. 패키징하는 입장에서는 한국어 사용에 꼭 필수적인 소프트웨어였지만 제대로 된 관리가 되지 않았기 때문에 항상 이런 패치와 저런 패치를 시도해 보고 하면서 관리 부담이 높아졌고 그러다가 포기 모드가 되기 쉬웠다. (그래도 이런 소프트웨어가 발표되거나 논의가 되면 han.comp.os.linux 유즈넷 뉴스그룹에 공지되었기 때문에 인터넷 여기저기를 검색할 필요는 없었다.)

한텀 개발에 기여한 사람들의 당시 오픈소스 라이선스에 대한 인식은 전무하다시피 했다. X 윈도우의 일부였으니까 당연히 MIT/X11 라이선스였던 xterm에 포함된 한텀 패치의 초기 버전은 왜 그런지 모르겠지만 GPL이라고 명시됐었고, 거기에 또 추가된 패치는 MIT/X11이었고, 또 다른 패치는 퍼블릭 도메인이라고 언급되기도 했고, 아예 언급하지도 않은 패치가 더 많았다. “수정할 때 허락을 받았다”고 언급하는 오픈소스 개념과는 거리가 먼 패치가 배포되는 등 이런 애매한 상황이 계속 이어졌다.

특히 한텀에서 사용하는 “johab” 글꼴은 맨 처음에 하늘소의 이야기에 들어 있는 비트맵 글꼴을 “허락을 받아” 추출한 것이어서 처음부터 오픈소스도 아니어서 사실 데비안에 들어갈 수 없는 것이었다. 게다가 나중에는 수십가지의 글꼴이 아래아한글에서 추가로 무단 추출되어 배포되었다. (방식만 공유하고 바닥부터 만든 이번엔 진짜 오픈소스인 글꼴이 몇 개 제작되기도 했다.) 글꼴이 GPL이라고 배포되긴 했지만 한글과컴퓨터나 배포자나 사용자 모두 “허락을 받는” 정도의 문제로밖에 인식하지 못하고 있었다. 패키지를 관리한 나조차도 문제를 잘 인식하지 못하고 있었으니.

이런 상황의 가장 심각한 문제는 시간이 지나면서 이러한 패치들이 xterm의 수년 전의 버전을 갖고 계속 이루어졌고 xterm의 보안 버그 수정을 따라가지 못하게 된 점이었다. 참고로 당시 xterm은 utmp라고 하는 사용자 로그인 정보를 기록하려는 목적으로 setgid를 사용했기 때문에 버퍼오버플로우라도 생기면 꽤 심각한 보안 버그였다. 리눅스가 많이 쓰임에 따라 리눅스의 X 윈도우였던 XFree86에 포함된 최신 xterm 소스를 따라간 “hanterm-xf”라는 버전도 만들어져 몇년간 쓰였으나 그 역시 한두해 지나면서 관리가 중단되었고 xterm 버전업을 따라가지 못했다.

앞에서 말한 한텀의 필요성을 거꾸로 생각해 보면 사용하는 메모리가 늘어나면서 한텀 특유의 한글 입출력 처리도 특별한 일이 아니게 되었다. 이미 내가 사용하던 시절의 그 카이스트 전산실에서도 충분한 메모리를 탑재한 컬러 X 터미널이 대세였고 2MB 구형 X 터미널은 돌아가는 게 몇 대 남아있지 않았었다. X 윈도우에서 표준이었던 KSC5601 (“완성형”) 한글 글꼴 또는 ISO10646 유니코드 글꼴을 사용해도 큰 문제가 없었고 그 때쯤 백묵글꼴 등 한글 글꼴의 대안이 등장했다. 웹 브라우저에서 한글을 입력하는 게 지상 목표였던 XIM 입력기가 rxvt, eterm, gnome-terminal과 같은 터미널에서도 동작했다. 범용적인 터미널 애플리케이션이 한글 입출력을 처리하지 못할 이유가 없어진 것이다. 일반적인 방법으로도 여러 언어의 입출력을 처리할 수 있게 되었다.

다시 그 때로 돌아간다면 좀 더 체계적인 관리를 통해 위와 같은 한텀의 문제들을 보완할 수 있었겠지만 어쩌랴. 시대에 맞지 않는 오픈소스 패키지가 데비안에서 삭제되거나 또는 일부러 삭제 요청을 할 때마다 메인테인되는 상황, 삭제되었을 때 대안, 사용자 같은 객관적인 요소를 판단하려고 노력하지만 한텀은 상징성이 있었고 한국어 데비안 패키징의 핵심이었기 때문에 버리겠다고 판단하기는 쉽지 않았다.

당시 한텀 소스 코드와 패치는 현재 KAIST FTP의 전신인 KAIST cair-archive의 “hangul” 아카이브에서 배포되었고 아직도 그 흔적이 남아 있다.

tags: 역사 - 한텀 - hanterm