Good User Interface
좋은 user interface의 조건을 깊이 다루면 인지심리학까지 연결되며, User Experience (UX) 로도 확장될 수 있다. 이는 이 책의 범위를 훨씬 넘어서는 내용이다. (참고로 UI와 UX는 분명한 차이가 있다. UI는 보편성 을 중시하나 UX는 주관성(혹은 개성) 을 추구한다)
여기서는 대략적으로만 정리해 본다. 즉, 최소한의 가이드라인이라고 생각하자.
명확성 (Clarity)¶
사용자가 UI component의 용도를 명확하게 파악 할 수 있어야 한다. "출력"에 해당하는 버튼을 보고 이게 출력하는 것인지 아닌지 헷갈려해서는 좋은 interface라고 할 수 없다. 이를 위해서 시각적으로 충분히 구별 되도록 UI component들이 배치되어야 하며, 쉽게 인식할 수 있는 크기와 색상 등으로 표현되어야 한다.
또한 사용자에게 현재 수행 중인 task 등에 대한 feedback 도 명확하게 제공되어야 한다. 잘못된 입력 의 경우 어디가 잘못되었는지를 사용자가 파악할 수 있어야 하며, 사용자가 지시한 내용의 결과가 성공인지 실패인지 등을 쉽게 인식할 수 있어야 한다.
일관성 (Consistency)¶
UI component들의 외관과 배치가 application 전체에 걸쳐서 일관성 을 가질수록 사용자는 이를 쉽게 인식하고 효율적으로 사용할 수 있다. Tabbed interface에서도 각각의 페이지에서 사용자에게 feedback을 주는 component의 위치는 가급적 같은 위치 에 놓이도록 하거나, 색상 등을 카테고리별로 분류 하여 지정하는 방법 등은 사용자에게 일관된 UI를 제공하는 데 도움이 된다.
간결성 (Conciseness)¶
사용자가 특정 task를 수행할 때 필요한 UI component들만 을 모아서 한 번에 해당 component들만 보여지게 하는 것이 좋다. 한 화면에 지정된 task 수행에 필요한 component들로 간결하게 구성 하는 것이 효과적이다. 지나치게 많은 버튼과 선택지가 놓인 UI 화면은 사용자가 사용하기 어렵다. (물론 나 혼자 쓰는 툴이면 한 화면에 다 놓는 것이 개발하기 편하고 익숙한 개인에겐 좋을 수 있지만, UI를 개발한다는 건 다른 사람이 쓰는 경우를 염두에 둬야 한다.)
효율성 (Efficiency)¶
최소한의 입력 으로 task를 수행할 수 있어야 한다. 지나치게 효율성만 추구할 경우, 처음 UI를 접하는 사용자들은 어려움을 겪게 되는 경우가 많으므로, 이 둘의 사용자가 선택할 수 있어야 한다. 많이 사용되는 task의 경우엔, 직관적인 메뉴로도 해당 기능을 제공하면서도 동시에 shortcut 을 제공해야 한다.
친숙성 (Familiarity)¶
기존의 다른 UI 에서 사용자의 경험이 현재의 application에서도 잘 동작할 수 있도록 해야 한다. 이는 대상 플랫폼의 기본 UI와 가급적 비슷한 형태로 제공되는 것이 유리하다. 새로운 경험을 선호하는 이들은 소수이고 대부분 익숙한 환경 을 선호한다. UI는 예술작품이 아니다.
이는 많은 게임이나 프로그램들이 경쟁사의 것들과 유사한 interface를 가지게 되는 이유 중의 하나이다.
결국, 좋은 UI는 보편성 을 가지고 어떤 사용자도 쉽고 편리하게 해당 application을 사용하도록 해주는 것을 의미한다. 물론 추가적으로 디자인이 세련되고 보기 좋으면 금상첨화다.