훌륭한 에러 메시지 쓰는 법

YoungIm JO
9 min readSep 9, 2015

역자 주 - 이 글은 Thomas Fuchs의 허락을 받아 그의 포스팅 How to write a great error message를 의역한 글입니다.

사무실의 자기 자리에 앉아 있다고 상상해 봅시다. 이번주 내내 곧 다가올 제품 소개를 위해서 업무를 열심히 해서 너무 피곤하고 짜증난 상태고, 드디어 주말이 오기만을 기다리고 있다고요.

하지만 일단 새 제품을 위한 홈페이지가 윈도우 10에서 정상 작동하는지 테스트를 해봐야 합니다. 문제 없죠. 믿음직스러운 맥북에는 윈도우를 돌릴 수 있는 소프트웨어가 깔려있을거라 믿고 있으니까요.

그 소프트웨어를 켜고, 윈도우가 약간 귀찮게 굴면서 몇가지 업데이트를 하겠냐고 매너좋게 물어봅니다. 당신은 그래, 업데이트 하렴, 이라고 대답하죠.

그리고나서 당신은 이 화면을 보게 됩니다.

뭔가 뭔가

이 화면이 좀 재미있었을 수도 있었을 겁니다. 마감이 가깝지만 않다면 말이죠.

음, 빡치긴 하지만 좀 가라앉히고 이 스크린샷을 온 세상에 공유해야겠다고 생각합니다 - 아니면 최소한 트위터에라도 말이죠.

신나서 저 스크린샷을 맥용 트위터에 끌어다 놓고, 트윗 버튼을 누릅니다. 그러면 이런 일이 벌어집니다 :

그놈의 media ids라는 놈들이 또!

생각이란걸 하지 않는 게으른 개발자들과 디자이너들 때문에 인류에게 닥친 이런 전 세계적 고통에 의한염세주의에 대해 한참동안 생각하다 이성을 찾고 나서 생각합니다 - 맛있는 걸 먹으면 도움이 되겠지.

환상적인 계획이야! 벤처 투자사들에서 나온 수백만 달러와, 멋진 콧수염을 만지작거리며 젊음의 가장 좋을때를 호화로운 샌프란시스코에서 보내는 기술 힙스터들에게 고마워하며 부리또를 배달시키자!

그렇지만 주문 전에 먼저 Postmates가 당신을 위해 준비한, 밑도 끝도 맥락도 없이 나오는, 중요하고도 철학적인 질문에 대답을 해야 합니다.

전 'No’를 눌렀습니다. 진짜 확신이 없거든요.

진짜 도움이 되는 에러 메시지에는 뭐가 들어가는 걸까요?

좀 각색되었지만 지난주에 실제로 이런 일들이 제게 일어났습니다. 그렇다면 훌륭한 에러 메시지는 어떻게 생겨야 하는지 한 번 함께 보기로 하죠.

좀 더 잘 알아야 하는 사람들*이 어떻게 생각하는지 볼까요. 애플은 수년간 사용자 인터페이스 디자인의 선두를 달려왔습니다. 최근에는 약간 느려지긴 했지만(디자이너들을 주로 주목하는 사람은 아마 더이상 없을 겁니다), 여전히 좋은 이야깃거리들을 가지고 있죠.

OS X의 Human Interface Guideline에서 알림(alert)은 다음과 같이 설명되어 있습니다.

알리려는 상황을 명확하고 간결하게 설명하는 알림 메시지를 작성하십시오. "에러가 발생했습니다"같은 알림 메시지는 사용자를 어리둥절하게 만들며 그 메시지를 보는 사용자를 짜증나게 할 수 있습니다. (...) 결과에 대해 상세하게 설명하는 유익한텍스트를 쓰고, 가능한 해결책이나 대안을 제시하십시오. 왜 사용자가 해당 상황에 대해 신경을 써야 하는지를 설명하기 위해 필요한 정보를 제공하십시오. (...) 유익한 텍스트는 문제 해결을 위한 선택지를 함께 제공하는 것이 가장 좋습니다. (...) 모든 것을 사용자의 언어로 표현하십시오. 알림이 암호같다거나 난해한 언어로 쓰여진 경우, 사용자가 알림을 보는 것 자체가 매우 불편할 수 있습니다. (...) 기본 버튼으로 OK를 쓰는 것은 피하는 것이 좋습니다. 사용자가 어떤 것을 할것인지 확인하는 알림창에서조차 OK의 의미는 모호합니다. 예를 들어 OK라는게 "OK 나는 이 액션을 끝내고 싶어" 라는 뜻일까요? 아니면 "OK, 내 액션이 일으킬 부정적 결과들에 대해서 이제 이해했어" 라는 뜻일까요?

이제 뭔가 좀 알 것 같습니다. 어이구, 심지어 용어와 단어 선택에 대한 훌륭한 글도 있네요.

당신의 앱에 들어가는 아이콘과 이미지들을 위해 전문 그래픽 디자이너의 도움을 받는 것이 최선의 방법이듯, 사용자에게 노출되는 텍스트들은 전문 작가의 도움을 받는 것이 최선입니다.

앱의 프로덕트 매니저, 디자이너, 혹은 개발자로서 당신의 일은 앱 내부의 카피를 작성하는 것은 그냥 부수적으로 할 수 있는 일이 아니라는 걸 깨닫는 겁니다. 앱이 정상적으로 작동하게 하고, 사용자 인터페이스를 충분히 쉽고 효율적으로 사용할 수 있게 만드는 것 만큼이나 중요한 일입니다.

*물론 완벽한 사람은 없죠. 하지만 최소한 그들은 고맙게도 최대한 시도를 해줍니다.

그리고 흔한 용의자들이 여기 있습니다...

그렇다면 현실에 존재하는 에러메시지들이 과연 기준선을 넘는지 아닌지 함께 봐봅시다.

아이고, 윈도우폰. 안타깝지만 "업데이트를 현재 확인할 수 없습니다"는 기준에 미치지 못합니다. 왜 휴대폰이 현재 업데이트를 확인할 수 없는거죠? 사용자는 업데이트를 확인 못하는 것에 대해 뭘 할 수 있는거죠?

이 문제에 대한 실제 답은 다음과 같습니다 : 휴대폰의 시계가 실제 날짜와 다르게 설정되어 있었고, 이때문에 업데이트 서버의 SSL 인증서가 유효하지 않게 되어버려 위의 메시지가 나온 겁니다. 시계를 제대로 설정하고 나니 괜찮아졌습니다.

"보안상의 이유로 업데이트가 가능한지 확인할 수 없습니다. 휴대폰의 시간과 날짜가 정확하지 않은 경우 이런 문제가 발생할 수 있습니다. 시간과 날짜 설정을 확인한 뒤 다시 시도해 보세요!" 왜 이런 에러메시지가 아닌걸까요? 좀 더 앞서 나가서, 운영체제가 시간과 날짜를 제대로 설정하는지 확인할 수는없는걸까요?

아 진짜, 구글, 누가 신경쓴다고 그러는 거죠? 왜 이 알림(이 알림은 iOS의 위치 정보 허가 알림이 아니라는걸 눈여겨 봐주세요)때문에 사람들이 하던 일(브라우저 사용)이 끊겨야 하는거죠? 이게 어떻게 OK인거죠? 이런 내용을 이렇게 보여주는게 좋은 아이디어라고 누가 생각할까요?

사람들에게 위치 정보를 보내는 기능을 켜고 싶은지 물어보는건 완전 괜찮습니다. 검색엔진이니까 충분히 이해할만 하죠. 하지만 즉각적으로 결정을 해야 하는 중요한 문제나 이슈를 사용자에게 알려주기 위해 있는 운영체제 수준의 작동방식을 남용하지 마세요.

안돼요, 안돼, 안됩니다. 왜 99%의 다른 소프트웨어들이 하는 기능(취소)가 아닌, 이상한 설정을 위해서 알림창이 필요한거죠?

네, 저도 몇몇 어도비 소프트웨어들이 "ESC”키를 변경내역을 확정하기 위해 쓴다는 걸 압니다. 하지만 그렇다고 해도, 그런 설정은 다른곳에서도 할 수 있습니다. 이런 문제로 짜증낼 파워 유저들은 어떻게 설정하는지 쉽게 찾아낼 겁니다.
일단 취소 기능을 기본으로 하되, 창 아래쪽에 "변경사항 반영을 위해 ESC를 누르셨나요? 취소가 아니라 변경사항 반영을 기본으로 설정하려면 여기를 누르세요"라는 내용의 바를 띄우는 것이 다른 해결책일 수 있을 겁니다. 이건 알림창으로 물어볼 필요는 없습니다.

가장 중요한 교훈:
가장 좋은 에러 메시지는 아예 나오지 않는 메시지다

위의 예시 모두는 사실 에러를 보여주지 않고 피해갈 수도 있습니다. 윈도우 10 설정에 대해서는 확실히 모르겠지만, 윈도우 10 스스로도 확실히 모르는 것 같습니다.

  • 트위터 에러의 경우, 트위터에 첨부파일을 올렸을 때 뭐가 문제인지 바로 설명하면 됩니다. 좀 더 좋은 방법으로는 문제를 해결한 뒤, 제대로 해결되었는지를 물어보는 방법이 있습니다. 사실 제가 좀 꼼수를 썼거든요 : 고해상도 이미지(너비가 10,000픽셀)를 트위터에 올렸는데, 트위터에는 해상도 제한이 있습니다. 왜 제가 업로드 하기 전에 미리 알려주지 않는거죠? 클라이언트가 자동으로 사이즈를 조절해서 해상도 제한에 걸리지 않게 할수도 있잖아요? 리사이즈를 한 뒤에 알림창이 아닌 작은 창으로 “알림 : 이 이미지는 트윗에 포함될 수 있도록 사이즈가 조절되었습니다” 같은 메시지를 줄 수도 있습니다.
  • Postmates 알림 : 정확히 무엇에 대해 물어보는건지 이야기 하지 않는다면, 사실 그렇게 중요하게 보여줄 필요도 없는 것입니다. 제가 "No”를 눌렀을 때 별로 나쁜 일은 일어나지 않았습니다.
  • 윈도우 폰 업데이트 메시지 : 운영체제가 시간과 날짜를 자동으로 인식하게 만들면 됩니다. 무선 통신망을 통해서 인터넷에 연결되어 있잖아요. 통신을 통해 시간과 날짜를 확인하는 건 30년도 더 된 기술입니다.
  • 당신을 좀 더 엿볼 수 있게 허락해달라고 매달리는 구글 크롬 : 진지하게, 그냥 검색 결과 같은데 맨 위에 배너를 보여주거나 하면 됩니다. 그렇게 절박하게 제 프라이버시를 침범할 필요는 없잖아요?
  • 포토샵 : 정상적인 설정을 기본으로 배포하면 됩니다. 개별 설정에 대해서는 되돌리기 기능이 포함된 액션 배너*나 튜토리얼을 통해서도 설명할 수 있습니다.

*좋은 예시로는 메일을 보낸 뒤 나오는 쥐메일의 "발송 취소하기(Undo sending?)" 배너가 있습니다. 이렇게 하는게 알림창을 띄워서 "진짜로 발송하시겠습니까?" 라고 묻는 것 보다 훨씬 낫죠.

여러분이 요청하실 것 같아서, 인쇄해서 자리에 붙여놓을 수 있는 체크리스트를 만들었습니다. 앱에 알림창을 추가할까 하는 생각이 들 때 읽으세요.

에러 메시지를 쓸 때 가장 중요한 3가지

  1. 알림창을 사용자를 꼬시거나 불필요한 정보를 보여주기 위해 사용하지 마세요. 사람들은 진짜 중요한 메시지도 읽지 않게 될 겁니다.
  2. 사람들이 메시지의 맥락을 알거라고 가정하지 마세요. 사용자는 여러개의 앱을 바꿔가며 쓰다가 알림창이 뜬지 며칠 지나서야 알림창을 볼지도 모릅니다. 언제든 이해할 수 있도록 충분한 정보를 넣으세요.
  3. 친근하고, 전문적이지 않으며, 위협적이지 않은 톤으로 메시지를 쓰세요.

한줄 요약 : 전문가가 아닌 사람들이 이해할 수 있고, 조치를 취할 수 있는 에러 메시지를 쓰세요.*

*그런 에러 메시지인지 확신이 없다고요? 전문가가 아닌 사람들에게 보여주고 그 뜻을 당신에게 설명해 줄 수 있는지 물어보세요.

Medium, 너도 좀 더 잘할 수 있어!

--

--