2008년 7월 5일 토요일

우분투 런치패드 번역의 BSD 라이센스 전환의 문제

최근 우분투 런치패드는 런치패드에 들어 있는 번역문에 대해 BSD 라이센스로 확인하는 작업을 하고 있다. 일정은 없지만 동의하지 않은 번역문은 런치패드 시스템에서 지워질 예정이다.

이러한 조치는 런치패드의 번역문들이 라이센스를 명확히 하지 않는다는 비판과 더불어, 번역문을 여러 프로그램 사이에 공유할 때 생기는 라이센스 문제에 대한 해결책으로 보인다. (예를 들어 GPL 프로그램의 번역문을 LGPL 프로그램에 사용하는 경우처럼.)

하지만 왜 하필 BSD이며, 왜 BSD가 아니면 시스템에서 지운다는 걸까?

첫째로 과연 GPL 소프트웨어의 번역을 BSD로 하는 게 가능한 것인가 의문을 갖게한다. 원문은 GPL 라이센스로 배포되는 프로그램의 소스코드에서 xgettext 프로그램을 통해 추출한 것이고 번역문은 파생 작업이라고밖에 할 수 없다. GPL 코드에서 추출한 템플릿을 번역한 번역문의 라이센스를 BSD로 한다는 게 가능한 것일까?

또 실제적으로 런치패드의 온라인 번역 시스템이 훌륭하긴 하지만 여전히 훨씬 더 많은 번역문들이 이 시스템 밖에서 만들어져서 런치패드 시스템으로 import되고 있다. 런치패드에 들어 있는 번역문의 대다수는 런치패드에서 시작한 번역문이 아니라 외부에서 import한 번역문을 보완한 정도이고 이렇게 GPL 번역문을 고쳐서 만들어진 결과물을 BSD 라이센스라고 할 수는 없다. 이러한 모든 번역을 지우고 런치패드 내부에서 scratch부터 시작할 것인지?

그리고 GPL은 GPL의 가치가 있다. 나는 내가 번역한 번역문이 해당 소프트웨어의 라이센스를 따르게 할 뿐, 일부러 번역문에 BSD 라이센스를 사용할 생각은 전혀 없다. GPL의 파생작업에 대한 라이센스 조항을 좋아하든 싫어하든 이 GPL 조항은 자유소프트웨어 발전에 대단히 큰 역할을 했다. 런치패드 시스템에서 사용하려고, 호환성때문에 GPL이었을 때의 장점을 버리고 BSD를 택한다는 건 받아들이기 힘들다.

몇몇 언어의 그놈/데비안/KDE 번역 팀들은 런치패드 시스템의 편리함때문에 공식적인 번역 도구로 사용하고 있다. (한국어 번역팀은 아님.) 런치패드의 이러한 조치는 이 팀들이 계속 런치패드에서 작업해야 하는지 고민하게 만들었다. 번역문 사이의 호환성이 문제라면 좀 수고를 하더라도 라이센스 호환성 문제를 처리하도록 시스템을 구현할 수도 있지 않을까? 왜 BSD로 통일해야 하며 그게 아니면 시스템에서 지워야 할까? 이러한 결정은 지금까지 훌륭히 번역 작업을 해 온 런치패드의 발목을 잡게 될 것이다.


2008년 7월 2일 수요일

전자정부를 통한 증명 문서의 인터넷 출력

2008년 현재 대한민국전자정부의 기능을 이용해 인터넷으로 발급할 수 있는 문서는 주민등록등본, 공시지가확인서, 등기부등본, 소득증명 등 수십종에 이른다. 수년 전에 연말정산때문에 이 기능을 처음 이용해 봤을 때 어떻게 내 프린터에서 공공문서를 인쇄하는 게 가능한 건가 몹시 의심스러웠다. 근본적으로 이렇게 출력된 문서가 올바르다고 보장할 방법이 없기 때문이다. 등기부등본과 같이 서류의 목적이 열람용일 경우에는 문제가 되지 않지만, 일부 증명 용도의 서류도 인터넷으로 발급할 수 있다.

연말정산을 위해 내 프린터에서 주민등록등본을 출력했을 때, 발급자인 정부나 수신자인 국세청은 정말 위변조된 문서가 아니라고 안심할 수 있을까? 국세청은 그 문서 내용을 그대로 믿고 그 종이에 쓰여 있는 가족관계에 따라 내 세금공제를 처리해도 되는 걸까?

실제로 이 서비스는 논란이 많았고, 2005년에 위조 가능성이 제기되어 일시적으로 중지되기도 했고, 업데이트될 때마다 프린터가 지원에서 빠지기도 하고 가상머신에서 이용이 금지되기도 하고 이용자들의 불평이 쏟아졌다.

종이가 증명서가 되려면

"등본"이라는 말은 말 그대로 있는 보관되어 있는 서류와 동일한 문서를 뜻한다. 주민등록이 전산화 되기 전에는 그 주민등록 문서가 보관되어 있는 동사무소에서 신청을 하면 동사무소 직원이 서류 창고에서 해당 문서를 찾아서 복사한 다음 동사무소 직인을 찍어서 발급해 주었고 그게 "등본"이었다. 직인은 실제 문서와 동일하다는 보증이었다. 내 프린터로 인쇄하더라도 주민등록등본이 실제 정부 전산망에 기재된 내용과 동일하다는 걸 보장할 수 있는 걸까?

말많은 키보드 보안 기능과 마찬가지로 전자정부 사이트는 이렇게 인쇄한 문서가 올바르다는 보장을 클라이언트 컨트롤을 통해 하고 있다. 액티브엑스 컨트롤로 가능한 프린터의 종류를 제한하고 있다. 프린터에 보안 기능이 있어야 이용할 수 있다고 말하는 사람들이 있지만, 실제 지원하는 프린터들을 보면 보안 기능같은 건 본적이 없는 프린터들도 사용할 수 있는 걸 보면 프린터의 기능과는 상관이 없다. (시중에 나와 있는 일부 프린터에서 구현하고 있는 보안 기능은 전자정부 웹사이트가 인쇄된 문서를 인증할 수 있는 종류의 인증용 보안 기능이 아니라, 인쇄 데이터 전송의 암호화, 인쇄 작업별로 암호 지정과 같은 보안이다.)

이러한 클라이언트 컨트롤 접근 방법때문에 윈도우즈 외에 다른 OS를 지원하지 않는다거나, 시스템 의존적인 버그가 나타나거나, 개발 비용이 높아진다거나 하는 부작용이 나타난 건 물론이다.

내 프린터에서 인쇄한 종이를 증명서로 만드는 방법같은 건 없다. 왜냐하면 컴퓨터는 사용자의 것이지 전자정부 웹사이트가 마음대로 해라 마라 할 수 있는 게 아니기 때문이다. 프린터에 보낼 이미지 데이터는 결국 컴퓨터의 어딘가에서 로우 데이터로 흘러다니게 마련이고 내부에서 나름대로 암호화하고 하더라도 결국 프린터로 그 데이터를 보내야 한다. 전자정부 사이트는 일단 이용자가 소유한 컴퓨터를 서비스 제공자 마음대로 조작할 수 없다는 걸 인정해야 한다. 이 사실을 인정하지 못하고 사용자에게 배포하는 클라이언트 소프트웨어를 조작하는 방법으로 문제를 해결하려고 하면 상황이 지금과 같이 복잡해 진다.


대안 - 종이가 아닌 데이터를 증명용으로 쓰자!

인쇄한 종이 그 자체가 증명 자격을 가지지 않도록 해야 한다.

단 출력한 내용이 사실 여부를 조회할 수 있도록 하는 티켓 역할을 하도록 만들 수는 있을 것이다. 예를 들어, 회사의 복지제도를 이용하기 위해 내 가족관계가 이러하다는 걸 증명하려면 주민등록초본이 필요할 것이고, 초본의 역할은 제 3자에게 나의 가족관계를 증명하는 것이다. 지금의 초본은 출력한 서류 그 자체가 증명 자격을 갖도록 되어 있지만, 이제 그런 공식적인 증명 자격을 없애고 전자정부에 가족관계를 조회할 수 있는 one-time pass 역할만 하게 만드는 것이다. 그러면 서류의 목적도 달성할 수 있고 사용자의 프린터를 컨트롤할 필요도 없다.

현재도인터넷에서 출력한 문서는 고유번호와 바코드가 기재되어 있고 진위여부를 확인할 수 있다. 기술적으로는 아무런 문제가 없다. 단지 출력한 서류 그 자체가 증명 서류가 아니고 one-time pass일 뿐이라는 걸 인정하면서 기존의 업무체계가 동작할 수 있느냐가 관건이다.