brunch

You can make anything
by writing

C.S.Lewis

by 유저해빗 May 30. 2017

유저해빗 개발 회고록 (1) SDK 개발자

고객이 원하는 편리한 SDK를 위한 연구


유저해빗 인트로 개발자

유저해빗에서 안드로이드 SDK 개발자로 일한 지 벌써 2년이라는 시간이 훌쩍 흘러버렸다. 2년 전에 비해 유저해빗은 많이 성장하였지만 아직도 로드맵에는 남아 있는 과제들이 많다. 하지만 이번 기회에 유저해빗 SDK 개발자로서 바쁘게 달려온 날들을 뒤돌아보면서 잠깐 글을 끄적여보고자 한다.


안드로이드, 구글 애널리틱스 그리고 유저해빗


나는 2011년에 처음으로 안드로이드를 접했다. 그 이후로 몇 차례 안드로이드 앱을 개발하기는 했지만, 주로 시연한 결과를 보여주는 정도였다. 마음속으로 안드로이드 개발자라는 타이틀을 가질 생각이 없었기에 그리 적극적인 스탠스는 아니었다. 하지만 우주의 기운이 나를 불렀는지 몇 년 뒤 플레이스토어 배포를 목적으로 안드로이드 앱을 본격적으로 개발해야 하는 상황이 발생했다.

당시 기획에서부터 앱과 서버 개발을 모두 주도해 가면서 개발을 했던 터라 서비스에 대한 애정이 상당히 컸다. 드디어 앱을 플레이스토어에 처음 출시하는 날, 그 날은 아침부터 무척이나 설레던 기억이 난다. 하지만 설레던 마음도 잠시... 출시한 앱을 다운로드하여 실행했는데 검은 화면만 보여주고 앱이 꺼져 버리는 것을 보았을 때는 내 마음도 같이 꺼지는 것 같았다.  


한편, 앱을 출시하고 나서 대표님의 지시로 나는 앱에 구글 애널리틱스를 적용하는 작업을 하게 되었다. 분석에 대해서는 한 글자도 모르던 나였지만, 열심히 책을 찾아가면서 '무엇을 분석해야 할까?'를 고민을 하며 엑셀로 정리하던 기억이 난다. 구글 애널리틱스로 분석을 하기 위해서는 앞서 정의한 엑셀 내용을 기반으로 하여 이벤트들을 분류하고 카테고리화 하여 라벨을 지정하여 만든 후 각각의 이벤트를 코드로 입력해야 하는 작업이 필요하다. 

당시 100여 개가 넘는 이벤트를 입력하는데 며칠을 고생하였고 많은 삽질  끝에 겨우 적용할 수 있었다. 힘들게 삽질한 만큼 쌓여가는 데이터들을 볼 때에는 뿌듯했다. 그리고 출시한 앱을 유저가 사용하고 있는 것을 지표로 확인할 수 있어 신기하기도 했다. 하지만 시간이 흘러가면서 나는 데이터를 통하여 단순 지표 이외의 분석적으로 이렇다 할 결과물을 내지 못하자 초조해지기 시작했다. '그래서 이렇게 얻은 데이터로 내 앱을 어떻게 수정해야 하는 거지?'라는 생각 외에는 아무것도 하지 못하고 시간만 보내게 되었다.

내가 유저해빗을 알았을 때 처음으로 했던 질문은 '구글 애널리틱스랑 뭐가 다른가요?'였다. (지금도 가장 많이 받는 질문 중 하나이다.) 당시에 분석은 당연히 구글 애널리틱스였고 구글 애널리틱스는 활용이 어려웠기 때문에 나에게 분석은 어려운 것이었다. 하지만 유저해빗에 대한 설명을 들으면서 분석이 결코 어렵지 않구나 라는 것을 알게 되었다. 그리고 유저해빗 기능 중에서 내가 이동한 화면과 터치들을 그대로 재현해주는 '리플레이'를 보았을 때는 개발자로서 궁금증이 생기기 시작하였다. 

'어떻게 동영상이 아닌 방법으로 내가 사용한 모습들을 재현할 수 있을까?'

이 질문이 몇 일째 머릿속을 떠나지 않게 되었고, 결국 여기에 답을 얻고자, 다음 주에 출근을 약속한 회사를 뒤로하고 유저해빗을 선택하게 되었다.


천 개의 앱, 천 개의 개발 방법


누구에게 이야기는 하지 않았지만(안 하길 다행인 것 같다...) 나는 평소 개발을 창조적으로? 하는 능력은 없지만 남의 코드를 기가 막히게 카피하여 내 것으로 쓰는 능력에는 자신이 있었다. 그러다 보니 다른 사람이 코딩한 코드를 보는 것에는 제법 자신이 있었다. 하지만 유저 해빗 SDK 개발자로서 근무하면서 그 자신감이 근자감임을 확인하는 일이 많아졌다. 

유저해빗 제공 서비스의 일환으로 유저해빗 SDK 연동과 관련해 고객사에 직접 지원을 나가는 경우가 있다. 유저해빗의 서비스 모토가 쉽고 빠르게 적용하는 것이므로 이에 걸맞은 수준을 보여줘야만 했다. 때문에 나에게 있어 유저해빗을 SDK 연동과 관련해 고객사 앱에 대해서 최대한 빨리 이해하는 것이 중요한 과제였다. 제한된 시간 안에 뭔가를 보여줘야 하는 이러한 상황들은 매번 시험을 치는 듯한 긴장감이 함께 했다.

이렇게 나를 매번 긴장하게 했던 요인들 중 하나는 앱마다 모두 구조가 다르다는 것이다. 지금까지 수십 개의 업체를 방문하여 코드를 살펴보면서 느낀 것은 정말 하나같이 전부 다른 방식으로 앱이 구현되어 있다는 것이었다. 특정 앱이 더 잘 만들어졌다는 것보다는, 각각의 앱 특성에 알맞게 구현이 되어 있었다. 유저해빗 서비스는 이벤트 입력 코드 없이 자동으로 데이터를 추적해야 하기 때문에 어떠한 구조를 가진 앱이라도 이것이 가능하도록 하는 것이 필수이다. 그래서 앱들이 만들어지는 방법을 최대한 많이 알고 있는 것이 매우 중요하다. 이런 경험은 힘겨운 작업이지만, 후발주자들은 가질 수 없는, 고객들과 직접 만나 소통하는 과정에서만 얻을 수 있는 귀중한 자산이다.  

지금도 계속해서 새로운 형태의 앱 구조가 나오고 다양한 방법들이 제시되고 있지만, 꾸준한 연구와 고객들과의 소통을 통해서, 만개의 앱에 유저해빗이 적용되더라도 모두 깔끔하게 데이터를 추적할 수 있도록 열심히 달려가고 있다.  


유저해빗 SDK 적용이 가장 쉬웠어요


유저해빗 SDK 개발의 3대 과제는 새로운 기능 추가, 새 버전에 따른 유지보수, 편리한 앱 적용 방법이다. 이 3가지와 관련해서는 지금도 쭈욱 리스트로 정리되어 있는데, 이상하게 아무리 해결해도 좀처럼 리스트가 줄지 않는다. (밑 빠진 독에 물을 붓고 있는 건가...)

하지만 이 3가지 이외에도 내가 가장 신중하게 여기는 부분은 유저해빗 SDK로 인하여 고객의 앱에 장애가 발생하지 않는 것이다. 앱에 포함되어 사용자에게 배포된 후에는 당장 SDK에 문제가 발견되더라도 빠르게 수습할 수가 없기 때문에, 애초에 문제가 발생하지 않도록 신경 써야 한다. 그래서 난 매번 새로운 버전을 출시할 때마다 최선을 다했음에도 '이번 버전도 무사히...'라고 기도하게 된다.

.


앱의 안정성 다음으로 신경 쓰는 요소는 유저해빗을 잘 사용할 수 있도록 사용자들에게 편의성을 제공해주는 것이다. 유저해빗에 들어오기 전 구글 애널리틱스를 적용하면서 가장 짜증 났던 것은 정의한 이벤트를 모두 코드로 하나하나 다 적용해야 한다는 것이었다. 또한 입력한 코드들로부터 데이터가 잘 수집되는지 확인하는 과정 역시 적용하는 과정만큼 힘든 작업이었다. 알아낸 것이 너무 아까워서 구글 애널리틱스를 적용하는 방법을 블로그에 기록하기도 하였고, 부족한 부분은 다른 사람의 블로그를 읽어가면서 (또한, 모니터에 육두문자를 날려가면서) 작업하던 기억이 난다. 

지금은 유저해빗 SDK를 개발하기 시작하면서 나는 구글 애널리틱스를 만든 개발자와 같은 입장에 서있다. 그리고 정말로 SDK를 쉽게 적용할 수 있도록 하는 것이 어렵다는 것을 피부로 느끼고 있다. 다만 안타까운 점은 유저해빗은 구글처럼 큰 회사가 아니기 때문에, 적용 과정 자체가 제품의 신뢰도에 많은 영향을 미친다는 것이다.

앱을 분석하고, 분석한 결과를 다시 앱에 적용하는 과정은 일회성으로 끝나지 않는다. 지속적으로 앱이 성장함에 따라서 애널리틱스도 그에 맞게 계속적으로 알맞게 수정하여 적용되어야 한다. 그만큼 애널리틱스의 적용이 쉬워야 하며 유저해빗에서도 중요한 특징 중 하나로 강조할만큼 많이 신경쓰고 있는 부분이다. 유저해빗 SDK 개발자로서 세상에서 가장 적용이 쉬운 애널리틱스 SDK를 만드는 것은 그리 만만한 목표가 아닌 것이다.   


캡스톤을 올리기 전까지!


유저해빗에 입사를 할 때 기대했던 생각 중 하나는 서비스가 거의 완성에 가까워져 마무리하는 작업만 하면 되겠구나 였다. 나쁘게 표현하면 숟가락만 얹겠다는 심보였다. 하지만 얼마 가지 않아 해야 하는 게 엄청나게 많다는 것을 깨닫게 되었다. 

입사하고 나서 2년이라는 시간이 지났는데도 유저해빗 SDK는 아직도 개발해야 하는 기능들이 많다. 또한 앞에서도 이야기했듯이 더 이상 애널리틱스를 적용하는 개발자들이 고통받지 않도록 하기 위하여 정말로 편리한 SDK 위한 연구를 계속할 생각이다. 처음 앱을 배포하는 과정부터 데이터를 수집하고 분석된 결과물을 다시 앱에 적용하는 마지막 과정까지, 유저 해빗 SDK 개발자로서 큰 책임감과 사명감을 갖는다. 


유저해빗 서비스에 대한 신뢰를 구축하고, 앱 분석에서 필수적인 서비스로 누구나 쉽게 앱을 분석할 수 있는 유저해빗을 완성하기 위하여 앞으로도 계속 달려가 결국엔 내 손으로 직접 유저해빗의 캡스톤을 올려볼 생각이다.  









그가 만든 유저해빗이 궁금하다면?

유저해빗 바로가기










매거진의 이전글 스파크랩 데모데이8 스케치
작품 선택
키워드 선택 0 / 3 0
댓글여부
afliean
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari