|
프로그래머를 위한 사용자 인터페이스 설계론
제1부:
환경을 통제할 수 있는 사용자는 행복하다
|
글 : Joel Spolsky
번역 : AhnLab
2000년4월10일월요일
필자가 아는 대부분의 골수 C++ 프로그래머들은 사용자 인터페이스 프로그래밍을 꺼린다. 필자로서는 잘 이해가 되지 않는 일이다. UI 프로그래밍이 본질적으로 아주 쉽고 간단하며 재미있는 작업이라고 생각하기 때문이다.
UI 프로그래밍은 쉽다. 일반적으로 하나의 사각형 안에 또 다른 사각형을 집어넣는 수준 이상의 더 복잡한 알고리즘은 필요하지 않기 때문이다. UI 프로그래밍은 간단하다. 프로그래밍 과정에서 실수가 있을 경우, 금방 눈에 띄고 곧바로 수정할 수 있기 때문이다. UI 프로그래밍은 재미있다. 노동의 결과를 직접 눈으로 확인할 수 있기 때문이다. 마치 프로그램을 직접 조각하는 것 같은 기분을 느낄 수 있다.
대부분의 프로그래머들이 UI 프로그래밍을 두려워하는 이유는 아마도 UI 디자인을 두려워하기 때문인 것 같다. 프로그래머들은 UI 디자인이 그래픽 디자인과 비슷한 일이라고 여긴다. 그들이 생각하는 디자인이란, 카페라테를 즐겨 마시며 검정색 옷만 입고 독특한 피어싱으로 온몸을 치장한 개성 넘치는 사람들이 신비로운 작업 과정을 통해 예술적으로 보이는 무언가를 만들어내는 그런 일이다. 프로그래머들은 스스로를 분석적이고 논리적인 사고형 인간이라 생각한다. 그러니까 이성적 추론에는 강하지만 예술적 판단에는 약하다는 것이다. 그래서, UI 디자인은 자신들에게 어울리지 않는 일이라고 생각한다.
필자가 경험한 바로는, 사실 UI 디자인은 매우 쉽고 매우 논리적인 작업이다. 대학에서 미술을 전공한 사람이나 형광 보라색으로 머리를 염색하고 다니는 사람들만이 할 수 있는 그런 일이 아니다. UI 디자인은 간단하면서도 논리적인 규칙들을 적용하여 프로그램의 사용자 인터페이스를 보다 개선할 수 있는 방법을 이성적으로 고민하는 일이다.
필자가 이야기하고자 하는 것은 “젠(Zen, 禪) 스타일의 예술적 UI 디자인” 같은 것이 아니다. 필자가 이야기하고 싶은 것은 예술이나 불교가 아니라 일련의 규칙이다. 이성적이고 방법론적인 사고 체계다. 이 글은 프로그래머들을 위해 쓴 것이다. 그러므로, 메뉴 바를 만드는 방법에 대한 설명은 필요하지 않으리라 생각한다. 필요한 것은 메뉴 바에 무엇을 집어넣을 것인가를 (혹은, 메뉴 바가 과연 필요할 것인가를) 생각하는 것이다. 필자가 말하고 싶은 주된 원칙은 한 가지이며 이것은 모든 UI 디자인에 도움이 될 것이다. 게다가, 이 원칙은 이해하기도 쉽다.
필자가 처음 아르바이트를 했던 직장은 규모가 큰 제빵 공장이었다. 설계 당시, 이 공장에는 여섯 개의 빵 생산라인이 들어설 예정이었고 두 개의 생산라인 사이에는 반죽기가 하나씩 설치되었다. 이 반죽기는 180 kg짜리 빵 반죽 덩어리를 좌우의 생산라인에 공급하게 되어 있었다.

위의 그림은 이 공장의 초기 설계를 나타낸 것이다. 하지만, 실제로 필자가 일하던 당시에는 반죽기 C는 아직 설치되어 있지 않았고 3번과 5번 생산라인도 세워져 있지 않았다. 그러므로, 실제 구조는 다음과 같다.

눈치가 빠른 독자들이라면 “어떻게 반죽기 B에서 6번 생산라인으로 빵 반죽을 공급할 것인가”가 궁금해질 것이다. 여기서 바로 필자가 등장하게 되는 것이다. 믿어지지 않겠지만, 그 당시 필자가 했던 일은 반죽기 B 옆에 서 있다가 반죽기 밖으로 튕겨져 나오는 무게 180 kg짜리 대형 빵 반죽을 잡아서는 바퀴가 달린 반죽통에 담아 6번 생산라인까지 밀고 간 후 그 빵 반죽을 6번 생산라인에 올려놓는 것이었다. 필자는 오전 10시부터 오후 4시까지, 10분 간격으로 이 일을 해야 했다.
일은 여기서 끝나지 않았다. 6번 생산라인은 180 kg짜리 반죽을 한번에 처리할 수 없었기 때문에, 필자는 커다란 칼로 빵 반죽을 10조각으로 잘라야 했다. 그것이 얼마나 어려운 일이었는지에 대해서는 자세히 이야기하지 않겠다.
물론, 처음 며칠간은 고생을 많이 했다. 그 일이 거의 불가능한 일처럼 보이기도 했다. 온몸의 뼈마디가 다 쑤시고 손에는 수없이 물집이 잡혔다. 그야말로 아프지 않은 곳이 없을 지경이었다.
처음에는 6번 라인에 빵 반죽을 중단 없이 공급하는 것조차도 힘이 들었다. 반죽 공급이 끊어질 때마다 생산라인 전체에 공백이 생겼고 이로 인해 오븐에 들어갈 빵이 부족해지면 에너지는 계속 일정하게 공급되는데 구워야 할 빵의 양은 적다 보니 오븐이 과열돼 빵이 타버렸다. 이따금씩 찐득찐득한 반죽 찌꺼기를 청소하느라 6번 라인의 가동을 잠시 중단시키는 동안에도 반죽기가 계속 빵 반죽을 만들어내는 바람에 바퀴달린 반죽통을 이리저리 피해 다니며 남아도는 반죽을 처리해야 할 때도 있었다. 이럴 때는 바닥을 닦아낸 후 기름을 바르고 그 위에 빵 반죽을 던져놓았다가 나중에 6번 라인이 다시 가동되면 그 반죽을 떼어다 쓴다. 하지만, 30분 이상 경과되면 반죽이 발효되기 시작해서 맛있는 빵을 만들 수 없기 때문에, 30분 이상 지난 반죽은 5 kg 정도의 덩어리로 잘라서 |