
멀티모달 UI 라이브러리 @uturi/sonification의 사용성과 효과성을 검증을 위해 고민했던 지점들과 사용자들과 만나며 얻은 인사이트를 정리해 보았습니다. 도구 및 서비스의 사용성 테스트(양적, 질적)를 고민하고 계신 모든 개발자분들께 도움이 되기를 바랍니다.
👉 @uturi/sonification 체험해보기
👉 @uturi/sonification 설계 기록 보러가기
비시각 사용자는 시각 정보를 해석하기 어렵지 않을까 하는 단순한 아이디어에서 출발했던 @uturi/sonification 라이브러리는 어느새 v2.2.1까지 확장되었습니다.
이 시점에 기능의 확장보다는 사용성과 효과성의 검증, 즉 이 도구가 얼마나 비시각 사용자에게 도움이 될 수 있는가를 짚고 넘어가는 것이 중요하다는 생각이 들어 지난 2개월동안 사람들을 만나고 유사 연구 사례들을 살펴보았습니다. 아직 양적 사용성 테스트를 진행하지는 않았지만 여기서는 먼저 비시각 사용자 두 분께 얻은 귀한 피드백을 정리하며 @uturi/sonfication의 방향성을 재정립하고 양적 연구의 설계 기반을 마련하고자 합니다.
지난 여름 두 달여 기초 수화 수업을 들으며 알게 된 사회복지사 선생님의 도움을 받아 비시각 사용자 두 분을 만나는 좋은 기회를 얻었습니다. 두 분께 제 작업물을 보여드리고 의견을 구할 수 있었는데요, 라이브러리를 개발하면서 고민했던 지점들을 꼭 맞게 짚어주시기도 했고, 아쉬운 점들과 실효성에 대한 의견까지 좋은 피드백들을 정말 많이 받아 감사했습니다.
두 분 모두 후천적 시각 장애를 가지고 계신 남성 분이셨고, 모바일 기기의 스크린 리더(VoiceOver)의 사용자이시기도 했습니다. 다만 다양한 서비스에서 스크린 리딩에 대한 고려가 부족해 실질적으로는 일반 웹과 앱을 혼자서는 거의 사용하시지 않고, 주로 사진을 찍고 사진에 대한 설명을 받을 수 있는 앱 [Sullivan+]을 사용하시고, 가끔씩은 시각 사용자에게 연락을 취해 실질적인 도움을 얻을 수 있는 앱 [Be My Eyes]을 사용하신다고 하셨습니다.
이 중 저는 작년 초부터 [Be My Eyes] 앱의 시각 사용자(봉사자)로 활동하고 있는데요, 한두 달에 한번 쯤은 앱에서 도움 요청이 날아오긴 합니다. 다만 경쟁(?)이 치열한 것인지 꼭 제가 [수락] 요청을 누를 때마다 이미 종료된 요청이라고 하더군요. 🥲
우선 두 분 모두 실제 차트와 테이블 해석은 어려운 것이 맞다며, @uturi/sonification의 취지와 접근 방식은 좋은 것 같다는 의견을 주셨습니다. 테이블은 가끔 스크린 리더를 통해 읽기도 하지만 차트는 절대 불가하다는 경험 기반의 의견을 덧붙여 주셨습니다. 추측건대 차트는 테이블보다 공간의 활용이 두드러진 자료 형태이기 때문에 직선적인 스크린 리더로는 정보 수집이 어려운 것이 아닌가하는 생각이 듭니다.
더구나 스크린 리더가 고려되지 않은 테이블과 차트가 많아 스크린 리더의 사용 마저도 쉽지 않다는 이야기를 덧붙여 주시면서 테이블과 차트 해독의 어려움에 대해서 강조해주셨습니다.
"페이지를 읽으면서 내가 듣는 것이 표인지 보통 모르겠더라구요. 다 읽고 나서야 이게 표였구나, 하는 추측을 할 뿐이에요."
@uturi/sonification의 데모 버전을 청취해 보신 후, 수치의 변화량을 어느 정도 감지할 수는 있었다고 하셨습니다. 실제로 수치의 변화 경향성(상승과 하락)에 대해서는 정확하게 짚어주셨고, 중간중간 큰 폭의 데이터 변화에 있어서도 비교적 정확하게 설명해주셨습니다.
"숫자가 빠르게 올라갔어요. 중간에 한번 살짝 떨어지고 다시 올라간 것 같아요."
다만 모드에 따른 감지 정확도와 체감 사용성에는 조금 차이가 있어 보였습니다. Melody 모드는 정확도와 사용성 모두 좋은 결과를, Volume 모드는 결과는 정확하나 Melody보다는 어렵다는 의견을 주셨습니다. Pitch(Frequency) 모드와 Rhythm 모드는 어렵다고 말씀해주셨습니다.
| 모드 | 의견 |
|---|---|
| Melody | 정확, 이해하기 쉽다. |
| Volume | 정확, 조금 이해하기 어렵다. 청취 환경에 취약할 것 같다. |
| Pitch(Frequency) | 음 높낮이의 변동폭이 너무 커서 오히려 잘 안 들어온다. 약간 산만하다. |
| Rhythm | 어렵다. 변화가 어떻게 리듬과 매핑되는지 직관적으로 이해가 안된다. |
주목했던 것은 유사한 음향 특성인 Melody와 Pitch 모드에서 상반된 결과가 도출된 것이었는데요, Melody 모드에서의 음계 변화가 예측 가능하다(동일한 양만큼 변경된다는 점)는 점이 사용성에 긍정적인 요소로 작용하지 않았나 하는 생각이 들었습니다. Pitch(Frequency) 모드에서는 수치의 변화량만큼 음계가 변경되기 때문에 음계 흐름이 다소 튀는 것처럼 느껴질 수 있었고, 이 튀는 정도를 해석하는 것이 또다시 사용자의 인지 부담을 가중시키기 때문에 어렵게 느껴질 수 있다는 추측을 했습니다.
다만 Melody 모드에서는 수치의 변화가 Pitch(Frequency) 모드보다는 flatten해지기 때문에(수치 변화량이 정확하게 전달되지는 않음), 정보량과 해석 가능성 사이에서 tension이 존재할 수 있다는 것을 다시 확인할 수 있었습니다. 다시 말해 정확한 데이터 표현보다는 예측 가능한 매핑이 사용성에 더 큰 영향을 줄 수도 있다는 사실이었죠.
소리의 특성(둥근 소리, 날카로운 소리 등)에 따라서도 이해 가능성에 차이가 있을 수 있다고 판단을 하여 해당 기능을 v2에서 확장했었는데요, 이 지점에 대해서는 예상치 못한 좋은 피드백을 받았습니다.
"수치가 변화량이 큰 구간에서 소리가 다르게 나면 좋을 것 같아요."
음향화된 데이터 전체를 동일한 소리로 표현하여 데이터 전체의 특성을 전달한다거나(예: 날카로운 소리를 통해 데이터의 긴급도를 표현하는 것 같은 방식), 사용자의 다양한 지각력에 맞춘 데이터 생성에 도움을 줄 수 있다는 생각에서 출발했지만, 또 다른 확장 가능성에 대해서 짚어주신 것이었습니다.
소리 특성 교체가 실제로 얼마나 쉽게 감지 가능한지, 그리고 이 교체에 대한 지각이 중심 정보(데이터 변화)를 해석하는 것을 방해하지는 않는지(또 다른 인지 부하를 초래하지는 않는지)에 대해서 확인이 필요해 보이고, 소리 특성 변경이 자유롭게 가능하도록 sonify() 메서드의 인터페이스를 좀더 열어두는 것도 좋을 것 같다는 생각을 했습니다.
현재는 음향화된 데이터가 수동적으로 전달되는 구조지만 사용자가 이 데이터를 능동적으로 탐색할 수 있다면 도움이 될 것 같다는 피드백도 받았습니다.
"멜로디를 중간에 놓치면 조금 쫓아가기 어려운 것 같아요. 이런 경우에는 처음부터 말고 중간부터 다시 들으면 좋을 것 같은데요."
현재 @uturi/sonification 라이브러리에서는 소리를 즉시 내뱉지 않고 AudioBuffer를 리턴 받을 수 있는 autoPlay: false 옵션을 제공하기 때문에 능동적 탐색이 가능하도록 데이터를 재구성할 수 있는 환경이기는 합니다.
// autoPlay: false로 실행하기
sonifier.sonify(salesData, 'melody', { autoPlay: false });
// sonify 내부 동작 중
if (options?.autoPlay) {
await this.play(audioBuffer); // autoPlay: true인 경우에만 재생
}
return {
audioBuffer, // 재생하지 않더라도 audioBuffer이 제공됨
duration: this.config.duration,
dataPoints,
};
다만 이 탐색 기능을 라이브러리 자체에서도 제공할 수 있다면 좀더 사용성이 향상되지 않을까 하는 생각입니다. 이 기능이 별도의 확장 플러그인으로 제공된다면 라이브러리도 더 무거워지지 않고 애플리케이션 레벨에서 도입을 결정할 수 있으니 더 효율적일 수 있을 것 같습니다.
이번 글에서 정리한 내용들은 어디까지나 소수의 사용자분들과의 만남을 통해 얻은 인사이트일 뿐이긴 합니다. 표본이 충분한 상황에서 실제로 피드백들이 얼마나 일반화될 수 있는지, 어떤 방식이 더 효과적일 수 있는지에 대한 별도 검증이 필요합니다.
그렇지만 BVI 사용자분들과 만남을 통해 일부 기존 가설을 수정하기도 했고, @uturi/sonification의 확장 방향성에 대한 힌트를 얻은 것도 사실입니다. 단순히 데이터를 소리로 변환하는 것을 넘어 사용자가 실제로 이해할 수 있는 방식으로 정보를 전달하는 것이 더 중요한 문제라는 점을 확인한 것입니다.
특히 인상적이었던 것은 더 많은 정보를 담는 것보다 예측 가능하고 일관된 방식으로 전달하는 것이 사용성에 더 큰 영향을 줄 수 있다는 점이었습니다. Melody 모드와 Pitch(Frequency) 모드에서의 차이가 이 문제를 분명하게 보여주었습니다. 또한 데이터는 단순히 재생되는 것이 아니라 사용자가 능동적으로 탐색할 수 있어야 한다는 점 역시 중요한 방향성으로 남았습니다. 이는 @uturi/sonification을 단순한 출력 방식이 아닌 인터랙션 가능한 인터페이스로 바라봐야 한다는 새로운 고민 지점을 던져준 것이었습니다.
📋 검증이 필요한 고민 지점들
- 사용자가 실제로 이해할 수 있는 정보 전달 방식이 더 중요하다.
- 더 많은 정보를 담는 것보다 예측 가능하고 일관된 전달 방식이 사용성에 더 큰 영향을 줄 수 있다.
- 데이터는 일방적으로 재생되는 것이 아니라 사용자가 능동적으로 탐색할 수 있어야 한다.
다음 글에서는 이번 만남을 통해 새로 도출한 가설들을 바탕으로 @uturi/sonification의 사용성을 어떻게 검증할 것인지에 대한 양적 연구 설계 과정을 정리해보려 합니다. 실제 사용자들이 데이터를 얼마나 정확하고 효율적으로 이해할 수 있는지 어떤 방식으로 실험을 구성했는지 조금더 구체적으로 다뤄보겠습니다. 긴 글 읽어주셔서 감사합니다.