티스토리 뷰

《마이크로인터랙션 – 디테일에 강한 인터랙션 디자인》 댄 새퍼 (2015.5)

 

마이크로인터랙션의 네 가지 요소 ①트리거, ②동작규칙, ③피드백, ④순환과 모드 중 NOTE1에서 트리거와 동작규칙에 대해 정리했었다. 여기서는 동작규칙부터 이어서 나머지 부분을 정리하려고 한다. 

 

관련 글 

《마이크로인터랙션 – 디테일에 강한 인터랙션 디자인》 NOTE 1

 

 

 

1. 동작규칙

 

제한된 선택 항목과 세심한 기본값

동작규칙을 최소한으로 하는 가장 좋은 방법은 사용자의 선택을 제한하는 것이다.
마이크로인터랙션 전체에 걸쳐 기본 선택값을 잘 준비해 두면 사용자가 중간에 뭔가를 선택해야 할 필요조차도 없을 것이다. 모든 마이크로인터랙션이 하나의 행동을 하고, 그 행동이 다음으로 연결된다. _88

주요한 선택 항목은 딱 하나만 있는 게 좋다. 이는 사용자에게 상-중-하 온도 조절 같은 선택권을 주지 말아야 한다는 게 아니라, 동작규칙을 바꿔버리는 선택 항목을 여러 개 제공하지 않는 게 좋다는 것이다. 
이를테면, 로그인 마이크로인터랙션에서 흔히 찾아볼 수 있는 ‘비밀번호를 분실했다면?’ 모드가 여기에 해당한다. 이 링크는 사용자를 다른 모드로 보내게 되고, 그 모드는 (의도한 대로라면) 사용자가 비밀번호를 다시 알게 된 후에 결국은 원래의 모드로 돌아오게 하는 역할을 한다. _89, 90

 

책에서는 모드 사용을 웬만하면 피하라고 한다. 아래에서 ‘순환과 모드’에서 자세한 이야기가 나온다.

 

가장 눈에 띄는 기본값은 대부분의 사람들이 제일 흔하게 하는 행동에 부합해야 한다. 기본값을 자동으로 설정하는 게 사용자에게 좋지 않다고 여겨지는 경우에도, 그 기본값은 최소한 시각적으로 눈에 띄어야 한다. _90

 

노트1에 적었듯이 핀터레스트의 핀 저장 인터랙션을 통해 ‘잘 정해진’ 기본값에 대한 장점이 확인 된다. 

 

 

조작 장치와 사용자 입력

조작 장치를 구성할 때는, 조작상의 단순함인식상의 단순함 사이에서 선택을 해야 한다. 조작상의 단순함은 모든 명령에 각각 별개의 조작 장치를 부여한다. 인식상의 단순함은 하나의 조작 장치가 여러 가지 동작을 하게 된다. 
음량 조절의 사례로 보자면 조작상의 단순함은 버튼 세 개를 적용하는 방법이다. 하나는 소리를 더 크게, 하나는 더 작게, 나머지 하나는 음소거 상태를 만든다. 
인식상의 단순함은 음량 조절을 위해 슬라이드 바나 스크롤 휠을 적용하는 경우가 이에 해당한다. _92

 

문자 입력 칸에 입력되는 내용은 다른 곳에서 복사해서 붙여 넣거나 사용자가 기억하고 있던 내용을 직접 타이핑하는 등 온갖 방식으로 입력될 수 있으므로, 그런 내용을 다루는 데 있어서 유연성이 필요하다.
문자 입력 칸은 특히 시스템 디자이너가 불가피한 다양성이라고 부르는, 다양한 조건에서 제대로 동작할 수 있는 능력이 필요하다. 이를 위해서는 입력된 내용을 받아들인 뒤에 그 내용을 프로그램이나 데이터베이스가 처리할 수 있는 형식으로 변환해야 할 수도 있다. _93, 94

 

연락처 입력 양식에 하이픈(-)이 포함된 전화번호를 복사해서 붙여 넣었을 때 텍스트필드에 전화번호 중 하이픈이 제거된 값이 남게 경우를 볼 수가 있는데 그런 것을 말하는 듯하다. 

 

드롭다운 메뉴 같은 목록에서 항목의 순서를 정할 때 알파벳 순서나 최근에 사용한 항목 순서처럼 미리 정해져 있는 방식을 따르는 게 말이 될 때도 있다. 하지만 어떤 경우에는 언뜻 보기엔 논리적이지 않아 보이는 방식이 더 낳을지도 모른다.
이를테면 사용자 대부분이 미국에 살고 있다면, 그들이 국가를 선택해야 할 때 미국 United States을 선택하기 위해 U앞의 알파벳 20자 분량의 목록을 스크롤하게 만드는 것은 말이 안 된다. 이성적인 결정으로 보이지는 않더라도 미국을 목록의 맨 앞에 두거나 기본 선택 항목으로 만드는 편이 좋다. _94

 

때로는 하나의 조작에 대한 장치를 두 개 이상 만들어 두는 게 좋을 때도 있다. 특히 사용자가 자주 사용하게 될 마이크로인터랙션의 경우에는 빠른 명령(단축 명령)을 디자인에 포함시키는 게 좋다.
데스크톱 소프트웨어의 경우, 전통적으로 단축 키의 형태로 나타난다. 
터치 스크린 기기나 트랙 패드의 경우 (보통 멀티터치 기능을 통한) 사용자의 동작을 통해서 실행된다. _95

 

인터랙션 디자인 원칙에 나오는 익숙해진 사용자를 위한 빠른 방법을 마련해 두라는 것과 일맥상통하는 내용이다. 아이패드에서 홈 화면을 보려면 홈 버튼을 누르는 것이 대표적인 방법이고, 또 다른 방법으로 스퀴즈 제스처를 통해 홈 화면을 볼 수 있게 한 것은 빠른 방법이라 할 수 있겠다. 

 

[출처] http://www.cultofmac.com/222441/five-secret-ios-gestures-you-need-to-know-about-feature

 

 

마이크로카피

마이크로카피 microcopy, 즉 레이블이나 안내문과 같은 자잘한 문구들은 동작규칙을 이해하는 데 중요한 역할을 담당한다.
마이크로카피 하나가 마이크로인터랙션 전체를 이룰 수도 있는데, 페이스북의 좋아요 ‘버튼’이 그 사례이다. 좋아요 마이크로인터랙션은 결국 ‘좋아요’라는 파란색 단어가 전부인 것이다. _98

 

시스템 트리거를 이용하면, 사용자에게 정말 유용한 마이크로카피가 꼭 필요한 순간에 나타나게 만들 수 있다. 예를 들어, 회사 웹사이트의 연락처 페이지를 업무 시간이 아닐 때 방문하게 되면 전화번호 옆에 ‘죄송합니다. 지금은 업무 시간이 아닙니다.’라는 메시지가 나타나게 할 수 있다. 이 자체도 물론 하나의 마이크로인터랙션이 된다. _98

 

레이블을 표시하기 가장 좋은 곳은 조작해야 할 대상의 바로 윗부분이다.
이런 배치는 레이블과 조작할 대상을 한눈에 볼 수 있게 해준다. 눈으로 레이블과 조작 대상 사이를 오가는 데에 시간을 쓰고 머릿속으로 그 둘을 연관지어야 할 필요가 없다는 것이다. 하지만 전통적으로, 아이콘은 그 아래에 레이블을 놓는 것으로 굳어져 있다. _99, 100

 

레이블을 문자입력란 안에 넣는 것은 조심하도록 하자. 사용자가 문자를 입력하려고 입력란을 클릭하면 레이블은 사라지게 되며, 입력란에 무슨 내용을 입력해야 하는지를 잊어버린 경우에는 레이블을 다시 보여줘야 한다. _100

 

텍스트필드 안에 레이블을 적어놨을 때 제기되는 이 문제는 구글의 플로팅 라벨 방법으로 해결이 가능해 보인다. 

다음은 제플린의 로그인 화면이다. 

zeplin.io의 로그인

처음에 텍스트필드에 레이블이 적혀있다. 텍스트필드를 클릭해서 커서가 위치해도 레이블은 사라지지 않고 그대로 있다. 입력을 시작하면 레이블이 노란색으로 바뀌고 크기가 작아지며 텍스트필드 위쪽으로 이동한다. 

 

동작규칙은 약간 다르지만 인비전의 로그인도 플로팅 라벨 방법이 사용되었다. 

invisionapp.com의 로그인

 

안내문에 사용된 표현은 조작부의 명칭과 정확히 일치해야 한다. 이를테면 안내문에는 ‘상품을 쇼핑 카트에 추가하십시오.’라고 해놓고 버튼에는 ‘상품 추가’가 아니라 ‘물품 구매’라고 적어 놓으면 안 된다. _100


가능하다면, 정확한 기술보다 상대적인 설명을 적용하는 게 좋다. 정확한 날짜와 시간을 표시해서 사용자가 머릿속으로 그 내용을 해석하고 그게 언제였는지를 계산하게 만드는 것보다, ‘3시간 전’이라고 표시하는 편이 훨씬 이해하기가 쉽다. _100


인스타그램, 트위터, 에버노트, 페이스북, 미디엄 등 규칙은 약간씩 다르지만 다양한 서비스에서 시간 표시를 그렇게 제공한다. 페이스북과 미디엄은 등록된지 1~2일 이내의 글, 트위터와 에버노트는 최근 1주 이내의 글을 상대시간으로 표시한다. 에버노트는 상대시간 중에서도 요일로 표시를 해준다. 

 

인스타그램 사진 및 댓글 등록 시점. 
3시간, 1일, 6일, 1주

 

 

에버노트 모바일앱 글 등록 시점. 
오늘 등록된 것은 시간, 등록한지 1주 이내의 글은 요일로 표시한다. 
등록한지 1주가 지나면 날짜로 표시한다.

  

  

블로그 서비스 미디엄 medium

 

 

위치 추적 모바일앱 Zenly
체크된 마지막 시점을 상대시간으로 표시한다.

 

 

 

2. 피드백

 

피드백은 동작규칙을 부각시킨다

마이크로인터랙션에 있어서 피드백의 진정한 목적은 사용자들이 그 마이크로인터랙션의 동작규칙을 이해하도록 돕는 것이다 _111

 

피드백의 첫 번째 원칙 : 피드백을 통해서 사용자에게 지나친 부담을 주지 않는 것이다 _113

사용자는 매번 센서가 가동하거나 기기가 정보를 받아 올 때마다 그 사실을 알아야 할 필요는 없다. 뭔가 중요한 변화가 있을 때만 알려 주면 충분하다. 예를 들어서 새로 도착한 메일이 없다는 사실을 매번 확인할 때마다 표시하기보다, 새 메일이 도착했을 때만 알려주면 된다. _112

피드백이 일어나야 하는 경우 _114, 115

      • 수동 트리거가 작동한 직후, 사용자가 트리거를 조작하는 동안, 그리고 조작이 완료된 후.
      • 마이크로인터랙션이나 주변 조건에 중대한 변화를 일으킨 시스템 트리거가 작동했을 때.
      • 사용자가 정의된 동작규칙의 범위를 벗어나려고 할 때.
      • 시스템이 명령을 수행할 수 없는 경우.
      • 시간이 오래 걸리고 중대한 작업의 진행 상황을 보여 주는 경우.
      • 어떤 과정의 시작이나 끝.
      • 모드가 시작하거나 끝날 때, 혹은 모드가 바뀔 때.

피드백의 두 번째 원칙 : 피드백을 뚜렷한 이유 없이 제공하면 안 된다. _118

피드백의 세 번째 원칙 : 최소한의 피드백으로 최대한의 정보를 전달한다. _119

피드백의 네 번째 원칙 : 디자인 과정에서 간과하기 쉬운 부분을 메시지 전달 방법으로 활용하라. _119

 

마이크로인터랙션은 다른 인터페이스에서 사용되는 관습적인 구성 요소(스크롤 바, 커서, 프로그레스 바, 툴팁, 마우스오버 효과 등)을 포함하고 있다. 그런 부분은 디자인을 할 때 간과하기 쉽지만, 잘만 활용하면 피드백을 전달하는 데 아주 유용하다. 이런 접근 방법을 이용하면 화면에 새로운 항목을 추가할 필요 없이, 기존보다 많은 내용을 전달할 수 있다. _119

 

크롬 브라우저에서 찾기를 하면 스크롤바 위에 결과에 대한 힌트를 준다.

 

 

개성을 표현하는 수단으로서의 피드백

동작규칙에 대응하는 트리거나 다른 조작 장치들은 그 실용성이 중시되는 데에 반해서, 피드백은 마이크로인터랙션은 물론 제품 전체에 어떤 개성을 부여하는 역할을 함께 수행할 수 있다. _120

인간의 의인화 성향을 활용하기 위해서, 제품을 디자인할 때 의도적으로 성격을 추가할 수 있다. 이러한 접근은 특히 마이크로인터랙션에 잘 적용되는데, 이는 마이크로인터랙션의 간결성 덕택에 그렇게 개성을 드러내는 순간이 거슬리거나 짜증나기보다 애교스럽게 느껴질 가능성이 높기 때문이다. _121

Google Voice에서는 작성하고 있는 문자 메시지가 정도 이상으로 길어지면 글자수 대신 ‘Really?(이걸 한번에 보내려고요?)’라고 표시한다. _121

littlebigdetails.com의 Zoli Honig

 

애플 시리는 명쾌하거나 사실에 입각한 응답을 할 수 없는 ‘삶의 의미가 뭐죠?’ 같은 질문에 대해서는 ‘잘 모르겠는데요. 하지만 그런 문제를 위한 앱은 있을 것 같네요’ 같은 답변을 제공해 준다. 다시 말해서, 단순한 오류 메시지(‘죄송합니다. 답변해 드릴 수 없습니다.’)로 표현할 수 있는 내용이 재미있고 매력적으로 바뀐 것이다. _121

 

 

피드백의 방법

    • 시각적 피드백 : 애니메이션, 메시지
    • 음향 피드백 : 이어콘, 음성
    • 햅틱 피드백


사용자가 결정을 내리기 위해서 봐야 하는 정보가 무엇인지를 생각해 보고, 필요한 정보를 가능한 한 섬세한 방식으로 표시하라. 대부분의 경우 사용자가 알아야 하는 정보는 시간, 노력, 읽지 않은 메시지 등과 같이 자원에 관련된 내용이다. _124

애니메이션에 있어서 가장 중요한 부분은 동작원리에 대한 일종의 행동 모델을 정확하게 보여줘야 한다는 데 있다. 왼쪽에서 밀려 들어오는 패널이 사실은 사용자가 손가락을 아래로 내리는 동작으로 불러내야 한다거나 다시 왼쪽으로 밀어낼 수 있는 게 아니라면, 애당초 그런 애니메이션을 사용하지 말아야 한다. _126

사용자가 응답을 유도하는 대목은 맨 뒤에 놓아야 한다. “’예’라고 말하면 소리를 끌 수 있습니다.”라고 하지 말고 “소리를 끄려면, ‘예’라고 말하세요.”라고 해야 하는 것이다. 사용자의 행동은 항상 지시문의 끝에 언급해야 한다. _135

 

 

피드백의 동작규칙

    • 맥락 변화
    • 지속 시간
    • 강도
    • 반복_138

 

 

 

3. 순환과 모드

모드에 관한 부분은 저자가 전하고자 바가 무엇인지 좀 헷갈린다. 모드에 대한 정의나 범위가 광범위하게 느껴져서 그런가? 책에서는 로그인 인터랙션에서 비밀번호 찾기 또한 별도의 모드라고 설명한다. 

마이크로인터랙션에서는 모드가 없는 게 좋다고 이야기하면서도 반드시 모드가 필요한 경우에 대비한 방법을 더 길게 설명한다. 

 

모드는 동작규칙에 있어서 갈라진 가지와 같은 개념이다. 마이크로인터랙션에서 모드는 아주아주 신중하게 적용해야 한다.

일반적으로 모드를 피해야 하는 이유는 화면에 명확하게 드러나지 않는 모드에 들어가게 되면 사용자의 오류를 야기할 수 있기 때문이다. 예를 들어서 편집 모드에 있을 때 사용자는 익숙한 화면이 아닌 새로 나타난 화면에 대한 사용법을 다시 배워야 한다. 화면 상의 항목을 클릭하는 단순한 동작도 완전히 다른 기능을 수행할 수 있다. _145, 146

 

이를 테면 이런 경우를 말하는 듯하다. 다음은 벅스뮤직앱의 재생목록 화면이다. 이 화면에서 ‘노래제목을 탭하는 동작’은 모드에 따라 수행하는 기능이 다르다. 

  • 기본상태에서 노래제목을 탭하면 그 노래가 재생된다.
  • 편집모드에서 노래제목을 탭하면 그냥 선택이 된다. (선택 작업을 마친 후 삭제나 저장 등의 기능을 실행할 수 있다.)

 

기본상태에서 노래제목 탭 했을 때. 
노래 재생이 되고 있음을 소리와 아이콘의 표시로 피드백

 

 

편집모드에서 노래제목 탭 했을 때.
노래가 선택되었음을 아이콘의 변화로 피드백, 그리고 기능을 사용할 수 있음을 아이콘의 변화로 피드백

 

 

책의 1장에서 옛날 옛적에 ‘브라보’라는 이름의 문서편집기에 대해서 소개하는데 그 시절에는 그랬단다. 보고 있는 화면은 그대로이고(이게 문제였던 듯. 모드에 따라 화면전환이나 그 모드만의 특징적인 표시가 없었던듯하다) ‘I’나 ‘R’같은 특정 키를 눌러서 모드와 모드 사이를 오가며 복사하기 붙여넣기를 할 수밖에 없었단다. 그러던걸 래리 테슬러가 NOMODE를 주장하며 ‘집시’라는 문서편집기에서(이것 역시 옛날 옛적 이야기) 모드 전환을 하지 않고 현재 상태에서 복사해서 붙여넣기가 가능하도록 Copy and Paste기능을 개발해서 적용했단다. 
‘브라보’의 모드가 발생시키는 문제는 작업 중에 잠시 자리를 떠났다가 커피를 가지고 돌아왔을 때 현재 상태가 입력모드인지 편집모드인지 헷갈릴 수가 있다는 점이다. 입력모드인줄 알고 단어 Interest를 입력하기 시작했는데 삽입(Insert) 모드로 상태가 바뀌어 엉뚱한 작동을 일으킬 수 있다는 이야기다. 
너무 옛날 프로그램의 사례라서 모드의 단점에 대해 와 닿지가 않는다. 

개인적인 생각으로는 모드를 적절히 사용하는 것이 더 좋지 않나 싶다. 처음 사용자 또는 가끔 사용자의 입장이 아니어서 그런가. 저자가 말하는 모드를 사용함으로써 발생하는 오류상황은 요즘에 와서는 오류를 줄일 수 있는 방법을 얼마든지 찾을 수 있지 않나 싶다. 
벅스뮤직이나 네이버뮤직 같은 음악 앱만해도 재생목록의 순서 변경이나 여러 곡을 일괄 삭제 하려면 편집모드를 통해서만 가능하다. 편집모드로 들어갔을 때 화면에는 편집모드에서만 보이는 요소들이 배치되어 편집모드라는 사실을 충분히 인지할 수 있다고 본다. 
몇몇 저명한 사람들이 말하길 추측하지 말고 사용자를 관찰해서 결론을 내리라고 하는데 그들 말처럼 내 제품을 이용할 대상 사용자들을 관찰해서 결론 내리는 수밖에 없는듯하다. 그런데 그게 어디 쉽게 진행되는 일인가? 그렇게 하는 게 당연하다고 생각하는 사람들과 일하면 좋겠다. 잠시 샛길로 빠졌다. 다시 책으로 돌아가서. 

 

모드를 사용할 수 밖에 없는 경우의 대안

마이크로인터랙션에서는 전통적인 모드 대신 용수철 모드 spring-loaded mode나 일회성 모드 one-off mode를 사용할 수도 있다. 이 두 가지 모드는 사용자가 무슨 모드에 있는지도 모르면서 갇혀 있는 경우가 없도록 해준다. _147

 

용수철 모드 (유사 모드라고 부르기도 한다) 
키를 누르거나 마우스 버튼을 누르는 것처럼 물리적인 행동을 했을 때 활성화되고 그 행동이 멈추면 종료된다. 전형적인 사례로는 키보드에서 쉬프트 키를 누르는 것을 들 수 있다. _147 
시작 버튼을 오래 누르고 있으면 재시동이나 재설정을 할 수 있는 것도 용수철 모드에 해당한다. 
검색 창에서의 자동완성 기능은 검색 창에 문자를 입력했을 때만 나타나기 때문에 용수철 모드의 일종이라고 할 수 있다. _148

 

일회성 모드
사용자가 한 번의 행동을 수행하는 동안만 지속되고 바로 종료되는 모드이다. 이를테면, 아이폰에서 문자를 두 번 탭하면 잘라 붙이기 선택창이 나타났다가 제시된 기능 중 하나를 선택하면 바로 사라진다. 
일회성 모드는 동작이나 음성을 이용한 마이크로인터랙션에도 도움이 될 수 있다. 이를테면 엑스박스 게임기의 경우 명령 키워드( ‘엑스박스’라는 명령어가 사용된다)가 일회성 모드의 트리거가 되어 뒤따라오는 음성 명령을 실행시킨다. _148
일상 생활에 적용이 된다면 “조명! 어둡게!” 라든가 “티비! 종료!”라고 하는 식이다.
동작 인터페이스에서도 손 흔들기 같은 특정 동작을 마이크로인터랙션의 트리거로 사용하여 따라오는 동작 명령을 실행시키는 일회성 모드를 활성화 시킬 수 있다. _149

 

일회성 모드는 어느 정도 시간이 지나면 종료되어야 하며, 이를 위해서 필요한 것이 순환 의 개념이다. 
마이크로인터랙션 용어로 순환은 설정된 시간마다 주기적으로 반복되는 상황을 말한다. 
순환은 (직접적이든 간접적이든) 동작규칙을 통해 표현된다. ‘데이터를 매 30초마다 확인한다’라거나 ‘3분 동안 실행하고 나서 멈춘다’라거나 ‘10일 후에 알림 메시지를 보낸다’라는 등은 모두 순환을 표현하고 있는 사례다. _149

 

인터넷 뱅킹 웹사이트의 경우 사용자가 몇 분 동안 아무 행동도 하지 않으면 자동으로 접속을 종료시켜버리는 경우 _152

우리은행 자동 로그아웃

 

사용자가 마이크로인터랙션의 어떤 부분에 너무 오래 머물러 있다면, 그 상황에 쓸모가 있을 법한 도움말을 보여 줄 수 있다. TED 웹사이트는 동영상이 너무 오랫동안 버퍼링 상태에 있으면, 사용자에게 그 동영상을 다운로드 받아 나중에 볼 수 있는 기능을 알려 준다. _152

 

장기적 순환

마이크로인터랙션을 디자인할 때 특정한 하나의 작업을 수행하는 데에 집중하는 대신 오랜 시간에 걸친 동작을 함께 고려함으로써 장기적 순환으로 만들 수 있다. 마이크로인터랙션을 두 번째로 실행할 때 그 행동을 개선할 수 있는 방법이 있는가? 열 번째 수행할 때는 어떤가? 만 번째 수행할 때는 어떨까? _153

장기적 순환의 또 다른 사용 사례는 오랜 기간에 걸쳐 기능을 점진적으로 공개하는 것이다. 사용자가 제품에 익숙해지면 상세한 안내는 더 이상 필요가 없으며, 그 대신 숙련된 사용자로 대우받아야 한다. 예를 들어, 사용자가 마이크로인터랙션을 몇 차례 사용하고 나면 단축키처럼 더욱 진보된 기능을 추가할 수가 있다.
다른 접근 방법은 점진적인 축소로, 사용자가 점차 마이크로인터랙션에 익숙해져 사용법에 대한 설명이 불필요해짐에 따라 마이크로인터랙션이 단순해지는 것이다. 하지만 이 방식은 신중하게 적용해야 한다. _156

 

LayerVault에 적용된 점진적 축소의 예 _157
처음에는 ‘Signpost’ 버튼이 커다란 아이콘과 문자 레이블로 제시되지만, 사용자가 익숙해질수록 문자 레이블이 사라진다. 

 

 

[출처] https://azumbrunnen.me/blog/progressive-reduction-just-another-buzzword/

 

아쉽지만 레이어볼트 서비스가 종료되어 지금은 실제로 써볼 수 없다. 

 

 

이 책을 읽는 동안 PC나 스마트폰을 사용하는 매 순간 겪는 것들을 좀더 예민하게 주시하게 되었다. 워드프로세서에 이 내용 정리하는 동안에도 평소 별생각 없이 당연했던 현상을 여러 번 겪었는데 이것도 일종의 마이크로인터랙션일 수 있겠구나 싶었다. 이것과 관련된 설명이 책 내용 어딘가에 있지 않을까 했는데 모드와 관련된 사례로 어울리는 듯 하다. 

 

  

사용자의 모드에 대한 착오로 발생하는 오류 방지 방법에는 이런 것도 있다. 

나는 이 글을 MS-WORD로 작성하고 있는데 워드에서는 다른 언어 입력상태(모드)로 갔다가 되돌아올 때 특정한 키를 눌러서 모드를 전환한다. 
예를 들어, 한영키를 눌러 영어입력 모드에서 작업을 수행하다가 원래 상태(한글입력 모드)로 돌아오기 위해 한영키를 다시 누르는 것을 깜빡 하고 계속해서 타이핑을 할 때가 있다. 그러면 기특하게도 알파벳으로 입력되던 글자들이 자동으로 한글로 바뀐다. 
모드를 변경하는 키를 누르지는 않았지만 입력되는 글자의 내용을 체크해서 자동으로 언어모드를 전환시켜주는 것이다. 웹에서 구현하기가 어떨는지는 모르겠지만. 이렇게 사용자의 실수를 바로잡아 주는 방법도 있다.

 

 

마치며

얇은 책이지만 시사점이 참 많다. 책이 두꺼워 지는 건 싫지만 그래도 좀 더 설명되어야 할 부분이 너무 축약된 듯한 느낌이다. 저자의 문장스타일이 그런 건지 번역 문제인 건지. 각 챕터별로 마지막에 나오는 요약 문장으로 보면 명쾌한 내용이 본문을 읽는 동안에는 이해하기가 까다로운 부분이 몇 군데 있었다.