게시글
질문&답변
2024.04.19
4-8. 지표정의하기 연습문제
단아님 안녕하세요! 문제 잘 풀어주셨네요. 하나씩 질문을 던져볼게요 각 기능들이 잘 동작하는지 확인을 하려면 CTR(클릭률) 대비 메인page > 상세page로 가는 PV의 전환률의 퍼센트가 높은지 확인해야 할 것 같습니다. 페이지 전환률이 높다면 해당 기능이 잘 작동한다고 볼 수 있을 것 같습니다. => 잘 작동한다의 정의를 잘 말씀해주시면 지표를 정의해주셨네요! 각 버튼들이 꽤 많은데 버튼의 위치를 바꾸고 싶다는 의견이 생긴다면 어떤 데이터를 보고 어떻게 이야기 해야할까요? 고객이 검색이란 ACTION 이후 나온 필터된 페이지 내에서 CTR(클릭률)이 높다면 검색 기능에 만족했다고 생각합니다. 기능에 불만족 스러웠다면 스크롤 후 백그라운드로 이동 또는 스크롤 후 재검색 또는 앱이탈 비율이 높을 것이라고 생각합니다. => CTR로 생각해주셨네요. 그렇다면 하나의 세션 안에서 A라는 검색어로 검색한 후, 다시 메인으로 가고, B라는 검색어로 이동한 후, 그러다가 다시 A라는 검색어로 들어와서 클릭을 했다면 어떻게 계산해야 할까요? 그 사이에 여러 행동이 있을 수 있는데 이런 것들은 어떻게 생각해봐야 할까요? 검색필터기능의 활성화 지표를 확인하기 위해서는 검색 후 나온 페이지 내 필터 클릭률(CTR / PV)로 확인할 수 있을 것 같습니다. 또한, 고객이 필터를 몇 번 클릭했는지에 따라 필터 기능이 잘 사용되는지 확인할 수 있을 것 같습니다. => 검색 필터 활성화 지표로는 클릭률을 활용할 수 있을 것 같네요. 필터에도 여러 속성이 있을텐데 이 부분은 어떻게 보시겠어요? => 추가적으로 필터를 많이 클릭했다는 것이 활성화가 되었다라고 볼 수도 있지만, 기능이 복잡해서 많이 클릭하는 경우도 있을 수 있습니다. 이런 반례 케이스가 있을 수도 있다는 질문을 받으면 어떻게 데이터를 파악해보시겠어요? 리텐션이 가장 중요할 것 같습니다. 왜냐하면 셀러(가게), 바이어(이용자), 중간업체(배송대행사)가 유지되어야 해당 서비스가 꾸준하게 이용될 수 있기 때문입니다. 이용자의 리텐션을 높이기 위해서는 서비스(배송의 퀄리티, CS, 음식의 퀄리티)를 유지해야 구매율도 유지되고 서비스 제공자(가게, 배송대행사)도 유지될 수 있다고 생각합니다. => 이 문제는 배달 서비스의 비즈니스 모델을 파악해보길 바란 목적으로 낸 문제였어요. 배달 도메인의 특수성을 고려한 지표를 생각해보면 무엇일까요? 리텐션이란 지표는 모든 회사에서 기본적으로 보는 지표로 볼 수 있어서 추가적으로 배달 서비스에서 일어날 수 있는 Input Metric을 지정해보면 좋을 것 같아요 알고리즘 성능을 확인하기 위하여 기존서비스 대비 추천 알고리즘의 클릭률(CTR)/PV과 구매전환률을 확인해야 할 것 같습니다. 왜냐하면 알고리즘이 정확하지 않다면 해당 영역을 클릭하거나 구매로 전환될 가능성이 적을 것 같다고 생각합니다. => 해당 지표로도 확인할 수 있으며, 추가적으로 알고리즘의 성능을 확인하는 것은 학계, 산업계에서 많이 정의되어 있습니다. 알고리즘 관점이라 강의에선 다루지 않지만, 이런 관점도 있다는 것을 말씀드리고 싶어 문제로 냈습니다. Precision, Recall 등의 개념을 확인해보셔요 https://velog.io/@jochedda/%EC%B6%94%EC%B2%9C-%EC%8B%9C%EC%8A%A4%ED%85%9C-%EC%B6%94%EC%B2%9C-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EC%A2%85%EB%A5%98 리텐션, WAU 이라고 생각합니다. 예를들어 '쿠팡' 또는 '유튜브' 서비스를 빗대자면 고객이 일주일에 1번 이상은 들어와야 서비스를 해지하지 않고 사용한다고 생각하기 때문입니다. 그 외에 확인해야 할 지표는 체류시간과 가입전환율을 볼 것 같습니다. => 리텐션, WAU도 중요한 요소지만 이렇게 답변할 경우엔 비즈니스 도메인을 고려하지 않아서 추상적인 답이 될 수 있을 것 같아요. 저라면 쿠팡에서 하루에 얼마나 제품을 탐색 시도하는지 / 구매 건이 얼마나 되는지를 볼 것 같네요. 유튜브라고 하면 동영상 1개를 시청하는 사람의 수를 파악해볼 것 같구요. 서비스의 경험을 얼마나 하는지를 알기 위한 지표부터 시작해서 점점 더 구체화를 해보는 것이지요. 4번과 맥락이 비슷한 문제입니다! 온보딩 과정 중 온보딩의 효과를 파악하기 위하여 튜토리얼 퍼널을 조사해볼 것 같습니다. 슬랙을 예시로 들자면 어느 단계에서 사람들이 스킵을 하는지, 이탈률이 생기는 지를 확인하여 지표를 볼 것 같습니다. => 온보딩이 기존에 있었다면, 과거 온보딩과 신규 온보딩을 전후 비교할 수는 있긴 합니다. 다만 전후 비교는 정확한 비교가 되지 않을 수 있어서(외부적 요소에 연관이 될 수 있음) 이럴 때 실험을 하곤 합니다. 실험 파트를 수강하시면 이 부분을 더 잘 이해하실 수 있을거에요. 실험을 경험한 사람과 아닌 사람을 구분해서 데이터를 파악해보면 되어요 문제 푸느라 고생하셨습니다!
- 0
- 2
- 60
질문&답변
2024.04.18
4-8강 지표 정의하기 연습문제 답변
영근님 안녕하세요! 잘 풀어주셨네요! 하나씩 제 생각을 공유드릴게요 1. 기능이 잘 동작하고 있는지 확인하려면? 해당 기능 클릭 이벤트 → 클릭에 맞는 화면의 뷰 이벤트 퍼널을 만들고 그 전환율을 확인해서, 전환율이 99.5% 이상이면 잘 동작한다고 볼 수 있을 것 같습니다. 기능이 정상적으로 동작하고 있다면 해당 기능을 클릭하고 그에 맞는 화면이 떠야하기 때문에 기능 클릭 이벤트와 화면 뷰 이벤트는 사실상 100% 전환율이 나와야하지만, 데이터 수집 과정에서 누락이 있을 수 있기 때문에 그것을 감안하여 99.5% 정도의 전환율이라면 기능이 정상 작동한다고 볼 수 있을 것 같습니다. - Q1. 특정 기능 클릭과 그 후의 뷰 이벤트 퍼널을 만든다고 하셨는데, 거기서 기준이 99.5%이상인 이유는 무엇인가요? - "기능이 잘 동작"한다의 정의를 어떻게 하냐에 따라 다를 것 같은데, 동작한다를 클릭 - 뷰로 보신 것 같네요. 개발자의 관점에선 동작한다라고 볼 수 있을 것 같기도 한데, 다른 정의는 이 기능이 동작하기 위해 얼마나 클릭되고 있고, 결국에 기능의 목표 전환 기능이 일어나는지를 따져보는 것이 의도였습니다 2. 검색 만족도 지표 사이에 아무 이벤트가 존재하지 않는 검색 결과 뷰 → 가게 클릭 퍼널을 만들고 그 전환율을 확인할 것 같습니다. 고객이 검색기능에 만족했다는 것은 검색 후 아무런 추가 액션 없이 본인이 원하는 가게를 찾았다는 것을 의미하기에 검색 결과 화면을 확인 후 얼마나 추가 이벤트 없이 가게 클릭을 했는지의 전환율을 확인하면 고객의 검색 기능 만족도를 측정할 수 있다고 생각합니다. Q2. 지표를 정의할 때는 분자와 분모를 같이 명시해주는 것이 좋습니다. 명시해준 후에 설명을 붙이는게 이해가 더 잘 되고, 명시를 안해주면 사람이 머리 속에서 한번 생각을 하게 만듭니다. 지표를 바로 이해가 되도록 써주는 것도 해보시면 좋을 것 같네요. 각 클릭 퍼널을 만들고 전환율을 확인한다고 하는데 어떤 전환율인지 구체적으로 작성해주는 것이 더 이해에 좋습니다 - 검색 기능의 기능을 자세히 보면 "메뉴"가 나옵니다. 현재 원하는 가게를 찾았다고 하셨는데 강의에서 제공한 화면상에선 바로 가게를 찾는 것보단 메뉴로 바로 이동합니다. 이 부분을 고려해서 다시 생각해보시면 좋을 것 같네요. 검색 품질 지표는 단순히 클릭 전환율이 아닌 다른 부분으로도 많이 나오는 지표라 한번 검색해보길 권한 의도로 낸 문제였습니다. 아래 글도 참고해봐도 좋을 것 같아요. https://medium.com/naver-dna-tech-blog/%EB%A8%B8%EC%8B%A0%EB%9F%AC%EB%8B%9D%EC%9D%84-%ED%99%9C%EC%9A%A9%ED%95%9C-%EA%B2%80%EC%83%89-%ED%92%88%EC%A7%88-%EC%A7%80%ED%91%9C-%EA%B0%9C%EB%B0%9C-sigir23-paper-recap-6090914005a8 3. 필터 기능의 활성화 지표 일반적으로 검색할 때 필터를 설정하고 검색하기도 하고, 검색을 하고 필터를 설정하기도 하기 때문에 두 경우를 모두 포괄하기 위해 검색 기능이 있는 페이지 뷰 → 필터 클릭 → 필터 설정 완료 클릭 퍼널을 이벤트 사이에 이벤트 존재를 허용해서 만들어서 각 퍼널 별 전환율을 확인할 것 같습니다. 뷰 → 필터 클릭 퍼널의 전환율은 유저가 필터의 필요성을 얼마나 느끼는 지 보여줄 수 있다고 생각하고, 필터 클릭 → 필터 설정 퍼널의 전환율은 실제로 필터의 필요성을 느끼는 유저가 실제로 원하는 필터를 찾아서 활용하는 지 확인할 수 있는 지표가 될 수 있다고 생각합니다. 이 두 지표를 조합하면 필터의 필요성을 느끼는 유저들의 비율과 필터를 실제 활용하는 유저들의 비율을 알 수있기 때문에 필터 기능의 활성화 여부를 세밀하게 구분하고, 그 결과에 따라 이후 액션 플랜을 수립할 수 있을 것 같습니다. 만약 필터 자체를 클릭을 많이 안한다면, 그 원인이 어디에 있는지 추가 분석을 해봐야 할 것 같고, 클릭은 많이 하지만 설정을 잘 안한다면 유저들이 원하는 필터가 없다는 의미로 해석할 수 있기 때문에 관련되서 추가 분석이나 유저 인터뷰를 진행하면 좋을 듯 합니다. - 작성해주신 내용이 바로 이해가 어렵다란 생각도 드네요. 조금 더 쉽게 작성해보시면 어떨까 싶어요. 생각의 흐름만 작성해주신 느낌인데 이걸 회사에서 공유한다고 생각하고 정리해주시면 좋을 것 같네요 - 일반적으로 검색할 때 필터를 설정한다고 하셨는데, 주어진 문제 상황에서 보시면 좋을 것 같네요. 검색할 때는 필터를 설정하지 않는 UI입니다(연습 문제 #2 이미지 참고하면 나와요) - 필터 클릭을 하면 필터 설정이 바로 될수도 있고 아닐수도 있는데, 이것은 1번 문제와 비슷하게 높은 비율이지 않을까요? - 을 확인해서 일단 검색 결과 페이지에서 클릭이 얼마나 발생하나 확인하고(이것을 필터 기능의 활성화 지표라고 정의), 그 중에서 어떤 필터가 많이 클릭되는지를 확인할 것 같네요. 4. 배달 서비스에서 가장 중요한 지표는? Q3. 이 질문은 비즈니스 모델, 서비스의 핵심 지표가 무엇일까?라는 질문을 하려는 의도였어요. 서비스를 한정한 의도가 있어서, 이 의도에 맞게 다시 생각하면 어떻게 대답하시겠어요? 건당 이익은 이커머스라면 많이 나올 수 있는 지표라 해당 서비스에 특화된 지표를 생각해보면 어떨까 싶어요 5. 추천 알고리즘의 성능 지표 - 클릭율과 구매 전환율 지표를 보는 것 잘 생각해주셨고, 알고리즘 자체를 확인하기 위한 지표들이 존재합니다. Precision, Recall 등이 존재합니다. 이 부분은 아래 글을 확인해보시면 좋을 것 같네요. https://sungkee-book.tistory.com/11 6. 자주 사용하는 서비스의 지표 - 말씀하신 부분도 손익적인 관점에서는 중요한 지표인 것은 맞으나, 서비스의 특성을 고려해서 Input Metric을 생각해보면 어떨까 싶어요. 지금 말씀하신 부분은 Output 지표쪽에 있는 지표라는 생각이 드네요. - WAU, 리텐션은 서비스 상관없이 중요하게 보는 지표이기에 4번 문제처럼 해당 서비스가 왜 존재하는가?부터 생각해보면 어떨까 싶어요 7.퍼널 개선 프로젝트 잘 생각해주셨네요. 지표가 올라갈 때, 내려갈 때 어떤 행동을 하겠다를 정리해서 써보면 어떨까 싶어요. 글이 아니라 도식으로 남겨두는 것이지요(혹은 수식 ) 최종 가입 전환율 = ( ) / ( ) if 최종 가입 전환율 >= ( ): ~~ else: ~~ 저 최종 가입 전환율의 기준을 어떻게 할지도 고민해보면 좋을 것 같네요
- 0
- 2
- 69
질문&답변
2024.04.17
5-6 JOIN 연습문제 6번
apple9633님 안녕하세요! JOIN 파트도 잘 풀고 계시는군요..! JOIN 연습 문제는 5번까지만 있습니다! 6번 문제는 PDF에 들어간 것 같은데, 해당 문제는 만들다가 예시로 사용하기 애매해서 제외했었어요. PDF에 있어서 헷갈렸을 수 있겠네요. 죄송합니다. PDF에 제외해둘게요. 5번까지 푸시고 다음 강의를 수강해주시면 되어요! 감사합니다
- 1
- 1
- 52
질문&답변
2024.04.13
쿼리 생산성 도구 에러
apple9633님 안녕하세요. 현재 에러 메세지를 해석하면 23번째 줄의 13 컬럼에서 이슈가 있다고 하네요. 현재 base.yml 파일에 있는 내용을 전체 복사해서 붙여넣기 해주시겠어요? 그걸 보고 수정해드리는게 더 빠를 것 같네요
- 1
- 2
- 71
질문&답변
2024.04.12
쿼리 작성 템플릿과 생산성 도구 사용
dmlfla님 안녕하세요! 윈도우에선 메모장으로 뜰 수도 있습니다. 207쪽에 나온 것처럼 espanso edit을 입력하면 해당 창이 뜨는데 해당 페이지에서 208쪽처럼 입력하라는 의미에요. trigger에 :sql , replace에 쿼리 템플릿 지금 보면 trigger에 :sql이 설정되어 있는 것 같아요! 그럼 이 프로그램을 재실행하시고, 빅쿼리 콘솔에서 :sql이 입력될 때 템플릿이 나오는지 보시면 됩니다. 그리고 나서 쿼리를 작성하면 되어요 제가 터미널에서 쿼리를 작성하라고 했었나요? 혹시 강의에서 몇분인지 말씀해주실 수 있으실까요? 저 설정을 한 후에 빅쿼리 콘솔에 가서 입력하는 것을 보여드리고 있어요(7분 55초 쯔음)
- 1
- 1
- 69
질문&답변
2024.04.11
수강 다짐
wjdgml님 PM을 위한 데이터 리터러시, BigQuery 입문 모두 파이팅이에요-!! 🙂
- 0
- 1
- 49
질문&답변
2024.04.10
수강목표
wjdgml님 안녕하세요! 수강 파이팅이에요-! 디스코드에 남겨드린 것처럼 순차적으로 학습해보시는 것을 권해드려요(문제 정의를 꼭 보시고 지표를 보셔야 해요)
- 0
- 1
- 57
질문&답변
2024.04.04
pokemon 테이블을 생성하고자 하는데 뜨는 오류
천효진님 안녕하세요! 앗 생성이 안되는군요 오류 메세지를 해석하면 현재 결제 프로젝트에 대한 권한이 없다고 나오네요. 혹시 결제 설정이 되어있을까요? 강의에서 Inflearn-BigQuery 프로젝트 결제 계정 설정하는 부분이 있는데 카드 등록하는 과정을 진행하셨을까요? https://console.cloud.google.com/iam-admin/iam?project=inflearn-bigquery-419313 결제 계정이 설정되었다면 위 계정에서 지금 사용하시는 gmail에 액세스 권한 부여를 해줘야 할 것 같네요. 위 페이지에서 액세스 권한 부여 - 이메일 추가 - 역할을 소유자로 설정해서 추가할 수 있어요 https://console.cloud.google.com/billing 위 페이지 접근하면 현재 카드 설정이 되어있나 알 수 있을거에요. 지금은 결제 설정이 안되어 있을 것 같다란 생각이 들어요
- 0
- 2
- 85
질문&답변
2024.04.04
빅쿼리 콘솔창이 너무 글씨가 작아요
정근당근님 안녕하세요! 헙 눈이 아프시군요 ㅠ_ㅠ 눈이 피로하면 힘들지요.. 빅쿼리 콘솔 창이 강의 내의 글자 크기가 작다는 의미일까요? 혹은 정근당근님의 빅쿼리 콘솔의 글자가 작다는 의미일까요? 전자라고 하면 제가 강의 중에 크기를 키우고 4K로 영상을 찍어서 전체 쿼리 길이 대비 이정도가 제일 크게 가능하겠다 싶어서 이렇게 했는데 혹시 이 부분도 작았을 수도 있겠다 싶네요. 이 부분의 경우 강의를 넓은 화면에서 보시면 깨지진 않을거에요. 타이핑이 이슈시면 강의 자료에 SQL 파일도 올려두었으니 이 파일을 활용하는 것도 가능할 것 같아요 후자라고 하면 빅쿼리 콘솔에서 확대보단 구글 크롬이나 사용하시는 브라우저의 확대 기능을 사용하시면 되어요. 크롬의 글자 크기 확대는 ctrl(맥은 command) 버튼과 플러스(+)를 누르시면 확대가 되어요. 관련 내용을 첨부해드려요. https://support.google.com/chrome/answer/96810?hl=ko&co=GENIE.Platform%3DDesktop
- 0
- 1
- 97
질문&답변
2024.04.01
2-6 연습문제 16번. COUNT 함수 질문
dbsdk4971님 안녕하세요! 16번 문제 잘 풀고 계시네요. 해당 문제에선 status를 넣어도 동일한 결과가 나올거에요. 그 이유는 하나의 pokemon_id에 값이 존재하면 status도 값이 존재하기 때문이에요. COUNT 집계함수를 사용할 때 어떤 컬럼을 사용하는지는 "문제"를 어떻게 정의하냐에 따라 생각해볼 수 있어요. 16번 문제는 포켓몬을 많이 풀어준 트레이너는 누구일까요? 가 문제였지요. 이것을 위해 알아야 하는 것은 트레이너가 몇 마리의 포켓몬을 풀어줬는지?를 알아야 합니다. 이럴 때 status를 COUNT하시면 포켓몬의 수를 COUNT했다기보단, trainer_id 별로 status의 Row 수를 COUNT했다고 볼 수 있지요 . 이 문제에서 결과는 동일하지만, 나중에 JOIN을 배운 후에는 이 부분이 오답이 생길수도 있을 확률이 존재합니다. 어떤 경우에 이슈가 될까에 대해서는 다른 분이 질문하신 글을 보시면 이해가 되실 것 같네요 https://www.inflearn.com/questions/1209167/join-3%EB%B2%88-4%EB%B2%88-%EB%AC%B8%EC%A0%9C 포켓몬의 수를 알려면 pokemon_id가 id(유니크한 값)이므로 이 값을 COUNT하는게 좋습니다. 문제를 정의할 때 어떤 것을 COUNT하고 싶은가? 생각해보고 그 값에 대한 것을 COUNT을 합니다. 만약 포켓몬의 수가 아니라 고유한 포켓몬의 수를 알려달라고 했다면 status를 DISTINCT 할 경우엔 오답이 나올거에요. DISTINCT status를 하면 WHERE 조건에 Released를 걸어줬다면 Released만 나올거에요. DISTINCT pokemon_id를 하면 고유한 pokemon_id(예 : 1, 2, 25 등)이 나오겠지요. 저도 궁금한 내용은 왜 status를 COUNT 안에 넣으셨나요? 어떤 생각을 가지시면서 사용하셨을지 궁금하네요(맥락이 있으실 것 같아서) 이 부분 말씀해주시겠어요?
- 0
- 2
- 70