9년차 데이터 과학자, 데이터 엔지니어, 머신러닝 엔지니어로 근무했으며, 쏘카와 타다에서 데이터 분석, 데이터 엔지니어링 개발, 머신러닝 알고리즘을 개발했습니다.
카일스쿨 유튜브에 데이터 커리어 관련 영상을 올리고 있으며, 어떻게 해야 강의를 수강하신 분들이 회사에서 일을 잘할 수 있을까?를 고민하며 자료를 만들고 있어요.
Google의 GDE(Cloud)로 활동하고 있어요.
카일스쿨 유튜브 : https://www.youtube.com/c/kyleschool
기술 블로그 : https://zzsza.github.io/
인스타그램 : https://www.instagram.com/data.scientist/
대표 컨텐츠 : https://github.com/Team-Neighborhood/I-want-to-study-Data-Science
데이터 과학자가 되기 위해 진행한 다양한 노력들 : https://zzsza.github.io/diary/2019/04/05/how-to-study-datascience/
Khóa học
Đánh giá khóa học
- BigQuery(SQL) ứng dụng nâng cao (phân tích phễu, phân tích retention)
- BigQuery(SQL) ứng dụng nâng cao (phân tích phễu, phân tích retention)
- Hiểu biết về dữ liệu dành cho PM (Phân tích dữ liệu sản phẩm)
- Hiểu biết về dữ liệu dành cho PM (Phân tích dữ liệu sản phẩm)
- Nhập môn BigQuery(SQL) cho người mới bắt đầu
Bài viết
Hỏi & Đáp
N day 리텐션 쿼리 관련 질문
안녕하세요1번. DISTINCT를 사용한 이유(시작하기 전에) 제가 강의에서 사용한 쿼리가 많아서 듣다가 궁금한 내용에 대해서 쿼리를 붙여주셔도 좋을 것 같아요! 또는 몇 초에 나오는 쿼리라고 말씀해주시면 제가 확인하기 수월합니다(저도 모든 쿼리를 다 기억하는 것이 아니라서 확인하고 이 부분인가? 저 부분인가? 생각하게 되더라구요)말씀하신 것처럼 timestamp 컬럼이 있어서 중복이 있을 확률은 적습니다. 그러나 클라이언트 개발에 따라 다른데 screen_view나 page_view 시리즈와 click이 동시에 발생할 수도 있습니다(약간의 딜레이는 있을 수 있지만 구현에 따라 다름)그리고 저번 질문과 유사한데 지금 단일 테이블에선 중복이 없을 확률이 매우 높지만, 다른 테이블과 JOIN을 할 때 데이터가 많이 늘어날 수 있습니다. 그렇기 때문에 저는 DISTINCT를 항상 사용하면서 중복을 제거하려는 습관이 있다고 생각하시면 됩니다또한 Google Analytics 4, Firebase는 저희가 로깅하지 않아도 발생하는 로그들이 존재합니다. 예를 들어 user_engagement 같은 이벤트가 있습니다. 이런 이벤트를 WHERE 조건에서 제외하는 것도 방법이고, 중복이 있더라도 제거하는 방법도 가능합니다기본적으로 제가 DISTINCT를 쓰는 것은 더 장기적 관점의 습관이라고 보시면 됩니다. DISTINCT를 안써서 JOIN할 때 이슈가 생기는 경험이 많아 중복을 제거하는 것그리고 회사에서 로깅의 이슈로 중복으로 로그가 생기는 경우도 있습니다(개발쪽의 이슈) 그럴 때 개발쪽에서 로그를 수정해달라고 할 수는 있지만, 이미 생긴 로그에 대해서는 삭제가 어려울 수 있습니다. 그런 경우에 데이터쪽에서 쿼리로 중복을 제거하곤 합니다실무에서 JOIN 이슈 + 잘못된 데이터가 있을 경우 => 이를 대비하기 위해 DISTINCT를 쓴다라고 생각해주셔요 2번강의에서 보여드린 diff_of_day, user_cnt는 리텐션 커브를 위한 집계 결과입니다. 330쪽의 쿼리는 "코호트 리텐션"의 형태입니다. 코호트 리텐션은 3-10 강의와 연결됩니다. 그러나 강의에서 보여드린 쿼리에서 first_date만 추가하면 됩니다. 리텐션 커브 -> 코호트 리텐션으로 데이터를 다른 관점으로 보고 있다고 생각하시면 될 것 같아요. 다른 것이 아니라 리텐션 커브를 뽑는 결과 데이터에서 조금만 바꾸면 코호트 리텐션까지 뽑을 수 있습니다(공유해주신 것처럼 first_date 추가) 3번WEEK은 WEEK 단독으로 쓰이진 않고, EXTRACT나 DATE_TRUNC에서 사용할 수 있습니다. 강의에선 EXTRACT와 같이 쓰는 WEEK 의미로 말씀드린거라고 생각해주시면 됩니다! 엄밀히 말하면 강의에서 WEEK 함수라고 했는데 EXTRACT와 함께 쓰이는 WEEK이라고 말씀을 드려야 더 정확했을 것 같네요. 단독 WEEK이 아닌!DATE_TRUNC(date, WEEK(MONDAY)) EXTRACT(WEEK FROM DATE '2025-10-09') 정확히 말하면 WEEK
- 0
- 2
- 10
Hỏi & Đáp
이동평균 계산 시 order by 기본값은 뭔가요?
안녕하세요. 윈도우 함수 내에 ORDER BY는 기본값이 있지 않고, 현재 ORDER BY를 작성하지 않은 경우엔 정렬하지 않은 형태의 데이터에서 프레임을 설정합니다. 지금 문제는데이터가 이미 정렬이 된 상태라서 윈도우 함수 안에 ORDER BY가 없어도 윈도우 함수의 ORDER BY와 같은 결과가 나오게 된 것입니다. 즉, 데이터가 정렬이 되어있기에 이렇게 나온 것입니다(우연히 정렬이 된 데이터였던 것) 확인을 위해 아래 쿼리를 실행해보시면 이해하실 수 있을 것 같아요. 기존 filled_data를 사전에 ORDER BY를 하고 지금 작성하신 쿼리를 비교해보면 결과가 다릅니다. WITH raw_data AS ( SELECT DATE '2024-05-01' AS date, 15 AS number_of_orders UNION ALL SELECT DATE '2024-05-02', 13 UNION ALL SELECT DATE '2024-05-03', NULL UNION ALL SELECT DATE '2024-05-04', 16 UNION ALL SELECT DATE '2024-05-05', NULL UNION ALL SELECT DATE '2024-05-06', 18 UNION ALL SELECT DATE '2024-05-07', 20 UNION ALL SELECT DATE '2024-05-08', NULL UNION ALL SELECT DATE '2024-05-09', 13 UNION ALL SELECT DATE '2024-05-10', 14 UNION ALL SELECT DATE '2024-05-11', NULL UNION ALL SELECT DATE '2024-05-12', NULL ), filled_data AS ( SELECT * EXCEPT(number_of_orders), LAST_VALUE(number_of_orders IGNORE NULLS) OVER(ORDER BY date) AS number_of_orders FROM raw_data ORDER BY date DESC # 여기에 ORDER BY를 추가해서 데이터 순서를 변경함 ) SELECT *, AVG(number_of_orders) OVER(ROWS BETWEEN 2 PRECEDING AND CURRENT ROW) AS moving_avg1, # 위에서 데이터를 정렬한 후 집계한 값 AVG(number_of_orders) OVER(ORDER BY date ROWS BETWEEN 2 PRECEDING AND CURRENT ROW) AS moving_avg2 # 올바른 답 FROM filled_data 질문해주신 ORDER BY와는 살짝 다르지만, 윈도우 함수에서 프레임을 명시하지 않으면 기본 값은 RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW가 됩니다. 관련 내용은 인프런 AI 인턴이 링크를 걸어준 글을 보시면 도움이 될 것 같아요
- 0
- 2
- 13
Hỏi & Đáp
윈도우 연습문제 1번 질문
안녕하세요! *의 의미를 본질적으로 이해하시면 좋답니다.COUNT(*) : 모든 Row의 수를 COUNT한다는 의미입니다COUNT(query_date) : query_date에 있는 값의 수를 COUNT한다는 의미입니다.두개의 차이는 NULL을 포함하는지?입니다COUNT(*)은 Row의 수를 세기 때문에 NULL도 포함해서 COUNT를 하고, COUNT(query_date)는 query_date에서 NULL이 아닌 행만 셉니다.지금 데이터에서는 값에 NULL이 없기 때문에 동일하게 나오는거라 보면 됩니다. 데이터가 어떻게 저장되어 있는지를 잘 파악해야 *을 사용할지, 컬럼을 명시할지가 결정됩니다. 그리고 query_date를 사용한 이유는 query_date가 있는 경우를 세고 싶었기 때문이에요. 물론 지금 데이터는 *을 사용해도 괜찮구요. id 같은 값이 있었다면 id를 COUNT할텐데 id가 없는 데이터라 query_date를 COUNT했다고 생각해주시면 되어요 즉, 목적에 따라 다르다입니다. 실무에서 뭘 쓰냐는 결국에 목적에 따라 다릅니다. 내가 어떤 데이터를 보려고 하는지? 그래서 초보자를 위한 BigQuery 입문에서 쿼리를 작성할 때 어떤 것을 구하려고 하는지를 써보라고 템플릿을 드린 거예요. 이게 명시적으로 정리가 되어야 쿼리를 짤 때 판단을 할 수 있어요! 추가로 활용편의 데이터는 단일 테이블이고 NULL이 거의 없습니다. 그래서 강의를 들을 때는 두개 모두 다 상관없이 사용하셔도 됩니다.실무에서 이슈가 되는 경우는 여러 테이블을 JOIN하면서 특정 컬럼에 NULL이 생길 수 있어요. 이럴 때는 데이터의 Row가 늘어난 것처럼 보일 수 있거든요. 이런 경우 *을 쓰면 Row 수만 세서 좀 많아집니다. 그래서 저는 명시적으로 컬럼을 쓰곤 해요. 이번 초보자를 위한 BigQuery 입문의 연습 문제에서 JOIN하고 COUNT하는 문제에서 많이 나타나게 된답니다.
- 0
- 1
- 12
Hỏi & Đáp
user_id에 NULL이 나오는데 정상인가요?
안녕하세요! 연휴에 열심히 학습하고 계시네요. 답변 드려볼게요 질문1:사진에 보시듯이 user_id 컬럼에 NULL이 들어간 행들이 있는데, 제가 뭔가 잘못한 걸까요? 만약 NULL이 나오는 게 정상이라면 그 이유도 궁금합니다!네 이 부분은 정상입니다. 빅쿼리는 쿼리를 실행할 때, 사람마다 다른 결과를 나올 수 있어요. 현재 쿼리를 집계하거나 하지 않고 SELECT를 했기 때문에 다를 수 있지만 데이터는 동일할 거예요. 질문2:만약 NULL이 나오는 게 정상이라면, 실무에서도 이렇게 id 컬럼에 null이 허용되는지 궁금합니다. 보통 이런 id 값은 primary key로 쓰는 줄 알았어서요..!우선 데이터베이스의 DB의 데이터와 앱 로그에 대한 특성을 이해해야 합니다.아시는 pk 개념은 데이터베이스의 DB에서 나온 개념이고, 로그 데이터는 유저의 흐름 관점이라 다를 수 있습니다우리가 어떤 서비스에 접속할 때(웹이나 앱이나) 로그인을 하지 않은 경우엔 앱에서 user_id를 알 수 없습니다. 그래서 user_id가 그 시점에는 NULL입니다. 지금 NULL은 그런 케이스라고 생각하시면 되고, 파라미터를 잘 보시면 welcome 페이지에 접근한 케이스라서(환영 페이지 = 아직 로그인을 안함) 그렇게 나옵니다이 부분은 1-8. 퍼널의 정의, 종류, 집계 방법 강의에서 다루고 있어요. 유저를 어떤 기준으로 집계할 것이냐 관점으로 나옵니다. 이 부분 보시면 이해가 되실 것 같습니다! 질문3:연습문제 뒤에 추가로 COUNT 출력해보는 것도 결과(cnt)가 다른데, 이것도 정상인지 확인부탁드립니다. 혹시 카일스쿨님이 강의 찍으실 때 쓰신 데이터셋과 변동사항이 있나요?데이터는 달라지지 않았습니다. 쿼리를 보니까, 저는 영상에서 DISTINCT를 사용했고, a01042338414님은 DISTINCT가 없이 집계를 해서 이벤트 발생 횟수를 COUNT한 것입니다. DISTINCT를 넣으시면 같게 나올 거예요.12. 1-4. ARRAY, STRUCT 연습 문제(4번) 9분 33초(사진)
- 0
- 2
- 21
Hỏi & Đáp
espanso 설치 완료 후 프로그램 실행 문제
안녕하세요! 지금 사용하시는 프로그램 대신 PowerShell을 실행해서 espanso를 써보시면 되실까요?명령 프롬프트 기본 프로그램보다 PowerShell이 환경 설정을 잡아주는 경우를 봐서 이거 시도해보고 안되시면 말씀해주셔요! 저도 찾아볼게요
- 0
- 2
- 30
Hỏi & Đáp
3-13 리텐션 과제 제출
재현님 고생하셨습니다! 이 문제가 정말 난이도가 있는 문제긴 합니다. 실무에서도 고민을 많이 해야하는 부분이고, 이런 과정을 하신 것이 실무를 간접적으로 경험한 것이라고 생각합니다 이 문제가 최종 과제와 연결되는 부분이라, 피드백을 토대로 고민을 해보시는 것을 추천합니다 피드백1, 4번의 경우 쿼리를 작성해보는 것을 목표로 한 것이고 잘 작성하셨습니다. 이걸 나아가서 쿼리 작성으로 끝이 아니라 더 자세히 해석하고, 가설을 만드는 것도 해보시는 것을 추천해요3번3번은 데이터를 본 후에 -> 해당 데이터에서 가설을 떠올리는 것이 필요합니다. 어떤 사람들이 많이 계속 사용할까?여기서 검색을 1번이라도 한 사람이 리텐션이 높을까? -> 검색 1번을 한 사람들의 리텐션 비율과 전체적인 비율과 비교이렇게 가설을 만들고, 데이터를 구체적으로 뽑고, 검색 1번을 한 사람과 검색 2번을 한 사람의 차이는? 또는 어떤 이벤트를 하면 사람들이 더 많이 들어온다! 이런 것을 발견하는 것이 중요합니다2번2번은 Retain User로 생각하면 어려워서, WAU를 New, Current, Resurrected, Dormant로 구분해보는 것을 추천합니다작성해주신 것처럼 각각을 정의하고, Dormant에서+4라고 했는데 그럼 왜 +4인가?라고 누군가 물어보면 근거를 데이터로 제시할 수 있어야 합니다Resurrected는 왜 5주일까요?Current는 왜 직전 3주일까요?이런 근거를 정할 때 정답이 있는 것이 아니라, 데이터를 보면서 판단해야 합니다주차별로 New, Current, Resurrected, Dormant 인원이 계속 달라질텐데 이걸 구해보셔요1주차에 New였던 유저가 2주차엔 Current로 상태가 변할 수도 있습니다주차별 New, Current, Resurrected, Dormant를 구하면 신규 유저가 많이 들어오는지, 현재 유저가 들어오는지 등을 토대로 어떤 사람들을 집중으로 Action을 할 지 떠올릴 수 있답니다분석이 제대로 안된 것 같으시다면 Action Item을 구체적으로 내지 않아서 그럴 수 있습니다. 쿼리를 짜고 데이터를 간단하게 보는 것은 분석의 레벨이 얕고, 나온 데이터를 보면서 또 가설을 생각해보고, 그걸 데이터로 확인해보고, Action Item을 떠올리는 것이 분석이라고 생각하시면 됩니다 최종 과제도 있으니 이 부분 참고해서 봐보셔요. 최종 과제에서 목표는 단순히 쿼리 작성이 목표가 아니라, 가설을 잡아서 해결하는 것이 핵심이에요. 고생하셨습니다!
- 0
- 2
- 44
Hỏi & Đáp
Syntax에러
안녕하세요. 첫번째 이미지에서는 SELECT 절에 컬럼이 없어서 오류가 발생하고 있네요.SELECT와 FROM 사이에 *을 넣어주면 실행 됩니다 두번째 이미지에는 지금 빨간색으로 NULL이란 이상한 문자가 들어가서 오류가 발생하고 있습니다. 이 문자를 삭제하면 됩니다!
- 0
- 2
- 36
Hỏi & Đáp
최종 과제 제출
은지님 안녕하세요! 과제 푸시느라 고생하셨습니다 현황 파악 부분전체적인 트렌드를 파악해주셨는데, 이거를 다르게 보는 방법도 있습니다. 예를 들어 주별로는 성장했는가? 주별 User를 파악해보는 것도 추천드려요. 서비스의 사용 빈도에 따라 하루 단위가 아니라 주별로 보는 것이 유의미한 경우가 있어요일자별로 볼 때도, 1일 방문 유저를 더 세분화해서 볼 수 있는지 생각해보시면 좋습니다예를 들어 과제에서도 드렸던 신규 유저 / 기존 유저 / 복귀 유저 이렇게 나눠서 데이터를 보면 신규 유저는 늘어나고 있는데 기존 유저가 이탈한 것인지 혹은 신규는 계속 비슷했는지 등 나눠서 볼 수 있게 됩니다이렇게 하나의 데이터를 조금 더 쪼개보면 Action Item을 더 잘 생각할 수 있게 됩니다액션 아이템 도출이 어렵다고 하면 데이터를 한번 더 쪼개보셔요!또 다른 관점으로는 데이터를 파악할 때 그냥 단순히 올라가는구나 멈추는구나 하는 것에서 하나 더 나아가서, 평일과 주말의 패턴이 다를까? 공휴일이 있을 때 패턴이 다를까? 이런 가설을 생각해보고 데이터를 확인해보는 과정이 필요합니다데이터 하나를 보고 디테일하게 한번 더 생각해보는게 핵심이라 데이터를 보고 어떤 관점으로 또 볼까? 생각해보셔요일별 결제 전환 사용자 수에서 감소 원인 분석 필요라고 해주셨는데, 이렇게 하면 분석 필요만 쓰는 것이 아니라 가설을 생각해보시면 도움이 됩니다. 왜 떨어졌을까? 어떤 일이 있었을까? 이런 관점으로요퍼널에서 이상치를 제외한 이유는 무엇일까요?이상치가 아니라 그 안에서도 유의미한 의미가 있을 수 있습니다. 공휴일의 패턴이 다를 수도 있는 것이지요공휴일과 아닌 시기의 퍼널 비율을 비교해보고, 공휴일엔 조금 더 많은 사람들이 퍼널에 전환되는구나 이런 것들을 알 수 있게 됩니다아래 표에 있는 0 to 50, 50 to 100, 100 to now는 무엇일까요? 컬럼에 나와있는 부분에 대한 정의가 나와있지 않아서 어떤 것을 의미하는지 알기 어렵네요 가설 수립 부분가설에서 리텐션 사용자 비중 증가로 전환율이 개선되었다라고 해주셨는데 이건 어떤 의미인가요?리텐션이라는 지표가 전환이 되었다는 것을 의미하는데, 유사한 표현을 반복한 것처럼 보입니다(두개가 상관관계가 정의에 따라 이미 높을 것이라는 의미)가설의 한계에서 과거 원인 분석과 미래 액션 계획을 직접 연결하고자 함은 어떤 의미일까요? 문장만 봐서는 이해가 되지 않아 질문드려요가설 검증 부분리텐션 사용자를 결제 기록이 있는 사용자라고 해주셨는데, 리텐션이라는 지표를 정확하게 정의를 해야 리텐션 사용자를 사용할 수 있습니다여기서는 최초 결제 후에 해당 기간에 결제 기록이 있는 사용자라고 해서 지표의 의미가 헷갈리네요만약 과거 2025-01-01에 가입해서 그 시기에 결제하고, 2025-02-03에 결제하면 리텐션 사용자인가요? 이 리텐션 사용자는 언제의 리텐션 사용자인걸까요?리텐션의 정의를 주문이라고 했다면, 리텐션이 홈 화면에서 결제 전환을 한 사람의 비율과 유사한데 지금 써주신 부분의 인과가 반대인 것 같아요. 유저들의 페이지 전환율이 높아져서 그 결과 주문까지 이어지고, 그게 리텐션 유저를 증가시킨 것이지요. 리텐션 유저가 늘어나서 페이지 전환율이 높아졌다고 말하는 것은 X->Y를 반대로 해석한 것 같아요 리텐션 액션 순위에서 유저 세그먼트를 그리고 Action Item이 구체적이지 않은 것은 가설이 구체적이지 않아서 그렇게 느끼실 수 있을 것 같아요. 저도 처음에 분석할 땐 이게 어려웠어요. 그래도 이렇게 고민을 작성하시고 제가 말씀드린 것을 보시면, 이제 어떻게 해야할지 감이 떠오르실 것 같아요! 한번 위에 말씀드린 내용을 토대로 다시 한번 시도해보시면 어떨까요? 정리드리면데이터를 더 디테일하게 뜯어서 확인해보기가설을 만들어서, 생각해보기지금도 가설을 생각하는 것을 잘 시도해주셨는데, 지표 정의상 X, Y를 반대로 이해하신 것 같아요. 이 부분을 다시 생각해보시고 무엇이 Input 메트릭일까? 무엇이 Output 메트릭일까? 을 같이 생각해보시면 도움이 될 것 같아요! 과제 하시느라 너무 고생하셨고 계속 또 질문 해주셔요!!!
- 0
- 3
- 72
Hỏi & Đáp
최종 과제 제출
은지님 안녕하세요. 과제를 보면서 피드백을 준비하고 있어요. 금요일까지 공유드릴게요!!
- 0
- 3
- 72
Hỏi & Đáp
지표정의 4-8 문제풀이 입니다.
종삼님 안녕하세요! 문제 푸시느라 고생하셨습니다!하나씩 의견을 드려볼게요 기능이 잘 동작하고 있는지 확인하려면?1번에서 어떤 항목에 대해서 구할지를 작성해주셨는데, 지표를 명확하게 작성해주시는 것이 좋습니다. 예를 들어 배너의 클릭율(CTR) 이렇게 표시하고 분자와 분모를 명시하는 방식입니다.현재 작성해주신 배너 : 전달 내용 대비 유저 참여수/출력수로 실제 참여유도 효과 측정인데 여기서 "전달"이 무엇인지(배너가 노출되는 것을 의미하는지?), 참여수는 무엇인지? 출력수는 무엇인지?(출력이 노출인 것 같기도 한데 전달과 차이는 무엇인지) , 참여 유도 효과라는 것은 어떻게 측정하는지가 정의가 되어야 합니다. 이를 위해 제가 강의에서 말씀드린 지표들을 먼저 활용해서 이름을 붙여주는 것을 추천합니다. 많이 활용되기 때문에 일반적으로 알 가능성이 있거든요. 이런 지표들이 아니라면 각각에 정의를 해줘야 합니다.히트맵의 경우 5% 미만 클릭 영역이라고 했는데 이것도 고민할 부분이 있습니다. 히트맵의 클릭 비율을 의미하신 것 같은데, 5% 미만인 부분이 UI 관점에서 나올 수 밖에 없는 영역이 있습니다. 예를 들어 누를 수 없는 영역은 히트맵에서 클릭이 안된다고 나오겠죠. 그렇기 때문에 5% 미만 클릭 영역 = 사실 클릭할 컴포넌트가 없는 영역일 수 있습니다. 또한 지표를 정의할 때, 이 지표로 어떤 Action을 할 수 있는가?가 명확할수록 좋은 지표입니다(Actionable한가) 히트맵에서 UI 사각지대 발견하면 => 뭘 할 수 있을까?가 나오는지 생각해보시면 좋을 것 같아요. 위에서 말한 것처럼 클릭할 컴포넌트가 없어서 컴포넌트를 추가한다고 하면 이상해질 수 있겠죠(컴포넌트를 배치하지 않은 이유가 있을테니)카테고리나 추천 영역도 비슷합니다. 구체적으로 정의를 해보시면 좋을 것 같아요. 추천의 실질적 비즈니스 기여도 측정이라고 하면 더 구체적으로 명시해야 합니다. 추천을 통한 구매 금액의 합처럼 구체적인 단어를 써야 합니다. 추상적인 것은 지표화까지 가지 않을 것일 가능성이 높아요.N분 이내 기준 설정을 왜 했는가?에 대해 질문이 들어오면 그걸 명확하게 이야기를 할 수 있어야 하는데, N분 기준이 어렵다면 처음엔 N분 기준을 없이 하는 것이 좋을 수 있습니다 2번. 검색 만족도 지표1번과 동일한 내용이 반복되어서 1번을 보시고 2번을 다시 고민해봐도 좋을 것 같아요.검색 퍼널을 이야기해주셨는데, 검색 퍼널이라는 것은 검색하는 과정을 보겠다는 의미이고, 지표를 정의해야 합니다. 실제 주문까지의 주문 전환율을 의미한다면 주문 전환율(CVR) = 검색을 통해 주문한 수 / 검색을 진행한 수. 이렇게 정의를 하는 것이 필요합니다.검색 정확도에서 N개 결과 클릭률을 통한 검색 품질 평가라고 해주셨는데, 지표가 어떻게 나오면 좋은 품질인가요? 이 부분도 고민해보시면 좋은데, 검색이나 추천은 알고리즘 영역이라 이미 사용하는 지표가 정해져 있습니다. 이런 것들은 한번 찾아보면 되겠구나! 라고 느끼시면 좋을 것 같아요. 무신사의 글을 참고해보시면 이해가 되실 것 같아요https://medium.com/musinsa-tech/map-416b5f143943 3번. 검색필터 기능의 활성화 지표작성해주신 내용을 보니까 한 문장에 많은 것을 넣어서 명확하게 나뉜 것 같지 않을 수 있겠다란 생각이 드네요검색 퍼널 정의 : 검색단어 입력 → 검색실행 → 필터 사용 → 결과값 클릭 → 실제 주문검색 퍼널의 지표 : 주문 전환율(CVR) = 분자/분모이렇게 나눠서 표시를 하시면 다른 사람들도 이해하기 좋을 것 같아요.이 문제를 출제한 의도는 꼭 주문까지 가지 않더라고, 필터 기능의 본질적인 것을 생각해보시고 지표를 도출하는 것을 연습하기 위함이였습니다. 필터가 잘 사용되고 있다고 하는 것은 주문까지 가지 않아도 생각할 수 있는데, 어떤 것을 봐야 할까요? 배달 서비스에서 가장 중요한 지표는?리텐션이라는 지표는 어떤 서비스에서도 다 중요하다고 말할 수 있는 지표입니다. 문제에서 "배달"이라는 것으로 한정한 이유는 배달 비즈니스 모델을 고려한 Input 지표를 생각해보시길 바라는 마음에 낸 문제입니다. 리텐션은 Output 지표구요.배달 서비스의 Input은 무엇일까요? 배달 서비스를 사용하는 유저들은 본질적으로 왜 사용하나요? 이 부분을 고려해서 지표를 다시 생각해보셔요 5. 추천 알고리즘의 성능 지표전환율이라고 해주셨는데, XX 전환율 이렇게 구체적으로 작성해주시면 좋을 것 같아요. 장바구니 or 주문 Count라고 해주셨는데 지표 정의에서 or을 사용할 수도 있지만, 명확한 것이 좋은 지표일 수 있어서 두개를 나눠서 보는 것도 방법일 것 같아요. 장바구니는 어떤 의도로 보려고 하는 건가요? 6. 자주 사용하는 서비스의 지표지금 생각하신 아이디어의 본질은 무엇일까요? 리텐션은 Output 지표고 아이디어의 Input을 생각하는 것이 필요합니다. 수강생이 여기서 해결하려고 하는 문제는 무엇인가요?통화 품질은 상황에 따라서 다르게 나타날 수 있을 것 같아요. 통화 후 1분 이내 팔로우 비율이라는 것은 왜 1분인지 설명을 해야 하며, 사람들이 새벽에 늦게 끝냈다면 바로 잠이 들어 1분이란 시간이 적절하지 않을 수 있을 수 있지요. 여러 상황이 나타날 수 있다면 저는 그 상황을 지표로 정의하지 않으려고 합니다. 해석이 다양할 수 있다는 것을 의미하거든요 7. 퍼널 개선 프로젝트온보딩 달성률은 조금 더 구체적으로 정의를 해보시면 좋을 것 같아요. 가입 전환율이라고 해주셨는데, 온보딩은 보통 가입한 후에 서비스를 잘 사용할 수 있도록 할 때 쓰이곤 합니다. 전환 이벤트를 정의해서 그 전환 이벤트를 달성했는가 등을 통해 사용자가 잘 사용하는가를 볼 수 있어요.이 문제는 이후에 나오는 AB Test 부분을 보시면 더 이해가 되실 것 같아요. 1번을 풀다보니 궁금한게 있어 추가질문 드립니다!퍼널 분석 시 사용자가 중간에 다른 과정을 거쳐 목표에 도달하는 경우 어떻게 분석하나요?예시: 배달 서비스 메인영역 클릭 → (중간에 검색, 카테고리 탐색 등) → 장바구니/주문 완료이런 간접 경로를 통한 전환도 메인영역의 성과로 인정해야 하는지, 인정한다면 어떤 방식으로 측정하는지 궁금합니다.이런 상황을 어떻게 측정할 것인지 정의를 하고 시작합니다. 한번이라도 검색을 했다면 인정하는 경우도 있고, 주문 직전에 검색을 했어야만 인정하는 경우도 있습니다. 프로젝트의 목적에 따라서 정한다고 보시면 됩니다. 그래서 퍼널 분석할 때 퍼널을 잘 정의하는 것이 필요합니다 문제 푸시느라 고생하셨습니다! 제 의견을 보고 또 다시 생각을 해보셔요!
- 0
- 1
- 66