해결된 질문
작성
·
182
0
안녕하세요. 리텐션 과제 작성하여 노션 링크 첨부하였습니다.
제가 다른 분야에서 업무를 하다가 앱 로그 데이터를 처음 다뤄보게 되었는데 어려운 점이 많네요.. ㅠ
과제를 진행하면서 모르겠는 점도 있고 해서 먼저 피드백을 받고 다시 진행해보려고 합니다.
좋은 강의 만들어주셔서 감사합니다!
https://www.notion.so/staticstic/880f80adb2d7414e8cfa417512b263d4?pvs=4
답변 2
0
안녕하세요. 작성해주신 것 확인했습니다!. 작성하느라 고생하셨어요
쿼리 다 잘 작성해주셨네요!
CROSS JOIN으로 event_params를 UNNEST를 해주셨는데, 그 다음 쿼리에서 이 파라미터를 사용하지 않네요. 사용하지 않는다면 이 컬럼은 제거해주는 것이 좋습니다.
배열 데이터를 처리하는데 시간이 소요되고, 데이터를 더 많이 탐색하게 되거든요. 스캔을 더 많이 하게 됩니다
위에서 평균 사용 주기를 할 때 유저별로 구한 것이 아니고, 모든 행들의 diff_day를 구한 후, 평균을 구했습니다. 이렇게 구한 방식이 문제가 되지는 않는지 궁금합니다. 개인적인 생각으로는 “개인별 평균 앱 이용 주기를 구하고, 이를 통해서 모든 유저들의 평균을 구해야 하지 않나?” 라는 생각이 들어서요..
사용 주기를 구할 때는 목적에 따라 여러 방법이 존재해요. 유저의 일자별 Row 가지고 처리하는 경우는 특정 기간이나 시점의 사용 주기를 구할 때 유용합니다(예 : 최초에 처음 1주의 접속 주기를 구하고 싶다거나) 전체 사용 주기를 구하면, 오랜만에 접속한 유저가 생길 때 값이 커지게 됩니다. 그래서 목적에 맞게 설정하는 것이 필요합니다.
"평균 앱 이용 주기를 구하고, 그 값을 평균"하는 것에 대한 것은 평균을 2번 진행해서 데이터가 의도와 다르게 나올 수 있습니다. 극단적인 값에 영향을 받을 수 있고, 데이터의 실제 분포의 특성을 사라지게 될 수 있습니다. 심슨의 역설도 나올 수 있구요
Retain User의 경우 Weekly로 New, Current, Resurrected를 구해보는 것을 해보시면 될 것 같아요. 유저들이 시기별로 New => Current => Dormant 등 바뀔 수 있거든요. 해주신 것처럼 보통 그 주차에 Row가 없으면 Dormant로 해둡니다.
3번 문제는 New, Current, Resurrected 기준으로 리텐션이 높은지를 구해보는 것이 아닌 데이터 상에서 어떤 세그먼트가 리텐션이 높을지 찾아보는 문제였어요. 말씀하신 것처럼 New, Resurrected 등으로 나누고 리텐션을 구하는 것은 어려워서 생각하신 것이 맞고, 잘 생각해주셨어요!
쿼리는 잘 작성해주셨고, 이 부분을 보면서 이제 어떤 데이터를 추가적으로 봐야할까요? 이 부분을 고민해보셔요
어떤 패턴을 더 볼지 가설을 떠올리고 직접 데이터를 보시고 => 그게 맞나 확인하는 과정을 해보는 것이 핵심입니다. 딱 쿼리만 짜는 것이 아닌, 지표 해석하고 가설 만들고 또 데이터 확인하는 과정을 해보셔요!
피드백 기반으로 또 문제 풀어보시고 의견 주시면 피드백 드릴게요!
0
앗 죄송합니다.
링크 수정하였습니다!
https://staticstic.notion.site/880f80adb2d7414e8cfa417512b263d4?pvs=4