우리 실생활 속에서 저희는 수많은 애플리케이션을 찾아볼 수 있습니다. 각 애플리케이션마다 하나의 분야를 담당하고 있죠. 예를 들면 저의 경우는 금융은 '토스'였습니다. 그리고 영상은 'YouTube'였고요. 저도 그런 서비스를 만들고 싶었습니다. 쉽지는 않더라고요. 그래도 항상 고민없이 사는 것보다는 고민과 함께 사는 것이 그 무엇보다 중요하다고 생각합니다.

이번 글에서는 그동안 제가 소프트웨어를 만들어오면서 가진 고민들을 털어봅니다. 물론 1인 개발이 정말로 많았기 때문에 조금은 다른 케이스일 수도 있다고 생각합니다.

내가 편한 것이 아닌 남의 시선에서 편한 것

제가 개발을 시작하고 나서 뭔가를 드디어 만들 수 있는 정도의 실력이 되자 한 가지 생각난 것이 있었습니다.

사람사는데 불편한 것 똑같구나...

그래서 내가 불편한 것들을 하나하나 채워나가기 시작했죠. 예를 들면 단순한 검색 작업이라도 정리가 불편하게 되어 있는 상용 서비스를 다시 재정렬해주는 웹 사이트 등의 소소한 작업 등이었습니다. 하지만 이에 저는 반대로 스스로 함정에 빠지고 말았습니다.

사람사는게 똑같아? 그럼 내가 불편한 것만 만들어야지.

물론 잘 나갈리가 없었습니다. 저는 남들이 아니라 제가 쓰기 편한 것을 만들어내고 있었습니다. 이 때에 2가지의 부가적인 잠재적 침체기에 빠지게 됩니다. 먼저 자신이 하고 있는 일의 러닝 커브와 그것으로 인해 얻는 것이 무엇인지 모른다는 것입니다. 먼저 대부분의 소소한 불편함을 해결하는 개발은 사실 소프트웨어 아키텍쳐 상의 발전이 있지 않는 이상 대부분 큰 성장을 하기에는 너무나도 작은 공간입니다. 그리고 이는 저에게 있어서 계속 이 상태로 남아있으려고 한다는 성질을 심어줄 수 있다는 불안감까지 생각을 할 수 있습니다.

소프트웨어의 내적 슈퍼사이클을 이끌어내기

하지만 소소한 것을 해결하는 행위는 수많은 잠재 사용자를 이끌어낼 수 있는 행위입니다. 그리고 절대 무시할 수 없었죠. 이 단점을 벗어나기 위해 저는 한 가지 생각을 더 해보았습니다.

어떻게 사람들이 내 소프트웨어를 단순한 불편 해소의 길이 아닌 그 이상으로 사용하게 할 수 있을까?

경제에는 '슈퍼사이클'이라는 개념이 있습니다. 이는 현재 잘 나가는 기업 A가 신흥 경쟁자에게 뒤처지지 않게 스스로를 유지보수하여 그 순위를 유지하는 것을 말합니다. 간단히는 오랫동안 잘 된다는 것을 뜻합니다.

이 '슈퍼사이클'을 어떻게 소프트웨어에 적용할 수 있을까요? 저는 단순히 제가 개발자이기 때문에 내적으로 스스로 혁신을 먼저 이루어나가야 한다고 생각합니다. 제 주변에는 기획자 그리고 디자이너까지 그 누구도 없습니다. 무언가 하고자 했던 것 자체가 소소한 것이기도 했지만 그 무엇보다 그렇게까지 할 자본력이 존재하지는 않았습니다. 결과적으로 저 스스로 한 번 잘 만들어진 소프트웨어를 중심으로 어떻게 확장을 해야 할 지 생각해보기 시작했습니다.

잡다한 도구 상자가 될 것인가, 아니면 한 분야의 제너럴리스트가 될 것인가?

한 번 만든 소프트웨어가 조금씩 그 인기가 식어갈 때, 저는 무리해서라도 새로운 기능을 넣거나 디자인을 완전히 바꿔버리는 행위를 한 적이 있습니다. 왜냐하면 제 소프트웨어에서 사용자들이 제가 출시하는 업데이트들에 흥미를 가져주기를 강력하게 원했기 때문입니다. 하지만 급한 업데이트와 기능 결정은 저 스스로에게 무리를 주는 것 외에 별 다른 소득을 얻게 하지는 못했습니다.

그리고 무작정 무언가를 자신의 로드맵에 추가한다는 것은 자신의 소프트웨어의 컨셉을 망치고 전체적인 분위기를 흐뜨리는 효과를 가져옵니다.

한 번은 제가 트위터가 쓴 트윗들을 지우려고 하여 큐비를 찾게 되었습니다. 트위터에는 큐비라는 일종의 도구 상자가 있습니다. 위와 같이 "트위터와 관련된 도구들"로 가득차 있는 공간입니다. 하지만 저는 같은 류의 '불편함 해소 도구'를 개발하는 입장에서 한 가지 의문점이 생겼습니다.

어떻게 저렇게 많은 기능을 깔끔하게 담고 사용자를 유지할 수 있었을까?

당시에 제가 개발한 도구 중에 가장 크게 성장한 것 중 하나는 'Ohys-Fanmade'가 있었습니다. 이 또한 기존의 'Ohys-Raws'의 웹 사이트를 저의 입맛대로 개편한 것으로 꽤나 많은 양의 트래픽 비용을 축적하고 있는 서비스였습니다. 하지만 결과적으로 보면 저는 이 프로젝트를 유지하는데에 실패하였고 여전히 무엇이 문제였는지 정확히 모를 수도 있다고 생각합니다.

그럼에도 불구하고 한 가지 사실을 알 수 있었습니다. 제가 무리했다는 사실입니다. 저는 'Ohys-Raws'의 생태계의 한 부분이었는데 이를 강제로 유저들에게 '모든 것'을 제공해준다는 핑계로 가끔 무리한 업데이트를 진행했습니다. 예를 들어서 잠시 넣었다가 취소한 기능들은 지금도 정말로 많습니다.

  • 데이터를 카드로 나열하는 기능
  • 완벽하지 못한 다크 모드 지원
  • 최적화하지 못한 기능을 즉시 롤백하는 행위
  • 기능 소개에 앞서서 배너를 띄워 사용자 경험을 하락한 행위
  • 처음 용도에서 벗어난 토렌트 중심의 기능들

적어도 이정도가 있고 더 많습니다. (실제로 공개와 비공개 레포지토리의 커밋 수 차이는 2배가 넘습니다) 저는 특히 여기에서 지금도 마지막 사유를 주의 깊게 살펴보면 좋겠다는 생각을 합니다. 마지막 기능은 정말로 'Ohys-Raws'라는 생태계에서 벗어난 기능이며 이를 위해서 다른 모든 기능을 웹 사이트의 하위 섹터로 옮겨버린 것입니다. 덕분에 유저는 한 번 더 클릭을 했어야 했죠.

여전히 비슷한 실패 사례는 많습니다. 저는 개인적으로 사람들이 한 도메인의 범위를 무조건 하나로 보면서 발생하는 사례라고 생각합니다. 예를 들어서 '요리'가 아닌 '계란을 잘 푸는 방법' 또한 하나의 도메인이 될 수 있습니다. 전혀 안 될 이유가 없습니다. 하지만 사람들은 '계란을 잘 푸는 방법'에 대한 웹 사이트를 보면 이 웹 사이트의 카테고리를 '요리'로 봅니다. 그리고 '요리' 아래에 '칼질을 잘 하는 방법'을 넣게 되어 웹 사이트의 주된 주제를 '계란을 잘 푸는 방법'에서 '요리'로 바꾸어버립니다.

특히 이런 경우는 무언가 소소한 도구가 되고자 하는 개발 작품들에게는 취약했는데 그 이유는 사람들이 이 웹 사이트를 찾게 되는 경로가 한 주제가 아니라 문제 해결이라는데에 치우져서 있는 것이 문제였고 두 번째로는 편하게 접근해야 하는 도구였지만 더 이상 한 번의 터치나 클릭으로 작동하지 않는다는 것이 주된 문제였습니다. 이 문제는 '주제'를 조금 더 상위의 것으로 바꾸면서 동급의 여러 기능을 추가하여 완화할 수 있습니다. 하지만 문제 해결의 경위가 주로 '불편함'이었다는 점에서 충분히 웹 사이트의 사용성을 떨어지게 됩니다.

그래서 다시 위로 돌아가서 큐비의 경우에는 하나의 도구로 시작했을지 몰라도 '트위터'라는 주제를 잘 녹인 웹 사이트라고 생각합니다.

복잡한 프로그래밍 멈춰! 복잡한 결과물 멈춰! 복잡한 사용성 멈춰!

최근 들어서 굉장히 많은 '오터치' 혹은 '미스 클릭'을 유도하는 웹 사이트나 앱, 심지어는 키오스크까지 볼 수 있게 되었습니다. 공지 사항에는 항상 이렇게 달려있습니다.

여러분의 의견을 반영하여 업데이트를 적용했습니다.

하지만 실상은 개발자들의 노력에도 불구하고 실제 편안함과는 많은 차이점이 있습니다. 대체적으로 요즘은 햄버거 프랜차이즈들의 무인 주문 창구에서 그것이 자주 보이는 듯하였습니다. 추가 주문 버튼을 잘 보이지 않게 하여 주문을 쉽게 끝마치게 해주지 않더라고요.

애플리케이션을 사용하는 습관을 이용하기

저는 대신에 개발자들이 조금 더 우리 습관에 익숙한 프로그램을 만들어야 한다고 생각합니다. 만약에 굳이 새로운 패러다임을 제시할 이유가 없다면 말이죠. 제가 이러한 주장을 하는데의 중심적인 이유에는 '습관'이 있습니다. 우리는 사실 습관을 굉장히 부정적으로 보곤합니다. 왜냐하면 잘못된 습관은 고치기가 힘들기 때문입니다.

하지만 습관은 사실 우리 몸이 같은 작업을 더 빠르게 하기 위해서 뇌 뿐만 아니라 다른 장기나 우리 몸의 부분에 기억을 해두는 겁니다. 개발자의 언어로는 '캐싱'이라고도 합니다. 저는 이러한 기억 중 '애플리케이션을 쓰는 습관'은 왠만해서 대부분의 애플리케이션에 적용이 된다고 봅니다. 왜냐하면 그들은 공통된 디자인 관념을 가지고 개발되는 경우가 많기 때문입니다. 예를 들어보겠습니다.

  • 특정 작업을 계속하는 버튼의 경우에는 거부하는 버튼과 달리 테마 색으로 하이라이트가 들어가 있어서 찾기가 쉽습니다.
  • 화면 크기가 작아 충분히 많은 정보를 표시할 수 없다면 팝업이나 메뉴 등으로 그것을 배치합니다.
  • 모바일의 경우에는 한 화면에 최대한 한 가지 주제만 표시하려고 합니다.
  • 무언가 우선적으로 해야 하거나 다음 단계로 넘어가는 팝업의 경우 한 화면을 더 만들 정도로 중요한 정보가 아니라면 뒷쪽에 배치된 것들의 색을 어둡게 합니다.

하루라도 앱 몇 개만 써보아도 알 수 있는 것들입니다.

어떻게 써야 하는지 꼭 표시해주세요

그리고 최근에 이러한 규칙을 깨내는 앱들이 있습니다. 우리는 그렇게 한 번 더 고민하게 됩니다.

이 버튼이 맞나?

1초도 안 되는 멈칫이라도 우리는 우리가 하던 생각을 잠시 멈춰야 합니다. 그렇기 때문에 저는 특히나 이전 섹터에서 다룬 규칙들을 깨는 창의력 있는 애플리케이션을 개발한다면 유저에게 더더욱 어떻게 써야 하는지 간단한 팁을 주어야 한다고 생각합니다.

HTML5UP의 Paradigm Shift 템플릿입니다. 이 템플릿에서도 아래로 스크롤하라는 아이콘을 볼 수 있습니다. 개발자는 자신이 만들었으니 당연하다고 생각할 수 있지만 사용자가 개발자의 생각을 읽을 수는 없기 때문에 이러한 요소들은 충분히 배려가 됩니다.

도움말이 도움말이 아니예요

위의 의견에 대한 연장선으로 또 다른 한 가지의 앱 유형을 소개해보겠습니다. 여러분은 애플리케이션이 시작하면 어떻게 이 앱을 써야 하는지 투명한 팝업을 띄워 알려주거나 혹은 애플리케이션의 사용법을 넘기면서 보여주는 앱을 사용해보신 적이 있으실 겁니다.

from ZUM 뉴스

위는 이전에 큰 인기를 얻었던 '도돌 런쳐'의 첫 시작 도움말 팝업 화면입니다. 사용자 입장에서 처음 써보니 어떻게 써야 하는지 애매할 수가 있으니 앱을 시작할 때 인터렉티브한 도움말을 보여주는 것입니다. 하지만 이러한 방식을 사용하면서 저는 의도와는 반대되는 느낌이 들었습니다.

먼저 너무 헷갈렸습니다. 뭐가 도움말이고 뭐가 화면인지 헷갈릴 정도로 실제 앱 영역의 배경색을 연하게 설정하는 경우가 있었습니다. 그리고 실제로 작동하게끔 만들어주는 경우도 있어서 상당히 헷갈렸습니다. 저는 사용자가 사용자 마음대로 사용할 수 있는 권리 또한 저는 권리라고 생각합니다. 그리고 무엇보다 헷갈려서 불편했습니다. 대신에 애초부터 사용자가 접근하기 쉬운 방식으로 개발을 하는 방향이 맞다고 생각합니다.

스크롤링 효과 등 인터렉티브한 효과도 습관이 있습니다

그 외에도 인터렉티브한 효과나 애니메이션에도 습관이 적용됩니다. 현재 모바일 운영체제는 대표적으로 2개가 있습니다. iOS와 Android입니다. 그리고 그 2개 운영체제는 똑같은 듯하지만 많이 다릅니다. 예를 들어서 iOS는 스크롤의 끝에서 부드럽게 ease 효과를 적용하여 폴링을 집어넣지만 반대로 Android는 딱딱하게 끊기는 대신 리프레시 중이라는 인디케이터를 띄워줍니다. 그리고 각각의 사용자는 그 두 가지의 작동 방식에 익숙해져 있고 자신의 기기에서 예상치 못한 애니메이션이 나오면 분명히 어색함을 느낄 것입니다.

현재의 많은 웹 앱 또한 비슷합니다. iOS의 폴링 효과를 살리려고 강제로 JavaScript로 스크롤을 끝점에서 부드럽게 한다던지와 같은 효과는 기존 운영체제의 스크롤 구현 방식과 차질을 만들 수도 있습니다. 그리고 반대로 너무 딱딱한 경우는 iOS 유저인 저에게 순간적으로 어색함을 느끼게 해줍니다.

저는 이를 마치 웹 앱을 네이티브 앱으로 속일 수 없는 것과 같은 인식이라고 봅니다. 그리고 되도록이면 그냥 그대로 두는 것이 더 자연스러울 수도 있다는 말을 하고 싶습니다.

디자인이 기능보다 중요할까요?

그 무엇 하나 특출나게 중요하다고 볼 수는 없습니다. 하지만 기능만 잘 작동하면 된다면서 디자인을 전부 다 휴지통에 집어넣는 행위는 끔찍할 뿐, 그 이상 그 이하도 아닙니다. 왜냐하면 디자인이 어떻느냐에 따라서 사용자는 단순히 쓰기 꺼려진다는 것 외에 애플리케이션에 대한 신뢰도와 속도 또한 잃을 수 있습니다.

여기에는 좋은 사례들이 많이 있습니다. 최근에는 코인원 사의 사례가 있었습니다. 아래는 코인원의 웹 사이트입니다. 그리고 한 눈에 볼 수 있듯이 타 거래소와는 다르게 깔끔한 UI로 시선을 사로잡습니다. 제가 가상화폐를 거래하는 사람이 아니지만 굳이 한 곳을 고르자면 코인원을 선택할 정도로 타 거래소와 UI의 질적 차이를 보여주고 있습니다.

단순히 기능만 잘 지원되어도 상관은 없습니다. 하지만 디자인이 좋기만 해도 사람들이 더 많은 신뢰감을 얻는 이유에 저는 '오래되지 보이지 않기 때문'이라고 생각합니다. 단순히 오래되지 않아보이기 때문에 신뢰감이 상승했다고 볼 수 있다 생각합니다.

물론 단순히 디자인만 좋아봤자 되려 사기꾼스러운 이미지만 얻게 될 뿐입니다.

Apple의 락인 효과

애플은 라이프사이클 기업입니다. 우리의 삶 전반적으로 영향을 끼치고 사람들이 어떻게 행동하는지를 결정합니다. 이렇게 한 번 애플의 생태계에 묶여서 타사 제품을 사용하지 못하는 것을 락인 효과라고 합니다. 이러한 락인 효과는 애플에서 가장 강력하게 나타나는데 이 애플을 사용하는 사람들이 공통적으로 말하는 것이 몇 가지가 있습니다.

"사과는 갬성입니다"

맞습니다. 갬성이기 때문에 끌려들어왔는데 락인 효과로 애플이라는 회사에 종속이 된 것입니다. 그런데 왜 이야기를 하는지에 대해서 의문점을 가지실 수가 있습니다. 그 중심에는 경쟁사와의 차별점이 있습니다. 애플이 최초로 스마트폰이라는 개념을 세상에 제시한 것도 맞지만 그 뒤로 수많은 경쟁사들이 출현했습니다. 그리고 근래에 들어서 다시 점유율을 가져가고 있습니다.

from Apple

그리고 그 중심에는 다른 이유도 있겠지만 최근 유독 다시 판매량에 빛을 발한 아이폰을 보면 '보라색' 하나만으로도 이렇게 디자인이 중요한 요소로 자리잡고 있다는 것을 볼 수 있습니다.


사실 이번 글에서는 제 개인적인 취향이 상당히 많이 노출되었습니다. 그리고 꼭 소프트웨어를 하나의 방식으로 만들어야 한다는 것도 아닙니다. 다만 사용자에게 불편함은 최소화해야 한다고 생각합니다. 오늘도 긴 글 읽어주셔서 감사합니다.