묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결
학습페이지가 안열려요,,,ㅠ
학습페이지가 안열려요,,,ㅠ
-
미해결윤재성의 만들면서 배우는 Spring MVC 5
학습 페이지 가 열리지 않아서 강의 시청이 안 됩니다.
안녕하세요.학습 페이지 가 열리지 않아서 강의 시청이 안 됩니다.모바일에서는 되는데 PC 에서는 안 됩니다.1 시간 째 계속 안 되고 있습니다.사용 브라우저는 Chrome, FireFox 입니다.점검 부탁합니다. 사이트 오류인지요?
-
미해결[초급편] 안드로이드 커뮤니티 앱 만들기(Android Kotlin)
자막켜기가 안되요 ㅜ.ㅜ
자막 켜기를 누르면 오류가 발생합니다.
-
미해결
깃허브 Overview README.md 도와주세요ㅠㅠㅠ
포폴용으로 깃허브를 꾸미고 있는데 Overview에 README.md가 보였는데 수정하고 커밋하니 README.md 부분이 사라졌습니다... Code에는 README.md 파일이 있습니다ㅠㅠㅠㅠOverview에 다시 보이게 하는 방법 아실까요...??
-
해결됨시스템엔지니어가 알려주는 리눅스 실전편 Bash Shell Script
커리큘럼-강의교안
안녕하세요.커리큘럼의 맨 마지막에 강의교안이라는 항목이 선택이 안되는데원래 안되는건지 확인 부탁드립니다.
-
해결됨(2025) 일주일만에 합격하는 정보처리기사 실기
Ragged Array
강의 내용과 무관한 질문인데요.C언어 문제들을 여러 개 풀다보니까 직관적으로 눈에 보이는 게 많아지긴 했습니다. 예를들어 반복문 안에서 배수를 구한다던지, null을 만나면 빠져나간다던지.. 배열 공부 중에 래그드 배열이라는 걸 알게됐는데 계단식으로 쪼개지는(?) 규칙성이 있더라고요.그래서 말인데 혹시 래그드배열 관련 강의나 자료 올려주실 계획이 따로 있으실까요..? ㅎㅎ
-
미해결실습으로 배우는 선착순 이벤트 시스템
도커 환경설정에 대해서
위 오류가 발생하고스택오버플로우중국 플랫폼 사이트 갓대희님 블로그 등 모든 사이트를 찾아보았으며,하이퍼 바이저 실행여부, svm 실행 여부, wsl 재설치, 도커 데스크탑 버전이슈도 있었으므로 버전 변경 등 할수있는 모든 방법을 전부 실행하였으나 해결되지 않았습니다.도커 데스크탑을 사용하지 않고 진행하는 방법이 있는지 궁금합니다. 현재 제 윈도우 11 21h2 환경에서는 도커데스크탑의 설치가 불가하다고 판단이 되는데 수업에 대해서 진행이 가능한지 궁금합니다.
-
미해결프로젝트로 배우는 React.js
Pagination 페이지 별 데이터 불러오기 오류
Pagination 6 강의까지 들었을 때 페이지 별로 클릭했을 때 params의 page값은 제대로 바껴서 getPost 함수로 들어가는 거까진 확인 되는데 다른 page값이 들어가도 항상 똑같은 data 5개만 가져오는데 따로 페이지별로 데이터를 슬라이싱하는 부분을 구현해야 하는 건가요? ++ json-server 문서에 _limit 대신 _per_page를 사용하면 Network 탭에서 정상적으로 페이지별로 데이터를 불러오는데 이렇게 하면 console 창에서 'posts.map is not a function'이라는 오류가 뜨네요 ㅠ
-
미해결AWS Certified Solutions Architect - Associate 자격증 준비하기
수강 기간 연장 요청 드립니다.
다른 분들은 이렇게 요청하셔서, 기간 연장을 받으신 것 같습니다.다시 한번 수강 기간 연장 요청 드립니다.
-
미해결3. 웹개발 코스 [Enterprise Architecture(EA) X 전자정부프레임워크]
수정, 삭제 기능 관련 질문있습니다
안녕하세요.지금까지 강의따라가면서조회, 등록 페이지는 구현을 했는데 (boardView, boardWrite)수정이랑 삭제하는 기능도 구현하고 싶습니다 (boardEdit, boardRemove)강의에서는 수정,삭제를 다루는 부분이 없는거 같은데 맞을까요? 아니라면 강의 어디를 보면 되는지 알려주시면 감사하겠습니다!그리고 게시글을 한글로 작성하면 저장이 안되고, 영어+숫자는 되는데 혹시 이 문제 해결하려면 어떻게 해야할까요...??
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
수강 연장 여쭈어봅니다
선생님 안녕하세요. 제가 직장 이직 등으로 준비를 그동안 못하다가 이제 시간이 나서 12월 실기를 준비하려고 합니다... 수강 기간이 얼마 남지 않았는데 연장을 부탁드리고 싶습니다...
-
해결됨(2025) 일주일만에 합격하는 정보처리기사 실기
go ti문 , continue문 강의에서
if 문에 i%2 !=0 (i를 2로 나눴을때 0이 아니면 참)i가 0 일때 i++ 하면 1%2 !=0(참 이므로 continue)그다음 21:05 i가 1일때 i++돼서 i가 2가 된 후 if문을 실행하잖아요 그러면 나머지가 0이므로 거짓이니까 printf문에서 2가 출력돼야 하는거 아닌가요?
-
해결됨(2025) 일주일만에 합격하는 정보처리기사 실기
go to문 conintinue문 강의에서
13:58초에 i가 0 일때 i%2 == 0 참이니까 printf문 출력하지 않고 바로 continue 로 가지 않나요? 근데 설명에는 출력한다고 하시네요
-
미해결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;