오류를 막는 디자인
디자인 방법
- 오류의 원인을 이해하고 그런 원인을 최소화하도록 디자인하라.
- 행동을 역으로 하는 – 즉, ‘원래대로 하는’- 것이 가능하도록 하라. 그렇지 않으면 역으로 돌려놓을 수가 없는 일은 조작하기가 어렵게 만들어라.
- 발생한 오류를 발견하기 쉽고 고치기 쉽게 하라.
- 오류에 대한 태도를 바꾸어라. 어떤 물건을 사용하는 사람은 과제를 수행하여, 원하는 목표에 불완전하게나가 가까와 지려고 한다. 사용자가 오류를 저지른다고 생각하지 말아라. 사용자의 행동은 자기가 바라고 있는 것에 조금이라도 가까이 가려는 것이다.
오류를 어떻게 대처할 것인가 – 그리고 어떻게 대처하지 않는가
차 속에 열쇠를 놓아둔 채로 문을 잠그는 오류를 생각해보자. 어떤 차는 이런 오류가 거의 일어나지 않도록 만들어져 있다. 이러한 차들은 열쇠를 쓰지 않고는 문을 잠글 수 없다(어쨌든 다른 방법은 쉽지 않다).그래서 열쇠를 지니고 다니도록 강제된다. 나는 이런 디자인을 강제적 기능(forcing function)이라 부르겠다.
강제적 기능
일종의 물리적 제약이다. 어떤 한 단계에서 실패가 생기면 다음 단계로 넘어가는 것이 차단되도록 행동이 제약되어 있는 상황이다.
강제적 기능은 잘못된 행동을 발견하기 쉽게 만드는 강한 제약들 가운데 극단적인 경우이다. 그러나 모든 상황에서 강력한 제약을 쓸 수 있는 것은 아니지만 일반적인 원칙은 많은 다양한 상황들에 적용이 가능하다. 안전공학에서는 강제적 기능들은 다른 이름으로 나타나는데, 특히 사고를 방지하는 전화된 방법으로 소개된다. 그러한 세 방법은 맞잠금, 안잠금, 바깥잠금이다.디자인과 인간심리, 도널드 노먼
사용자 오류를 방지하는 것은 UX 디자인의 핵심 원칙 중 하나입니다. 닐슨 노먼 그룹(Nielsen Norman Group)의 연구에 따르면, 오류 방지는 사용성 향상을 위한 10가지 휴리스틱 중 5번째로 중요한 원칙입니다[5]. 이 글에서는 UX 디자인에서 사용자 오류를 방지하는 다양한 방법과 일상생활에서 볼 수 있는 사례들을 살펴보겠습니다.
오류의 유형 이해하기
사용자 오류는 크게 두 가지로 나눌 수 있습니다: 무의식적인 실수(slips)와 의식적인 실수(mistakes)[1][4].
무의식적인 실수 (Slips)
무의식적인 실수는 사용자가 올바른 목표를 가지고 있지만 실행 과정에서 발생하는 오류입니다. 예를 들어, 키보드에서 잘못된 키를 누르거나 마우스를 잘못 클릭하는 경우가 이에 해당합니다.
의식적인 실수 (Mistakes)
의식적인 실수는 사용자가 잘못된 목표를 설정하거나 시스템에 대한 잘못된 이해로 인해 발생하는 오류입니다. 예를 들어, 사용자가 시스템의 기능을 잘못 이해하고 잘못된 작업을 수행하는 경우가 이에 해당합니다.
오류 방지를 위한 UX 디자인 전략
1. 제약 사용하기
사용자가 오류를 범할 수 있는 상황을 물리적으로 제한하는 것이 효과적인 방법입니다[1].
일상생활 사례:
- 전기 플러그: 3구 플러그는 비대칭 설계로 인해 한 방향으로만 꽂을 수 있습니다[6].
- 마이크로웨이브: 문이 열려 있으면 작동하지 않도록 설계되어 있습니다[6].
2. 좋은 기본값 제공하기
사용자가 자주 선택하는 옵션을 기본값으로 설정하면 오류 가능성을 줄일 수 있습니다[1].
일상생활 사례:
- 알림 앱: ‘내일’, ‘다음 주’, ‘1시간 후’ 등의 일반적인 알림 시간을 기본 옵션으로 제공합니다.
3. 자동 포맷팅 사용하기
사용자 입력을 자동으로 포맷팅하여 오류를 방지할 수 있습니다[1].
일상생활 사례:
- 전화번호 입력 필드: 사용자가 숫자만 입력해도 자동으로 하이픈(-)을 추가해줍니다.
4. 제안 기능 제공하기
사용자의 입력을 예측하고 제안하여 오류를 방지할 수 있습니다[1][2].
일상생활 사례:
- 검색 엔진: 검색어를 입력하는 동안 자동완성 기능을 제공합니다.
5. 실행 취소(Undo) 기능 제공하기
사용자가 실수를 했을 때 쉽게 되돌릴 수 있는 기능을 제공합니다[2][4].
일상생활 사례:
- 문서 편집 프로그램: Ctrl+Z 또는 Command+Z로 이전 작업을 취소할 수 있습니다.
6. 오류 발생 전 경고하기
사용자가 중요한 작업을 수행하기 전에 경고 메시지를 표시합니다[2][4].
일상생활 사례:
- 파일 삭제: “정말로 이 파일을 삭제하시겠습니까?”와 같은 확인 메시지를 표시합니다.
7. 진행 상황 표시하기
복잡한 작업의 진행 상황을 표시하여 사용자가 현재 위치를 파악할 수 있게 합니다[2].
일상생활 사례:
- 온라인 쇼핑: 장바구니 → 배송 정보 입력 → 결제와 같은 단계를 표시합니다.
8. 가드레일 설치하기
사용자가 잘못된 선택을 할 수 없도록 제한을 둡니다[2].
일상생활 사례:
- 온라인 예약 시스템: 과거 날짜를 선택할 수 없도록 캘린더에서 비활성화합니다.
9. 디자인 관례 따르기
사용자가 익숙한 디자인 패턴을 사용하여 혼란을 줄입니다[2].
일상생활 사례:
- 웹사이트 네비게이션: 로고를 클릭하면 홈페이지로 이동하는 것이 일반적인 관례입니다.
10. 기억 부담 줄이기
사용자가 기억해야 할 정보를 최소화합니다[4].
일상생활 사례:
- 온라인 뱅킹: 최근 거래 내역을 표시하여 사용자가 계좌 번호를 기억할 필요가 없게 합니다.
포카요케(Poka-Yoke) 디자인
포카요케는 일본어로 ‘실수 방지’를 의미하며, 오류가 발생할 가능성 자체를 제거하는 디자인 방식입니다[6].
일상생활 사례:
- 자동차 키: 차 안에 키를 두고 문을 잠그는 것을 방지하기 위해, 키가 있어야만 문을 잠글 수 있도록 설계됩니다.
- USB 포트: USB 커넥터는 한 방향으로만 삽입할 수 있도록 설계되어 있습니다.
결론
사용자 오류를 방지하는 UX 디자인은 단순히 오류 메시지를 표시하는 것이 아니라, 오류가 발생할 가능성 자체를 줄이는 것에 초점을 맞춥니다. 이를 위해 제약, 기본값 제공, 자동 포맷팅, 제안 기능, 실행 취소 기능, 사전 경고, 진행 상황 표시, 가드레일, 디자인 관례 준수, 기억 부담 감소 등 다양한 전략을 사용할 수 있습니다.
이러한 방법들은 일상생활에서 흔히 볼 수 있는 제품과 서비스에 이미 적용되어 있으며, 우리가 인식하지 못하는 사이에 많은 오류를 방지하고 있습니다. UX 디자이너는 이러한 원칙들을 적절히 적용하여 사용자가 쉽고 편리하게 제품이나 서비스를 이용할 수 있도록 해야 합니다.
오류 방지 디자인은 단순히 사용자의 실수를 줄이는 것을 넘어, 전반적인 사용자 경험을 향상시키고 제품에 대한 신뢰도를 높이는 데 큰 역할을 합니다. 따라서 UX 디자인 과정에서 오류 방지는 항상 우선순위로 고려되어야 할 중요한 요소입니다.
참고자료
[1] https://www.nngroup.com/articles/slips/
[2] https://fireart.studio/blog/best-practices-on-preventing-user-errors/
[3] https://aguayo.co/en/blog-aguayp-user-experience/what-are-the-10-usability-principles-by-nielsen/
[4] https://www.nngroup.com/articles/user-mistakes/
[5] https://www.nngroup.com/videos/usability-heuristic-error-prevention/
[6] https://www.pixelfridge.digital/poka-yoke-design-and-the-art-of-error-proofing/