Sunday, April 29, 2018

좋은 UI 에 대한 단상 ─ 목적성과 작업 단계를 통해서

Leave a Comment
[ 본글은 2014년 04월 20일에 이전 블로그에서 작성된 내용으로 일부 내용을 변경, 편집해서 다시 올리는 글입니다. ] 

마트폰을 비롯한 다양한 전자기기가 보급되면서 큰 저항감없이 듣게 되는 용어가 있다. UI ;User Interface 가 그것이다. 이미 interface 에 대해서는 [ 컨텍스트를 생각한다 - 모바일 UI 를 바라보다.  ] 에서 생각해 보았다. 국문으로 번역하기도 어색한 인터페이스 interface 란 어원적 기원을 물질의 성질에 관련된 물성 물리학이나 물리화학 Physical Chemistry 을 통해서 그 의미를 더 구체적으로 찾을 수 있다. 요약하자면 인터페이스는 서로 다른 물성을 가지는 물질간에 서로 혼합되지 않고 생기는 경계 interface 가 핵심이 된다. 즉, 전자 기기와 사용자(인간) 은 생각하는 방식에서 의사소통의 방법까지도 다르기 때문에 인간 (who) 전자 기기에 (whom) 자신이 원하는 목적 (what) 을 위해 전자 기기가 이해할 수 있는 방식 (how) 으로 이야기하는 것을 인터페이스라 한다. 만약 궁극적으로 전자 기기 (devices) 가 인간의 일상적인 conventional 의사소통 방식 communication 을 이해한다면 특별히 인터페이스란 말을 사용할 필요도 없는 것이다.

Flickr @limaoscarjuliet

청각장애인의 경우 일상적으로 사용될 수 있는 소리를 통해 의미를 전달할 수 없기 때문에 이 사이를 연결해줄 수 있는 글이나 혹은 수화와 같이 다른 방법이 적용되어야 하는 것과 마찬가지이다. 기본적으로 전자 기기는 인간의 일상적인 활동을 제대로 이해할 수 없기 때문에 인간 (user) 과 전자 기기 (devices) 간에는 인터페이스가 필요한 것이다. 가장 먼저 우리가 생각할 수 있는 방법은 우리가 선택 가능한 기능을 버튼에 연결시켜 놓거나 우리가 입력할 수 있도록 자판을 보여주는 방식 모두 인터페이스의 가장 기본적인 요소가 된다. 문제는 사용자가 하고 싶은 기능이 존재하지 않거나 존재하지만 해당 기능에 접근하는 방식이 까다롭거나 알아내지 못한다면 그것은 실패한 인터페이스가 되는 것이다. 전자 기기 (이후 디바이스) 는 이해하고 준비하고 있지만 그 기능을 사용자가 활성화할 수 있는 방법을 모르기 때문이다. 따라서 사용자가 디바이스에게 제대로 원하는 작업을 전달하는 것도 중요하지만 디바이스가 할 수 있는 적절한 기능들을 사용자가 알 수 있게 해주는 것도 중요한 내용이 될 것이다.


디바이스가 사용자에게 무엇을 전달하나...? 

디바이스가 사용자에게 전달해 줄 수 있는 내용이 무엇이 있을까? 오랫동안 고민해왔던 이 질문을 사용자 인터페이스 전문가와 같은 분들에게 질문을 하면 여러가지 대답이 이끌어져 나온다. 그런데 사실상 자신의 전문 분야에 초점이 맞추어진 상당히 어려운 내용을 알려주시거나 혹은 사용자 인터페이스에 대한 상당히 기초적인 개론부터 설명하는 경우가 많다. 사용자 인터페이스에 개인적인 관심을 가지게 된 것은 학과 서버인 유닉스를 접하면서 시작했다. 지금도 비슷하지만 예전 유닉스 서버에 달린 비싼 자판에는 일반 자판에서 보기 힘든 키key들을 볼 수 있었다. 상단의 기능키 function key 뿐만 아니라 뭔가 복잡한 설명이 쓰여진 키들이 왼쪽에 두줄로 무엇인가 있었던 것이다.

    "왜 이 키들이 필요한 것인가?", "나보다 훨씬 똑똑한 누군가가 만든 기계인데 허투루 만들었을 것 같지 않은데 왜 이런 것들이 있을까?" 

란 의문이 들었고 "이런 기능 키들은 일반 컴퓨터에서는 필요가 없는 것인가?" 라는 의문을 가지게 되었다.

사용자 인터페이스 (UI) 전문가들에게 항상 질문하던 내용이 바로 이 부분이었다. 유닉스는 사용자가 디바이스에게 전달해줄 내용이 더 존재하는 것인가? 어떤 운영 체제를 사용하냐에 따라서 사용자가 디바이스에 전달할 수 있는 전달 내용의 범위가 정해져 있다는 것이 정말 제대로 된 것인가? 하는 의문이 들기 시작했던 것이다. 즉, 디바이스가 무엇이든 사용자가 디바이스에게 전달되어야 하는 내용은 인간의 목적을 이루기 위해서 디바이스에게 기대하는 내용을 할 수 있도록 명령하는 것이다. 그런데 디바이스조차 인간의 발명품이라 그런지 디바이스에 따라, 그 디바이스를 운영하는 소프트웨어 (운영체제) 에 따라 인간이 전달할 수 있는 내용조차 제한된다는 것이다. 그리고 기술의 발달로 이런 제한은 점점 풀리기 시작했지만 여전히 존재한다는 것은 여전히 느낄 수 있는 부분이다.

Sun Solaris 서버를 위한 전용 키보드 왼쪽에는 별도의 기능키가 존재한다.

반면 디바이스가 사용자에게 목적하는 내용은 기술이 아무리 발달하여도 그 본질적 내용에는 큰 차이가 없다는 것이 개인적인 결론이다. 아무리 다양한 기술이 인간에게 얼마나 빨리, 얼마나 효과적으로 운영되는가의 문제는 있지만 본질적으로 세가지의 목적으로 정리가 가능한 것이 아닐까 생각한다.

1. alarm or inform (알려주다) : 아주 사소한 아침 기상 알람부터 복잡한 결과물을 알려주는 내용까지 결국 디바이스는 사용자에게 무엇인가를 알려주기 위한 내용이 대부분이다. 인터넷에서 우리가 원하는 정보를 검색하는 것도 사용자가 원하는 정보를 검색어로 넣고 그 검색어의 결과로 필요한 내용 혹은 정보를 사용자에게 알려주는 것이다. 즉, 사용자가 원하는 내용을 디바이스는 사용자의 필요에 따라서 적절할 때, 적절한 방법으로 알려주는 역할을 하는 것이다. 

2. record or keep (저장하다) : 비록 알려주지 않는다고 해도 사용자가 필요한 내용을 기록하고 저장한다. 사용자가 입력하는 내용은 단기간 혹은 장기간에 따라 다르지만 저장하고 간직하는 목적을 가지고 있다. 따라서 디바이스는 사용자의 데이터를 저장하고 이를 이용해서 다른 목적을 수행하는데 사용하게 된다. 물론 디바이스의 메모리에 잠깐 저장되는 경우도 있지만 이 경우도 저장 시간의 문제이지 결국 사용자의 데이터를 저장한다는 목적을 위한 내용이다. 

3. perform or act (수행하다) : 로봇의 최종 목적은 아마도 '인간의 행동을 모두 수행'하는 것일지 모른다. 결국 모든 기계의 궁극적 목적은 인간이 원하는 대신 수행해주는 것이다. 아주 간단하게 로봇 청소기를 생각해보자. 로봇 청소기는 인간이 청소기를 가지고 돌아다니며 청소하는 수고까지도 대신 해주기 바라는 목적을 수행하기 위해 만들어진 기계이다. 경우에 따라 사용자에게 별도로 ① 알려주지 않거나 사용자의 데이터를 ② 저장하지 않고도 스스로 청소를 하는 일을 수행할 수 있다. 

그러나 기술이 발달하면서 사용자가 디바이스에게 바라는 세가지 목적 중 하나만을 위해 만들어지기 보다는 세가지를 모두 포함하는 디바이스의 형태를 추구하게 된다. 개인적으로 특정 디바이스의 성숙도 (maturity) 라는 이름으로 부르고 싶다. 즉, 어떤 디바이스가 세가지의 목적을 얼마나 잘 충족시키면서 얼마나 효과적으로 처리하는 정도를 평가할 수 있다는 생각이다. 예를 들어 마지막으로 예를 들었던 로봇 청소기의 경우 단순히 먼지 빨아들이는 역할만 하는 것이 아니라 먼지를 측정하여 집안의 청결도를 알려줄 수 있을 것이다. 그러나 단순히 먼지의 양에 따라 청소를 하는 것이 아니라 청소를 하면 안되는 취침시간을 사용자의 데이터로 저장하여 이를 자신의 청소 수행에 반영해서 사용자가 원하는 최적의 시간과 공간을 활용할 수 있다면 단순히 청소만 수행하는 청소기보다 디바이스의 성숙도가 높다고 표현하는 것이다.


디바이스가 성숙해지면...? 

디바이스의 성숙도가 높으면 사용자는 어떤 일들이 더 가능해질까? 비슷한 개념을 소프트웨어에 적용해보는 것도 재밌을 것 같다. 개인적으로 꼭 구매하는 소프트웨어가 있다. 바로 데이터 백업을 위한 소프트웨어인데 지금 사용하는 백업 소프트웨어는 매번 업그레이드 하며 꾸준히 구매하는 제품이다. 주요 목적은 지금 사용하고 있는 컴퓨터의 전체 시스템을 그대로 백업해서 불의의 상황에서 바로 복구할 수 위해서이다. 문제는 아무리 백업의 기능이 좋아도 주기적으로 잘 백업해 놓지 않으면 소용이 없다. 따라서 백업 소프트웨어의 사실상 중요한 기능은 '일정 작업 (scheduled works)' 이다. 초기에는 이러한 작업이 가능했지만 사용자에게 너무 많은 것을 알려주었다. '백업 작업을 곧 시작한다' 부터 '백업을 위해 지금 작업하는 내용을 모두 저장해라' 와 같이 백업을 하면 다른 컴퓨터 작업을 할 수 없게 되었다.

그러나 이제 소프트웨어는 상당히 안정되었고 몇단계 전만 해도 백업 설정이 하나라도 잘 적용이 되어 있지 않으면 원하는 백업 내용을 기대하기 어려웠다. (예를 들어 백업 파일의 분할, 암호 설정, 외장 하드가 연결되지 않을 때 어떻게 할 것인가 등) 그러나 이제는 사용자가 백업이 되었는지 모르게 조용히 백그라운드 (background) 에서 작업을 시작하고 조용히 마무리한다. 입력해야 하는 설정 내용도 거의 없고 몇가지 경우 중 가장 맘에 드는 시나리오를 선택하면 소프트웨어는 사용자의 사용 환경에 따라서 유연하게 대처하고 백업을 수행한다.

점점 소프트웨어는 사용자에게 많이 물어보지 않는 방향으로 만들어진다.

개인적으로 이런 소프트웨어의 발전 방향은 대부분의 디바이스가 겪어야 하는 성숙도의 증가를 위해 고려해야 하는 부분이란 생각을 하게 된다. 백업이란 특정 목적을 달성하기 위해서 사용자가 설정해야 할 내용이 많아진다면 혹은 설정에 따라서 사용자가 원하는 목적을 쉽게 달성하지 못하거나 목적을 달성해도 원하는 결과가 이루어지지 않을 때는 결국 설정 configuration 이 목적 objective 를 망치게 된다. 두가지 부분을 생각하게 된다.

1) 설정이 어떤 변화를 이루어 내는지 사용자는 잘 모른다... : 사용자가 어떤 기능을 설정했을 때 (checked) 해당 설정이 어떤 변화를 만드는지, 사용자가 원하는 변화인지 쉽게 알기 힘들다. 이런 이유로 설정 화면을 왔다갔다 하는 경우가 발생할 것이다. 사용자 인터페이스 (UI) 를 말할 때 대부분 얼마나 편하게 설정할 수 있는지, 화면 터치가 얼마나 용이하게 되는지를 고민하지만 막상 이런 부분보다는 설정에 따라 어떤 변화와 그 변화를 통해 사용자가 어떤 이득(마음에 드는 화면도 포함해서) 을 얻을 수 있는지 미리 알 수 없는 것이 가장 슬픈 인터페이스가 아닌가 싶다.

2) 디바이스는 결정적으로 예외적 상황에 대처하지 못한다... : 디바이스는 사용자처럼 유연하거나 다양한 상황에 대처할 수 있는 능력이 부족하다 (혹은 없다.) 따라서 이러한 예외적 상황 exceptional condition 에 대해서 디바이스는 대처하지 못한다. 따라서 사용자가 원하는 목적을 수행하는 중 예외 상황이 발생하면 중단하게 된다. 그러나 디바이스가 어느정도 유연한 태도(?) 를 가지고 있다면 예외적인 상황에 대한 적절한 대처를 할 수도 있다. 이 부분은 디바이스가 수행할 프로그램을 만들 때 예외적 상황을 어떻게 처리할지에 대한 정책의 문제이기도 하다. 허용하는 것이외는 수행하지 않도록 하는 화이트리스트 whitelist 방식과 허용하지 않는 것 말고는 수행할 수 있는 블랙리스트 blacklist 방식 중 어떤 것을 선택할지를 결정하고 기본값 default 이 실행되는 것이고 그 중 원치 않는 것을 제거하는 Opt-Out 방식과 기본값은 실행되지 않는 것이고 그 중 원하는 것만 실행하도록 하는 Opt-In 방식을 생각해 볼 필요가 있다.


궁극적인 사용자 인터페이스 (UI) 란 무엇일까...? 

설정을 위해 터치 화면이 큰 것이 좋은 사용자 인터페이스 (UI) 인가? 화면 구성을 쉽게 해서 사용자가 원하는 기능을 잘 찾을 수 있는 것이 좋은 UI 인가? 초기 스마트폰의 등장과 함께 이 문제는 여러 사람들에 의해서 이야기되지만 무엇이 좋다라는 결론이 나기 보다는 오히려 디바이스 운영체제 (안드로이드, iOS, Windows Mobile 등) 개발 회사에서 제시되고 사용자는 이에 평가를 내리는 과정이 거의 대부분이었다. 예를 들어 iOS 가 나왔을 때 한쪽에서는 혁신 혹은 사용자 인터페이스가 훨씬 좋아졌다 등을 이야기하지만 다른 쪽에서는 별로라는 이야기도 종종 나오는 것을 보면 정말 인터페이스가 좋아지는 것인지 확신하기 힘들 때가 많다. 단순히 아이콘의 디자인, 혹은 터치감이나 화면 전환의 속도 등이 사용자 인터페이스에서 추구해야 하는 내용인지 확신이 들지 않는다.

앞서 설명한 디바이스의 성숙도의 개념으로 접근해 본다. 결국 성숙도란 한 디바이스가 인간이 원하는 목적을 수행하기 위해 얼마나 인간에 가까운 활동을 할 수 있는지 생각해보는 것이다. 즉, 인간이 어떤 행동을 하는데 있어 그냥 습관적으로 혹은 본능적으로 수행하는 것처럼 보이지만 그동안 다양한 경험을 통해서 데이터를 저장하고 상황에 대한 적절한 대처를 하기 위한 정보를 수집하는 과정을 거치게 된다. 즉, 디바이스가 사용자에게 전달하는 세가지 내용을 모두 종합적으로 분석하며 수행하는 과정이다. 예를 들어 강남에서 광화문을 찾아갈 때 인간은 그냥 교통 수단을 타고 가면 된다 생각하지만 약속 시간에 밀리지 않도록 교통 통제가 있는 정보가 있는지 (마라톤 대회가 있다는 표지판을 본다; 알림) 광화문까지 가기 위해 지하철을 탈때 어디서 타면 환승이 편한지와 같은 사전 정보를 미리 수집할 수 있고 이를 위해 기억이나 메모라는 효과적인 저장 (기록) 장치를 사용하게 된다. 그리고 이를 분석하고 언제 어떻게 출발할지 결정하게 된다.


디바이스의 성숙도란 이처럼 인간의 행동이 시행착오 trial & error 를 통해 목적을 이루는 것이 아니라 사용자의 경험과 기록에 의해 최적의 해결책을 찾아서 이를 수행하는 과정이 얼마나 사용자에게 만족스런 결과를 주는지와 관련이 된다. 만약 사용자가 매일 아침 강남에서 광화문까지 출퇴근을 하는 정보가 계속 쌓이고 7시 반에 출발한다는 것을 디바이스가 알게 되고 사용자가 출근때마다 버스가 언제오는지 습관처럼 버스 정보를 알기 위한 앱을 실행한다면 이런 일련의 행동들은 사용자가 특정 목적 (출근) 을 수행하기 위해 필요한 정보들이라는 것을 알게 된다. 따라서 성숙도가 높은 디바이스는 이에 맞춰 미리 버스가 언제 오는지 미리 알림을 줄 수 있을 것이다. 즉, 사용자가 ① 화면을 켜서 버스 정보를 보는 ② 앱을 실행시켜 특정③  버스 번호를 입력시키는 과정을 단축시켜 바로 화면에 알람으로 몇분 후에 버스가 온다고 미리 알림을 줄 수 있을 것이다. 만약 디바이스가 사용자가 필요할 것으로 추정되는 presumed 정보를 미리 알려준다면 사용자는 ① ~ ③ 의 입력의 과정이 필요없게 된다.

구글 나우 (Google Now) 는 미리 입력된 집, 직장 정보를 통해 현재 시간, 위치에서 얼마나 걸리는지 막히는 구간은 없는지 출근 시간에 알려준다.

이런 시나리오가 가능한 디바이스라면 특별히 좋은 터치감이나 입력하기 편한 화면은 크게 중요하지 않을 것이다. 즉, 개인적으로 생각하는 궁극적 인터페이스란 사용자가 하는 행동과 정보를 디바이스도 비슷하게 수행하여 특별히 사용자가 입력하는 횟수를 줄이는 것이라 본다. 역설적이지만 "사용자 인터페이스의 궁극적 목표는 인터페이스를 거의 하지 않는 것"이라 생각한다. 즉, 디바이스의 성숙도란 얼마나 인간같이 정보를 수집하고 분석하고 사용자에게 필요한 정보만 제공하는 정도에 따라서 측정할 수 있을 것이다. 앞서 백업 소프트웨어를 보아도 초기에는 사용자가 설정을 얼마나 해주느냐에 따라서 백업의 질 quality 이 달라지지만 이제는 사용자가 별도의 설정을 하지 않아도 효과적으로 백업을 수행하게 되고 궁극적으로 사용자는 백업이 이루어졌는지 아닌지 신경쓰지 않아도 원하는 목적을 이루게 되는 것과 비교해보면 좋을 것 같다.


목적이 이끄는 사용자 인터페이스라 부를까...? 

백업 작업과 같이 사용자가 큰 관심을 가지지 않아도 알아서 수행되는 작업도 있지만 대부분 디바이스가 우리에게 알려주는 내용들은 사용자가 무엇인가를 즉, 목적을 이루게 하기 위한 도움을 주는 경우가 대부분이다. 개인적인 내용으로 한번 생각해본다. 아침에 일어나 약을 먹는다. 대부분 약을 식후 30분에 먹으라는 이유는 특별히 공복에 먹으면 안되는 약도 있기도 하지만 빼먹지 말고 먹으라는 이유이다. 즉, 식사가 약을 먹을 수 있도록 알려주는 일종의 알람같은 역할을 하는 것이다. 스마트폰은 사실 식사보다 더 성능좋은 알람시계를 제공해준다. 아침에 먹는 약은 특별히 공복을 피하는 약이 아니라 일어나 정해진 시간에 약을 먹으라고 알람을 준다. 만약 다른 일을 해서 알람을 줄 때 약을 먹지 못한다면 snooze (알람 연기) 를 눌러 일정 시간 후 다시 알람을 준다. 매월 초 신청해야 할 것이 있다면 알람에 해당 신청 페이지를 링크로 알려주면 알람 내용에서 바로 해당 신청 홈페이지로 들어갈 수 있다. 이처럼 디바이스가 주는 가장 효과적인 작업은 알람 alert 이다. 반복적인 내용에는 더욱 더 효과적이고 매번 기억할 필요가 없다. 단순히 알람만 주는 것이 아니라 해당 작업이 사용자에 의해 수행이 되었는지 아닌지 확인 (check) 할 수 있다면 더욱 더 효과적이다. : 반복적인 작업 recurring tasks 에 디바이스는 좋은 도구가 되어준다.

반복적인 작업을 사용자에게 알려주어 사용자가 반복적인 작업을 잊지 않고 수행할 수 있도록 해준다.

어느날 마음에 드는 책 구절을 인터넷에서 보았다. 해당 구절의 영문 원문이 어떻게 되는지 궁금해졌다. 이를 위해 할일 목록 todo 에 기록했다. (구체적으로 Google Keep) 에 입력했다. 문제는 지금 당장할 수 있는 작업이 아니고 만약 도서관을 갔다고 해도 내가 도서관에서 해야할 일이 있다는 사실을 기억 (사용자의 기억) 하지 못하면 도서관을 갔다가 할일 목록의 일은 하지 못한다. 결국 아무리 좋은 디바이스가 있어도 사용자의 기억이 없으면 무용지물에 가까워진다. 이 문제를 해결할 수 있는 방법은 크게 두가지가 있다. 도서관을 가기로 마음 먹고 날짜 (더 자세히 시간까지) 를 정해 해당 할일 목록에 알람 날짜를 지정하는 것이다. 다른 방법은 대부분의 스마트폰이 위치정보를 효과적으로 수집하기 때문에 이를 이용해서 위치 알람 location reminder 를 지정해서 해당 도서관의 위치를 알람으로 설정하면 다른 일때문에 도서관 근처를 가게 되어 할일을 수행할 수 있게 된다. : 위치 알람 location reminder 는 스마트폰과 같은 위치 정보를 처리하는 디바이스는 더 효과적인 도구가 된다.

결국 사용자에게 디바이스가 알람 (reminder, alert, alarm) 을 주는 방식에는 다양하지만 알람의 대상은 두가지로 결정된다는 것을 알 수 있다. 시간 (time)공간 (space) 이다. 철학적으로 생각하면 결국 인간의 행동은 시간과 공간에 의해 하나로 결정되고 그 수행의 결정은 인간만이 할 수 있다는 것이다. 즉, 아무리 알람을 효과적으로 디바이스가 제공을 해도 사용자가 수행하려는 의지가 없다면 소용없다.

간단하게 메모할 수 있는 구글킵 (Google Keep) 은 시간 및 장소에 대한 알람 (reminder) 기능을 제공한다.

이와 같은 알람을 잘 이용하면 다양한 응용을 할 수 있다. 맛집 정보를 아무리 모아도 결국 가서 맛보지 않으면 무슨 소용이 있는가. 이때 맛집 정보와 함께 위치 알람을 저장하면 매일 뭐 먹을까 고민하며 삶의 낙을 잃어버리는 사람들에게 좋은 동기 부여를 줄 수 있지 않을까? 결국 인간이 원하는 목적을 수행하기 위해 디바이스는 잊어버리지 않도록 알려주고 원하는 목적을 수행할 수 있도록 도와주는 것이다.


작업 단계를 줄이는 것이 왜 중요한가...? 

사용자 인터페이스를 좀 더 생각해보자. 스마트폰 양대 산맥 (안드로이드, iOS) 공통으로 중요하게 생각하는 기능이 있다. 바로 음성 명령이다. iOS 는 Siri 라는 이름으로 안드로이드는 특별히 이름이 없지만 음성명령 뿐만 아니라 기본 입력 키보드, 앱 차원에서도 (예: 구글 번역기) 음성 인식을 기본적인 기능으로 제공하려고 하고 있다. 음성 인식 (명령) 은 사용자가 심심할 때 디바이스와 이야기 나누고 싶어서 만들어진 이유도 있을 수 있지만... 그보다 음성 인식을 통해 사용자가 원하는 목적을 직접 수행할 수 있는 방법을 제공하기 위해서 더 필요하다고 본다. 즉, 인간이 원하는 목적을 달성하기 위해서 디바이스는 적절할 때, 적절한 곳에서 알람을 줄 수 있지만 목적은 항상 다양하다. 따라서 다양한 조건과 환경을 고려해서 사용자가 가장 필요로 하는 내용을 제공하는 것이 중요하다.

일이 있어 김포에 갔다가 집에 가는 교통편을 알고 싶을 때 사용자는 선택하는 방법은 ...

1) 지도 앱을 실행한다. → 현재 위치와 목적지 (집) 을 입력한다. → 목록에서 원하는 방법을 선택

2) 음성 명령을 바로 실행 (단축 기능으로 가능) → 집에 가고 싶다 말한다. → 목록에서 선택

3) 집 주소가 목적지로 지정된 바로가기를 실행 → 목록에서 선택

 [ 참고: 왜 안드로이드폰을 사용하는가?  ]

그런데 이 상황에서 집에 대한 정보가 저장된 계정 (구글 계정) 으로 로그인 한 스마트폰이 바로 알람으로 집에 가기 위한 정보를 보여준다. 구글 나우 (Google Now or Google Assistant) 라는 이름으로 소개된 이 기능은 앞서 말한 것처럼 사용자의 정보에 맞추어 지금 현재 필요한 정보를 제공해 준다. 김포라는 조금은 낯선 곳에 있고 집에 갈 시간이 되었다면 집에 가는 교통편을 사용자가 찾지 않아도 미리 찾아서 알려주는 것이다.

4) 디바이스가 미리 정보를 수집, 분석해 사용자에게 알람

1) ~ 4) 의 방법 모두 사용자가 목적 (집에 가는 작업) 을 이루는 것은 동일할 수 있지만 목적을 이루기 위해 필요한 정보를 구하는 내용에서 방법에 따라서 작업 단계는 다르다. 1) ~ 4) 의 경우 모두 최소한 한번 이상은 스마트폰을 켜서 확인하는 작업은 있지만 1) 의 경우 사용자가 입력해야 하는 내용은 4)에 비해 많게 된다. 스마트폰을 쓴다면 이 정도쯤이야 쿨하게 넘길 수 있다. 번역 기능을 통해 작업 단계에 대해서 좀 더 생각해 본다.

구글 번역 (Google Translate) 앱 은 대단한 앱이다. 단순히 번역만 하는 것이 아니라 왜 번역이 필요한지에 대한 고민을 하게 해주는 앱이다. 사용자가 번역 앱을 사용하는 목적에는 단순히 해석하기 위해서도 있지만 때로는 외국인과의 대화를 제대로 알고 싶을 때도 있다. 이런 목적을 위해 음성 인식 + 번역을 통해 각자의 모국어를 음성으로 인식시켜 상대방에게 번역을 해주는 기능을 제공한다. 그 외 필기체 입력이 가능해서 한자를 입력하거나 자판으로 입력하기도 귀찮을 때 필기체로 입력이 가능하다. 그런데 번역 앱을 사용하다 보면 불편한 부분이 생겼었다. 앱을 실행시키면 번역할 언어와 번역될 언어가 최종 사용된 설정으로 되어 있다. 즉, 지난 번에 프랑스어 → 한국어 로 번역했다면 그대로 설정되어 있어서 영어로 번역하고 싶을 때 영어로 변경해줘야 하는 다소 번거로움이 존재한다. 이런 부분까지 고려해 프랑스어로 되어 있어도 영어를 입력하면 영어를 번역할 것인지 물어본다. 이 정도되면 충분히 사용자를 위한 훌륭한 인터페이스라고 말할 수 있지만 구글 번역 앱은 바로가기 기능으로 좀 더 충분히 가치를 가진다. (안타갑게 iOS 는 이 기능을 근본적으로 제공해주지 않으므로 안드로이드만 가능하다.)

구글번역기를 실행시켜 영어 / 한국어를 설정하는 것이 아니라 이미 설정된 위젯 (바로가기) 를 만들 수 있다. 입력방법은 키보드, 이미지 입력, 음성, 필기체가 가능하다.

구글 번역 앱의 바로가기 기능은 사용자가 목적하는 내용을 구체적으로 설정할 수 있다는 점에서 의미를 가진다. 구글 번역의 바로가기를 만들면 네가지 입력방법 (키보드, 이미지, 음성, 필기체) 중 선택할 수 있고 번역할 언어 / 번역될 언어 를 선택할 수 있다. 앱을 실행시켜 설정해도 가능하지만 번역 앱을 실행할 때는 사용자는 이미 목적을 정하고 실행한다는 점을 생각해야 한다. 즉, 구글 번역 앱을 그냥 재미로 실행시키지 않는다면 설정에 필요한 입력방법, 번역할(될) 언어 는 이미 마음 속에 정하는 경우가 대부분이다. 또한 사용자는 자주 사용하는 설정이 분명 존재할 것이다. 예를 들어 영한사전으로 사용하고 싶다면 키보드 + 영어 → 한국어 의 설정으로 바로가기를 만들면 구글 번역 앱의 이전 사용된 설정에 관계없이 (설정하지 않고) 바로 원하는 구체적인 기능을 사용할 수 있게 된다.

비슷한 예로 구글 드라이브 (Google Drive) 의 이미지 저장을 볼 수 있다. 종종 특정 내용을 기록할 시간이 부족해서 사진을 찍어 내용을 저장해 놓는 경우를 볼 수 있다. 지인 중에는 자신이 기억해야 할 내용을 문서가 아닌 사진을 찍어 간편하게 저장한다고 스마트한 사용을 자랑하기도 한다. 그러나 막상 사진으로 기록된 이미지는 이후 필요한 내용을 가공해서 문서로 만들어야 할 필요가 있다. (데이터 측면에서 볼 때 문서보다 이미지가 삭제, 손상될 가능성이 더 높기도 하다.) 결국 멋진 풍경이나 사람을 찍기 위한 사진이 아닌 특정 정보를 기록하기 위한 내용이라면 사진으로 남기기 보다는 사진의 내용을 저장하는 문서 형태 (PDF) 저장하는 것이 더 현명할 것이다. 구글 번역 앱과 같이 구글 드라이브의 바로가기를 선택하면 Drive scan 을 볼 수 있다. 원하는 구글 계정을 선택하고 저장 경로를 지정하면 바로가기라 만들어지는데 이 바로가기를 실행하면 사진을 찍을 수 있게 되고 찍힌 이미지는 바로 바로가기에 지정한 위치에 저장되게 된다.

구글드라이브의 바로가기 기능 중 Drive Scan 을 이용하면 사진으로 이미지를 찍어 PDF 파일로 자신의 구글 드라이브 계정으로 저장하는 기능을 한번에 실행가능하다.

구글 번역 앱, 구글 드라이브 뿐만 아니라 바로가기가 가능한 앱들의 기능을 살펴보면 바로가기 기능이 사용자의 작업 단계를 얼마나 효과적으로 줄여주는지 보여준다. 작업 단계를 몇단계 줄이는 것이 중요한가를 물어보면 두가지로 대답할 수 있을 것 같다.

1) 설정의 정확도를 증가시켜 준다. : 아무리 화면 터치의 고수라고 해도 원하는 설정이 모두 저장된 바로가기보다 더 실수할 가능성이 높아진다. 
2) 목적을 더 명확하게 할 수 있다. : 스마트폰은 앱을 실행하기 위한 목적을 위해 존재하는 것이 아니다. 결국 목적이 무엇인지 우리가 스마트폰을 통해 무엇을 할 것인지 명확하게 해준다. 


자동화는 사용자를 나태하게 만들까 성실하게 만들까...? 

목적성을 높이고 작업 단계를 줄이는 과정을 통해 얻을 수 있는 것은 무엇인가? 앞서 말한 것처럼 사용자 인터페이스의 궁극적 목적은 인터페이스 하지 않는 것 (The ultimate purpose of user interface is 'interfaceless') 이란 생각은 목적성을 높이고 작업 단계를 줄이는 과정을 통해 더욱 더 견고해질 수 있다. 이전 글 [ 완전 자동화 스마트폰을 꿈꾸며 ] 를 통해서 안드로이드는 상당히 세부적인 자동화 기능을 구현할 수 있음을 소개했다. 예를 들어 회의 시간으로 일정에 등록되면 자동으로 무음모드가 되도록 하거나 사진 편집 혹은 뷰어 앱을 실행하면 자동으로 화면 밝기가 증가하거나 새벽시간에는 무음모드가 되도록 할 수 있다.

반복되거나 사용자 입장에서 10번 중 9번 정도 동일한 설정으로 작업이 이루어진다면 이런 부분에 대해서는 특별한 설정이 없다면 사용자가 기본적으로 원하는 설정 내용을 자동으로 구현해주는 좋을 것이다. 즉, 자동화의 목적은 사용자가 원하는 작업을 빠르게 수행할 수 있도록 도와주기도 하지만 사용자가 불필요한 설정에 시간 낭비하지 않고 혹은 놓치기 쉬운 설정 내용을 저장하여 작업의 정확도를 증가시켜주기 위한 것이 더 중요할 수 있다. 디바이스는 자동화를 통해 사용자가 놓치기 쉬운 부분을 점검해주고 사용자가 원하는 목적에 더 집중할 수 있도록 도와준다는 점이다. 즉, 디바이스가 사용자에게 전달하는 세가지 요소 중 알람은 줄이고 정보(데이터)는 더 정밀하게 그리고 수행은 정밀하게 도와준다. 회의시간마다 무음모드로 매번 설정하는 사용자와 회의시간이 되면 자동으로 무음모드를 만들어주는 디바이스 중 누가 덜 실수할지 생각해본다면 자동화는 생산성을 높이는 도구라기 보다는 목적을 위해 부수적인 것들을 신경쓰지 않게 만들어주는 역할이 강조될 필요가 있다.

Image Credit: LifeHacker Australia

자동화를 위해 사실 기본적으로 필요한 조건이 있다. 사용자는 회의 시간을 일정에 기록해야 할 필요가 있는 것이다. 많은 경우 일정을 기록하지 (저장하지) 않을 수 있다. 이 경우 정말 방법이 없다. 대부분 충분히 기억할 수 있는 회의 일정을 뭐하러 일정에 저장하는지 필요성을 느끼지 못하기 때문에 공유되는 일정 기능을 통해서 회의 참석자들이 모두 가능한 회의 시간을 제시해주거나 입력하는데 음성으로 아주 간단하게 빠르게 입력할 수 있거나 회의 제안자가 만들고 자신에게 공유한 일정도 자신의 데이터로 보일 수 있도록 하는 등의 다양한 기능을 통해 '효율성'을 강조한다. 사용자가 얼마나 성실하게 자신의 데이터를 저장하여 자신에게 필요한 기능을 디바이스가 알아서 수행할 수 있도록 만들어 주는 것이 플랫폼의 중요한 역할이다. 단순히 데이터를 저장하는 것이 아니라 플랫폼은 이 데이터를 분석해서 사용자에게 유용할 수 있는 정보와 알람을 제공해주는 것이 필요하기 때문이다. 물론 이 부분은 개인의 사적 영역 privacy domains 의 문제와도 관계가 되기 때문에 민감할 수 있는 부분이다. 결국 얼마나 신뢰할 수 있는 서비스 (플랫폼 platform) 을 선택해 자신의 데이터를 얼마나 효과적으로 저장하고 활용할 수 있는가는 개인의 선택으로 돌아오게 된다.


따라서 자동화를 마치 인간이 해야하는 기본적인 모든 활동과 데이터를 자동으로 만들어주는 과정이라고 생각하면 안될 것이다. 오히려 인간의 성실한 협조가 자동화를 더 가치있게 만들어 주는 가장 기본적인 내용이 된다. 그렇다면...

용자의 성실한 입력값과 충분히 신뢰하고 성능좋은 플랫폼 (서비스) 와 충분히 이를 분석하고 제공하는 서비스와 디바이스가 존재한다면 사용자의 삶은 풍요롭게 되는가? 더 나아가 이런 것들이 인간의 행복을 증가시켜줄 내용인가? 

라고 묻는다면 뭐라고 대답해야 할까?


이상적 사용자 인터페이스가 구현된다면...? 

미래 세상을 그린 드라마나 영화를 보면 스마트폰과 같은 디바이스를 항상 달고 다니며 정보를 얻기 보다는 기계와 인간같은 대화를 나누는 (자연어) 것을 보기 쉽다. 개인적으로 스마트폰은 인간이 두손을 이용해 만물의 영장이 될 수 있던 그 엄청난 기회를 다시 퇴화시키게 만드는 도구가 아닐까 생각한다. 거리를 걸으며 핸드폰을 보거나 심지어 운전하면서도 문자 보내는 것을 전혀 위험하지 않다고 생각하는 사람들도 많다. 스마트폰에 시력과 한손을 빼앗겨 버린 퇴화된 인간이 정말 스마트폰으로 스마트해졌는지 모르겠다.

아직은 초기 단계이지만 구글 글래스(Google Glass)를 이용한 프로젝트를 하면서 느끼는 것은 아직까지 구글 글래스가 주는 이득보다 번거로움이 더 많은 것이다. 그러나 구글 글래스와 같은 웨어러블 디바이스의 가장 큰 장점은 인간이 스마트폰에 빼앗긴 시선(시력)을 다시 일상으로 되돌릴 수 있는 가능성이었다. 특별히 손에 가지고 다니거나 화면을 보기 위해 일부러 꺼내지 않아도 스마트폰이 주는 모든 기능을 획득할 수 있다면 오히려 손에 가지고 다니거나 화면을 보는 행동이 거추장스러운 행동이 될 것이란 것이다. 기계와 인간, 디바이스와 사용자 간의 인터페이스의 궁극적 목적은 인터페이스 하지 않은 것처럼 자연스러움이라는 측면을 생각한다면 결국 우리는 디바이스가 우리에게 있는지 없는지 조차 알 수 없는 경우를 생각해볼 수 있을 것이다. 마치 드라마 컨티뉴엄 (Continuum 2012) 이나 드라마 인텔리전스 (Intelligence 2014) 와 같이 인체 안에 컴퓨터 기능을 하는 칩이 이식 implementation 되어서 특별히 인터페이스 하지 않아도 필요한 내용을 전달받고 명령을 내릴 수 있는 상상을 할 수 있을 것이다.

드라마 인텔리젼스 (Intelligence 2014- ) 의 주인공은 컴퓨터 칩을 뇌에 이식되어 검색결과를 화면이 없어도 볼 수 있는 능력을 가졌다.

앞서 소개한 '디바이스의 성숙도'가 인간과 거의 똑같아, 특별히 인터넷 검색을 위해서 ① 스마트폰을 꺼내고 ② 화면을 켜고 ③ 브라우저 앱을 찾고 ④ 브라우저 앱을 실행시키고 ⑤ 검색어를 입력하고 ⑥ 검색 결과 중 원하는 정보를 선택하는 작업단계가 사라지고 바로 원하는 ① 검색어만 생각하거나 말하면 ② 검색 결과를 알려주고 더 나아가 검색결과 중 내가 당연히 선택할 것 같은 항목을 선택해서 골라주게 된다면 사용자 인터페이스란 새로운 패러다임으로 접근해야 할 것이다. 그리고 디바이스의 성숙도가 얼마나 인간에게 접근하는가를 측정하기 위해 앞서 설명한 ⓐ 목적성ⓑ 작업 단계의 최소화를 이야기했다. 그리고 이에 더 접근해서 ⓒ 자동화의 요소도 고려해야 할 중요한 부분이란 것을 이야기했다. 세가지의 요소가 얼마나 자연스러운가 (인간스러운가) 를 측정하여 소위 디바이스의 성숙도가 발전하는지 생각해볼 수 있을 것이다.

역설적으로 인간에게 더 많은 기능 feature 을 주기 위해서 만들어진 수많은 설정 configuration or settings 은 인간에게 참 쓸데없는 인터페이스를 강요하는 요소가 되었다. 설정을 잘못하여 자신이 원하는 목적을 이루지 못하게 되는 경우도 생기고 설정때문에 필연적으로 작업 단계는 늘어날 수 밖에 없다. 또한 앱을 새로 설치하거나 디바이스를 바꾸면 설정을 다시 해주거나 최소한 백업한 설정을 되돌리는 기능을 수행해야 하는 불편함을 감수해야 한다. 잠시 생각해보면 사용자를 위해 만들어진 소프트웨어, 앱들은 온전하게 인간을 위한 도구라기 보다는 사용자가 '제대로' 설정했을 경우만 만족할 수 있기에 설정을 제대로 할 때까지는 소프트웨어, 앱을 위해 사용자가 필요한 결과를 만든다.


마무리하며... UI / UX 란 무엇일까? 

항상 의문이 들때가 많다. UI 는 그래도 본론에서 언급한 것처럼 어느정도 이해가 되는 개념이고 사용자 인터페이스 (UI) 의 궁극적 목표는 인터페이스 하지 않는 것 (interfaceless) 라고 설명해 보았다. 그리고 이제 약속된 규칙에 모든 사용자들이 편리함을 느낄 수 없게 되자, 예를 들어 화면에 나온 리스트 중 하나를 오른쪽으로 끌어내기 (swipe) 하는 것이 삭제 혹은 보관하기라는 운영체제가 정한 규칙이라고 받아들이지 못한다면 영원히 그 기능을 사용하지 못하거나 몇단계를 거쳐 불편할 수도 있다. 즉, 좋은 사용자 인터페이스란 운영체제가 정한 규칙에 잘 따른 사용자에게만 좋다고 말할 수 있게 된다. 아무리 좋은 시스템이라고 해도 사용자들이 제대로 받아들일 수 없는 규칙을 사용한다면 좋은 사용자 인터페이스라 말할 수 없다. 결국 사용자 인터페이스의 가장 큰 문제점은 사용자는 너무도 다양하다는 것이다. 그리고 인터페이스를 설계한 사람이 원하는대로 사용자는 절대 안따라 준다는 것이다. 그런 비극적 상황에서 새로운 개념이 도입되었다.

이게 도대체 무슨 말일까?

사용자 경험 (UX; User eXperience) 이 뭘까? 한참을 고민하게 한다. 한때 물류라고 이야기하면 뭔가 고상해 fancy 보이지 않고 공급망사슬 Supply Chain 이라고 불러야 뭔가 있어 보이는 것 같아 심지어 공급망사슬이라고 부르지도 않고 꼭 [서~플라이 체인] 이라고 불러 줘야 뭔가 있어 보이는 현상이랑 비슷하단 생각까지 들때가 많다. 그리고 UI / UX 에 대한 수많은 블로그와 글을 보아도 그다지 설득력이 있어 보이지 않을 때가 많다. 예를 들어 많은 ⒜ 사용자 인터페이스의 통계적 유의성을 가지고 UX 가 만들어진다. ⒝ UI는 화면, UX는 제품,시스템,서비스 ⒞ UI 는 기술적인 것이고 UX는 감성적인 것이다 등... UX 에 대한 다양한 설명이 있고 그에 대한 제품에 적용한 예를 소개하지만 거의 대부분 두 개념을 명확히 구별해주는 경우는 거의 보지 못했다. 심지어 UX 는 목적성을 가지고 UI 는 이를 조작하기 (operating) 위한 개념이라 설명한다. 그러나 UI 도 인간이 이루고자 하는 목적을 달성하기 위해 필요한 디바이스와의 대화이다.

개인적으로 UI / UX 를 가지고 논의를 심화하는 것은 결국 디자인 부분에서도 그리 큰 영역으로 발전할 수 없을 것이라고 생각한다. 그 이유는 앞서 설명한 것과 같이 디바이스의 성숙도가 증가하면 할수록 인터페이스의 기회는 점점 줄어들거나 인터페이스를 위한 작업 단계가 극적으로 줄어들 것이라고 생각하기 때문이다. 즉, 사용자 인터페이스의 궁극적 목표인 인터페이스 하지 않는 기술이 좀더 확대된다면 UI / UX 의 의미는 점점 줄어들 것이라 생각하기 때문이다. 오히려 인간 (사용자) 이 기계 (디바이스) 에 명령을 내려 목적을 달성하기 위해서 디바이스가 제대로 수행하는가를 제대로 확인할 수 있는 시각화 visualization 기술이 더 큰 의미를 가질 것이라고 믿는다. 즉, 디바이스가 처리한 내용을 오히려 인간이 제대로 이해할 수 있는 형태로 어떻게 가공할 것인지 보여주는 부분이다.

Pinterest Flat Design UI : 플랫 디자인은 아이콘의 트렌드가 아닌 보여줄 것만 보여주는 시각화의 차원에서 접근해도 재미있을 것 같다.

구글 글래스를 착용하면 구글 글래스가 보여줄 수 있는 영역은 생각보다 좁기 때문에 이 좁은 영역에서 얼마나 효과적으로 우리가 원하는 정보를 보여줄 수 있는지는 전혀 다른 기술이 필요할 때가 많다. 결국 iOS 의 아이콘 디자인이 변화했다고 해서 예전에 사용할 수 없는 사람이 갑자기 사용할 수 있는 것은 아니다. 터치를 하거나 더블터치, 밀어내기 (swipe) 와 같은 조작은 결국 잘 쓰는 사람들에게만 유용한 것이다. 구글 글래스를 착용하고 스마트폰에 연결해서 음성명령으로 내리는 것은 전혀 다른 개념이다. 그리고 보여지는 화면이 작기 (아니 협소하기 때문에) 스마트폰이 보여주는 정보를 보여줄 수 없다. 인간이 기계에게 전달되는 방식좀더 인간적인 방법 (주로 음성, 문서, 코드) 을 사용하지만 반대로 기계가 인간에게 보여주는 방식디바이스에 따라 달라져야 한다. 따라서 디바이스도 좀 더 인간이 좀 더 원하는 목적이 무엇인지 고민하여 사용자에 따라서 다른 결과 형태를 보여줄 필요가 있다.


다르게 보여준다는 것에 대한 짧은 예를 통해 글을 마무리해본다. 사용자는 매일 통계 자료를 다루는 사람이고 이 통계 자료를 마케팅에 활용하는 회사 간부이다. 매일 통계 자료가 데이터베이스에서 스프레드시트로 뿌려진다. (구글 드라이브의 쉬트 [sheet]) 로 저장된다. 사용자는 통계 자료를 분석하기 위해서 주로 사용하는 파이 pie 그래프로 그려본다. 주요 항목의 비율 (%) 을 확인하고 저장한다. 회의 시간에 회장님이 갑자기 전년도 영업이익 중 특정 사업의 비중을 물어본다. 구글 글래스에 명령을 내린다. "2013년 4분기 영업이익 데이터" 란 명령을 받고 자신의 계정에서 검색해서 찾아낸다. 그리고 디바이스는 구글 글래스에서 보여줄 때 어떤 형태로 데이터로 보여줄지 고민한다. 그래프를 제대로 다 보여줄 수 없기 때문에 파이 그래프를 선호하는 (선호하는 것은 디바이스가 알아낸다) 것을 통해 사용자는 비율에 집착(?)한다는 것을 고려해서

ITEM 1: 25.3% , ITEM 2: 11.43% , ... 

와 같이 비율로 먼저 보여준다. 사용자가 설정해야 하는 설정값은 사용자가 그동안 처리했던 데이터의 형태를 통해서 설정된다.


0 comments:

Post a Comment