기획자는 언제나 로그 데이터와 함께
IT 세상에서 모든 손님의 발자국은 "로그 데이터"로 남습니다. 손님이 클릭한 상품, 상품 구매까지 걸린 시간, 방문일시와 같은 데이터가 모두 로그 데이터입니다. PM과 서비스 기획자는 손님의 마음을 읽기 위해 남겨진 발자국을 따라갑니다. 인터뷰를 통해서도 사용자의 마음을 알 수 있지만, 모든 손님을 대변할 만큼 많은 사람을 인터뷰하기란 어려운 일이죠. 서비스의 품질을 빠르게 평가하고 성과를 측정하기 위해서는 정량적인 로그 데이터를 분석해야 합니다.
저도 지난 3년간 데이터와 동고동락했습니다. 그동안 데이터와 싸우고 시행착오를 겪으며, "다음에 데이터를 분석할 때 이런 건 놓치지 말아야겠다!"라고 생각했던 꿀팁 두 가지를 공유해요.
이 글은 앞으로의 커리어에서 계속 데이터를 분석할 저를 위해 남기는 글인 동시에, "데이터 분석을 조금만이라도 더 효율적으로 할 순 없을까?"라는 고민이 있으신 PM, 서비스 기획자 분들을 위한 글입니다. 서비스마다 로그를 수집하는 방식이 다를 수 있다는 점을 참고해주시기 바라요.
A. 데이터별 특성을 적어주세요.
"썸네일 이미지 URL 컬럼은 결측치가 많았어. 새로운 버전에 심은 로그라서 그렇다는 걸 적어놓자. 3.2.1 이후 버전이 패치된 기기만 필터링해서 데이터를 정리해야 해."
저는 처음 로그 데이터와 마주쳤을 때, 모든 로그 데이터가 같은 기준으로 남지 않는다는 점이 당황스러웠습니다. 모든 로그 데이터가 하나의 기준에 맞춰서 개발되면 좋으련만 새로운 서비스가 추가될 때마다 로그가 개발되므로 데이터가 약간씩 다를 수밖에 없습니다.
예를 들어, 과일을 파는 오픈 마켓 사이트가 있다고 해볼까요?
바나나를 파는 상점 "정말맛있는킹바나나"의 사장님은 썸네일 디자인이 중요하다고 생각합니다. 이전에 상품 썸네일을 바꾸었을 때 실제로 매출이 상승하는 효과를 본 적이 있었죠. 그래서 이번에 새로 출시한 바나나의 썸네일을 잘 정하고 싶습니다. 여러 가지 아이디어가 떠오르는데, 그중 어떤 디자인이 가장 효과적일지 테스트해보려고 합니다.
1) 바나나만 있는 썸네일, 2) 아이들과 바나나가 있는 썸네일, 3) 원숭이가 바나나를 들고 있는 썸네일 세 개중 사람들이 가장 많이 클릭하는 디자인을 알고 싶다면 로그를 어떻게 남겨야 할까요?
기존에는 사용자가 상품을 클릭할 때마다 클릭한 상품의 정보(상품 ID, 상품명)와 클릭한 사용자의 정보(클릭 일시, 클릭 기기)를 남겼습니다. 이러한 "상품 ID, 상품명, 클릭 일시, 클릭 기기" 정보를 로그 데이터의 "컬럼"이라고 부릅니다. 어, 그런데 기존의 컬럼으로는 클릭한 썸네일이 무엇인지 구별할 수 없네요.
킹바나나 사장님이 통계를 보기 위해선 “썸네일 이미지 URL” 컬럼을 추가해야 합니다. 컬럼을 추가한 버전으로 로그를 업데이트하면, "썸네일 이미지 URL" 컬럼은 새로운 버전을 패치한 기기에서만 남습니다. 따라서 정확한 데이터를 얻기 위해선 기기 별로 사용한 서비스의 버전을 구분하고 필터링해야 합니다.
위의 사례를 포함한 여러 가지 이유로 로그 데이터의 컬럼 별로 남기 시작한 일시와 적용된 기기 수가 다릅니다. 컬럼 별 특성을 고려하지 않고 데이터를 분석하면 정확하지 않은 결과가 나올 수 있습니다. 따라서 내가 사용할 컬럼의 특성과 정리 방법을 기록해야 합니다.
B. 데이터 정리 프로세스를 기록하세요.
데이터 정리 프로세스를 기록하면 다음번 분석은 더 빨리 할 수 있어요. 데이터를 이리저리 분석한 후에는 지치기 마련이죠. 그러나 결과를 정리한 후에 조금만 더 힘을 내서 데이터를 어떻게 정리하는 것이 가장 효율적이었는지 기록하세요. 미래의 내가 더 편해집니다.
데이터 정리 순서가 필요한 경우를 예를 들어볼까요?
킹바나나 사장님이 판매하는 상품은 총 100개입니다. 그중 가장 잘 팔리는 30개의 상품에 썸네일을 2개 이상 등록했습니다. 과일 오픈 마켓 플랫폼은 1개월마다 각 사장님이 판매하는 모든 상품에서 발생한 로그 데이터를 제공합니다. 킹바나나 사장님이 썸네일을 2개 이상 등록한 상품의 효과만 보고 싶다면, 썸네일 개수가 1개인 상품을 필터링해서 지운 후 데이터를 분석해야 합니다.
1개월마다 데이터를 분석하는 사장님이 데이터 전처리 단계에서 "썸네일 개수가 1개인 상품의 행 삭제"를 기억하는 데 오래 걸린다면, 매번 데이터 분석이 지연되겠죠. 별 것 아닌 것 같지만 대부분의 데이터 분석은 한 달에 한 번, 일주일에 한 번과 같이 루틴하게 수행되므로 데이터 정리 순서를 적어두면 큰 도움이 됩니다.
<데이터 정리 프로세스 기록 예시>
1. 현재까지 등록한 상품 및 썸네일 이미지 리스트 추출
- 추출 순서: (링크)에 쿼리 입력 > JSON 데이터 추출 > CSV 파일로 변환
2. 데이터 전처리
2.1. 삭제
- 썸네일 개수가 1개인 상품의 행 삭제
2.2. 표 형태 변환
- 12개 열의 데이터를 분석에 용이하도록 2개의 열로 변환
- 각각의 열을 B열 아래로 붙여 넣음
3. 그룹 분할
- 필터링 시 약 700~900개의 조건까지 한 번에 돌릴 수 있으므로 1,000개가 넘는 데이터는 적절한 개수로 그룹을 분할함
C. 쿼리나 필터에 관한 설명을 적어두면 좋아요.
"쿼리에서 이 부분은 상품 클릭 액션에 관한 로그라는 뜻이고, 이 부분은 세일 메뉴 홈에서 발생한 로그란 뜻이고, 이거는 썸네일 이미지 URL이 결측 되지 않은 로그라는 뜻이고..."
기획자는 데이터 개발자만큼 쿼리를 자주 사용하지 않아 외우기 어렵습니다. 따라서 기획자는 쿼리를 "번역"해놓고, 번역한 자료를 두고두고 사용하는 것이 좋습니다.
어떤 쿼리에서 어떤 필터를 걸었는지, 왜 걸었는지 이유까지 적으면 금상첨화입니다. 이유를 적지 않으면 나중에 왜 이런 필터가 필요했는지 기억나지 않고, 기존의 쿼리나 필터를 조정할 때 로그 규격서 파일을 열어서 다시 해석해야 합니다.
"아, 아까 그 버전에서 다시 시작해야 될 것 같은데? 너무 오래전 버전이라 Ctrl+z가 안 먹힐 것 같은데 어떡하지. 처음부터 다시 해야 되나."
이런 고민에 휩싸인 적이 있으신가요? 데이터를 분석하는 중에 다른 분석 방법을 적용하면 좋겠다는 아이디어가 떠오를 때가 있습니다. 그런데 원본 데이터를 여러 차례 수정했고, 수정 전 버전을 따로 저장하지 않았다면 처음부터 다시 시작해야 합니다.
엑셀이나 구글 스프레드 시트에서 데이터를 분석할 때 원본 데이터 탭을 만듭니다. 탭을 복사한 후 전처리 혹은 분석 단계별로 탭을 추가하세요. 가능하면 시트 상단이나 댓글에 각 탭이 무슨 단계에 해당하는지 적습니다. 어느 단계로 돌아가서 다시 시작해야 할지 모르기 때문입니다.
요약해보니 결국 꿀팁의 핵심은 모두 "기록"에 있네요. 문과 출신 기획자로 데이터와 숫자에 익숙하지 않기 때문에 정확하고 효율적인 분석을 위해선 기록, 기록, 그리고 또 기록이 중요하더라고요. 기록을 열심히 하고, 기록한 대로 분석을 반복하면 외워지기도 하고요.
이 글은 지금까지 똑똑하지 않게 데이터를 분석했던 저의 회고록이자 앞으로는 더 똑똑하게 살자는 응원의 글이기도 합니다. 미래의 저를 위한 글이었지만, 이 글을 읽으신 분께서도 새롭게 알게 된 팁이 있었으면 좋겠습니다. 그럼 다음에 또 좋은 글로 다시 찾아뵐게요 :) 다음에 또 만나요!
<같이 읽으면 좋은 글>