UNIX와 데스크탑

Unix, 그 중에서도 특히 BSD는 내가 매일같이 작업하는 환경이다. 요즘은 NetBSD를 사용중이다. 아직 리눅스나 FreeBSD만큼 자동화(?)가 덜 되어 있어서 사용자가 추가로 설치한 데몬을 띄우기 위해서 rc 스크립트를 손봐야 하고 패키지를 업데이트 하는데 있어서 몇가지 문제점이 있긴 하지만 그만큼 손으로 제어할 수 있는 부분이 많기 때문이다. 하지만 이런 작업은 일반 사용자가 하기엔 복잡하고 거리감이 느껴지는 작업이다. 물론 Linux나 FreeBSD는 사용자를 위한 편의 기능이 무척 잘 되어 있어서 왠만큼 컴퓨터를 아는 사용자라면 무리 없이 설치를 하고 사용할 수 있으리라 생각된다. 하지만 MS윈도우에 익숙해 있는 사용자에게 아직도 Unix가 어렵게만 느껴지는 것은 어쩔 수 없을 것이다.

아래는 Eric S. Raymond의 Art of UNIX Programming에서 인용했다.

[quote]내게 있어서 심리학적인 더욱 커다란 문제는 2000년에 매킨토시 개발자 컨퍼런스에 3일간 참석한 이후에 완전히 이해가 되었다. UNIX 세계와 정반대로 배치되는 가정들을 안고 있는 프로그래밍 문화에 몰두했던 경험에서 큰 깨달음을 얻었다.

매킨토시 프로그래머들은 사용자 경험에 모든 것을 맞춘다. 건축가인 동시에 장식자인 셈이다. 그들은 바깥에서 안쪽으로 설계를 하며, 맨 처음 “우리가 지원하고자 하는 상호작용의 종류가 무엇인가?” 라는 질문으로 시작한다. 그리고는 사용자 인터페이스 설계의 요구들을 만족하면서 그 뒤에 숨겨진 응용 로직을 작성한다. 그래서 매우 예쁘면서도 기반 구조가 취약하고 허약한 프로그램이 되기 쉽다. MacOS 릴리즈 9까지만 하더라도, 이미 종료했지만 여전히 메모리에 남아있는 프로그램의 메모리를 수동으로 해제함으로써 할당했던 메모리를 반납하라는 요구를 사용자에게 들이밀곤 했다. UNIX 사람들은 이와 같이 잘못한 설계를 보면 본능적인 염증이 끓어오른다. 그들은 도대체 어떻게 매킨토시 사람들이 살 수 있는지 이해를 못한다.

그와 대조적으로 UNIX 사람들은 기반 구조에 모든 것을 건다. 우리는 배관공과 채석공인 셈이다. 우리는 내부에서 바깥으로 설계를 하며, 추상적으로 정의한 문제에 대해 튼튼한 엔진부터 만들어 나간다. 예를 들자면, “믿을 수 없는 하드웨어와 링크로 연결된 A 지점과 B 지점 사이에서 어떻게 하면 믿을 수 있는 패킷 스트림 전송을 할 수 있겠는가?”와 같은 식이다. 그리고는 얇고 어찌 보면 다소 추한 인터페이스로 엔진을 감싼다. [url=”http://man.kldp.org/wiki/FrontPage?action=GetManPage〈=ko&man;=date&sec;=all”%5Ddate(1)%5B/url%5D, [url=”http://man.kldp.org/wiki/FrontPage?action=GetManPage〈=ko&man;=find&sec;=all”%5Dfind(1)%5B/url%5D 그리고 [url=”http://man.kldp.org/wiki/FrontPage?action=GetManPage〈=ko&man;=ed&sec;=all”%5Ded(1)%5B/url%5D가 그 중 유명한 사례지만, 다른 것들도 줄잡아 수백 개는 족히 넘는다. 매킨토시 사람들은 이와 같은 잘못된 설계를 보면 본능적인 염증이 끓어 오른다. 그들은 UNIX 사람들이 도대체 어떻게 살아가는지 이해를 못한다.

두 설계 철학들은 얼마간 타당함이 있지만, 양측이 서로를 바라보는 시각에는 너무나 깊은 골이 가로놓여 있다. 전형적인 UNIX 개발자라면 매킨토시 소프트웨어를 번지르르한 솜털, 무지한 사람들을 위한 눈깔사탕 정도로 취급해버리고 다른 UNIX 개발자들에게 어필할 수 있는 소프트웨어를 계속 만들 것이다. 만약 최종 사용자들이 별로 달가워하지 않는다면 참 난감한 일이다. 최종 사용자들은 어떤 실마리를 발견하기 전 까진 되돌아오지 않을 것이다.

많은 부분에서 이와 같은 근성은 우리를 충분히 지탱해왔다. 우리는 인터넷과 월드 와이드 웹의 파수꾼이다. 우리의 소프트웨어와 전통은 진지한 컴퓨팅을 지배하고, 24/7 안정성과 최소한의 다운타임(downtime)이 필요한 응용에서는 필수적이다. 우리는 진정 탄탄한 기반 구조를 만드는데 일가견이 있다. 물론 완벽한 것은 아니나 다른 소프트웨어 기술적인 문화에서 우리의 기록을 따라잡지 못했고, 이점은 자랑할 만하다.

문제는 우리가 점점 포괄적인 견지를 요구하는 도전을 받아들여야 한다는 사실이다. 이 세상 대부분 컴퓨터는 서버실에서 살지 않으며 최종 사용자들의 손안에 있다. 개인용 컴퓨터가 태어나기 전이었던 초기 UNIX 역사에서 우리의 문화는 빅 아이런(big iron : 메인프레임을 일컫는다)을 사수하는 메인프레임 성직자들에 대항하는 반항아로서 스스로의 입지를 정의했다. 이후에, 우리는 초기 마이크로 컴퓨터 팬들의 ‘사람들에게 권력을’이라는 이상주의에 열중했다. 하지만 오늘날 우리는 성직자가 되어 버렸다. 우리는 네트워크와 빅 아이런을 구동하는 사람이다. 그리고 우리의 소프트웨어를 사용하고 싶다면, 우리들처럼 생각하는 방법을 배워야 한다고 암시적으로 요구한다.

현재, 우리의 태도에는 깊은 양면성이 있다. 우리는 엘리트주의와 선도적인 민주주의 사이에서 갈등한다. 게임과 멀티미디어, 그리고 번지르르한 GUI 인터페이스 및 간단한 이메일과 워드 프로세싱과 스프레드시트가 컴퓨터의 전부라고 생각하는 92%의 세상 사람들에게 다가가서 바꾸길 원한다. 우리는 UNIX를 예쁘게 치장하는 GNOME과 KDE와 같은 프로젝트에 커다란 공을 들이는 중이다. 하지만 그 중심에는 여전히 엘리트주의가 뿌리내리고 있으며 그래서 틸리 부인의 세계의 요구를 들으려고 하지 않거나 많은 경우에 이를 전혀 인식조차 못하고 있다.

비기술적인 최종 사용자들에게는, 우리가 만드는 소프트웨어는 당혹스럽고 이해할 수 없거나, 또는 세련되지 않고 생색을 부리는 듯 보이고, 어쩌면 둘 다 일지도 모른다. 설사 우리가 정말 진지하게 사용자 친화적이고자 노력을 한다고 해도 애처롭게도 조화롭지 못한 경우가 대부분이다. 구식 UNIX에서 물려받았던 태도와 반응의 대부분은 이 점에서 좋지 못하다. 우리가 틸리 부인을 돕고 그 목소리에 귀를 기울이고 싶어도 방법을 모른다. 우리의 범주와 관심사는 그녀와 그녀에게 ‘해결책’을 주는 데에 혈안이 되어 있고, 그녀는 이와 같은 우리들의 태도가 그녀의 문제만큼이나 당혹스럽게 느껴질 것이다.
[/quote]

Eric S. Raymond의 얘기에서 처럼 유닉스 사용자들은 최종 사용자들에게 해결책을 주는 데에 혈안이 되어 있다. 그리고 이는 최종 사용자에게 별다른 도움이 되질 못한다. 가령 Xft의 볼드 패치 문제에 있어서 왜 볼드체가 나오지 않느냐는 친구의 물음에 Xft를 볼드 패치를 하면 된다와 이미 볼드 패치가 되어 있는 차이는 크다. 사용자들은 “하면 된다”가 아니라 “되어 있는”을 원하는 것이다. 모든 최종 사용자들이 개발자가 아니며 이들에게 패치 파일 적용 및 컴파일은 너무나 두렵고 복잡한 일일 수도 있는 것이다. 아직도 유닉스가 일반 사용자들의 데스크탑에 올라가기엔 갈길이 너무 먼것만 같다.

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Google photo

Google의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

%s에 연결하는 중