묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결AWS Certified Solutions Architect - Associate 자격증 준비하기
수강 연장 문의
안녕하세요. 혹시 수강 연장 가능할지 문의 드립니다.
-
미해결
pfsense 저장안됨
혹시 esxi이용해서 vm띄우고 pfsense 띄웠는데 이게 따로 설정값들이 저장이 안되나요? 다시 재부팅을 하면 항상 초기화가 되어있어서요..혹시 방법이 있나요...구글링을 해도 안나오길랴용..
-
해결됨BigQuery(SQL) 활용편(퍼널 분석, 리텐션 분석)
리텐션 과제_연습문제 2번
안녕하세요. 연습문제 2번을 다음과 같이 풀어보았습니다. Q: 리텐션 연습문제: Retain User를 New, Current, Resurrected, Dormant User로 나누는 쿼리를 작성하여라. 주어진 데이터에서 어떤 사람들이 리텐션이 그나마 높은지, 찾아보아라.주차별, 전체 유저에 대한 코호트 분석 그래프를 보면, 다음과 같습니다. 문제 정의2022년 12월 19일 이후로 리텐션이 떨어지고 있는 문제점이 발생했다. 해당 원인이 무엇일까?가설 설정1) 고객의 유입량이 감소하고 있다.-> 2022년 12월 19일 이전과 이후의 주차별 신규 가입자 수를 비교한다.2) 리텐션의 변화가 특정 유저 그룹에 의해 영향을 받는가?-> 신규유저는 어떤 시점을 기준으로 분류할 것인가?주차별 신규 가입자 수 시각화2022년 12월 19일을 월요일로 하는 주차부터 신규 가입자 수가 감소하는 추세이다. 전반적으로 신규가입자 수는 증가하는 추세였으나, 12월 19일을 기점으로 꺾이는 현상을 보인다. 따라서, 신규 가입자 수가 리텐션에 영향을 준다는 것을 확인할 수 있다.기존의 추세와 반하게, 떨어지는 추세를 보이기 때문에 다음과 같이 기존 유저와 신규 유저를 정의하겠다.1) 기존 유저=> 2022년 10월 03일 ~ 2022년 12월 19일 이전2) 신규 유저=> 2022년 12월 19일 이후복귀유저와 이탈 유저를 판단하는 기준이 필요하다. 이를 위해, 첫 로그인 이후, 두번째로 로그인을 하기까지의 걸리는 시간을 4분위 수로 검증해서, 중위값을 기준으로 기존유저와 복귀유저를 구분해보기로 했다.로그인 판단 기준 = click_login 이라는 이벤트가 발생했을 경우1. 자동 로그인 여부 판단SELECT COUNT(*) FROM advanced.app_logs CROSS JOIN UNNEST(event_params) AS ep WHERE ep.key = "firebase_screen" AND ep.value.string_value = 'welcome' AND user_id IS NOT NULL자동 로그인이 된다면, click_login 이벤트가 발생하지 않을 것이다. 하지만, COUNT(*)가 0이기 때문에, 해당 앱은 자동 로그인이 되지 않음을 알 수 있다.즉, 사용자가 앱에 접속하면, 가입을 했더라도, 무조건 로그인을 해야한다. 따라서, 사용자가 앱에 접속 시, 로그인 이벤트가 무조건 발생한다.2.첫번째 로그인 후, 다음 로그인하기까지 걸린 시간을 4분위 수로 계산WITH base AS (SELECT event_date, DATETIME(TIMESTAMP_MICROS(event_timestamp), 'Asia/Seoul') AS event_timestamp, user_pseudo_id, event_name, ROW_NUMBER() OVER (PARTITION BY user_pseudo_id ORDER BY event_date) AS login_rn FROM advanced.app_logs WHERE event_name = 'click_login' AND event_date >= '2022-10-03' QUALIFY login_rn < 3) , second_event_data AS (SELECT event_date, event_timestamp, user_pseudo_id, event_name, login_rn, IF(second_event_date IS NULL, '2023-01-20', second_event_date) AS second_event_date FROM (SELECT *, LEAD(event_date) OVER (PARTITION BY user_pseudo_id ORDER BY event_date) AS second_event_date FROM base)) SELECT APPROX_QUANTILES(date_diff_day, 100)[OFFSET(25)] AS percentile_25, APPROX_QUANTILES(date_diff_day, 100)[OFFSET(50)] AS percentile_50, APPROX_QUANTILES(date_diff_day, 100)[OFFSET(75)] AS percentile_75, MAX(date_diff_day) AS percentile_100, AVG(date_diff_day) AS average FROM (SELECT DATE_DIFF(second_event_date, event_date, DAY) AS date_diff_day FROM second_event_data)유저별로 로그인을 한 시점을 ROW_NUMBER()로 카운트했다. 또한, second_event_date(다음 로그인 시점)이 NULL인 경우는 이탈 유저이다. 그런데, 4분위 수를 계산하려면, 해당 값을 채워야했다. 2099-12-31로 하려고 했으나, 너무 큰 값을 채워버리면, 4분위 수 검증이 정확하지 않게 되기 때문에 (mid와 avg값이 오른쪽으로 치우쳐버리는 현상이 발생할 수 있다.) second_event_date의 max값을 구해서, 2023-01-20을 채워주었다.Approx_quantiles 함수는 백분위로 나눌 경우, 각 근사치의 최대값을 나타내는 함수이다. 중위값에 해당하는 값들 중 가장 큰 값은 39일이다. 이번에는, 해당 범위에 속하는 값들이 몇개가 있는지 확인해보겠다.SELECT COUNTIF(date_diff_day <= 19) AS count_up_to_25, COUNTIF(date_diff_day > 19 AND date_diff_day <= 39) AS count_25_to_50, COUNTIF(date_diff_day > 39 AND date_diff_day <= 66) AS count_50_to_75, COUNTIF(date_diff_day > 66 AND date_diff_day <= 109) AS count_75_to_100 FROM temp데이터가 1분위, 2분위에 몰려있다. 따라서, 40일 을 기준점으로 삼아야겠다.2022년 12월 19일 이후 ~ (신규유저)2022년 10월 3일 이후 ~ 2022년 12월 19일 이전, 10월 3일 이후부터 다음 접속 시간이 40일 이전인 경우 (기존유저)2022년 10월 3일 이후로부터 40일 이후로 접속한 유저(복귀유저)2022년 10월 3일 이후로부터 40일 이후로도 접속 이력이 없는 경우 (이탈 유저)3. 다음 접속일까지의 걸린 일 수 기반, 유저 분류-- 유저별, 첫번째 로그인 후, 다음 로그인하기 걸린 시간을 4분위 수로 계산 -- 25% | 50% | 75% | 100% -- 로그인_이벤트: click_login -- event_date, event_timestamp, event_name, -- 중간테이블 -- 유저별 로그인을 한 시점을 ROW_NUMBER()로 카운트하기 -- 유저별 첫번째 로그인을 한 시점 구하기 MIN(event_date) OVER() -- second_event_date가 NULL인 경우는 이탈 유저임. -- 그런데, 4분위 수를 계산하려면, MAX(second_event_date) 값을 구하고, NULL을 잠시 해당 값으로 채워놔야함. -- 그 이유는 너무 큰 값으로 채워버리면, 4분위 수 검증이 정확하지 않기 때문임 (mid값과 avg값이 오른쪽으로 치워쳐버리는 현상이 발생할 수 있음) max_event_date: 2023-01-20 WITH base AS (SELECT event_date, DATETIME(TIMESTAMP_MICROS(event_timestamp), 'Asia/Seoul') AS event_timestamp, user_pseudo_id, event_name, ROW_NUMBER() OVER (PARTITION BY user_pseudo_id ORDER BY event_date) AS login_rn FROM advanced.app_logs WHERE event_name = 'click_login' AND event_date > '2022-10-03' QUALIFY login_rn < 3) , second_event_data AS (SELECT DISTINCT event_date, event_timestamp, user_pseudo_id, event_name, login_rn, IF(second_event_date IS NULL, '2099-01-20', second_event_date) AS second_event_date FROM (SELECT *, LEAD(event_date) OVER (PARTITION BY user_pseudo_id ORDER BY event_date) AS second_event_date FROM base)) -- 접속 데이터 기반, 신규, 기존, 복귀, 이탈 구분 , user_type_data AS (SELECT event_date, second_event_date, user_pseudo_id, DATE_DIFF(second_event_date, event_date, DAY) AS comeback_day, CASE WHEN event_date >= DATE('2022-12-19') THEN '신규 유저' WHEN event_date >= DATE('2022-10-03') AND second_event_date <= DATE_ADD(event_date, INTERVAL 40 DAY) THEN '기존 유저' WHEN event_date >= DATE('2022-10-03') AND second_event_date > DATE_ADD(event_date, INTERVAL 40 DAY) AND second_event_date != DATE('2099-01-20') THEN '복귀 유저' WHEN event_date >= DATE('2022-10-03') AND second_event_date = DATE('2099-01-20') THEN '이탈 유저' ELSE NULL -- 예외 처리 END AS user_type FROM second_event_data) 4. 각 유저 타입별 리텐션 계산기존 유저-- 일자별 리텐션 계산 (기존 유저) , analysis_current AS (SELECT diff_of_day, COUNT(DISTINCT user_pseudo_id) AS user_cnt FROM (SELECT user_pseudo_id, MIN(event_date) OVER (PARTITION BY user_pseudo_id) AS first_day, event_date, comeback_day as diff_of_day FROM user_type_data WHERE user_type = '기존 유저' ORDER BY event_date, second_event_date) GROUP BY 1) SELECT diff_of_day, user_cnt, first_user_cnt, ROUND(SAFE_DIVIDE(user_cnt, first_user_cnt), 3) AS retention_day_rate FROM (SELECT diff_of_day, user_cnt, FIRST_VALUE(user_cnt) OVER (ORDER BY diff_of_day) AS first_user_cnt FROM analysis_current)복귀 유저신규 유저이탈 유저리텐션이 평평하게 안나오네요... 뭔가 단단히 잘못된것 같습니다..
-
해결됨TensorFlow 2.0으로 배우는 딥러닝 입문
선형 회귀 모델에 대해서 질문 있습니다
강좌 TensorFlow 2.0을 이용한 선형 회귀 알고리즘 구현 편에서 나오는 선형 회귀 모델을 실행하였을 때 결과값이 계속하여 미세하게 변화하는 이유가 궁금해서 질문합니다. 수학적 계산식을 항상 동일하니 계산값 역시 항상 동일해야 하는 것 아닌가요?
-
해결됨(2025) 일주일만에 합격하는 정보처리기사 실기
이론종합pdf
3번째 if문은 실행안되나요?풀이가없어서 문의드려요.마지막 result 51이 이여야되지않나요?
-
미해결자바 동시성 프로그래밍 [리액티브 프로그래밍 Part.1]
synchronized = 모니터
안녕하세요!좋은강의 해주셔서 감사합니다!저는 모니터라는 개념에 대해 잘 이해를 못하다가 이번 강의를 통해 좀 알것 같기도 한데 애매한 부분이 있어서 질문드리고자 합니다~강의 내용을 보면 synchronized = 모니터라고 볼 수 있을 것 같은데, 41분쯤에 장표에서 나온 모니터는 lock.wait()과 lock.notify()로 구현되어있잖아요!그런데 저는 지금까지 동기화 코드를 작성할때 Object클래스의 wait()이나 notify()함수를 사용안하고, synchronized만 사용해도 동기화가 잘 됬던것 같거든요!synchronized만 사용할때랑 자바 모니터로 구현할때랑 무엇이 다른건지 아직 좀 잘 모르겠습니다..
-
미해결Slack 클론 코딩[실시간 채팅 with React]
fetcher 함수의 data 값이 두번 찍히는 이유
Login.tsx에서 swr로 호출한 users의 data 값을 return 직전에 console 로그로 찍어봤는데요네트워크 탭에서는 users 요청은 한번 밖에 없었는데undefined와 false가 연달아서 찍히더라구요다른 질문에서 답변해주신 내용을 보니 데이터 로딩중엔 undefined라고 말씀해주셨는데, 맨 처음 컴포넌트가 렌더링될 때 useSWR이 api를 호출하게 되고 이때 console.log(data)는 아직 데이터가 로딩 중이라서 undefined가 찍히게 되고, 이후 데이터 로딩이 완료되면 useSWR이 다시 호출되어? false가 찍히는 프로세스로 이해했는데 맞는걸까요그렇다면 useSWR로 api호출 시 무조건 최소 2번 렌더링될 수 밖에 없는걸까요?// Login.tsx import React, { useState, useCallback, useEffect } from 'react'; import { TextField, Button } from '@components/index'; import { Link, Navigate } from 'react-router-dom'; import { useInput } from '@hooks/useInput'; import { LogoSlack } from '@assets/icons/'; import axios from 'axios'; import useSWR from 'swr'; import fetcher from '@utils/fetcher'; const Login = () => { // useSWR은 get으로 요청한 데이터를 받아와서 저장한다. // mutate : 내가 원할 때 SWR 호출하기 const { data, error, mutate } = useSWR('http://localhost:3095/api/users', fetcher, { dedupingInterval: 5000, // 주기적으로 호출하지만, dedupingInterval 기간 내에는 캐시에서 불러온다 }); const [logInError, setLogInError] = useState(false); const [email, setEmail, onChangeEmail] = useInput(''); const [password, setPassword] = useInput<string>(''); const onChangePassword = useCallback( (e: React.ChangeEvent<HTMLInputElement>) => { setPassword(e.target.value); }, [email, password, data], ); const onSubmit = useCallback( (e) => { setLogInError(false); axios .post( 'http://localhost:3095/api/users/login', { email, password }, { withCredentials: true, }, ) .then(() => { mutate(); }) .catch((error) => { setLogInError(error.response?.status === 401); }); }, [email, password], ); console.log(data); // if (data) return <Navigate to="/workspace/channel" />; return ( <div className="max-w-[400px] mx-auto px-[20px]"> <h1 className="flex justify-center pt-[60px] pb-[20px]"> <LogoSlack /> <span className="blind">Slack</span> </h1> <TextField label="이메일 주소" type="email" value={email} onChange={onChangeEmail} /> <TextField label="비밀번호" type="password" value={password} onChange={onChangePassword} /> {logInError && <p className="mb-[20px] mt-[-10px] text-red-500 font-normal">로그인 실패</p>} <Button text="로그인" onClick={onSubmit} /> <p className="mt-[10px] text-center"> Slack을 처음 사용하시나요? <Link to="/sign" className="ml-[4px] text-blue-600"> 회원가입 </Link> </p> </div> ); }; export default Login;
-
미해결비전공자도 이해할 수 있는 AWS 입문/실전
영상이 안나옵니다.
안녕하세요.아래 문의처럼 저도 1.리전 선택하기 강의부터 영상이 안나옵니다. 그 전의 강의는 다 영상이 나오는데 해당 영상부터 안나옵니다. 따로 영상프로그램을 켜두지도 않았습니다.
-
미해결데이터 분석 SQL Fundamentals
형변환 (::) 관련 문의
안녕하세요!형변환 관련 문의드리고자 합니다.::text 등 더블콜론 활용한 기능이 매우 유용하다 말씀주셨는데 ::text의 경우 to_char로 작성했을 때 대비 어떤 이점 또는 차이가 있는지 궁금합니다.감사합니다.to_char(hiredate, 'yyyy-mm-dd')vsto_timestamp(hiredate, 'yyyy-mm-dd')::text
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
orElseThrow에 관해서
안녕하세요 강의 11:15초에 있는 예외 던지는 것에 대해서 질문이 있습니다.orElseThrow로 테이블에 데이터 없는 경우 예외가 터진다고 하셨는데 예외처리는 따로 안 해도 되는 건가요?
-
미해결스프링 시큐리티 OAuth2
안드로이드, iOS에서 sdk를 사용할 때 어떻게 해야할까요?
앱에서 sdk를 사용하면 인증 코드 또는 엑세스 토큰을 발급받는 과정에서 클라이언트(spring boot)와 통신을 하지 않는데요.이 때는 스프링 oauth2 client를 활용할 수 없는걸까요?sdk에서 발급 받은 인증 서버(구글, 카카오 등)의 엑세스 토큰을 앱 -> 클라이언트로 넘겨서 회원가입 및 로그인 처리를 해야하는 건지 궁금합니다.
-
미해결엑셀기초 실무핵심만 뽑아 3시간에 끝내기
수식 하나가 잘못된 것 같습니다.
섹션 3 첫번째 영상에서F6셀의 수식이 (절대참조 걸기 전 기준)= E6*F3 이 아니라= E6*(1-F3) 이 되어야 맞는 것 같습니다.(할인가는 할인을 얼마만큼 해주냐의 의미가 아니라, 할인이 된 이후의 판매가를 의미하므로)
-
미해결생초보를 위한 파이널컷 프로
영상제작후 파일변환프로그램
잘배우고 있습니다 감사합니다영상제작후 파일변환 프로그램 추천부탁드립니다그리고 꼭 영상을 파일변환을 해야 하나요고화질의 영상을 작업하여 유튜브에 업로드 해야할 경우 입니다
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
학습 전에 데이터베이스 학습을 하고 들어야 할까요?
정처기 기출 정도만 본 적 있는데 어렴풋이 기억이 나는 상태입니다. MVC 1,2편 를 데이터베이스를 잘 모르는 상태로 들어도 될까요?
-
미해결[NarP Series] MVC 프레임워크는 내 손에 [나프2탄]
안녕하세요, Spring Legacy Project 생성 시 오류 문의드립니다.
전자정부프레임워크는 eGovFrame-4.0.0을 사용하고 있으며, https-content.xml 파일을 알려주신C:\eGovFrame-4.0.0\workspace.edu\.metadata\.plugins\org.springsource.ide.eclipse.commons.content.core 경로에 넣어 Spring MVC Project는 나오는 상태입니다.
-
해결됨(2025) 일주일만에 합격하는 정보처리기사 실기
서브넷 마스크
안녕하세요 강사님. 기출 문제를 풀던 중 자주는 아니지만 가끔 서브넷 마스크 계산하는 문제가 출제되는 것 같습니다. 혹시 서브넷 마스크 계산법 강의 업로드 계획 있으실까요?
-
미해결설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
파일 재설치 오류
안녕하세요 🙂[1. 질문 챕터] : eg) 몇 장, 몇 분 몇 초 쯤. or 수강생 분들이 봤을 때 어디구나?! 할 수 있게 표기 부탁 드려요.[2. 질문 내용] : eg) 질문 내용을 자유롭게 작성해주시면 되겠습니다 🙂[3. 시도했던 내용, 그렇게 생각하는 이유] : eg) 설치영상은 이렇게 시도했는데 안되더라 or 본인의 생각을 적어주세요. (실습 내용 중에 이해가 안되거나 잘못된 내용이 있는데, 이러 이러한 근거로 나는 이렇게 생각합니다.) ================ 다음 내용은 읽어보시고 지우시면 됩니다.=================질문 내용을 작성해주실 때, 위의 3단계로 제가 이해할 수 있게 작성해주시면 정확한 답변을 드릴 수 있을 것 같아요!!현업자인지라 업무때문에 답변이 늦을 수 있습니다. (길어도 만 3일 안에는 꼭 답변드리려고 노력중입니다 ㅠㅠ)강의에서 다룬 내용들의 질문들을 부탁드립니다!! (설치과정, 강의내용을 듣고 이해가 안되었던 부분들, 강의의 오류 등등)이런 질문은 부담스러워요.. (답변거부해도 양해 부탁드려요)개인 과제, 강의에서 다루지 않은 내용들의 궁금증 해소, 영상과 다른 접근방법 후 디버깅 요청, 고민 상담 등..글쓰기 에티튜드를 지켜주세요 (저 포함, 다른 수강생 분들이 함께보는 공간입니다.)서로 예의를 지키며 존중하는 문화를 만들어가요.질문글을 보고 내용을 이해할 수 있도록 남겨주시면 답변에 큰 도움이 될 것 같아요. (상세히 작성하면 더 좋아요! )먼저 유사한 질문이 있었는지 검색해보세요.잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.==================안녕하세요 맛비님, 절차대로하다가, 19분 20초에 마지막으로 설치하는 코드 ./Xilinx_Unified_2021.2_1021_0703_Lin64.bin -- -a XilinxEULA,3rdPartyEULA -b Install -c /root/.Xilinx/install_config.txt (맛비님이 말씀하신대로 수정하고 진행했습니다.)를 실행하다가 노트북을 중간에 끄다가 오류가 발생했습니다.앞에서도 제가 잘못한게 있을까 싶어서 처음부터 재설치를 하다가 이번에도 위와 같은 부분에서 막히게 돼서 질문을 드리게 됐습니다.코드 오류의 내용은 제가 이미 비바도를 설치했기 때문에 오류가 발생한 것으로 보이는데, 혹시나 제대로 깔려서 설치가 안 되는 것인가 싶어서 이후의 내용으로 비바도를 열어보려했지만 비바도 파일을 찾지 못하는 것 같았습니다.해결 방법이 있을까요?
-
미해결프로젝트로 배우는 Python 챗봇 & RAG - LangChain, Gradio 활용
커널에서 poetry env가 보이지 않습니다.
안녕하세요!vs code를 종료하고 재시작해봐도 poetry env 커널이 보이지 않습니다. poetry activate는 했습니다!알려주시면 정말 감사하겠습니다.
-
미해결비전공자도 이해할 수 있는 AWS 입문/실전
인스턴스 및 요금 문의
안녕하세요 현재 섹션 1까지 다 마무리한 상태인데 제가 아직 잘 몰라서 질문이 있습니다섹션1 마지막 쯤에 스프링부트 서버 배포하는 단계에서는 혹시 몰라 프로젝트를 올리지 못했어요 해당 단계에서 제가 만든 스프링부트 서버를 올리기만 하는 것은 별도의 요금이 나가지 않을까요?? 괜히 무서워서 질문드려요!그리고 궁금한게 강의에서 인스턴스를 종료하게 되면 빌렸던 EC2를 삭제하는 거라고 하셨었는데 섹션1 마지막 강의에서 인스턴스를 중지하지 않고 종료하신 이유가 궁금합니다
-
미해결[초급편] 안드로이드 커뮤니티 앱 만들기(Android Kotlin)
리사이클러뷰, 그리드레이아웃 오류
개발자님 안녕하세요! 바로 어제 질문하기 게시판에 리사이클러뷰, 그리드레이아웃매니저 오류 관련해서 질문 남겼습니다. 전체 코드를 첨부하면 더 좋을 것 같아서 다시 질문하기 남깁니다. 감사합니다.https://drive.google.com/drive/folders/1RKYQLjYsoZ50rcQbUq7xiJQdwPOhWdK9?usp=share_link rv.layoutManager = GridLayoutManager(this, 2) val items = ArrayList<ContentsModel>() items.add(ContentsModel("imageUrl1", "title1")) items.add(ContentsModel("imageUrl2", "title2")) items.add(ContentsModel("imageUrl3", "title3")) items.add(ContentsModel("imageUrl4", "title4")) val rvAdapter = ContentsRVAdapter(items) rv.adapter = rvAdapter 이 부분은 나름대로 해결해보려고 하다가 강의랑 다르게 순서를 바꿔놓았는데 변하는 건 없었습니다 ㅠ 어떻게 해결할 수 있는지 알려주시면 정말 큰 도움이 될 것 같습니다! 감사합니다.