묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결빅데이터분석기사 실기대비 (R 활용)
작업형 3유형
작업형 3유형에서 각종 통계량 및 p-value를 별다른 코드 없이 summary로 요약 값 도출해서 보이는 값을 실제 답안 제출 화면에서 입력해도 무방한가요?
-
해결됨따라하며 배우는 노드, 리액트 시리즈 - 기본 강의
로그아웃 401 에러(Unauthorized)
로그인 후 개발자 도구 쿠키에 x_auth 정상적으로 확인DB에도 토큰 정상적으로 값 입력된 것 확인로그아웃 버튼을 클릭 시 401 에러 발생, 토큰 삭제 xserver/index.jsapp.post('/api/users/login', async (req, res) => { try { const user = await User.findOne({ email: req.body.email }); if (!user) { return res.json({ loginSuccess: false, message: "제공된 이메일에 해당하는 유저가 없습니다." }); } // 비밀번호가 일치하는지 확인한다. const isMatch = await user.comparePassword(req.body.password); if (!isMatch) { return res.json({ loginSuccess: false, message: "비밀번호가 틀렸습니다." }); } // 비밀번호가 일치하다면 토큰을 생성한다. const tokenUser = await user.generateToken(); res.cookie("x_auth", tokenUser.token) .status(200) .json({ loginSuccess: true, userId: user._id }); } catch (err) { return res.status(400).send(err); } }); app.post('/api/users/logout', auth, async(req, res) => { try { await User.findOneAndUpdate({ _id: req.user._id }, { token: "" }); res.clearCookie("x_auth"); return res.status(200).send({ logoutSuccess: true }); } catch (err) { return res.json({ logoutSuccess: false, message: err.message }); } });User.jsuserSchema.methods.comparePassword = function(plainPassword, cb) { const user = this; return bcrypt.compare(plainPassword, user.password); }; userSchema.methods.generateToken = function() { var user = this; // jsonwebtoken을 이용해서 토큰을 생성한다. var token = jwt.sign(user._id.toJSON(), 'secretToken'); user.token = token; return user.save(); }; userSchema.statics.findByToken = async function(token) { const user = this; try { // 토큰을 decode합니다. const decoded = jwt.verify(token, 'secretToken'); // 디코딩된 정보를 이용해 유저를 찾습니다. const userData = await user.findOne({ "_id": decoded, "token": token }); return userData; } catch (err) { throw new Error("유효하지 않은 토큰입니다."); } };auth.jsconst { User } = require("../models/User"); function auth(req, res, next) { // 인증 처리한다. // 클라이언트 쿠키에서 토큰을 가져온다. const token = req.cookies.x_auth; if (!token) { return res.status(401).json({ isAuth: false, message: "토큰이 제공되지 않았습니다." }); } // 토큰을 복호화한 후 유저를 찾는다. User.findByToken(token) .then((user) => { if (!user) { return res.status(401).json({ isAuth: false, message: "유효하지 않은 토큰입니다." }); } // 토큰과 유저정보를 다음 단계로 전달한다. req.token = token; req.user = user; next(); }) .catch((err) => { return res.status(401).json({ isAuth: false, message: err.message }); }) }; module.exports = { auth };서버의 경로를 절대 경로로 기입하지 않으면 404 에러 발생5000 포트로 데이터 전송, cors로 3000 포트로 이동하도록 설정const corsOptions = { origin: 'http://localhost:3000', // 클라이언트 주소 credentials: true // 쿠키를 포함하도록 }; app.use(cors(corsOptions));
-
미해결
C++,C# WPF궁금합니다
토크온 도우미 프로그램 비슷한거 만들고싶는데Q : 개발 언어가 뭐죠?A : C++, C# WPF를 사용했어. c++,c# wpf으로 만들고싶는데프로젝트도 모르고 강의듣으면 잘만들수있을까용?
-
미해결김영한의 실전 자바 - 기본편
문제2 PayStore의 payStore메소드
[질문 내용]payStore메소드를 정의할 때, 왜 static으로 한 것이고, 메소드 타입으로 왜 Pay 라고 한것인지 궁금합니다.
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
java: cannot find symbol 'string' 에러
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)아니오2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용] java: cannot find symbol 'string' 이라는 에러가 발생합니다.. 구글에 검색을 해보니 jdk가 설정이 안된거라고 나오는데 저는 영상에서 나온대로 최신버전인 23을 설치한 상태입니다.. 뭐가 문제인지 알려주시면 감사하겟습니다ㅜㅜ
-
미해결김영한의 실전 자바 - 기본편
문제2 : PayService
[질문 내용]정답을 보기 전에 먼저 제가 스스로 리팩토링 하다가 PayService에 있는 processPay 메소드도 Pay 인터페이스에 넣어서 각각 KakaoPay, NaverPay에서 구현을 했는데 이렇게 해도 OCP 원칙을 따르면서 리팩토링 한건가요?
-
미해결[C# 중급 강좌] 라이브러리 만들기
App.config파일이 저는 안보이네요
App.config파일이 저는 안보이네요혹시 안보이는 경우 어떻게 생성하나요?8.0버전입니다.
-
미해결[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core
nestjs routing 질문있습니다.
controller에서 /test/:id라는 숫자를 받는 get 엔드포인트가 있고/test/info라는 정보를 주는 routing을 만들고 싶은데 test/info라고 호출하면 test/:id로 들어가더라구요 이걸 해결할 수 있는 방법이 있을까요?
-
미해결[C# 중급 강좌] 라이브러리 만들기
감사합니다
안녕하세요! 추후에 프로젝트에 유지보수로 참여하는 데 있어서기존 프로그램에 만든 라이브러리를 using해서 사용한다고해서 라이브러리에 대한 강의 찾다가 아침부터 보고있습니다!!라이브러리에 대한 굉장히 유용한 부분을 많이 배우고 갑니다.또한, 개인적으로라도 라이브러리는 추후 코딩하는데 도움될만한 메서드는 만들어놓으면 도움이 될 것 같다는 생각을 많이 하게되었네요!좋은 강의 감사합니다.
-
해결됨한 입 크기로 잘라먹는 Next.js(v15)
error.tsx를 app 폴더 바로 아래에 둬도...
error.tsx를 app 폴더 바로 아래에 둬도 footer에서 발생하는 오류는 잡히지 않습니다. app layout에서 발생하는 에러는 error.tsx로 잡히지 않는걸까요?
-
미해결
시나공 교재 P177 문제 25번 문의드립니다.
안녕하세요!해당 문제에서 시간 간격이 1 이하인, 사용자를 제외하라고 하면!interval > 1 이상이 되어야 하는 거 아닌가요??
-
해결됨AWS로 쉽고 빠르지만 아주 견고한 서버 환경을 구축하는 방법
단일 AZ의 ECS 환경 구축에 대해서 질문드립니다!
안녕하세요 강사님! 강의 잘 듣고 있습니다!다름이 아니라 현재 팀 프로젝트의 MVP에서 사용할 API 서버(스프링 부트)를 배포할 ECS 환경을 구축 중입니다! MVP 단계이다 보니 고가용성 보다는 비용을 절약하기 위해 단일 AZ로 인프라를 구축하려 합니다!그래서 VPC Endpoint도 단일 AZ의 private subnet1 하나에만 연결해 놓은 상태인데요. 이렇게 구성하면 ECS의 클러스터를 만들 때, EC2의 Subnet을 선택하는 단계에서 앞서 endpoint들을 연결한 Subnet 1개만 선택해 주면 될까요? + ECS의 서비스를 만들 때도 네트워킹 설정 부분에서 해당 서브넷 1개만 연결해주면 될까요?
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
포트폴리오 고민 있습니다.
강의 내용 중 어떤 프로젝트부터 포트폴리오로 작성하면 좋을까요?
-
해결됨Flutter 앱 개발 기초
dartpad.dev run 하면 한글 출력결과가 다 깨져요..
dartpad.dev 에 올려주신 예제 파일들 잘 보면서 공부하고 있습니다. 그런데 run 하면 한글 출력결과가 다 깨져요~뭐 다 영어 단어로 바꿔가면서 하면 되긴하지만 있는그대로 사용하지 못하는게 여간 불편합니다 ㅎㅎ 어떻게 해야 하나요? 도와주세요~
-
미해결
C++,C# WPF 배우고싶는데
핵심 언어는 말 그대로 c++ 배우시고 위에 있는 프로그램[첫 번째 사진]처럼 사용자가 보기 편한 GUI 형식으로 보여줄거면 WPF 프레임워크(C# 언어)를 배우시면 될 겁니다.아니면 유튜브에 c++ tutorial, wpf tutorial 따로 검색하셔서 각각 배우시는 걸 추천드립니다. 위에 있는 프로그램 [ 첫 번째 사진] 처렴 사용자가 보기 편한 GUI 형식으로 보여줄거면WPF 프레임워크 ( C++.C# 언어 ) 강의듣으면되나용? 이거처렴 만들고싶는데....무슨언어 배워야지 잘모르겠습니다 ㅠ
-
미해결Practical Testing: 실용적인 테스트 가이드
spring security @AuthenticationPrincipal rest docs 질문
안녕하세요 강사님강의를 굉장히 잘 들었던 수강생입니다. 다름이 아니라 최근 spring security 를 도입하고 난 뒤에 rest docs 에 대해 문제가 생겨 질문하게 되었습니다.'회원 정보 조회' 라는 API 가 있고, 이 API 는 로그인을 한 뒤에 securityContextholder 에 담겨져 있는 객체를 사용하고자 파라미터로 @AuthenticationPrincipal 이라는 어노테이션을 이용하여 받고 있습니다.그러나...restdocs 를 이용하여 해당 API 를 문서화 시키려고 할때 객체가 null 이 들어가서 테스트가 실패를 하게 되더라구요.docs 가 아닌 일반 controller test 에서는 @SpringBootTest 를 사용하여 @WithUserDetails 를 통해 테스트를 통과했습니다.그러나 @SpringBootTest 를 따로 사용하고 있지 않은 상황에서 어떻게 해결할 수 있을지 고민입니다 ㅠㅠ감사합니다.
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
알맞은 버전 확인 방법
9분에서Reference Doc 들어가서 hibernate 검색하면 스프링부트와의 알맞은 버전이 나온다고 하셨는데, 저는 안 나오네요. 지금은 방법이 바뀌었나요? 적합한 버전을 어떻게 찾나요?
-
미해결
React hooks; useMemo vs useEffect + useState
type Props = { value: { key: string }; }; export const useEffectAndStateTest = ({ value }: Props) => { const [customValue, setCustomValue] = useState<{ key: string; name: string }>({ ...value, name: value.key }); useEffect(() => { setCustomValue({ ...value, name: value.key }); }, [value]); return { customValue }; }; export const useMemoTest = ({ value }: Props) => { const customValue = useMemo(() => ({ ...value, name: value.key }), [value]); return { customValue }; }; 위 뒤 코드는 value라는 값을 내가 원하는 또 다른 형태의 값인 customValue라는 값을 바꾸어주는 코드입니다.customValue 값을 바꾸는 방법이 구현하는데 useEffect와 useState를 이용하는 방법,useMemo를 통해서 구현하는 방법이 있는데 각 방법의 장단점을 알고 싶습니다.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
5-2예제 원핫인코딩이 도저히 안되서 질문드립니다.
cols =['neighbourhood_group','neighbourhood','room_type'] # from sklearn.preprocessing import LabelEncoder # for col in cols: # le = LabelEncoder() # train[col] = le.fit_transform(train[col]) # test[col] = le.fit_transform(test[col]) train = pd.get_dummies(train) test = pd.get_dummies(test) train[cols] --------------------------------------------------------------------------- KeyError Traceback (most recent call last) <ipython-input-89-9aca98e66a02> in <cell line: 14>() 12 test = pd.get_dummies(test) 13 ---> 14 train[cols] 2 frames /usr/local/lib/python3.10/dist-packages/pandas/core/indexes/base.py in _raise_if_missing(self, key, indexer, axis_name) 6247 if nmissing: 6248 if nmissing == len(indexer): -> 6249 raise KeyError(f"None of [{key}] are in the [{axis_name}]") 6250 6251 not_found = list(ensure_index(key)[missing_mask.nonzero()[0]].unique()) KeyError: "None of [Index(['neighbourhood_group', 'neighbourhood', 'room_type'], dtype='object')] are in the [columns]"
-
해결됨QGIS 입문자 올인원 스타터팩 (이론/실습형)
래스터 계산기 입력창 질문입니다.
안녕하세요.래스터 계산기 입력 창에서 레이어 명 100초과@1 뒤에 @1 이 항상 붙는데@1이 무슨 의미인지요? 감사합니다.