|
프로그래머를 위한 사용자 인터페이스 설계론
제3부:
선택
|
글 : Joel Spolsky
번역 : AhnLab
2000년 4월 12일 수요일
어떤 레스토랑에 들어가다 입구에서 “애완견 출입 금지”라는 표지판을 봤다면, 여러분은 그저 이 문구가 금지의 뜻만 전하고 있다고 생각할지도 모른다. ‘아, 레스토랑 씨는 개를 별로 좋아하지 않나 보군. 그러니까 자기가 지은 레스토랑에는 개를 들이지 않겠다는 거겠지’ 라고 말이다.
만약 그것이 전부라면, 거기에는 “뱀 출입 금지”라는 문구도 붙어있어야 할 것이다. 뱀을 좋아하는 사람은 거의 없으니까. 또, “코끼리 출입 금지”라는 문구도 필요할 지 모른다. 코끼리들이 앉았다가는 레스토랑의 의자들이 하나도 남아 나지 않을 테니까.
거기에 그 표지판을 세운 진짜 이유는 과거의 경험을 바탕으로 한 것이다. 다시 말해, 레스토랑에 개를 데려 오는 사람들이 많았다는 역사적 사실을 보여주는 것이다.
대부분의 금지 문구는 사람들이 자꾸 X라는 행동을 반복하는 데 질려버린 시설물 소유자가 제발 그러지 말아달라고 요청하기 위해 붙여두는 것이다. 가령, 뉴헤이븐에 있는 ‘양키두들’처럼 사오십대 아줌마, 아저씨들이 주고객인 오래된 식당에 들어갔는데 벽면 여기저기에 “배낭을 카운터 위에 올려놓지 마시오.”라는 문구가 적힌 종이가 붙어있다면, 이는 사람들이 배낭을 카운터 위에 올려놓는 경우가 많았음을 보여주는 인류학적인 증거다. 이 문구가 적힌 종이들이 누렇게 바랜 상태로 미루어보아 대략 어느 시기쯤에 그 동네 학생들 사이에서 배낭이 유행했었는지를 추측할 수도 있다.
때로는 그 시기를 추측하기 어려운 경우도 있다. “공원에 유리병을 반입하지 마시오”라는 푯말이 서 있다면, 이는 분명히 과거에 누군가가 맨발로 잔디밭을 걸어 다니다 깨진 유리 조각에 발을 다친 적이 있다는 이야기다. 물론, 시 당국을 상대로 관리 책임을 묻는 소송을 제기했을 테고.
소프트웨어 역시 이와 유사한 고고학적 기록이다. 그래서, 소프트웨어 프로그램을 일컬어 ‘옵션의 역사’라고도 한다. ‘도구’ 메뉴에서 ‘옵션’ 항목을 선택해 보라. ‘옵션’ 대화상자에는 소프트웨어 설계자들이 제품의 설계를 놓고 벌였던 무수한 논쟁의 역사가 고스란히 담겨 있다. 프로그램을 실행하면 최근에 작업하던 파일이 자동으로 열리도록 설정해야 할까? 맞아! 아니야! 논쟁은 두 주일 동안이나 이어지고, 다른 사람의 마음을 상하게 하면서까지 의사결정을 내리려는 사람은 아무도 없고, 프로그래머는 설계자들이 논쟁을 계속하는 동안 자기방어 차원에서 #ifdef만 입력한다. 결국, 그들은 이 기능을 하나의 옵션으로 제공하기로 결정한다.
논쟁이 꼭 두 사람 사이에서만 벌어지는 것은 아니다. 어떤 의사결정을 놓고 혼자 딜레마에 빠질 수도 있다. 가령, 데이터베이스를 속도를 기준으로 최적화해야 할지 크기를 기준으로 최적화해야 할지 도무지 판단이 서지 않을 수도 있다. 어느 쪽을 선택하든, 결국은 윈도우 운영체제 역사상 가장 바보 같은 “마법사” 대화상자를 만나게 될 것이다. 이 대화상자는 쓸모없는 대화상자한테 주는 상이 있다면 당당히 영예의 대상을 차지할만한 그런 멍청한 대화상자다. 사용자가 ‘도움말’에서 무언가를 찾고자 할 때 나타나는 대화상자가 바로 그것이다.

이 대화상자의 가장 큰 문제점은 오히려 사용자를 더 혼란스럽게 만든다는 점이다. 도움말 파일 안에서 도움말을 찾아야 하다니. 이 와중에 데이터베이스는 큰 것이 좋겠는지, 작은 것이 좋겠는지, 혹은 맞춤형 데이터베이스나 초콜릿을 입힌 데이터베이스가 좋겠는지 묻는 것이다. 그러는 동안 이 뻔뻔한 대화상자가 가르쳐주는 것이라고는 목록 (또는 데이터베이스)을 만들어야 한다는 사실뿐이다. 대화상자에 들어있는 문장들은 대부분 모호하고 혼란스럽다. 특히, “사용자의 도움말 파일(들)”이라는 표현은 그야말로 어설프기 짝이 없다. 물론, 도움말 파일은 하나일 수도 있고 둘 이상일 수도 있지. 하지만, 이 시점에서 파일이 한 개든 두 개든 도대체무슨상관이란말인가? 그것이 무슨 차이가 있는가 말이다. 하지만 이 대화상자를 만든 프로그래머는 도움말 파일이 하나가 아닐 수도 있다는 가능성 때문에 괴로워했음에 틀림없다. 만일 파일이 여러 개라면 그냥 도움말 파일이 아니라 도움말 파일들이라고 해야 옳지 않겠나?
도움말을 원하는 사람들이 이런 난해한 도움말을 이해할 수 있는 부류의 사람들이 아니라는 사실에 대해서는 더 자세히 이야기하지 않겠다. 아니, 인덱스 텍스트를 훤히 알고 있는 컴퓨터공학 박사 출신의 프로그래머라도 이 대화상자가 진정으로 사용자에게 선택하도록 요구하고 있는 것이 무엇인지를 파악하기는 쉽지 않을 것이다.
더 기가 막히니 사실은 이 대화상자가 사실은 마법사라는 점이다 (그 다음 페이지에는, 알기 쉽게 설명하자면, “이런 쓸모없는 일에 기꺼이 시간을 할애해 주셔서 고맙다” 라는 취지의 문구까지 나온다). 분명한 것은 설계자도 어떤 선택이 최선인가에 대해 나름대로 뭔가 생각이 있었다는 사실이다. 다만, 한 가지 옵션을 권고하려다가 보니 문제가 복잡해졌던 |