1. 시스템 상태의 가시성 (Visibility of System Status)
사용자가 시스템에서 어떤 작업이 진행 중인지, 그리고 현재 상태가 어떤지 쉽게 이해할 수 있어야 합니다.
- 예시: 파일 업로드 시 진행 상태를 보여주는 로딩 바.
- 적용 방법: 작업 진행 상태를 표시하는 로딩 바, 애니메이션 등을 사용하세요.
2. 사용자 통제와 자유 (User Control and Freedom)
사용자는 자신의 행동을 쉽게 되돌릴 수 있어야 하며, 실수를 했을 때 빠르게 수정할 수 있는 기능이 필요합니다.
- 예시: Gmail의 "보내기 취소" 버튼.
- 적용 방법: 항상 "취소" 또는 "다시 하기" 버튼을 제공하세요.
3. 오류 예방 (Error Prevention)
문제가 발생하기 전에 이를 미리 막을 수 있는 기능을 설계해야 합니다.
- 예시: 비밀번호 설정 시 조건을 미리 표시하는 기능.
- 적용 방법: 데이터 입력 필드에 실시간 검증(validation)을 추가하세요.
4. 일관성과 표준 (Consistency and Standards)
사용자는 익숙한 패턴과 용어를 선호합니다. 새로운 방식은 학습 부담을 증가시키므로 표준화된 디자인을 따르는 것이 중요합니다.
- 예시: 모든 웹 브라우저의 "뒤로 가기" 버튼.
- 적용 방법: 표준화된 아이콘과 용어를 사용하세요.
5. 시스템과 실제 세계의 일치 (Match Between System and the Real World)
사용자가 시스템을 현실처럼 느끼게 만드는 것이 중요합니다.
- 예시: 쓰레기통 아이콘으로 "삭제"를 나타냄.
- 적용 방법: 현실 세계에서 사용하는 용어와 비슷한 언어를 사용하세요.
6. 기억이 아닌 인식에 의존 (Recognition Rather Than Recall)
사용자가 기억하지 않고도 필요한 정보를 쉽게 찾을 수 있어야 합니다.
- 예시: 검색창의 자동 완성 기능.
- 적용 방법: 사용자가 선택할 수 있는 옵션을 명확히 보여주세요.
7. 유연성과 효율성 (Flexibility and Efficiency of Use)
초보자와 전문가 모두를 만족시킬 수 있는 유연한 설계가 필요합니다.
- 예시: 키보드 단축키는 전문가 사용자를 위한 도구입니다.
- 적용 방법: 초보자와 전문가를 위한 다양한 사용 경로를 설계하세요.
8. 미적이며 최소한의 디자인 (Aesthetic and Minimalist Design)
불필요한 요소는 제거하고 필요한 정보만 남겨야 합니다.
- 예시: 구글의 간결한 검색 화면.
- 적용 방법: 필요한 요소만 화면에 배치하고 텍스트, 이미지를 최소화하세요.
9. 오류 인식, 진단 및 복구 (Help Users Recognize, Diagnose, and Recover From Errors)
오류 메시지는 사용자가 문제를 이해하고 해결할 수 있도록 설계되어야 합니다.
- 예시: "잘못된 비밀번호입니다. 다시 입력해주세요."
- 적용 방법: 오류 메시지를 명확하고 사용자 친화적으로 작성하세요.
10. 도움말과 문서 제공 (Help and Documentation)
사용자가 기능을 이해하지 못할 때, 명확한 도움말과 문서를 제공하는 것이 중요합니다.
- 예시: 검색 가능한 FAQ와 튜토리얼.
- 적용 방법: 짧고 간결한 도움말 문서를 제공하세요.