[발췌] 잘 설계된 인터페이스

from. p.134 책 '경험디자인의 요소' (http://kangcom.com/common/bookinfo/bookinfo.asp?sku=200902100018)

인터페이스 디자인

성공적인 인터페이스들은 사용자들이 중요한 부분들을 즉각적으로 알아 차릴 수 있는 종류의 인터페이스들이다. 한편 중요하지 않은 부분들은 알아차리지 못한 채로 지나갈 수도 있는데, 때로는 그것이 아예 존재하지 않기 때문에 그럴 수도 있다. 복잡한 시스템의 인터페이스를 설계함에 있어 가장 큰 문제는, 사용자들이 다룰 필요가 없는 측면들이 어떤 것인지를 밝혀내고 그것들의 가시성을 줄여주는 것(도는 그것들을 아예 빼버리는 것)이다.

프로그래밍과 관련된 배경을 갖춘 사람들에게는, 이러한 종류의 사고는 약간의 조정을 필요로 할 수 있다. 이것은 때로는 그들이 했던 것과는 매우 다른 일일 수 있다. 좋은 프로그래머는 언제나 가장 개연성이 작은 시나리오들(이른바 프로그래밍 용어로 표현한다면 극단적인 사례들)을 고려한다. 결국, 프로그래머에게 있어 궁극적인 성취란 결코 깨지지 않는 소프트웨어를 만드는 것이다. 그러나 극단적인 사례를 고려하지 않은 프로그래밍은 그러한 극단적인 환경에 처하게 될 경우 바로 문제가 생길 개연성이 있다. 그래서 프로그래머들은 모든 사례들을 그것이 한 명의 사용자를 대표하든 천명의 사용자를 대표하든 관계없이 동등하게 처리하도록 훈련받는다.

이러한 접근방법은 인터페이스 디자인에는 잘 들어맞지 않는다. 작은 수의 극단적 사례들에 대다수 사용자들의 요구만큼이나 동일한 비중을 두는 인터페이스는, 일부의 사용자들만을 즐겁게 해주는 잘 갖추어지지 못한 인터페이스로 끝나고 만다. 잘 설계된 인터페이스는 사용자들이 취할 가능성이 가장 큰 행동 과정들을 인식하고 있으며, 그러한 인터페이스 요소들을 접근하고 사용하기에 가장 쉽게 만들어진 것이다.

그렇다고 해서 페이지에서 사용자들이 누를 가능성이 가장 큰 버튼을 가장 크게 만드는 것이 모든 해결책이 된다는 것은 아니다. 인터페이스 디자인은 사용자들이 그 목표를 향해 가는 길을 더욱 쉽게 만들기 위해 다양한 기교들을 채택할 수 있다. 한 가지 간단한 기교는 인터페이스가 사용자에게 처음 제시될 때 이미 선택되어 있는 상태로 남겨져 있는 디폴트(default) 사항에 대해 주의 깊게 생각하는 것이다. 사용자의 태스크와 목표에 대한 여러분의 이해가 여러분으로 하여금 사용자 대부분이 간단한 것 보다는 상세한 검색결과를 선호할 것이라고 생각하게 만들었다면, 디폴트 선택사항 옆에 "상세사항 보기" 라는 체크박스(checkbox)를 둠으로써 더 많은 사람들이 체크박스에 있는 라벨을 읽고 의사결정을 내리는데 걸리는 시간이 어느 정도가 되든 상관없이 자동적으로 즐거울 수 있게 만들 수 있을 것이다. (더 좋은 것은, 시스템이 바로 직전에 멈추었던 당시에 사용자가 선택했던 사항들을 자동적으로 기억하게 만드는 것이다. 그러나 이것은 때로는 표면 단계에서 더 큰 기술적 노력들을 필요로 하며, 그 결과 어떤 개발팀들에게는 성공적으로 구현하기에는 비실제적인 사항이다.)