휴먼 에러 최소화를 위한 UX 원칙
인간은 불완전한 존재입니다.
“To err is human; to forgive, divine.” 영국의 시인 Alexander Pope(1688~1744)의 An Essay on Criticism, Part II에 나온 구절인데요, 직역하면 “실수하는 것은 인간의 일; 용서하는 것은 신의 일”입니다. 인간은 누구나 실수를 합니다. 따라서 UX 관점에서는 사용자가 서비스를 이용하는 과정에서 실수를 하더라도 불편함이나 재산 손실, 더 나아가 인명 피해가 따르지 않도록 포용성(包容性)을 제공해야 합니다.
디지털 전환이 가속화되어가면서 사용자들은 일상의 더 많은 것들을, 그리고 더 빨리 할 수 있게 되었습니다. 하지만 그에 따라 디지털 기술을 이용하면서 사용자들은 더 많이 실수하게 되었습니다. 왜냐하면 사용자들이 더 많은 일을 더 빨리 처리하다 보면, 인지적 부하나 스트레스가 높은 상황이 이어질 수 있는데요. 이는 부주의로 인한 실수와 같은 휴먼 에러(Human Error)를 유발하게 합니다.
그렇다면 디지털 기술들을 사용하면서, 어떤 휴먼 에러들이 발생하고 있을까요?
PC로 작업하던 자료나 데이터를 날려버려 눈물이 날 뻔했던 일은 누구에게나 한 번쯤은 있지 않을까요. 수신인을 잘못 지정하거나 오타가 있는 메일이나 메시지를 보내고 난 후, 그 당혹감은 누구의 것일까요, 보이스 피싱과 같은 금융 사고는 뉴스에서나 볼 수 있는 일일까요. 키오스크로 주문을 잘못해서 원치 않은 메뉴를 먹어 보셨나요. 자동차를 운전하다 깜빡 졸거나, 사각지대에 있는 옆 차를 못 보고 차선변경을 하다 놀랐었던 경험은요. 작동 중이던 전자레인지나 세탁기 문을 아이가 갑자기 열려고 한 적은 없었나요. 이런 섬찟한 경험은 누구나 두 번 다시 하고 싶지 않을 것입니다.
우리 모두는 실수를 하기 마련입니다. 그렇지만 우리 서비스를 이용하는 사용자가 이러한 실수로 인해 부정적인 경험을 하는 것은 원치 않을 것입니다. 사람의 눈은 자기 자신을 바라보는 것이 아니라 세상과 타인을 향하고 있기 때문에, 자신의 잘못으로 인한 사고가 발생해도 남의 탓을 더 잘하기 마련입니다. 그러므로 우리 서비스를 이용하다 사용자의 실수로 사고가 발생하더라도, 우리 서비스를 탓하고 십상인데요. 그랬을 때 사용자는 우리 서비스는 다시 찾지 않거나, 바로 앱을 삭제해 버릴지도 모릅니다.
그렇다면 UX 관점에서 어떻게 해야 할까요? 불가항력적으로 발생할 수밖에 없는 휴먼 에러를 사전에 방지하거나 줄여 주어야 합니다. 몇 시간 동안 노력했던 자료나 데이터의 손실을 막아주는 사소한 것에서부터, 금융 사고로 인한 재산 손실, 더 나아가 인명 피해를 막아주는 이러한 UX는 사용자의 안전(安全)을 지켜주는 마치 히어로(Hero)와 같습니다.
이번 글에서는 사용자의 휴먼 에러를 최소화해 주는 포용적인 UX 원칙인 안전한 사용(Safe Use)에 대해 살펴보도록 하겠습니다.
원칙 1. 휴먼 에러를 방지할 수 있는 방법이 제공되어야 합니다.
서비스 사용 중에 우연히 발생하게 되는 휴먼 에러들로 인해 사용자는 중요한 정보의 손실, 메일이나 메시시지 오전 송 뿐만 아니라, 오결제나 보이스 피싱 등과 같은 중대한 금융적 손실을 경험할 수 있는데요. 이러한 위험을 내포하고 있는 과업을 디자인할 때에는, 휴먼 에러가 발생하더라도 이로 인해 부정적인 경험이나 손실을 방지할 수 있는 포용적인 방안이 제공되어야 합니다. 왜냐하면 이러한 부정적인 경험으로부터 사용자를 안전하게 보호하는 가장 효과적인 방법은 휴먼 에러를 사전에 예방하는 것이기 때문입니다.
이러한 휴먼 에러를 체계적으로 다루는 전통적인 분야는 안전 공학인데요. 안전 공학(Safety Engineering)은 주로 산업 현장에서 발생하는 사고나 인명 피해까지 이어지는 재해를 방지하는 데에 그 목적이 있습니다. 이와 관련하여 휴먼 에러가 발생하더라도 사고나 작업자의 상해를 동반한 산업 재해로 이어지지 않도록 이를 사전에 방지해 주는 디자인 개념을 근원적 안전 설계 원리라고 합니다.
대표적인 근원적 안전 설계 원리로 ‘Fool Proof’ 개념을 들 수 있는데요. Fool Proof를 직역하면 어리석은 사람이라도 아무 문제 없이 사용할 수 있도록 설계한다는 의미로, 작업자가 작업 중에 조작 실수를 하더라도 작업자에게는 피해를 주지 않도록 기계 설비를 디자인하는 방법입니다. 이러한 개념이 반영된 대표적인 안전 장치는 안전 가드(Safety guard)인데요. 기계 설비의 회전 부위나 말림점(Pinch Point)과 같은 위험 부위에 안전 가드를 설치하면 작업자가 아예 위험에 접근할 수 없기 때문에 휴먼 에러와 이로 인한 사고를 예방해 줄 수 있습니다.
UX 분야에서도 이와 유사한 개념으로 도널드 노먼(Donald Norman)이 제안한 ‘제약’이 있는데요. 제약(Constraints)은 행동 유도성(Affordance)과는 달리, 사용자에게 무엇이 불가능한지 알려주어 잘못된 사용방법을 차단한다는 개념입니다. 즉, 사용자가 선택할 수 있는 선택 항목의 수를 제한시켜 올바르지 않은 사용 방법을 방지하는 것입니다.
예를 들면 아래 그림과 같이 메뉴의 일부 영역을 비활성화하여 사용자가 선택할 수 없도록 할 수 있는데요, 이는 사용자가 디자이너가 기획하지 않은 의도치 않은 과업을 수행하는 것을 제한하여 휴먼 에러를 사전에 예방하기 위한 것입니다.
과업의 특정 단계에서 사용할 수 없는 기능을 비활성화하는 것처럼 사전에 사용자의 의도치 않은 행위를 차단해 버리는 제약의 개념은 실수 방지에 강력하면서도 효과적일 텐데요. 그렇지만 대부분의 디지털 서비스의 목적은 사용자에게 다양한 기능과 선택권을 제공하는 데에 있기 때문에, 이러한 제약 개념을 이용해 사용자의 휴먼 에러를 모두 방지하는 데에 한계가 있을 수밖에 없습니다.
물론 사전에 디지털 시스템이 사용자의 의도를 파악해, 이와 관련이 없는 기능들은 제약해 버리는 것은 가장 효과적인 방법이겠지만 현실적으로 사용자의 의도를 100% 예측할 수 없습니다.
또한 닐슨의 사용성 휴리스틱 중 하나는 사용자에게 선택권과 자유도를 제공하는 것이기도 합니다. 그러므로 제약의 개념을 적용하는 데에 무리가 있는 과업이라면 사용자에게 선택권과 자유도를 제공하되, 사전에 적절한 정보를 제공하여 정확한 판단을 유도하고, 만약 선택에 따른 위험 요인이 있다면 이를 경고해 주어 사용자의 실수를 줄여주는 것이 효과적인 디자인 방법일 것입니다.
그렇다면 사용자의 휴먼 에러에 대한 적절한 처방을 위해, 휴먼 에러가 어떻게 일어나는지 알아볼까요. 통상적으로 서비스 사용 중 사용자의 잘못으로 발생되는 일련의 것들을 실수로 불려지고 있는데요, 사실 실수는 휴먼 에러의 한 가지 타입입니다. 휴먼 에러는 착오(Mistake), 건망증(lapse), 실수(slip)로 구분될 수 있습니다. 휴먼 에러의 각 타입이 어떻게 발생하게 되는지 살펴보고, 그에 따른 휴먼 에러를 최소화할 수 있는 방안에 대해 살펴보도록 하겠습니다.
먼저 착오(mistake)는 사용자가 사용 상황을 제대로 파악하지 못해 잘못된 목표를 설정하고 행동해 발생하는 휴먼 에러인데요. 사용자는 자신의 행동이 틀린 줄 모르기 때문에, 그에 따라 사고가 발생하면 그 피해 규모가 클 수도 있습니다. 착오는 주로 상황 파악을 하는 데에 주어진 정보가 불완전하거나, 사용자의 관련된 지식이 부족할 때 발생하게 됩니다. 그러므로 이러한 착오를 줄여 주기 위해서는 사전에 상황을 파악할 수 있는 정보를 적절하게 제공해 주는 것이 효과적일 수 있습니다.
그럼 착오를 줄여주는 몇 가지 예를 살펴보도록 하겠습니다. 다음은 토스의 ‘사기 의심 사이렌’이라는 서비스인데요. 송금 전에 사기 의심 거래 여부를 바로 파악할 수 있도록 하는 서비스입니다. 만약 송금 계좌가 사기 거래나 보이스 피싱의 확률이 높은 경우에는 사용자에게 아래와 같은 팝업 정보를 제공하여 경고해 주어 사용자의 착오에 의한 금융 사고를 줄여 줄 수 있습니다.
또 다른 예로 BSD(Blind spot detection) 기능을 들 수 있는데요. BSD 기능은 자동차의 사이드 미러로 보기 힘든 사각지대에서 나타나는 차들을 센서로 감지해 아래 그림과 같이 사이드 미러에 표시해 주는데요. 만약 운전자가 이 표시 장치를 확인하지 차선 변경을 하면 경고음을 함께 제공해 위험을 알려줍니다. 사각지대를 보지 못해 발생하는 접촉사고가 많은 점을 고려했을 때, BSD 기능은 사용자의 착오를 줄여주어 재산 손실과 인명 피해를 함께 막아주는 데에 효과적으로 기여할 수 있습니다.
다음으로 건망증(lapse)은 깜빡 기억을 잊고 해야 할 행동을 하지 않은 경우에 발생하는 휴먼 에러인데요. 특히 과업의 수행 과정이 길거나, 기능을 작동시킨 후에 완료되는 데에까지 시간이 많이 소요되거나, 많은 정보량이 제공되는 과업에서 흔히 발생될 수 있습니다. 이러한 건망증을 최소화하기 위해서는 사용자가 직접 기억하지 않아도 과업을 수행할 수 있도록 제품이나 서비스에서 관련 정보를 제공해 주는 것인데요. 예를 들면 현재 제품이나 서비스의 상태를 표시해 준다 거나, 피드백을 제공해 준다 거나, 그리고 진행 단계를 표시해 주는 방법이 건망증을 방지하는 데에 효과적일 수 있습니다. 이외에 알림을 통해 사용자의 기억을 상기시켜 줄 수 있습니다.
아래의 그림은 캘린더의 일정을 등록하고 알림을 제공해 주는 기능인데요. 하루에도 수많은 일과 약속으로 누구나 일정을 깜빡하고 당황스러웠던 경험은 흔할 텐데요. 캘린더에 일정을 표시해 주고 알림을 통해 기억을 상기시켜 주어 이러한 부정적 경험을 줄여줄 수 있습니다.
또 다른 예로, 세탁기나 전자레인지를 작동시켜 놓고 다른 일을 하다 잊어버리고 십상인데요. 세탁기나 전자레인지의 동작 완료 음이나, 스마트폰의 가전 연동 앱으로 알림 정보를 제공하는 것도 건망증을 줄여주고 이로 인한 작고 큰 사용자의 손실을 방지해 주는 좋은 사례입니다.
마지막으로 실수(Slip)는 사용자가 상황 파악은 제대로 하였지만, 의도와는 다른 행동을 하여 발생하는 휴먼 에러입니다. 이러한 실수는 사용자의 목표와 이에 대한 결과의 불일치를 알려주면 쉽게 발견될 수 있기 때문에, 최종 행위를 실행하기 전에 피드백 정보를 제공해 주면 실수를 줄여줄 수 있습니다.
가장 대표적인 실수로 오타를 들 수 있는데요. 파워포인트나 워드 등과 같은 생산성 솔루션뿐만 아니라, 스마트폰의 키보드 앱을 보면 맞춤법 검사 기능을 통해 오타가 발생 시 밑줄로 표시해 주거나 추천어를 제공해 주어 사용자가 이를 수정할 수 있도록 도와줍니다.
또 다른 실수의 예로 문자 입력 중에 종료 버튼을 누른다 거나, 전호 번호를 전체 삭제 버튼을 실행하는 것과 같이 사용자가 의도치 않게 실수로 중요한 정보를 손실할 수 있는 과업이 있는데요. 아래 그림과 같이 노트나 앱을 최종 삭제하기 전에 팝업을 제공하여 사용자가 실수를 인지할 수 있도록 해 데이터 손실을 방지해 줄 수 있습니다.
원칙 2. 휴먼 에러가 일어나도 문제를 되돌릴 수 있는 방법이 제공되어야 합니다.
다양한 안전 대책에도 불구하고 어쩔 수 없이 실수가 일어났다면, 실수를 되돌 수 있는 방안을 제공되어야 합니다. 이를 통해 사용자는 실수를 복원하기 위한 많은 시간과 노력을 절약할 수 있습니다. 앞서 살펴본 실수를 방지하는 것이 최선의 방법이라면, 차선적으로는 실수를 되돌릴 수 있는 기회를 사용자에게 제공하는 것입니다.
이러한 실수를 되돌릴 수 있는 것을 오류 회복성(Error recovery)이라고 하는데요, 오류 회복성에는 크게 후방 회복성과 전방 회복성으로 구분될 수 있습니다. 후방 회복성은 사용자가 과거에 저질렀던 오류의 결과를 취소하고 오류를 저지르기 이전의 상태로 돌아가는 것으로, Back 버튼이나 Undo 버튼이 대표적인 예입니다. 전방 회복성은 사용자가 이미 범한 오류를 취소할 수는 없지만, 초기의 상태로 다시 되돌아갈 수 있는 경로를 제공하는 것으로, 기본값 복원이나 초기화이 그 대표적인 예입니다.
그럼 몇 가지 실제 예를 살펴볼까요, 아래는 Gmail의 메일을 전송하고 난 후의 화면인데요, 화면의 좌측 하단을 보면 메일을 보냈다는 피드백이 토스트 팝업으로 제공하면서, ‘실행 취소’ 버튼을 함께 제공하고 있습니다. 만약 사용자가 실수로 메일 보내기 버튼을 눌렀거나, 보내고 난 뒤 메일 상의 오류가 기억이 났다면 이를 취소하여 실수를 바로 잡을 수 있는 기회를 제공해 줍니다.
또 다른 예로 누구나 한 번쯤은 잘못된 메시지를 보내 본 경험은 있을 텐데요, 아래 화면은 카카오톡 메시지 삭제 기능입니다. 사용자는 이 기능을 이용해 잘못 보낸 메시지를 삭제하여 실수를 되돌릴 수 있습니다. 이러한 표용적인 기능을 통해 사용자는 만일의 상황에 실수를 되돌릴 수 있기 때문에, 더욱 자유롭게 커뮤니케이션을 할 수 있습니다.
안전성 vs 효율성
이번 글에서는 사용자의 실수를 최소화해 주어 표용적인 경험을 제공하는 안전한 사용에 대한 원칙을 살펴보았습니다. 이러한 사용자의 실수를 최소화해 준다는 개념은 사용성이 높다는 것과 연관됩니다. 왜냐하면 사용자에게 쉽고 익숙한 경험은 결국은 사용자의 실수를 줄여줄 수 있기 때문입니다.
그렇지만 안전한 사용 원칙 중 일부 개념은 사용자의 실수를 줄여주기 위해 사전에 정보를 추가적으로 제공한다거나 경고를 하는 것과 같이, 사용의 절차를 늘려주는 데요. 이는 결국 사용의 효율성을 저하시킬 수 있습니다. 반대로 효율성의 원칙 중 한 번에 자주 사용하는 기능을 바로 실행할 수 있는 숏컷(Short cut)의 개념은 정확성 향상을 위해 의도적으로 단계를 늘려준다는 안전한 사용 원칙의 개념과 상반되기도 합니다.
그렇다면 2가지 원칙이 상충될 수 있는 과업에서는 어떻게 디자인해야 할까요? 아래의 화면은 쿠팡의 결제 화면과 배달의 민족 결제 화면인데요. 쿠팡의 경우 결제 정보와 함께 ‘밀어서 결제하기’를 한 화면에서 제공해 빠른 결제를 할 수 있는 효율적인 프로세스를 채택했습니다. 반면에 배달의 민족은 별도의 화면으로 결제 정보를 확인하고, 최종 결제 전 비밀번호를 입력한 후에 결제가 진행될 수 있는 안전한 프로세스를 채택했습니다.
그렇다면 쿠팡은 안전하지 못한 결제 시스템을 가진 것일까요? 좀 더 자세히 과업의 특성을 살펴보면 쿠팡은 결제 내역을 취소하거나 환불할 수 있는 오류 회복성이 제공되는 반면, 배달의 민족은 결제가 이루어진 뒤에 바로 가맹점의 조리가 시작되기 때문에 이를 되돌리기 어려운 차이가 있습니다. 이러한 디자인 문제에서는 하나의 고정된 솔루션은 없을 수 있는데요. 당연히 UX 원칙들 간의 시너지를 통해 사용자에게 최적의 경험을 제공해 주면 좋겠지만, 결제 과업과 같이 효율성과 안전성의 교환 관계(Trade-off)가 있는 경우도 존재합니다.
아마도 쿠팡은 결제 취소나 환불이라는 오류 회복성을 제공할 수 있기 때문에, 결제 과정에서의 안정성보다는 효율성을 우선시했을 수 있었던 것으로 보입니다. 반면에 배달의 민족은 조리가 필요하기 때문에 취소나 환불이 어려운 배달 음식이라는 시스템 상 한계로 오류 회복성을 제공할 수 없기 때문에(주문접수 전의 찰나의 시간 안에만 주문 취소가 가능), 사전에 실수를 최대한 방지할 수 있는 안전성에 집중한 것으로 보입니다.
과업의 특성이나 실수로 인해 발생할 수 있는 위험성의 정도에 따라 다를 수도 있겠지만, 사용자에게 안전한 사용을 보장하는 것은 어쩌면 가장 중요한 가치일 수 있습니다.
急難之朋 酒食兄弟는 千個有로되 急難之朋은 一個無니라
명심보감의 한 구절인데요, 여기서 급난지붕(急難之朋)은 급하고 어려울 때 힘이 되어주는 친구라는 의미입니다. 급하고 어려울 때 사용자에게 힘이 되어주는 UX는 감동 그 자체일 것입니다.
오의택 님이 브런치에 게재한 글을 편집한 뒤 모비인사이드에서 한 번 더 소개합니다.