묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결BigQuery(SQL) 활용편(퍼널 분석, 리텐션 분석)
[1]_[인프런 빅쿼리 빠짝스터디 3주차] 리텐션 과제와 추가 문제 풀이
[종합 느낀점]1. 날짜 데이터 변환 함수, 날짜 데이터로 추출 하는 함수 등 문제 풀 때 사용하는 함수를 까먹어 애를 먹었습니다.2. 테이블 조인시 첫 테이블을 잘못 선택하면, 쿼리가 길어지고 꼬인다는 것을 느꼈습니다.3. 지표가 어떤 지표느냐에 따라 해석 방법이 달라진 점도 알게 됐습니다. [문제 풀이 소요 시간]1번 문제 : 30분2번 문제 : 12분3번 문제 : 12분 정답이면서도 확장성 있는 쿼리를 작성하다가는 영원히 못풀겠더라고요..그래서 최대한 쿼리 작성을 마무리 짓는데 초점을 뒀습니다.. ㅠㅠ [new_users]위와 같은 시각화 결과가 나왔습니다.눈에 띄는 데이터로는 두 가지가 있습니다:1. 10월 new users 상승 상승 추정 이유: 1. 새로운 마케팅 전략 시행(시기가 추석 근처이니깐 추석을 기념해서 배달앱 쿠폰 지급?)2. 12월 new users 하락 하락 추정 이유: 1. 연말 모임으로 인한 배달 수요 감소 (사실 감소세는 10월달에 고점을 찍은 이후 쭉 하락세이지만, 그 이유를 단정짓지는 못하겠습니다..) [Current User]위와 같은 시각화 결과가 나왔습니다.눈에 띄는 데이터로는 세가지가 있습니다:1. 9월 중순 이후 Current User 상승 상승 추정 이유: 1. 새로운 마케팅 전략 시행(시기가 추석 근처이니깐 추석을 기념해서 배달앱 쿠폰 지급?)2. 12월까지 꾸준한 상승 상승 추정 이유: 1. 기존 유저의 긍정적인 경험이 이어져서 서비스에 잔류 2. 마케팅으로 유입된 신규 유저도 긍정적인 경험을 해서 서비스에 잔류3. 12월 Current User 하락 하락 추정 이유: 1. 연말 모임으로 인한 배달 수요 감소 [Resurrected User]'Current User' 해석과 비슷할 거 같습니다. [Dormant User]1. 9월 -> 10월 급격한 상승 상승 추정 이유: 1. 앞선 이유과 같음. 추석 관련 이벤트 실시. 2. 그러나 계속 상승이 이어지지 않은 점을 고민해 봐야 함.2. 10월 -> 11월 말 유지 유지 추정 이유: 1. 마케팅으로 긍정적인 경험을 한 기존·신규 유저 잔류 2. 하지만 입소문이 나서 계속 상승하지는 않음. 3. 일부 유저만 잔류하고, 나머지 신규 유입 유저는 이벤트만 맛보고 이탈.3. 12월 급격한 상승 상승 추정 이유: 1. 연말에 배달 수요가 감소할 것을 예측해 새로운 마케팅 전략 실시 주차별 리텐션# 리텐션 정의 -- "우리 서비스를 이용한 사람들이 현재는 얼마큼 이용하고 있을까?" /* 1. 무슨 데이터가 필요할까? - 유저 - 날짜 왜 이런 데이터가 필요할까? 이에 대한 답변: '사람들'이니깐, '유저'를 인식할 수 있는 데이터가 필요하다. '현재'이니깐, '시간'을 인식할 수 있는 데이터가 필요하다. ## 1. 유저별 첫 방문 주 구하기*/ with first_visit_table as ( select user_pseudo_id, date_trunc(min(event_date), week(monday)) as first_visit_date from `advanced.app_logs` where event_date between '2022-08-01' and '2022-12-31' group by 1 ) /*2. 처음 이벤트를 발생 시킨 주는? - 무슨 데이터가 필요할까? 1. 첫 이벤트 발생 날짜 2. 유저 - 왜 이런 데이터가 필요할까? 이에 대한 답변: '이벤트'는 주체가 있어야 발동 되는 거니깐 '유저' 데이터가 필요하다. 또 이벤트 발생이란 결과에는 '날짜'라는 개념도 포함 되어 있기 때문에, '날짜' 데이터가 필요하다. 그중에서도 '처음 이벤트를 발생한 주'의 데이터가 필요하다. 3. 유저가 이벤트를 실행한 주는? - 무슨 데이터가 필요할까? 1. 유저 2. 이벤트 이름(선택) 3. 이벤트 발생 날짜 + 중복제거 왜? 목적이 모든 유저의 리텐션이기 때문에. 중복 제거를 하지 않으면, 모든 유저가 발생시킨 모든 이벤트가 보이기 때문에 가독성이 안 좋기 때문에. - 왜 이런 데이터가 필요할까? 이에 대한 답변: 처음 이벤트를 발생시킨 날짜와 비교하기 위해서 ## 2. 유저별 이벤트 발생 주 구하기*/ , user_event as ( select distinct user_pseudo_id, date_trunc(event_date, week(monday)) as user_event_week from `advanced.app_logs` where event_date between '2022-08-01' and '2022-12-31' ) /*4. '유저가 이벤트 실행한 주 - 유저가 처음 방문한 주' - 무슨 데이터가 필요할까? 1. 유저 2. 첫 이벤트 발생 날짜 3. 이벤트 발생 날짜 4. (이벤트 발생 날짜 - 첫 이벤트 발생 날짜) - 왜 이런 데이터가 필요할까? 이에 대한 답변: 처음 이벤트를 발생시킨 날짜와 비교하기 위해서 ## 3. 유저별 이벤트 발생주와 첫 방문주 차이 구하기*/ , diff_week_table as ( select fvt.user_pseudo_id, fvt.first_visit_date, ue.user_event_week, date_diff(ue.user_event_week, fvt.first_visit_date, week(monday)) as diff_week from first_visit_table as fvt left join user_event as ue on fvt.user_pseudo_id = ue.user_pseudo_id order by 2, 4 ) /*5. 주차별 유저수 구하기 - 왜 위와 같은 생각을 했는가? 이에 대한 답변: 주차수에 따른 유저수를 알아야만 첫 주차에 비해 얼마큼 유저가 이벤트를 발생시키지 않았는지 알 수 있으니깐. - 무슨 데이터가 필요한가? 이에 대한 답변: 1. 이벤트 발생 차이 주 2. 중복 없는 유저 수 ## 4. 주차별 유저수 구하기*/ , unique_user_cnt_table as ( select diff_week, count(distinct user_pseudo_id) as unique_user_cnt from diff_week_table group by 1 order by 1 ) /*6. 모든 행에 첫 주 유저수 적용하기 - 왜 위와 같은 생각을 했는가? 이에 대한 답변: 첫 주 유저수로 주차마다 달라지는 유저수를 나누면, 리텐션을 구할 수 있기 때문에. - 무슨 데이터가 필요한가? 이에 대한 답변: 1. 이벤트 발생 차이주 2. 주차별 중복 없는 유저수 3. 모든 행에 적용하는 첫 주 유저수 ## 5. 모든 행에 첫 주 유저수 적용하기*/ , first_visit_week_data_table as ( select *, first_value(unique_user_cnt) over(order by unique_user_cnt desc) AS first_visit_week_data from unique_user_cnt_table order by 1 ) ## 6. 리텐션 구하기 | 주차별 유저수 / 첫 주 유저수 select *, round(safe_divide(unique_user_cnt, first_visit_week_data), 2) as retention_rate from first_visit_week_data_table
-
해결됨[React 1부] 만들고 비교하며 학습하는 React
mvc 패턴 질문
안녕하세요 강사님 강의는 단일 페이지에 대해서 mvc 패턴을 잡을 때하나의 페이지를 대상으로 controller views helpers.js, main.js, storage.js, Store.js를 만드셨는데 여러개의 페이지가 연결된 상황에서 여러 페이지를 동시에 작업하는 경우.. 폴더 구조가 어떻게 되는 건지 궁금합니다. 그러니깐.. 하나의 helpers, 하나의 storage, 하나의 Store.js를 만들고 거기 안에 여러 페이지에서 쓰는 로직들을 다 때려박는건지 아니면 각각의 페이지에 대해서 폴더를 만들고 helpers, storage, Store 같은 것을 각각 다 따로 만드는건지 현업에서 프로젝트는 어떻게 진행하는건지 궁금합니다!
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
Android SDK의 셋업에 오류가 있습니다
안드로이드 SDK 셋업에서 아래와 같은 오류가 발생합니다. 해당 오류가 있어서 그런지, SDK Platforms 목록에서 Android API 34 등의 API 항목들이 표시되고 있지 않습니다.
-
해결됨직장인에게 꼭 필요한 파이썬-아래아한글 자동화 레시피
한글 불러올 때마다 뜨는 팝업 조치가 안 됩니다(한글 2014버전)
섹선1에 한글 파일을 불러올 때마다 뜨는 팝업 조치하고 있는데컴퓨터\HKEY_CURRENT_USER\SOFTWARE\HNC\HwpAutomation\Modules 이 레지스트리 경로가 없습니다..ㅠ저희 기관은 한글 2014를 아직 사용하고 있는데 이전 버전이라서 없는 걸까요?
-
미해결
오라클과 my sql 알리아스 차이에 대해서
오라클과 my sql 알리아스 차이에 대해서 자세하고 디테일하게 아시는분 알려주세요..기본적인건 다 알고있습니다. 심화적인부분에서요
-
미해결김영한의 실전 자바 - 기본편
1. 클래스와 데이터 ppt 26p 오타인가요?
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]1. 클래스와 데이터 26p 최상단Student students = new Student[2]이 옳바른 문장인것인가요?강의 내용처럼 객체로 배열을 만드는 상황이라면 Student[] students = new Student[2] 이렇게 바꿔야되는 것이 아닌지 궁금합니다.
-
미해결Do it! 알고리즘 코딩테스트 with JAVA
탐색 순서 질문
영상에서 탐색 순서가1 > 3 > 4 > 6 > 2 > 5 로 되어있는데왜 5 > 2 가 아닌 2 > 5가 되는지 궁금합니다. 진행 되는 순서가 노드를 넣고 > 노드를 꺼내고가 맞지 않나요? 아님 2 > 5로 되어도 상관 없는건가요?
-
미해결따라하며 배우는 도커와 CI환경 [2023.11 업데이트]
docker-compose down 이후에도 containers에 redis가 남아 있는 이유
섹센6의 마지막 강의를 진행 중입니다. docker-compose up 명령어 이후, containers에는 redis가 남아 있습니다. node는 내려가고, redis는 유지되는 이유가 궁금합니다.
-
해결됨실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
쿼리 로그 출력 관련 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예[질문 내용]MemberApiController.javaMemberService.java 쿼리 실행이 select - update - select가 로그에 출력될꺼라고 예상 했는데 실제 로그는 select - update 까지만 출력되는데 이유를 알 수 있을까요?
-
해결됨독하게 시작하는 C 프로그래밍
문자열 은 [가변]
문자열이 가변 이라고 말씀하셨는데어떻게 받아들여야할지 잘 모르겠습니다.무엇이 어떻게 변하는걸까요
-
해결됨하루 100만 원을 벌게해준 프리랜서 노하우 완벽 정리
안녕하세요. 질문 여쭙니다.
먼저 좋은 강의 감사드립니다.너무 유익하게 잘 듣고 있습니다. 1 - 유튜브 vs 블로그?퍼스널 브랜딩을 해서 프로젝트 수주로 이어지게 하고싶은데둘 다 하고 계신 입장에서 트래픽 유입량 차이가 얼마나 나는지,어떤걸 더 추천하시는지 궁금합니다. 2 - 스벨트 vs 리액트?스벨트가 더 쉽고 간결하다고는 하는데 스벨트5를 챗지피티가잘 모르기도 하고 리액트 교육 자료가 훨씬 더 많기도 하다보니초보자 입장에서는 차라리 리액트가 낫지 않을까 싶은데요,또 제임스님 유튜브 채널에서도 스벨트 추천 영상이 내려간거같더라구요. 더 이상 스벨트를 강력추천하지 않으시는건가요?취업 생각이 없는 초보자에게는 어떤걸 더 추천하시나요? 고견 여쭙겠습니다. 감사합니다.
-
미해결테스트 with Jest: 제로초에게 제대로 배우기
TS로 변경 시 "type": "module" 제거 이유가 궁금합니다.
확장자를 TS로 변경했을 때 코드에는 ESM의 import, export를 사용했는데 왜 package.json파일의 ESM 관련 옵션인 "type": "module"을 제거하는지 궁금합니다. GPT의 답변에 의하면TS 파일은 컴파일 과정에서 CommonJS나 ESM이나 알맞게 변환을 하기 때문에 해당 옵션이 필요 없고, Jest와의 호환성을 위해 "type": "module"을 제거해주는 것이고,JS파일은 기본적으로 CommonJS모듈 시스템을 사용하기 때문에 import문을 사용했으면 ESM방식으로 해석하도록 명시하기 위해서 "type": "module"을 추가한다.라고 설명을 해주는데 그럼 JS 파일의 경우 Jest와의 호환성을 고려하지 않는건지.. 이해가 잘 되지 않습니다. 혹시 설명을 해주실 수 있을까요?
-
해결됨[리뉴얼] 맛집 지도앱 만들기 (React Native & NestJS)
윈도우 프로젝트 생성
윈도우 안드로이드 설치 1-4 강좌를 끝내고 왔습니다.강좌에서 SDK? 에 다운로드 중 경로에 한글이 있어 C드라이브 밑에 다운로드한 것 외에는 다르게 한 것이 없다고 생각합니다. 환경변수 또한 잘 설정해서 adb? 도 잘 나왔습니다 npx react-native@0.72.6 init MatzipApp --version 0.72.6/c/Program Files/nodejs/npx: line 65: 1715 Segmentation fault "NODE_EXE" "$NPX_CLI_JS" "$@" 어떤걸 고쳐야할까요?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
서블릿 컨테이너 질문있습니다.
서블릿 컨테이너가 Request와 Response, 서블릿을 생성하고 관리해준다고 하셨는데서블릿 컨테이너가 생성하는 객체들의 참조 변수는 해당 객체의 최상위 타입인가요??
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
test_size
test_size 와 random_state를 정하는 기준이 따로 있나요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
고유값 개수 확인
데이터 전처리 할때 컬럼의 고유값 개수를 알아보는 이유가 인코딩을 어떻게 할지를 알아보려고 한다고 이해하면 될까요?
-
미해결한 입 크기로 잘라먹는 Next.js(v15)
app-router route handler 에러 처리방법
import { type NextRequest, NextResponse } from 'next/server'; import { fetchData } from '@/shared/apis/fetch-data'; import type { IAcademyCreateDTO, IPostEnrollAcademyResponse } from '@/shared/types/acadmy'; export async function POST(req: NextRequest) { const body = (await req.json()) as Promise<IAcademyCreateDTO>; const data = await fetchData<IPostEnrollAcademyResponse>('/api/v1/academies', 'POST', body); if (!data.isSuccess) { return NextResponse.json( {}, { status: 500, statusText: data.message, }, ); } return NextResponse.json(data); }서버에, 에러시 아래와 같은 데이터 구조를 준다고 했을떄 위의 방식처럼, 에러 핸들링을 하는 것이 맞는지 궁금합니다... Route Handler의 보편적인 에러처리 방식이 너무 궁금합니다!! (직접 에러 메시지를 작성하는것이 아닌 서버에서 내려주는 에러메시지를 화면에 표기하고 싶습니다.)export type CommonResponse<T = unknown> = { code: string; isSuccess: boolean; message: string; result: T; };
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
roc_auc_score 문자형
안녕하세요. roc_auc_score문자형에서 양의 값이 두번째 컬럼인 B일 확률을 의미하나요?
-
미해결
궁금해서요
저는 디자이너인데퍼블리싱하면서 자바스크립트 공부중이에요프론트도 같이 하고 싶은데 요새 AI로 말이 많잖아요전망은 어떤지 궁금하고디자이너로 출발해서 프론트 겸하는 직무에 대한 수요가 있는지도 궁금해요
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
오류 질문
왜 이런 오류가 나는 지 궁금합니다 .그리고 혹시 오타가 난 채로 실행을 했을 때 이를 정정할 수 있는 방법도 있을까요?예를 들어, teest = test.pop['CLIENTNUM'] 이렇게 실행을 해버렸을 때 다시 정정가능한 방법있나요?