지그재그는 누적 다운로드 수 1,100만, MAU 200만을 넘어가고 있는 여성 쇼핑몰 모음 앱 서비스입니다. 그렇기 때문에 매일같이 지그재그에 쌓여가는 이용자들의 데이터 로그들도 어마어마하죠.
이와 같은 로그들은 이용자들이 각자 자신에게 맞는 쇼핑몰/상품을 더 쉽게, 편하게 찾을 수 있도록 도와주는 개인화 알고리즘의 핵심 자원이면서, 이용자들이 앱의 각 기능들을 잘 활용하고 있는지 파악하기 위한 사용성 분석에도 필수적입니다. 또한 서비스 운영에 영향을 줄 수 있는 각종 이상 현상을 실시간으로 탐지하며 대응할 수 있게 도와주죠. 이를 위한 지그재그에서는 불필요한 로그/개인정보를 수집하지 않으면서도 앞선 목적에 부합하는 로그만 효율적으로 쌓아나가기 위해 노력하고 있습니다.
실제로 이와 같은 로그 수집을 위해 지그재그 개발팀과 데이터팀이 어떤 노력을 기울이고 있는지, 데이터팀의 지형님과 개발팀의 형준님이 이번 포스트를 준비했습니다 :-)
저는 지그재그에 합류한 지 5개월 차 되는, 데이터팀 신입 국지형이라고 합니다. 평소에 데이터가 많은 회사에서 다양한 사람들의 특성을 분석하면서 일하고 싶어 했고, 개인적인 관심사도 계속 데이터 분석 업무와 맞닿아있기 때문에 지그재그에서 커리어를 시작하게 되었습니다. 양질의 좋은 데이터, 다양한 사용자라는 측면에서 지그재그가 제게 가장 알맞은 곳이라고 생각했고 지금도 굉장히 만족하고 있습니다(^^)
지난 4월, '분석용 이벤트 로그 전체 점검 및 정리'라는 Task를 개발팀의 형준님과 함께 맡아 수행하게 되었습니다. 처음에는 이 Task에 대해 굉장히 단순하게 생각했었지만 알고 보니 데이터팀의 인성님, 개발팀의 연미님께서 많은 고민 끝에 주신 의미 있는 Task였습니다. 이번 글에서는 대체 이 업무가 왜 이토록 중요했는지, 그리고 이 업무가 개발팀의 신입이었던 형준님과 데이터 팀 신입이었던 제게 시사하는 바가 어떤 점이었는지 기록해보려고 합니다.
아, 그전에 '분석용 이벤트 로그'에 대한 설명을 드려야 할 것 같은데요. 분석용 이벤트 로그는 다양한 데이터 분석을 목적으로 수집하는, 지그재그 이용자의 이벤트 로그를 뜻합니다.
- 분석용 : 지그재그 서비스 이용자의 만족을 위해 필요한 의사결정을 지원하는 데이터 분석(ex. 이용자 분석, 행동 패턴 분석 등)
- 이벤트 : 지그재그 이용자들이 앱을 이용하면서 발생시키는 액션 및 화면 이동
- 로그 : 발생한 이벤트들을 데이터로 정리해 데이터베이스에 기록
이 Task는 다음과 같은 방식으로 진행되었습니다.
(1) 형준님과 제가 먼저 어떻게 데이터를 정리하면 좋을지에 대한 기준을 논의하고(60%)
(2) 연미님, 인성님에게 그 방식이나 진행사항들에 대한 피드백을 받고(20%)
(3) 최종적으로 로그들을 정리한 다음 개발에 적용하는 방식(20%)
실제 데이터팀과 개발팀이 함께 나눴던 QnA는 다음과 같았는데요!
인성(데이터팀) : 분석용 이벤트 로그 정리는 왜 따로 태스크로 정리해야 하는 걸까요?
지형(데이터팀) : 아무래도 이용자 분석을 하는 데 있어서 부족한 로그를 추가해야 하니, 이용자들의 세세한 액션들에 대한 로그들을 하나도 빠짐없이 추가해야 하지 않을까요?
연미(개발팀) : 음, 그렇다면 부족한 로그가 있을 때마다 그 모든 것을 로그로 추가하는 것이 가장 최선일까요?
형준(개발팀) : (1차 동공 지진) 없는 것보단 있어야 분석을 할 수 있으니까 가장 최선일 듯 싶습니다.
연미(개발팀) : 지그재그 이용자들의 데이터 사용량을 생각해보신 적이 있나요? 로그가 많을수록 지그재그 이용자들의 데이터 사용량이 어떻게 될까요?
지형(데이터팀), 형준(개발팀) : (2차 멘붕...)
이후 계속적인 논의, 논의, 논의를 거쳤습니다.
로그에 대한 기본적인 이해 없이는 정리의 시작조차 할 수 없다는 것을 깨달은 저희는 인성님과 연미님이 질문해주신 내용들을 되짚어보기 시작했습니다. 가장 먼저 해야 할 업무는 아래와 같았습니다.
1) 어떤 로그들이 존재하고 있는지 파악하는 것
2) 어떤 타이밍에 이 로그들이 호출되는지 파악하는 것
3) 이 로그들이 어떤 유형으로 분류되어 있고 분류되어야 하는지를 파악하는 것
형준님은 개발팀의 입장에서 '기존 로그들을 파악'하는 작업을, 저는 데이터팀의 입장에서 '로그 추가, 수정, 삭제 기준'을 정하는데 중심을 두고 본격적으로 함께 정리 작업을 시작했습니다. 저희는 이 작업을 진행하면서 서로에게 계속해서 질문을 던지고 그 해답을 정리하는 방식으로 진행해보았습니다. 저희가 반복적으로 논의하고 고민했던 질문들은 다음과 같으며, 처음부터 로그 정리의 본질적인 필요성에 집중한 것이 도움이 되었습니다.
0. 우리는 왜 분석용 로그를 전반적으로 점검하게 되었는가?
과거, 현재뿐만 아니라 미래에도 지속적으로 추가할 수 있는 로그들에 대해 고려하며 꼭 필요한 로그만 유지하기 위해서 처음부터 차근차근 점검하게 되었다.
1. 우리가 말하는 데이터 분석이란 어떤 것일까?
a. 우리가 말하는 데이터 분석은 '이용자 만족을 위해 도움이 되는' 작업이다.
b. 이 안에는 이용자의 사용 패턴을 파악해 중요 지표(key factor)를 도출하는 것, 이용자가 '인지하는 불편함'과 '인지하지 못하는 불편함'을 찾아 개선 포인트를 찾아내는 것, 앱의 위험 요소(이탈 포인트)를 찾아 보완하는 것이 포함되어 있다.
2. 분석의 유형에는 어떤 것들이 있을까?
a. 시간의 흐름에 따른 분석(ex. user journey) : 이 안에는 개인화를 통해 고객에게 더 적합한 쇼핑몰 및 상품 제공, 실시간 로그 분석을 통한 이상 탐지 등이 포함된다.
b. 특정 시점에서의 정량적 분석(ex. 탭 클릭률)
3. 분석용 이벤트 로그 정리를 통해 얻고자 하는 바는 무엇인가?
(공통) 앱 내 각종 로그에 대한 파악
(데이터팀) 지그재그의 이용자를 분석하는 데 있어서 부족한 로그를 추가하고 수정하는 것
(개발팀) 이용자의 단말 자원 사용량을 최적화해서 불필요한 자원 낭비를 방지하는 것
4. 3번의 목적에 따른 분석용 이벤트 로그 추가/수정/삭제 기준은 어떻게 설정해야 할까?
a. 로그 추가 기준
- 이용자 여정(user journey)를 파악하는데 유실된 로그가 있어서는 안 된다
- 특정 기능의 사용성을 판단하기 위한 로그를 추가해야 한다
b. 로그 수정 기준
- 기존의 내비게이션 혹은 액션 로그만으로 명확한 분석이 어려울 경우 로그를 수정한다
- 기존의 로그 네이밍이 불분명한 경우 로그를 수정한다
c. 로그 삭제 기준
- 중복된 로그들이 있는 경우 삭제한다.
- 다른 로그를 통해 원하는 결과를 얻을 수 있는 로그인 경우 삭제한다.
- 과거 버전에서 사용되고 현재 사용하지 않는 로그는 삭제한다.
- 이미 분석이 종료되어 더 이상 분석에 이용되지 않는 로그는 삭제한다.
5. 결과적으로 분석용 이벤트에 대해 데이터팀/개발팀이 갖춰야 할 자세는 무엇일까?
(공통) 개발팀과 데이터팀은 분석용 이벤트에 대한 서로의 인식을 공유하고 각 팀이 추구하는 방향성을 존중
(개발팀) 중복되거나 현 버전에는 필요 없는 로그를 정리해 데이터를 효율적으로 운영
(데이터팀) 지그재그 이용자들을 분석하는 데 있어서 부족한 로그는 없는지 꼼꼼히 확인
위와 같은 기준을 세운 다음 인성님, 연미님과 함께 기준 검토 과정을 거쳤습니다. 특히 왜 이 Task를 시작했는지에서부터 선정한 기준, 그 이유를 명확하게 세운 부분에 대해 긍정적인 피드백을 받아 기뻤습니다.
예이! 신난다! 뿌듯!!!
저희는 본격적으로 로그들을 정리하는 작업을 시작하기에 앞서 본질적인 고민들에 집중을 하면서 첫 단추를 다행히 잘 꿰어나갔다고 생각합니다.
이번 Task를 통해 지그재그라는 서비스 이용자를 위해 노력하는 개발팀, 데이터팀의 깊은 고민을 깨닫게 되었습니다. 하나의 로그를 넣을 때에도 위와 같은 기준을 바탕으로 고민, 검토를 거듭하는 시간이 꼭 필요하다는 것도 느꼈고요. 동시에 지그재그에서 처음으로 업무를 시작한 형준님과 제가, 지그재그에 빠르게 어마어마하게 쌓이는 로그들에 대해 전반적으로 이해를 높일 수 있는 시간이었습니다.
실제로 로그들이 어떻게 정리되었는지, 그리고 그 정리된 로그들이 지그재그 서비스에 어떻게 반영되었는지 등에 대해서는 개발팀의 형준님이 다음 포스트로 찾아뵐 예정입니다. 감사합니다! :-D
To Be Continued....