묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨[리뉴얼] 맛집 지도앱 만들기 (React Native & NestJS)
3-8. 로그아웃 에러
안녕하세요 강사님. 그동안 로그인 구현을 해본적이 없어서 정말 유익한 강의였습니다. 3-8 강의를 듣던 중 강의대로 했는데 로그아웃이 안 되더라구요. 혼자 해결해보려고 다양한 방법으로 해서 결국 로그인과 로그아웃이 동작은 하는데 로그아웃 버튼을 두 번 클릭해야지 AuthStackNavigator로 네비게이팅이 되는 문제가 있습니다.https://github.com/G0MTENG/MatzipApp-project/tree/3-8 깃허브에 3-8 브랜치에 올려두었습니다. src/hooks/queries/useAuth에 이에 대한 구현이 있고 추가적으로 useAuth 코드를 올려두겠습니다. 감사합니다. import { getAccessToken, postLogin, postSignUp, getProfile, logout, } from '@/apis'; import {queryClient} from '@/apis/queryClient'; import {authQueryKeys, storageKeys, numbers} from '@/constants'; import {UseMutationCustomOptions, UseQueryCustomOptions} from '@/types'; import { removeEncryptStorage, removeHeader, setEncryptStorage, setHeader, } from '@/utils'; import {useMutation, useQuery} from '@tanstack/react-query'; import {useEffect} from 'react'; export const useSignUp = (mutationOptions?: UseMutationCustomOptions) => { return useMutation({ mutationFn: postSignUp, ...mutationOptions, }); }; export const useLogin = (mutationOptions?: UseMutationCustomOptions) => { return useMutation({ mutationFn: postLogin, onSuccess: ({accessToken, refreshToken}) => { setEncryptStorage('refreshToken', refreshToken); setHeader('Authorization', `Bearer ${accessToken}`); }, onSettled: () => { queryClient.refetchQueries({ queryKey: [authQueryKeys.AUTH, authQueryKeys.GET_ACCESS_TOKEN], }); queryClient.invalidateQueries({ queryKey: [authQueryKeys.AUTH, authQueryKeys.GET_PROFILE], }); }, ...mutationOptions, }); }; export const useGetRefreshToken = () => { const {data, isSuccess, isError} = useQuery({ queryKey: [authQueryKeys.AUTH, authQueryKeys.GET_ACCESS_TOKEN], queryFn: getAccessToken, staleTime: numbers.ACCESS_TOKEN_REFRESH_TIME, refetchInterval: numbers.ACCESS_TOKEN_REFRESH_TIME, refetchOnReconnect: true, refetchIntervalInBackground: true, }); useEffect(() => { if (isSuccess) { setHeader('Authorization', `Bearer ${data.accessToken}`); setEncryptStorage(storageKeys.REFRESH_TOKEN, data.refreshToken); } }, [isSuccess, data]); useEffect(() => { if (isError) { removeEncryptStorage(storageKeys.REFRESH_TOKEN); removeHeader('Authorization'); } }, [isError]); return {isSuccess, isError}; }; export const useGetProfile = (quryOptions?: UseQueryCustomOptions) => { return useQuery({ queryKey: [authQueryKeys.AUTH, authQueryKeys.GET_PROFILE], queryFn: getProfile, ...quryOptions, }); }; export const useLogout = (mutationOptions?: UseMutationCustomOptions) => { return useMutation({ mutationFn: logout, onSuccess: async () => { await removeEncryptStorage(storageKeys.REFRESH_TOKEN); removeHeader('Authorization'); }, onSettled: () => { queryClient.resetQueries({queryKey: [authQueryKeys.AUTH]}); queryClient.invalidateQueries({queryKey: [authQueryKeys.AUTH]}); }, ...mutationOptions, }); }; export const useAuth = () => { const signupMutation = useSignUp(); const refreshTokenQuery = useGetRefreshToken(); const getProfileQuery = useGetProfile({ enabled: refreshTokenQuery.isSuccess, }); const isLogin = getProfileQuery.isSuccess; const loginMutation = useLogin(); const logoutMuatation = useLogout(); return { signupMutation, loginMutation, isLogin, getProfileQuery, logoutMuatation, }; };
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
test에 없는 컬럼을 추가할때 이 방법을 써도 될까요?
# missing_cols = set(train.columns) - set(test.columns) # for col in missing_cols: # test[col]=0 # test = test[train.columns] # train.head()질문1) train의 컬럼이 test에 없을 때 train의 컬럼을 test 컬럼과 동일하게 삭제하거나test를 위의 코드를 통해 컬럼을 만들고 '0' 값으로 채운다. 그리고 train 컬럼의 순서대로 맞춘다.여쭤보는 이유는 반대로 test에 있는 컬럼이 train에 없다면 위의 코드를 사용해도 되지 않을까 싶어서요...제가 이해하는게 맞는지 모르겠네요.. 질문2) train과, test의 범주형 컬럼이 다를 때 concat하라고 말씀하셨는데요. 좀 어려워서 원핫인코딩 한적이 있는데 잘 되더라구요... concat을 해야 하나요..?
-
미해결
c++,c# wpf 프로젝트
WPF앱(.NET Framwork) 프로젝트 만들었는데Mainwindows.xaml.cs 이거 안뜸니다 도와주세요 ㅠ이렇게 뜸니다 ㅠ
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
오즈비 구하는 문제일때는
오즈비 값을 구해야 하는 문제일 경우에는, import numpy as np 식만 사용하면 될까요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
스케일링 문제
해당 예시 문제를 밑의 식으로 풀이를 해보았는데,import pandas as pd df = pd.read_csv('mtcars.csv') from sklearn.preprocessing import minmax_scale print('변환 전 :',df['qsec'].head()) df['qsec'] = minmax_scale(df['qsec']) print('변환 후 :', df['qsec'].head()) cond = df['qsec'] >0.5 sum(cond)제가 알기로 스케일링 할 수 있는게 min-max, standard,robust 이렇게 3가지가 있는데, 만약 minmax가 아닌 standard,robust를 이용하게 된다면 코드를 어떻게 작성을 해야할까요?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part5: 데이터베이스
conect시 신뢰할 수 없는 기관에서 인증서 발급 오류 뜨시는분들
https://mozi.tistory.com/285 참고하세요
-
미해결[하루 10분|Web Project] HTML/JS/CSS로 나만의 심리테스트 사이트 만들기
결과 이미지랑 글이 안떠요 왜일까요
// main변수= 문서 내 #main을 찾아서 가지고 와라 const main= document.querySelector("#main"); const qna= document.querySelector("#qna"); // statusbar 위한 엔드포인트 정의 const endPoint =12; // 결과값 const result=document.querySelector("#result"); // 사용자 입력값에 대한 배열 // const select = []; // 사용자 입력값에 대한 배열 new.직접 12개의 배열에 value 0넣기 const select = [0,0,0,0,0,0,0,0,0,0,0,0,0]; // 질문에 따른 답변 계산 // function calresult(){ // var pointArray = [ // 이 부분 data는 data.js로 옮겨서 동물 당 번호로 바꿔줌. // ] // for(let i = 0; i<endPoint; i++){ // // qnalist로 들어가서 a로 들어가고 거기서 select한 값 // var target =qnaList[i].a[select[i]]; // for(let j=0; j< target.type.length; j++){ // for(let k=0; k<pointArray.length; k++){ // if(target.type[j]=== pointArray[k].name){ // pointArray[k].value += 1; // } // } // } // } function calresult(){ // select라는 배열에 index를 반환할건데 최대값을 console.log(select); var result =select.indexOf(Math.max(...select)); return result; } // // value기준으로 정렬 sort // var resultArray = pointArray.sort(function(a,b){ // if(a.value > b.value){ // return -1; // } // if(a.value < b.value){ // return 1; // } // return 0; // }); // console.log(resultArray) // // key값을 도출, 동물의 이름 // let resultword = resultArray[0].key; // return resultworld; function setresult(){ let point = calresult(); const resultName = document.querySelector('.resultname'); resultName.innerHTML = infoList[point].name; var resultImg = document.createElement('img'); const imgDiv = document.querySelector('#resultImg'); var imgURL = 'img/image-'+ point + '.png'; resultImg.src=imgURL; resultImg.alt=point; resultImg.classList.add('img-fluid'); imgDiv.appendChild(resultImg); const resultDesc = document.querySelector('.resultDesc'); resultDesc.innerHTML=infoList[point].desc; } function goresult(){ qna.style.WebkitAnimation = "fadeOut 1s"; qna.style.Animation = "fadeOut 1s"; setTimeout(() => { result.style.WebkitAnimation = "fadeIn 1s"; result.style.Animation = "fadeIn 1s"; setTimeout(() => { qna.style.display = "none"; result.style.display = "block" }, 450)}) setresult(); calresult(); } function addAnswer(answerText, qIdx,idx){ var a = document.querySelector('.answerbox'); var answer = document.createElement('button'); // answer는 클래스나 id값이 없어서 querySelector이용 불가하므로 클래스 만들어주기 answer.classList.add('answerlist'); // qbox, answerlist에 애니메이션 넣기 위해 클래스 만들어주기 answer.classList.add('fadeIn'); // 버튼 간 간격 answer.classList.add('my-3'); answer.classList.add('py-3'); answer.classList.add('mx-auto'); // 답변 클릭할 수 있게 버튼 만들기 그것을 html에서 코드 짜지 않고 // innerhtml을 통해서 넣기 a.appendChild(answer); answer.innerHTML = answerText; // html의 onclick 역할의 addEventListener answer.addEventListener("click", function(){ // 버튼 하나만 클릭해도 모든 버튼이 사라지도록 함 var children = document.querySelectorAll('.answerlist'); for(let i=0; i< children.length; i++){ children[i].disabled =true; children[i].style.WebkitAnimation = "fadeOut 1s"; children[i].style.Animation = "fadeOut 1s"; } setTimeout(() => { // 소,닭 등 각 부여된 select 리스트의 순서를 찾아 value값 1씩 늘려주기 var target =qnaList[qIdx].a[idx].type; for(let i=0; i< target.length; i++){ select[target[i]] +=1; } //// 사용자 입력이 몇 번째인지 인덱스로 넣어주고 idx로 받아주기 -> 몇 번째 질문에서 몇 번째 답변 눌렀는지 select[qIdx] = idx; for(let i=0; i< children.length; i++){ children[i].style.display = 'none'; } goNext(++qIdx); // 버튼이 사라지고 950초쯤 이후 버튼 없어지게 }, 950) }, false); } function goNext(qIdx){ // 결과값 호출하는 함수 if(qIdx === endPoint){ goresult(); return; } // html파일에서 qna 안 qbox가져와라 var q= document.querySelector('.qbox'); q.innerHTML = qnaList[qIdx].q; // 원래는 q.innerHTML =qnalist[0].q; 였는데 0~11번째 질문을 // 하나씩 입력하면 귀찮으니까 let Idx라는 변수 만들어서, for 함수 사용 for(let i in qnaList[qIdx].a){ // answerlist를 하나씩 입력하지 않고 파라미터로 addAnswer(qnaList[qIdx].a[i].answer,qIdx,i); } // status에 따라서 바로 나타내려고 var status = document.querySelector('.statusbar'); status.style.width=(100/endPoint)*(qIdx+1) + '%'; } // 장면 넘어가는 animation function begin(){ main.style.WebkitAnimation = "fadeOut 1s"; main.style.Animation = "fadeOut 1s"; setTimeout(() => { qna.style.WebkitAnimation = "fadeIn 1s"; qna.style.Animation = "fadeIn 1s"; setTimeout(() => { main.style.display = "none"; qna.style.display = "block" }, 450); // 위에서 세운 고넥스트 함수 호출 let qIdx = 0; goNext(qIdx); }, 450); }
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
rmsle 평가할 때, 음수값 포함
print('rmsle: ', mean_squared_log_error(y_val, pred)) 이 코드를 실행할 때, 해당 오류가 나옵니다. Mean Squared Logarithmic Error cannot be used when targets contain negative values.궁금한 것이, 회귀모델을 사용할 때 pred에서 음수값이 나오면 어떻게 처리하면 되는지 궁금합니다. 사실 y_tr 통계값에서 min값이 0이기 때문에 예측 모델에서 음수값이 나오면 안된다고 생각하는데 혹시나 나오게 되면 어떤식으로 전처리를 해야하는지 궁금합니다. 또한 선생님이 실행하신 랜덤포레스트 모델에서 r2_score가 0.77정도 나오는데 저는 같은 과정으로 해도 0.24정도 나와 차이가 큽니다.. 완전히 같을 순 없지만 비슷해야한다고 생각하는데 너무 차이가 나서 저의 코드가 잘못되어 그런것일지 궁금합니다.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
코드 작성을 이렇게 해도 될까요?
import pandas as pdtrain = pd.read_csv("data/customer_train.csv")test = pd.read_csv("data/customer_test.csv")pd.set_option('display.max_columns', None)# print(train.shape, test.shape)# print(train.head())# print(test.head())# print(train.info())# print(train.isnull().sum())# print(test.isnull().sum())train['환불금액'] = train['환불금액'].fillna(0)test['환불금액'] = test['환불금액'].fillna(0)cols = ['회원ID', '총구매액', '최대구매액','환불금액','방문일수','방문당구매건수','주말방문비율','구매주기']# print(train.isnull().sum())# print(test.isnull().sum())target = train.pop('성별')# print(train.shape, test.shape)train = pd.get_dummies(train)test = pd.get_dummies(test)# print(train.shape, test.shape)from sklearn.model_selection import train_test_splitX_tr, X_val, y_tr, y_val = train_test_split(train[cols],target, test_size = 0.2, random_state = 2022)print(X_tr.shape, X_val.shape, y_tr.shape, y_val.shape)from sklearn.ensemble import RandomForestClassifierrf = RandomForestClassifier(random_state = 2022)rf.fit(X_tr[cols], y_tr)pred = rf.predict_proba(X_val[cols])# print(pred)from sklearn.metrics import roc_auc_scoreprint(roc_auc_score(y_val,pred[:,1]))pred = rf.predict_proba(test[cols])submit = pd.DataFrame({'pred' : pred[:,1]})submit.to_csv('result.csv', index=False)print(pd.read_csv('result.csv')) 그리고 코랩에서 연습할 때는 submit.to_csv('result.csv', index=False) 해당 코드를 작성하면, 파일 칸에 생기는 것을 확인했었는데, 여기서는 따로 생성이 안되고 그냥 제출하기만 하면 될까요?
-
미해결Jenkins를 이용한 CI/CD Pipeline 구축
docker run -p 8080:8080 --name mytomcat docker-server
docker run -p 8080:8080 --name mytomcat docker-server동일하게 명명을 작성했는데 exec /usr/local/tomcat/bin/catalina.sh: invalid argument라는 오류가 계속 발생합니다.다른 수강생 분들이 올리신 질문을 참고해서 해결하려고 했지만 오류가 해결되지 않아 여쭈어 봅니다 현재 사용중인 PC는 M3 이며 ssh키 까지는 접속이 되었습니다.
-
미해결스프링 핵심 원리 - 기본편
DIP, OCP
[질문 내용]관심사의 분리 영상에서 김영한 강사님께서 DIP를 지킨 것을 강조하고 있는데 제가 보았을 때는 DIP도 지키고 OCP도 지켜진 것을 확인하였습니다. 그러나 OCP도 지켰다는 것은 왜 얘기를 안 하시는지 궁금합니다.
-
해결됨[UI3 업데이트] 피그마 배리어블을 활용한 디자인 시스템 구축하기
버튼 생성시
시간이 지나서 강의를 들어서인지 그 동안 피그마 업데이트가 좀 많이 된거 같더라구요버튼 프로퍼티와 인스턴스 스왑 하실때 아래 1번 그림에서 만드는게 맞는지토글 버튼을 활용해 아이콘을 껏다 켰다 했는데 그부분이 2번 그림에서 진행하는게 맞는지 확인 부탁드립니다.12.
-
미해결Readable Code: 읽기 좋은 코드를 작성하는 사고법
다른 섹션ppt도 받을 수 있을까요?
강의 자료모음 섹션에 다운 받았더니 Intro하고 Outro.pdf 밖에 없더라구요. 다른 섹션ppt도 받을 수 있을까요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
2회차 기출 part1문제 2번 질문드립니다.
주어진 데이터셋(members.csv)의 앞에서부터 순서대로 80% 데이터만 활용해 'f1'컬럼 결측치를 중앙값으로 채우기 전 후의 표준편차를 구하고, 두 표준편차 차이 계산하기 (단, 표본표준편차 기준, 두 표준편차 차이는 절대값으로 계산)여기서 제가 이해한 바로는 80퍼센트 데이터만을 활용하여 중앙값을 도출하고 그것을 통하여 f1컬럼을 채워넣고 전체 f1컬럼의 전후 표준오차를 계산하라고 이해하였습니다.문장을 여러번 읽어보아도 80퍼센트 데이터 활용의 정의가 모호한거 같은데요(80퍼센트 데이터를 활용해 중앙값으로 채우기 / 전후 표준오차 구하기 인지 80퍼센트 데이터를 활용해 중앙값 채우고 전후 표준오차 까지 구하기인지)이런 경우 감독관에게 그 범위를 질문을 할수 있나요?자의적으로 시험장에서 판단하기 힘든것 같아 질문드립니다.
-
미해결파이썬 알고리즘 트레이딩 파트1: 알고리즘 트레이딩을 위한 파이썬 데이터 분석
quota 할당량 요청이 안됩니다.
트러블 슈팅 강의 내용대로 해도 안되서 일단 서포트 접수했는데 생각보다 대응이 오래걸리는것 같습니다.혹시나 해서 aws로 12개월 무료체험 하는쪽으로 만들어서 접속해봤는데 생각보다 느리더라구요 비슷한 문제를 겪는 수강생 중 해결된 케이스가 있다면 공유 부탁드립니다.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
pred 예측이후 반올림이나 버림을 어떻게하나요?
from sklearn.ensemble import RandomForestRegressor model = RandomForestRegressor(random_state=10, max_depth=10, n_estimators=400) model.fit(X_tr, y_tr) pred = model.predict(X_val) pred = round(pred) 모델예측이후에 반올림이나 버림을 하고싶은데 int나 round를 써도 에러가뜹니다 어떻게 해결하나요? 아래는 에러메세지입니다. TypeError: type numpy.ndarray doesn't define __round__ method
-
미해결[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
part2 답안 제출 관련문의입니다
사진과 같이 제출하라고 했는데 보통이제모델을 통해 예측을 한 결과는 test내의 id가 뒤죽박죽 이 된상태가 일반적입니다.아래는 저의 결과물입니다.그런데 제출할떄 index가 정렬되지 않아도 상관없는지,혹은 반드시 정렬해야하는지,또는 문제에서 요구할떄만 정렬하는지에 대해 문의드립니다.감사합니다. +추가로 문의드립니다문제 분석결과 인덱스를 고유번호인 Unnamed 0 가 아닌 test.index를 사용하여 submit을 구성하였는데요 이러면 어떤 컬럼이(고유번호)가 학습되었는지 정보가 없는 문제가 발생하지않나요? 혹은 인덱스는 전혀상관없나요?(단순히 채첨할떄 pred값의 순서를 통해서 채점하는 형식임을 질문)
-
미해결코틀린 고급편
2강부터 영상 재생이 안되네요ㅠㅠ
2강부터 영상 재생이 안되네요ㅠㅠ
-
해결됨김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
count 값 1107116232 질문
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)예[질문 내용]강의에서 volatile을 적용하지 않은 예제에서MyTask flag값을 false로 바꾸고 count값을 출력했는데 이때MyTask Thread의 캐시메모리에있는 값을 메인메모리로 업데이트하고, Main Thread는 메인메모리에있는 count값을 캐시메모리에 동기화해서 갖고온걸까요? 출력할 때 컨텍스트 스위칭이 일어났다고 가정하면, 1_100_000_000이 출력될거라 생각했는데 궁금해서 질문드립니다!
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
회귀/분류 구분
회귀/분류 문제 구분할때 평가지표를 보고 구분을 하는건가요?예를 들어 f1_score로 평가하시오. -> 분류구나!MAE로 평가하시오. -> 회귀구나!이렇게 구분하면 될까요??3회차 기출문제 풀고있는데 평가지표 얘기가 없어서 이게 회귀인지 분류인지 구분을 못하겠어서 여쭤봅니다.(결과가 proba사용한 확률값인거 같아서 roc_auc_score밖에 못 사용하겠구나 -> 분류라고 생각했습니다.) 아 그리고 proba 사용해서 결과에는 양의 값(1)의 확률을 넣으시라고 했는데 이때 print(rf.classes_) 이거를 사용해서 1의 위치가 왼쪽인지 오른쪽인지 확인해야 되나요??