UI 디자인부터 알고리즘까지. 앱 개발에 관심 있다면 볼만한 글.
(서울)데이트팝 2.0이 출시되었다. 나는 대표라는 자리에 있지만 디자이너 출신으로 지금도 앱 개발의 많은 부분에 관여하고 있기에 정리해볼 겸 글을 남긴다. 디테일한 개발 프로세스를 풀기보다는 왜 우리가 이렇게 만들었는지, 그 배경과 협업 과정에 대해 적어 보았다.
초창기 데이트팝의 기획 의도는 이랬다.
- 좋은 퀄리티의 데이트 정보를 모바일로 옮겨 오자
- 한 편의 예쁜 매거진을 보는 것 같은 경험을 주자
지난 2년 간 어디에서도 쉽게 볼 수 없는 고퀄리티의, 커플들이 좋아할 만한 컨텐츠를 꾸준히 생산하고 모았다. 실제 커플들이 다녀온 리뷰를 한 편의 웹툰처럼 재가공해 만든 '스토리형 데이트 코스'는 기존에 없던 유형의 컨텐츠이다. 덕분에 제품 자체의 경쟁력만으로 마케팅 비를 거의 쓰지 않고도 입소문을 탈 수 있었다.
그렇게 데이트 장소 기준 3,500여 개, 데이트 코스 기준 1,200개 이상이 모였다. 앱의 경우 110만 다운로드를 기록, 데이트 앱 시장 1위, 다른 앱보다 훨씬 높은 수준의 리텐션을 자랑하며 운영해왔다.
그러나 문제가 있었다. 우리는 초반 기획 의도인 '매거진'에 충실했을 뿐, 모바일 앱으로써는 할 수 있는 것들이 더 많았음에도 그 특성을 제대로 활용하지 못하고 있었다. 그리고 장기적인 로드맵에 있어서 꼭 필요한 '개인화' 역시 미션이었고, 그렇게 2.0을 본격적으로 기획하게 되었다.
데이트팝 2.0 의 기획 의도
1. 컨텐츠 접근성 강화
2. 개인 성향에 맞는 데이트 코스 추천
요즘 페이스북을 비롯하여 일상생활과 밀접한 정보를 쉽게 접할 수 있는 채널이 많다. 그러나 우리 컨텐츠는 기본적으로 SNS의 뜨내기 컨텐츠들보다는 훨씬 묵직하고, 정보가 많고, 고퀄리티이다. 그렇기 때문에 앱에서 이를 가볍게 UI로 풀어내는 것이 숙제였다.
모든 Activity가 뜨는 효과를 'Spring UI'로 바꾸었다. 자체적으로 붙인 이름인데, 용수철이 튀어 오르는 것처럼 아래에서 위로 올라오는 형태여서 붙여진 이름이다. 핵심은 'Back Button을 누르지 않게 하는 것'이었다.
엄지 손가락 제스처 하나 만으로 좌우 스와이프, 스크롤, Depth 진입이 자유롭게, 모든 컨텐츠를 빨리 보고 빨리 나올 수 있도록 한다. 거기에 덤으로 데이트팝의 통통 튀는 느낌을 반영할 수 있었으니, 최적의 라이브러리를 찾았다며 기뻐했던 개발팀 막내의 얼굴이 떠오른다.
페이스북의 Rebound 라이브러리를 응용한 것이며 현재 페이스북 안드로이드 버전에서 '댓글 보기'와 비슷한 형태이다. 단, (1) 위에서 아래로 당기는 Depth-off 제스처, (2) 세로 스크롤, (3) 가로 스와이프 이 세 가지를 어떻게 구분 짓고 자연스럽게 구현할지 감도 조절을 해야 했을 때 그녀는 며칠 간 울상이었다.
데이트팝 유저들은 보통 잠자기 전과 같이 틈 나는 시간, 혹은 데이트 장소에서 우리 앱을 많이 본다. 평일 밤 10시 이후에 트래픽이 많고, 목요일 저녁부터 점점 트래픽이 튀기 시작해서 일요일 낮이면 다시 사그라든다. 그리고 금요일 저녁부터 토요일까지는 평소의 2배까지도 찍는 것을 보면 알 수 있는 사실이다.
그런데 그때 가장 강력할 수 있는 Search 기능이 사실 좀 불편했다. 첫 출시 이후 거의 한 번도 만지지 않았다면 그 심각성이 이해될까..( ..).. 거의 구색 맞추기 수준이었던 것이다.
그래서 Elastic Search로 검색 서버를 다시 세팅해 키워드 검색 결과에 대한 정확도를 높이고, 사용자 데이터를 잘 받을 수 있는 작업을 진행했다. (이 과정에서 아무리 많은 사용자들이 들어와도 서버 요금이 더 과금되지 않도록 해주신 텐핑거스 서버 개발자느님의 능력을 재확인했다.)
여담이지만 우리 앱은 그때그때 불러오는 사진이 많고, 커스터마이징 UI가 상대적으로 많은 편이다. 이번 출시 직전에도 일부 기종(L*폰..)에서 메인이 버벅거리는 현상 때문에 개발팀이 잡는다고 아주 고생을 했는데, 그게 결국은 UI와도 관련이 있는 문제였다. 그래도 말랑말랑한 감성을 위해 우리가 선택한 부분이고, 유저들이 확실히 '다르다'라고 느끼는 점이기에 고수하고 있다. 새삼 감사합니다 개발팀.
거시적인 트렌드이기도 하지만, 컨텐츠의 개인화 역시 필수였다. 그래서 작년 가을쯤부터 추천 알고리즘을 개발해 이번에 도입했다. 각 커플들의 데이트 성향과 상황을 분석하여 데이트 장소를 추천해주는 기능이다.
기술적인 부분을 쉽게 설명해보면, 실제 '왓챠(개인 맞춤형 영화 추천 서비스)'와 같은 서비스에서 사용하는 Collaborative Filtering 은 내가 매긴 별점을 기반으로 하되, 나와 성향이 비슷한 사람을 서로서로 매칭해서 추천을 해주는 방식이다. (나는 개인적으로 왓챠 앱의 팬이며, 우리가 개발할 때 많은 부분을 참고했다.)
여기에 우리가 기존에 가지고 있는 컨텐츠(사진, 텍스트 데이터)를 이용한 알고리즘을 결합하였고, 이 하이브리드 엔진이 현재 추천 알고리즘의 핵심이다. 그래서 한글 형태소 분석을 시작으로, 사진과 텍스트와 별점으로 표현되지 않는 것들을 반영할 수 있는 갖가지 장치들을 추가적으로 마련하고, 정확도를 높이고 연산 시간을 줄이는 과정을 거쳤다.
다만 원래 알고리즘이라는 것이 사용자들의 데이터가 쌓일수록 정교해지기 때문에 아직은 완성이라는 표현을 쓰기에는 이른 것 같다.
이에 따라 이전 버전은 대부분 기능을 로그인 없이 사용할 수 있었으나 이제는 로그인이 필수로 들어갔으며, 사용자 리뷰를 더 잘 받기 위한 UI 개선, 맞춤형 추천 피드 및 데이트 성향 분석 툴 제작 등의 과정을 거쳐 출시를 할 수 있었다.
출시 하루 만에 몇만 건의 사용자 데이터가 올라오고 있으며, 그만큼 버그 리포트가 속속들이 올라오고 있고, 앱이 간혹 죽기도 하며( ..), 여전히 부족한 부분이 많다. 그러나 안정성은 더 좋아질 것이고, 알고리즘은 더 정교해질 것이며, 개발팀은 더 신나게 개발을 할 수 있을 것이다. (응..?)
조금 늦었다면 늦었을 수 있지만.. 사실 얼마 전에 올 1년 계획을 겨우겨우 잡았다. CTO님이 '개발팀 3세트 더 있어야겠는데?'라는 말을 했을 만큼 앞으로 해결해야 할 숙제가 더 많다.
데이트팝 1.0이 좋은 데이트 정보를 아름답게 볼 수 있는 수준이었다면, 데이트팝 2.0을 통해 나에게 맞는 데이트 정보를 빠르고 쉽게 볼 수 있게 되었다. 한동안 수많은 2.xx 버전을 거쳐 3.0이 나오는 날까지, 커플들의 행복한 데이트를 위해 더 치열하게 고민해야 할 것이다.