목차
2024학년도 1학기 충남대학교 김재정 교수님의 인간-컴퓨터 상호작용 수업 정리자료입니다.
Human Error
사람은 완벽하지 않기 때문에 실수를 일으킨다. 이때 사람이 발생시킬 수 있는 human error에는 무엇이 있으며, 이런 실수를 방지하기 위해 어떤 방법을 쓸 수 있을까?
Error Types

Human error에는 크게 Slip(행동실수), Lapse(기억실수, 망각), Mistake(착오) 등이 있다.
예를 들어 짜파게티 요리할 때를 생각해보자.
- 물을 빼고 분말가루를 넣어야하는데, 해당 과정을 반대로 수행하는 것은 Mistake이다.
- 분말가루를 모두 넣어야하는데, 반 정도 남기고 넣은 행동은 Slip이다.
- 마지막에 올리브 오일을 넣어야하는데, 넣지 못하고 짜파게티를 먹는 것은 Lapse이다.
1. Mistake : Error of planning
의도적으로 계획의 순서를 잘못 실행하는 경우이다. lapse보다 훨씬 위험하다.
- Rule-based mistake : 잘못된 규칙을 기억 혹은 학습했거나, 올바른 규칙이지만 잘못 적용한 경우이다.
- Knowledge-based mistake : 잘못 추론한 경우이다.
2. Lapse : Error of recognition
의도하지 않은 망각으로 필요한 조치를 건너뛰는 경우이다.
3. Slip : Error of execution
의도치 않게 절차를 올바르게 실행하지 못한 경우이다.
Mistake(착각) | Slip(행위착오), Lapse(망각) |
• Intended • 목적을 달성하는데 잘못된 절차를 수행한다. • 일반적으로 규칙 기반, 문제 해결 행동에서 발견된다. |
• Unintended • 행위/기억의 실패로 절차를 올바르게 수행하지 못한다. • 일반적으로 숙련된 행동에서 발견된다. |
Error Sources
Human error는 perception(지각), cognitive(인지), motor(운동) 세 가지 정보 처리 단계에서 발생할 수 있다.

Capture Errors(포착오류)
- Motor Error의 한 종류.
- 빈번하게 발생한다.
- 자주 실행했기 때문에 익숙한 행동 자체를 덜 익숙한 공간에서 하게 될 때 발생한다.
- e.g. 엘레베이터 버튼이 비슷하게 생긴 경우, 다른 아파트임에도 불구하고 무의식적으로 내 집이 있는 층 버튼을 누르는 행동.
- e.g. 집에서 나와 원래 가려고 했던 곳이 아닌 자주 갔던 공간(예를 들면 학교)에 가는 행동.
Description Errors
- 일반적으로 Similarity(유사성)에서 비롯된다.
- description이 시각적, 공간적, 의미적으로 유사할 때 발생한다.
- consistency(동일성, 일관성)은 학습에 좋지만, 의도하지 않은 유사성은 안전에 좋지 않다.
- e.g. 살충제와 카놀라유 스프레이의 생김새가 비슷하다.
Mode Errors
- 일반적으로 Slip의 한 종류
- Mode란 다른 의미를 갖는 상태를 말한다.
- e.g. Caps lock 키가 활성화 된 경우.
Slip의 원인
- 주의가 부족하거나 부적절한 경우 발생할 수 있다.
- 강력하지만 잘못된 효과
- 속도와 정확성 사이에는 tradeoff가 존재한다.

Error Prevention
위 Error들은 다음과 같은 방법으로 예방할 수 있다.
Capture Errors
동일한 행동으로 과정의 앞부분을 수행함으로써 습관적인 일련의 행동 과정을 만드는 것을 피해야한다.

Description Errors
매우 비슷한 묘사를 피해야한다.
e.g. 위험한 command는 흔히 쓰이는 것들과 멀리 배치한다. Save와 Remove가 붙어있으면 에러 발생 가능성이 높다.

Mode Errors
mode를 지우거나, mode의 가시성을 높인다. 일시적인 mode를 만든다.
e.g. 대문자 입력을 위해 caps lock 외에도 Shift key가 존재한다.
User Interaction을 이용한 에러 방지
Interlock : 서로 연관된 일련의 행동에서 상호의존성을 만든다.
e.g. 엘레베이터 차체가 바닥에서 30cm 이내로 도착해야 엘레베이터의 문을 열도록 한다.
Lockin : 특정 작업을 활성 상태로 유지해 실수로 중지되는것을 방지한다.
e.g. 휴대폰 업데이트 동안, 업데이트가 진행중임을 나타내는 화면을 띄워 유저가 어떠한 input도 하지 못하게 한다.
Lockout : 사용자가 특정 작업을 계속 진행하기 위해 어떤 행동을 해야하도록 요구한다.
e.g. 사용자가 어플을 사용하기 전에 보안 코드를 입력해야만 다음 화면으로 넘어갈 수 있다.
Confirmation Dialogs

확인 다이얼로그는 좋은 방법이 아니며, 절제해서 사용해야한다.
인터페이스 효율성을 크게 저하시킬 수 있다.
습관화될 수 있어 Confirmation 효과를 저하시키며, 단지 사용자를 늦출 뿐이다.
일반적으로, undo(되돌리기)가 확인 다이얼로그보다 더 나은 해결책이다.
Error Message Dialogs
최고의 에러 메세지는 아예 발생하지 않는 것이다. 즉, 사용자가 실수를 하지 않도록 시스템을 설계하는게 가장 좋지만 그럴 수 없기 때문에, 가능한 오류가 발생하지 않도록 예방해야한다.
시스템은 사용자 입력에 대해 유연하고 관대해야한다.
무의미한 입력값을 무시하고, 문제없이 진행할 수 있으면 그대로 진행해야한다.
정확하고 이해하기 쉬워야한다.
오류 발생 이유와 해결방법을 제시해서 구체적으로 도움을 주어야한다.
오류 메세지는 예의 바른 말투여야한다.
부정적인 단어는 피해야한다.
긴 작업은 취소가 가능해야하고, 모든 대화상자에는 취소 버튼이 있어야한다.
사용자가 '다시 묻지 않음'을 선택할 수 있는 옵션을 제공하지만, 후에 의견을 바꿀 수도 있음을 고려해야한다.
User Control Over Data
사용자가 입력한 데이터는 사용자가 편집할 수 있어야 하고, 이를 위해 CRUD 기능을 제공해야한다.
Undo/Redo
실행취소/다시실행 기능은 필수적이다. 여러 단계의 Undo를 지원하고, 버전 이력을 관리할 수 있도록 해야한다.
Undo의 mental model 형성
undo 기능은 작업을 되돌리는 기능이라는 점은 확실하지만, 어떤 행동이 undo의 대상인지, undo가 가능한 단위가 어떻게 구분되는지, 이전 상태가 얼마나 복원되는지, 얼마나 많은 행동을 되돌릴 수 있는지 등의 질문이 남아있다.
undo의 대상이 무엇인가?
- word나 excel 등 프로그램 내에서의 행동
- text 위젯 내에서의 행동
- 유저가 아닌 컴퓨터가 진행한 행동
undo가 가능한 단위?
- Lexical level : 가장 낮은 단계. 마우스 클릭, 키 입력, 마우스 이동 등 단순한 사용자의 행동
- Syntactic level : 사용자가 시행한 명령어나 버튼 클릭 등의 행동 기준
- Semantic level : 어플리케이션 데이터 구조에 변화를 주는 것. 보통 이 단계에서 undo가 일어난다.
- 텍스트 입력 : 하나의 단위로 집계되고, 다른 편집 명령어나 새 줄이 집계를 중단시킨다.
undo할 수 있는 행동?
- undo가 무시하는 사용자의 행동에는 선택, 키보드 포커스 변경, 스크롤, 확대/축소, 레이아웃 변경, 사이드바 열기, 창 크기 조절, UI 맞춤 설정(도구 모음에 버튼 추가) 등이 있다.
- 일부 어플리케이션은 편집 과정에 대해 undo/redo 기능을 제공하고, 뷰포인트 스트림에 대해 뒤로가기/앞으로가기 기능을 제공한다.
- undo가 가능한 행동은 주로 어플리케이션의 데이터나 상태에 영향을 미치는 것들이다.
얼마나 많은 행동을 복원 가능한가?
- 텍스트 선택 후 삭제한 다음 undo 시 텍스트는 복원되지만, 선택 상태나 커서 위치까지 복원되지 않는다.
얼마나 먼 행동까지 복원 가능한가?
- undo 기록 한계가 종종 있다.
Undo의 디자인 원칙
undo 기능을 위한 설계 원칙에는 가시성, 집계성, 실행 취소 자체의 가역성(다시 실행 가능), 실행 취소가 가역성을 지원하는 유일한 방법이 아니라는 점이 포함된다.