HCI의 꽃, 사용성에 대해서 알아보자.
사용성이 좋게 제품을 만들어보자. 라는 말을 많이 들었을 것이고 HCI에서는 가장 핵심이 되는 의미를 갖고 있기도한 ‘사용성’. 어쩌면 사용성이란 말은 제품이 사용하기에 좋은가?에 대한 개념을 모두 포함한 것 같은 느낌을 준다. 사실 맞는 말이기도 하다. 그런데 이렇게 너무 추상적이고 광범위하게만 말하면 좀 그러하니 정리를 해보려고 한다.
그렇다면 사용성은 무엇일까?
한마디로 : 사용자가 특정 맥락에서 특정 목표를 달성하기 위해 디지털 시스템을 전반적으로 편리하게 이용하는 정도
넓은의미 : 시스템이 사용자의 목적을 달성해 주느냐에 대한 유용성, 사용자의 첫인상, 사용품질
좁은의미 : 전체적인 유용성을 구성하여 수행하는 ‘과정’이 얼마나 효율적인가 의미
키워드 : 효과성, 효율성, 만족 (사용성 국제표준 ISO9241-11)
——————-
사용성이 왜 중요한가?
사용성은 HCI에서 가장 핵심적인 경쟁력이다. 그만큼 모든 디지털 시스템의 기본이라 불리고 있다는 것이다. 도대체 왜그러는 것일까?
어떤 제품이 아무리 많은 기능을 제공하더라도 사용하기 어렵거나 느리거나 이상하면 결국 그 제품을 사용하지 않을테니.뭐 제품과 서비스를 만들 때는 완전히 기본이라고 봐도 무방한 것이다.

왼쪽 3개와 같은 리모콘에서 솔직히 사용하는 버튼이 몇개 있는가. 사용성에 맞게 맨 오른쪾처럼 변경됨
사용성의 특징은 무엇?
사용성은 상호작용이나 기타 단어들과 다르게 굉장히 이과답다는 것이다. 바로 측정가능하고 구체적이다.
구체적, 측정 가능함
이러한 속성을 좀더 자세히 기본적 차원과 부수적 차원으로 나눠서 볼 수 있다.
- 기본적 차원 : 효율성 (적은노력으로 높은만족), 정확성 (얼마나 빨리 정확하게 시스템을 사용할 수 있는가 )
- 부수적 차원 : 일관성, 유연성, 의미성
사용성 -> 기본적 차원 -> 효율성 (efficiency)
사용자가 주어진 과업을 어마나 효율적으로 달성하는지와 관련된 사용성의 속성
- 반응성 (responsiveness) : 시간의 측면.사용자의 행동에 대한 시스템의 반응 속도와 관련된 속성, 안정적으로 빨라야 함(시스템 지체, 네트워크 지체)
- 단축성 (minimal action) : 절차의 측면. 사용자가 원하는 과업을 간단하게 마무리할 수 있는 정도
반응성을 높이려면 돈을 많이 들이면 된다..좋은 템을 쓰는 것이다.빠른 프로세서, 많은 메모리, 좋은 CPU,많고 좋은 GPU 등등인 것이다.
하지만 슬프게도 우리의 주머니는 무겁지 않다. 그래서 꼼수로 지체되는 시스템의 상태를 사용자가 견디기 좋고 이해하기 쉽게 보여줌으로써 사용자가 체감하는 반응성을 향상시키게 하거나, 시간이 많이 걸리는 경우 그 과업을 시작하기 전에 경고 메시지를 띄우면 좋다.
단축성을 높이려면 단축키를 잘 활용하는 것이다. 우리가 너무나도 잘 아는 복사,붙여넣기 ctrl+c, ctrl+v 는 레전드라고 볼 수있다. 이걸 발명하신 Larry Tesler가 얼마전에 별세한 소식은 많은 이들을 아쉽게 하였다.

"Larry Tesler: Computer scientist behind cut, copy and paste dies aged 74"
또한 단축성을 높이기 위해서는 사람들이 자주 사용하는 정보, 기능, 키를 쉽게 접할 수 있는 곳에 배치하는 것이다. 보통 스마트폰에서 주로 사용되는데 문자 자판에서 간단한 입력방식으로 다양한 문자 입력을 도와주는 것들이 가능하다. 필자는 ‘모아키’ 라는 자판을 사용하는데 하나의 버튼에서 손의 동작에 따라 여러가지의 모음을 만들어 문자를 완성할 수 있으며, 미리 정해놓은 단축키로 짧은 동작으로 다양한 표현을 할 수 있어, 절차를 감소화시킨 단축성이라는 특성을 갖고 있다. 하지만 너무 많은 단축 경로는 심성모형 수립에 악영향을 줄 수 있으니 뭐든지 적당히 하도록 하자.
![]()
모아키 자판 입력방식
사용성 -> 기본적 차원 -> 정확성 (accuracy)
사람들이 시스템을 사용하면서 저지르는 오류와 관련된 속성으로 사전 방지성, 오류 발생 감지성, 오류 회복성이 있다. 뭐 한마디로 사용자가 오류를 저지르지 않게 미리 방지하냐 오류저지르더라도 돌아가게 하냐 이런 차이다.
- 사전 방지성 (error prevention)
사용자가 오류를 저지를 수 있는 가능성을 미연에 방지하는 것. 어떤 행위가 복구하기 어려울 수록 애초에 그 행위를 저지르는 것 자체도 어려워야 한다는 법칙 -> 균형성의 법칙
파일바꾸기 전에 다시한번 확인
- 오류 발생 감지성 (error detection)
해당 오류 발생 사실을 사용자가 볼 수 있도록 시각,청각적으로 볼 수 있도록 강조하는 것. 우리가 뭔가 작업을 할 때 갑자기 “문제가 있습니다” 하면서 뚱~ 하는 소리와 함께 경고창이 나오는 경우가 종종 있다. 그럴 때 놀라기도하고 기분도 매우 안좋지만 오류를 알려주는 것은 앞으로 우리가 무슨 대처를 하고 작업을 해야할지 방향성을 알려주는 중요한 중요한 지표인 것이다.
외장하드,usb넣었을 때 인식못하고 가끔 이럴 떄마다 식겁
- 오류 회복성 (error recovery)
시스템을 통해 사용자 자신이 과거에 저질렀던 오류를 정정할 수 있게 하는 속성을 의미. 아마 이런 경험 많았을 것이다. 워드문서 다 썼는데 저장하지 않은 채로 꺼졌거나..(하) 프로그램에서 무슨 짓을 했는데 돌이킬 수 없는 강을 건너왔을 때..ㅎ 이런 경우에 가장 필요한 것이 오류 회복성 기능이다. 꺼져가는 불빛의 구세주 같은 기능인 것이다. 오류 회복성에는 2가지가 있다.
1) 바로 이전,이전,이전 에 저질렀던 것을 취소하고 이전 상태로 돌아가는 것 (후방 오류 회복성, backward recovery)
문서 프로그램 대부분 제공, 보통 단축기 ctrl + z

워드문서에서 이전작업 취소
2) 완전 이전의 상태로 돌아가는 것 (전방 오류 회복성, forward recovery)
새로운 절차를 걸쳐 과거의 상태로 아예 돌아가는 것. 타임머신 기능. 기본값 복원, 최근 저장한 문서 기능이 여기에 해당 우리는 도저히 변경된 우리의 문서나 작업물이 손을 댈 수 없을정도로 혼종이 되어 있다면 결국 ‘기본값 복원’을 통해 초심으로 돌아가는 방법을 택하기도 한다. 정말 좌절스러운 과정이지만 어쩌면 이게 더 빠른 길일 수도 있다는 것을 알기에..또한 열심히 작업하던 문서가 정전으로 갑자기 컴퓨터가 꺼지면서 차마 저장하지 못한 상태로 될 때,, 구세주 같은 기능으로 ‘최근 저장된 문서’라는 기능을 통해 나도 모르게 저장되어 있던 최근 문서상태를 불러와 안도의 한숨을 쉬기도 한다. 예측할 수 없는 재난재해와 ctrl + s 가 습관되지 못한 우리에게 참으로 고마운 기능이다.
되돌릴 수 없을만큼 혼돈일 때 결국 기본값 복원을 누르지..
"하 감사.최근 저장된 문서 기능"
사용성 -> 부수적 차원 -> 의미성 (meaningfulness)
뭐든 의미가 있어야(타임킬링도 의미라고 봐야함)디지털 시스템을 사용하는 것처럼, 시스템을 사용하면서 사용자가 보고 싶은 정보나 실행하고 싶은 기능을 제공해야 한다는 것을 의미한다. 그런데 그냥 의미 초점에 맞추기보단 디지털 시스템에서 그 의미를 제공하는 과정 측면에서 특성을 보면 이와같다
-
변화제시성 (honesty)
시스템의 내부 상태가 변화했을 때 그 상태를 사용자가 감지할 수 있게 하는 것이다. 이 안에 오류의 감지성도 포함된다. 사용자가 별도의 작업하지 않고도 변화를 감지할 수 있어야 하며 즉각적으로 나타나야 한다. -
이해가능성 (understandability)
변화 및 정보를 사용자에게 전달하면 사용자이 정보를 이해할 수 있어야 한다. 가독성이 높아야하고 논리와 이치에 맞게 배치되어야 한다. -
학습성 (learnability)
초보 사용자가 시스템에 대해 어느정도 수준의 지식이 필요한지를 의미한다. 물론 쉽게 이해할 수있는 것이 제일 좋다고 보여지나 이것도 사용자와 특정 과업의 성격에 맞게 설정되어야 한다. 예를들면 산업현장에서의 공정제어 시스템에서는 쉽게 이해할 수 있는 것보단 얼마나 정확하게 정보를 이해하느냐가 매우 중요하기 때문이다.
사용성 -> 부수적 차원 -> 유연성 (flexiblity)
시스템을 통해 사용자가 원하는 작업을 원하는 방식으로 잘 진행할 수 있는가!를 말하는 것이다. 사실 쉽게 말해서 사용자가 원하는대로 유연적으로 대응이 되느냐 정도로 보면 되겠다. 굳이 특성을 좀 나눠보자면,
- 사용자 주도권 (user pre-emptiveness)
사용자가 자신이 원하는대로 시스템과 상호작용할 수 있게하는 시스템 속성이다. 대신 사용자에게 주도권을 주되, 논리적인 흐름에 맞게 주어야 한다. 또한 시스템과 사용자 사이에 통제권을 유연하게 주고받는 전이성(task migratability)을 통해 효과적인 과업을 진행 하도록 한다.
- 대체성 (substitutivity)
사용자가 시스템을 사용하면서 특정 작업을 원할 때 가장 적절한 수행 방법을 선택할 수 있게 하는 시스템의 속성을 의미한다. 여러 수행 방법이 있는데 이 중에 과업에 가장 알맞는 방법을 추천하도록 한다. 다만 대안들을 제공하고 추천할 때는 대안들 간의 차이를 명확하게 하고 각 대안별로 어떠한 경우에 사용하는 것이 더 적당한지를 명확하게 밝혀주는 것이 필요하다.
(1) 입력대체성 (input substitutivity)
시스템에 사용자가 원하는 사항을 두 가지 이상의 방법으로 입력할 수 있게 하는 시스템의 속성

인증서 로그인에 여러가지 입력방법 선택가능
(2) 출력 대체성 (output substivity)
시스템 출력상황을 여러 조건에서 볼 수 있도록 하는 시스템 속성을 의미한다. 다양한 형태로 볼 수있어 원하는대로 선택해 결과물을 볼 수있다.

폴더를 다양한 형태로 볼 수 있음
-
다중성 (multi-threading)
사용자가 한꺼번에 1개 이상의 작업을 동시에 할 수 있게 하는 시스템 속성이다. 우리는 아마도 매일 음악을 들으며 인터넷으로 무언가를 하고있다. 이는 동시적 다중성을 기반으로 음악감상하면서 온라인 서비스를 이용하는 경우이다. 음악 재생이 되는 창을 당장 활성화 시키지 않아도 background에서 돈다는 것은 그렇게 돌아가게끔 기술적 설계가 되어있는 것이다.
반면에 워드나 파워포인트를 동시에 편집할 수 없는 것은 동시적 다중성이 아닌 교차적 다중성을 지원하기 때문이다. 워드나 파워포인트는 어느 하나에 주의를 기울여야하는 작업이므로 한 순간에 두개의 소프트웨어가 켜져는 있지만 편집 활성화는 오직 한개만 되도록 하는 것을 교차적 다중성이라고 한다. -
개인화 (personalization) : 개인이 시스템을 변경(개인주도) or 시스템이 개인에게 맞게 변경(시스템 주도)
개인화는 사용자의 취향이나 특성에 따라 시스템의 상태를 변화 시킬 수 있는 속성이다. 제일 많이 알려져 있는 것이 개인주도 측면에서의 ‘응용성(adaptability)’로 사용자가 자신의 상황이나 취향에 따라 시스템의 특성을 바꾸는 속성을 의미한다. 우리가 모바일 폰에서 자주 바꾸는 배경화면, 키스킨, 노트북 배경화면, 구글크롬 테마 등 을 뽑을 수가 있다. 반면에 시스템 주도 측면에서의 적응성(adaptivity)은 시스템이 주도권을 가지고 시스템을 개인의 취향에 맞게 추천하는 것이다. 개인추천 서비스가 여기에 해당되는데 추천 시스템 방법도 기술적으로 여러가지 있지만 자세한건 다루지 않고 개인의 로그, 프로필에 따라 추천한다는 것만 설명하고 넘어가겠다.
![]()
개인화 알고리즘의 대표예시 (출처:스마트오퍼)
- 연결성 (connectability)
시스템 간의 연결이 얼마나 쉬운지가 중요한 유연성의 속성이다. 크게는 하드웨어적인 연동성과 소프트웨어적인 호환성을 말한다. 대표적으로 애플 제품은 호환성이 굉장히 낮은 사례로,, 요즘은 그나마 c-type으로 통일되어 좀 낫다만 이전엔 물리적인 충전 단자부터가 일반적으로 쓰이는 단자랑 다르게 애플에서 자체개발한 단자로 쓰여 애플제품 외에는 사용할 곳이 없었으며 애플 소프트웨어도 호환성이 낮은 편이다. 하지만 애플제품 내에서는 굉장히 연결성이 높아 애플 제품으로만 디지털 기기를 구성한다면 놀라운 효율성을 보일 수 있다.
사용성 -> 부수적 차원 -> 일관성 (consistency)
시스템의 정보나 기능이 다른 대상과 비슷한 모습이나 유사한 역할을 가지는 것을 의미한다.
일관된 기능과 동작을 적용하면 제품을 사용하는 사람은 쉽게 익히고 사용할 수 있어 사용성을 높일 수 있게 되는 것이다.
여기에는 명령체계를 일관적으로 적용하는 ‘예측 가능성’을 높이는 방법,
시스템에서 어떤 행동을 했을 때 어떤 결과가 되리라는 것을 사용자에게 미리 알려주는 ‘정보의 향기’ 방법,
사람들이 실제 세상에서 가지고 있는 경험을 바탕으로 시스템을 사용하는 데 친숙하게 하는 ‘친숙성’ 방법,
중요! 시스템에서 제공되는 표현들이 사람들에게 어떤 행동을 유도하게 하는 ‘직관성(affordance)’를 높이는 방법
-> 링크는 밑줄, 클릭하는 버튼 강조 등
어포던스 디자인 사례
사용성 속성 간의 상충 관계
어렵게 생각할 것 없이 쉽게 학습되는 만큼 효율성이 떨어질 때도 있고 학습이 어렵지만 효율성이 올라가는 것처럼
사용성 속성 간에 상충 관계들이 있다. 이런 상충관계들을 잘 고려하여 제품을 설계해야할 필요가 있는 것이다.

사용성 속성 대표적 5가지

사용성 속성 간의 상충관계
그렇다면 상충관계를 효과적으로 대처하기 위해서는 어떻게 하는 것이 좋을까?
다중적 시스템을 제공하자(적당히 많은 선택지를 주자), 핵심 속성을 선정하자(우선순위를 정하자,효율성/정확성)
당연한 결과지만ㅋ 사용자의 상태와 과업에 맞게 다중적 시스템을 만들어 취사선택할 수 있게 해야한다. 여기서 주의할 점은 언제 모드가 변경될지 결정하는 것이 중요하며 변경을 사용자가 직접 하게 하거나 변경상태를 사용자가 인지할 수 있도록 해야한다는 것이다. 어느날 갑자기 시스템이 판단하기에 내가 좀 익숙해졌다고 생각했는지, 급 전문가 모드로 바뀌어 있다면..정말 당황스러울테니까 말이다. 물론 게임과 같이 레벨업에 따라 난이도가 자동으로 올라가는 경우에는 시스템이 자동으로 변경할 수도 있다.
사례에 따른 중요한 사용성 속성
-
유희적 가치 시스템
(1) 변화제시성 : 과정 자체에서 즐거움을 얻는 것이 목적이기에 사용과정에서 발생하는 변화를 명확하게 제시
(2) 대체성과 다중성 : 사용자의 다양한 욕구를 반영해야 함 -
사회적 가치 시스템
(1) 친숙성 : 사람들이 신뢰하고 함께하게 하기위해서는 친숙한 용어, 내용, 익숙한 도구, 기기를 이용하여야 함
(2) 일반화 가능성 : 구성원들이 일상적으로 사용해 왔던 기술을 가지고 익숙하게 사용하게 함 -
개인적 가치 시스템
(1) 개인화 : 개인의 특성을 잘 표현하는 것이 목적이므로
(2) 주도성 : 사용자가 원하는 대로 할 수 있게하여 개인의 가치를 높이는 방향으로 해야함