묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
애플리케이션이 2번실행?됩니다.
롬복 테스트를위해서 강의영상처럼 똑같이 작성하였는데, 실행됬을 때 콘솔을 보면 data = hello가 2번 출력됩니다. 코드 콘솔 밑에 아무런 출력이나 넣고 다시 해보면 그 출력까지도 2번출력되네요. 마치 메인메서드 2번실행되는것처럼 나옵니다.
-
미해결인터랙티브 웹 개발 제대로 시작하기
step
그림이 왼쪽방향으로 이동하는데 몇 px을 이동할 건지 없고 steps(17) 이것만 있는데 어떻게 이미지가 이동을 하는 건지 모르겠어요ㅜㅜ
-
해결됨[리뉴얼] React로 NodeBird SNS 만들기
Error: Request failed with status code 401 (Unauthorized)
안녕하세요 제로초님. 혼자 해결해보려고 했는데 도저히 못찾겠어서 또 질문드립니다. isLoggedIn 미들웨어를 추가한 후, 로그아웃(혹은 포스트작성)시에 다음과 같은 오류가 뜹니다. 미들웨어를 빼더라도, req.user.id 값이 undefined로 뜨구요. 리덕스툴로 확인해 봤을때 로그인할때 state값은 문제없이 잘 들어갑니다. /passport/index.js와 middlewares.js에 콘솔을 넣은 결과 제 나름대로 deserializeUser가 호출되지 않는거라고 결론을 내렸어요. (맞는지 모르겠네요) 코드 보여드릴게요. /passport/index.js const passport = require('passport'); const { User } = require('../models'); const local = require('./local'); module.exports = () => { passport.serializeUser((user, done) => { console.log('serializeUser'); done(null, user.id); }); passport.deserializeUser(async (id, done) => { console.log('deserializeUser'); try { const user = await User.findOne({ where: { id }}); done(null, user); // req.user } catch (error) { console.error(error); done(error); } }); local(); }; /routes/middlewares.js exports.isLoggedIn = (req, res, next) => { if (req.isAuthenticated()) { next(); } else { console.log(req.isAuthenticated()); res.status(401).send('로그인이 필요합니다.'); } }; exports.isNotLoggedIn = (req, res, next) => { if (!req.isAuthenticated()) { next(); } else { res.status(401).send('이미 로그인되어 있습니다.'); } }; 콘솔 서버연결 후 로그인과 로그아웃을 실행했을때의 콘솔입니다. 로그아웃은 401에러가 뜨면서 실패했구요. false는 exports.isLoggedIn = (req, res, next) => { if (req.isAuthenticated()) { next(); } else { console.log(req.isAuthenticated()); 여기에 있는 콘솔입니다. serialize에서 처음 찍은 콘솔은 로그인시 실행되는 것을 콘솔창에서 확인할 수 있는데, deserialize는 로그아웃시 실행되지 않습니다. 제가 이해한 바로는 로그인 이후에는, 라우터를 실행하기 전에 deserialize가 실행되어 req.user에 정보가 들어가야하는데, 이 부분이 실행되지 않는것 같아요. 인터넷에 찾아본 결과 deserialize user 가 실행이 되지 않는 경우는 크게 두가지 원인이 있다고 하던데 (1. CORS 문제, 2. Cookie 의 secure 설정이 true 인 경우), 코드를 바꿔봐도 문제가 해결되지 않습니다. deserializeUser가 실행되지 않아서 발생하는 문제가 맞을까요? 맞다면 어떻게 해결해야할까요?ㅜㅜ app.js 코드도 여기 첨부할게요. const express = require('express'); const cors = require('cors'); const userRouter = require('./routes/user'); const postRouter = require('./routes/post'); const db = require('./models'); const passportConfig = require('./passport'); const session = require('express-session'); const cookieParser = require('cookie-parser'); const passport = require('passport'); const dotenv = require('dotenv'); dotenv.config(); const app = express(); db.sequelize.sync() .then(() => {console.log('db 연결 성공');}) .catch(console.error); passportConfig(); app.use(cors({ origin: '*', })); app.use(express.json()); app.use(express.urlencoded({extended: true})); app.use(cookieParser(process.env.COOKIE_SECRET)); app.use(session({ saveUninitialized: false, resave: false, secret: process.env.COOKIE_SECRET, cookie: { //2번째 이유를 해결하고자 추가한 코드 httpOnly: true, secure: false, } })); app.use(passport.initialize()); app.use(passport.session()); app.get('/', (req, res) => { res.send('hello express'); }); app.use('/user', userRouter); app.use('/post', postRouter); app.listen(3065, () => { console.log('서버 실행 중'); }); 항상 감사합니다.
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part2: 자료구조와 알고리즘
struct 관련 질문입니다.
sturct와 enum의 차이를 설명해주실 수 있으신가요? 인터넷을 찾아보니 enum은 값을 보기 좋게 구분하기 위해 쓰인다는 글을 봤는데 좀 더 구체적인 내용을 알고 싶습니다.
-
미해결프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)
함수입력하면 밑에 설명이 안나와요
함수 입력하면 위에 그림처럼 설명이 나와야 하는데 저는 안나와요.. 아래 똑같은 질문이 있는데 답변이 이해가 되지 않아서 다시 질문드립니다 답변부탁드립니다.
-
미해결공공데이터로 파이썬 데이터 분석 시작하기
heatmap 그릴때 value
선생님! heatmap 그릴 때 values가 지금 평당분양가격이잖요 제가 그림에 표시한 것처럼 values 가 나타내는 값을 적어주려면 어떻게 해야하나요?
-
미해결컴퓨터, 웹, 코딩, 프로그래밍의 시작 - Web1
맥북 사용자
저는 맥북을 사용하고 있는데 cmd +O 를 누르면 웹브라우저가 안 여립니다. 해결방법 좀 알려주세요 ㅜㅜ
-
미해결스프링 핵심 원리 - 기본편
스프링과 SOLID 질문
안녕하세요 강사님, 질문 있습니다. 다형성만으로는 OCP, DIP를 위배할 수밖에 없다고 설명하시며 그에 대한 대책으로 스프링이 나온 것이라고 말씀해주셨는데요. 아마 이는 이전 강의에서 진행하셨던 @Configuration, @Bean을 통한 스프링 컨테이너에 객체를 등록하는 방식을 말씀하는 것일 거라고 생각합니다. 다만 의문점이 드는 부분은.. "스프링을 개발한 개발자들 또한 OCP, DIP 위배 문제에 대한 고민을 하였고 그 해답으로 스프링 프레임워크를 만들었다." 라고 함은.. 스프링이 등장하기 전에도 SOLID라는 개념은 존재했다는 것이겠지요? 그런데 OCP, DIP 위반 문제를 해결하기 위해 스프링을 만들었다? 그렇다면 스프링이 등장하기 전에는 어떤 방식으로도 SOLID를 모두 충족시킬 수 없었다는 말인가요? 그렇다면 저 SOLID라는 개념을 처음 제시했을 사람은.. 문제에 대한 해결책도 없이 그냥 객체지향 설계의 이상향만 제시했을 뿐인 건가요? 알쏭달쏭 하네요; 이번 강의도 잘 듣겠습니다. 감사합니다! ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ 바로 다음 강의에서 스프링 등장 이전 배경에 대한 설명이 다시 간략하게 나오네요. 스프링이 없이 OCP, DIP를 지켜가며 개발을 하다보니 배보다 배꼽이 커지는 일이 발생했고 그래서 스프링을 만들었다구요. 이로써 첫 질문에 대한 답은 해결이 되었는데.. 음.. 저 스프링 없이 SOLID를 유지하는 코딩 방식에 대한 건 너무 지엽적인 부분이겠죠??ㅠㅠ
-
실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
뷰테이블 질문입니다.
삭제된 글입니다
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
warning: There are multiple modules with names that only differ in casing.
안녕하세요 현영님! 노드로 넘어가기 전에 에러는 아니지만 오류가 지속적으로 발생하여 어느정도 구글링을 해본 후에 궁금한 점을 여쭤봅니다! 제가 리액트를 공부할 때, 다른 저자님의 책을 통해 공부했더니, 위와 같은 오류가 발생했습니다. 전에 올려주신 다른 학생의 질문을 보았고 조금 찾아본 결과, eslint와 prettier를 동시에 사용하여 생기는 오류로 보여집니다. 처음에 기본 세팅으로 quote를 (' ') 로 치더라도 저장하면, (" ")로 변경되어 저장되었고, prettier setting을 통해 single quote로 쓸 수 있도록 바꾼 상태입니다. 하지만 그래도 저런 오류창이 사라지지 않는데, eslint에 따로 더 적용해야 하는 것이 있는지 여쭤봅니다! 마지막 두 사진은 해당 오류의 경로에 들어간 부분입니다. 처음에는 "use strict" 로 되어있었고, 제가 'use strict'로 변경하였습니다. 구글링 결과 이분의 블로그를 보고 판단하였습니다. http://developsh5.blogspot.com/2018/01/there-are-multiple-modules-with-names.html
-
미해결파이썬 무료 강의 (기본편) - 6시간 뒤면 나도 개발자
제가 이해를 잘 못한거 같은데ㅠㅠ
그 가끔씩 {} 이걸 사용 할 때도 있고 () 를 사용 할 때랑 []를 사용 할때가 있는데 무슨 이유 때문에 어쩔땐 [] 어쩔땐 (), {} 이렇게 사용하시는지 궁금합니다.
-
미해결따라하며 배우는 리액트, 파이어베이스 - 채팅 어플리케이션 만들기[2023.12 리뉴얼]
js 로 파일을 만드는 이유가 무엇인가요?
리엑트는 jsx로 만드는 것이 아닌가요? 궁금해서 질문합니다.
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 기본 강의
포스트맨에서 작동 되는데 신기하게 서버에서는 작동안하네요...
ㄴ이런식으로 오류가 isAuth:false 값을 넘겨줘서 인증이 먹히질 않네요..ㅠㅠ 어떻게 해야 할지 감이 안잡힙니다. chrome 창과 auth.js 같이 첨부합니다.
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
Rest 방식 DELETE 메서드 API 응답을 어떻게 하는게 맞을까요?
영한님 안녕하세요. 공부하다가 궁금증이 생겨서 어떻게 주로 하시는지 궁금해서 질문드려요.보통 rest 방식 delete 할때 응답을 어떤 식으로 구성하는게 나을까요?예) detete /member/1 <- 사용자 id 1번 삭제1번 방식) 첫 삭제 요청시에는 204 NO_CONTENT 응답 -> 이후 요청들은 member 가 없으므로 404 NOT_FOUND 응답2번 방식) 실제 DB 삭제와 상관없이 404 NOT_FOUND 로 일관되게 응답.3번 방식) 실제 DB 삭제와 상관없이 204 NO_CONTENT 로 일관되게 응답.별거 아닐수도 있는데 막 파보니 꽤 사람들간 생각이 다 다르더라구요. 관련된 스텍 오버플로우 질문이 있는데 여기도 의견이 분분하네요.https://stackoverflow.com/questions/6439416/deleting-a-resource-using-http-deletehttps://stackoverflow.com/questions/11746894/what-is-the-proper-rest-response-code-for-a-valid-request-but-an-empty-data
-
미해결윤재성의 만들면서 배우는 Spring MVC 5
13강 객체로 파라미터 주입받기 Map 질문있습니다
7:00 쯤에 Map 관련 질문 있습니다 보통 Map하면 put 으로 넣는걸로 알았는데 Map으로 파라미터 받을때는 그냥 코드처럼 생략하는 건가요? 그냥 get 하면서 꺼내셔서 질문해봤습니다
-
미해결[개정판] 파이썬 머신러닝 완벽 가이드
apply를 이용하지 않을경우
apply를 이용하지 않는경우는 어떻게 하는지 모르겠습니다 밑의 코드처럼 작성하면 되는데 다른 방법이있나요 list1 = [] for i in titanic_df['Name']: list1.append(len(i)) titanic_df['len_name'] = list1 titanic_df
-
미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
궁금한게 있습니다.
저는 else if의 조건을 원소의 차이로 계산한 값으로 적었는데 이렇게 적으면 안될까요? #include <stdio.h> int main() { freopen("input.txt","rt",stdin); int n, a[101], b[101],k,i; scanf("%d", &n); for(i=1; i<=n ;i++) //배열 A에 A에 관한 정보 저장 { scanf("%d", &a[i]); } for(i=1; i<=n ;i++) //배열 B에 B에 관한 정보 저장 { scanf("%d", &b[i]); } for(k=1; k<=n; k++){ if((a[i]-b[i])==1) { printf("A\n"); } else if((a[i]-b[i])==2) { printf("BWn"); } else if((a[i]-b[i])==-1) { printf("B\n"); } else if((a[i]-b[i])==0) { printf("D\n"); } else { printf("A\n"); } } return 0; } 이런식으로 두 배열의 같은 인덱스 값의 원소를 빼서 그 값으로출력하게끔 하려고 했는데 코드를 잘못 적어서 그런걸까요? 아님 제가 다른 조건을 생각하지 못해서 그런걸까요?
-
미해결홍정모의 따라하며 배우는 C++
[9:00 부근] Mother class 멤버 변수를 Child class의 initializer list 에서 초기화하는 부분
안녕하세요, 아래의 코드에서 error 가 발생하는 부분에 대해서 문의드려요. 강의에서 교수님께서 debugger로 찍어주셨듯이 호출되는 순서는 아래와 같은데요. Mother class의 initializer list ->Mother class의 constructor -> Child class의 initializer list->Child class의 constructor. error가 나는 부분에서는 mother class의 멤버 변수가 이미 초기화되어 메모리를 차지하고 있는데 child class에서 초기화할 수 없는게 이해가 되지 않습니다. 강의에서 교수님께서 계속 반복적으로 말씀해주시는데 제가 뭔가 놓친게 있는걸까요? 호출 순서랑 아래의 에러 발생하는 이유가 매칭이 되지 않네요. 항상 답변주셔서 감사합니다. #include <iostream> using namespace std; class Mother { public: int m_i; public: Mother() :m_i(0) { cout << "Mother constructor" << endl; } }; class Child :public Mother { public: double m_d; public: Child() :m_d(2.0),m_i(1) //error 발생 { cout << "Child constructor" << endl; } }; int main() { Child c1; return 0; }
-
미해결초보를 위한 쿠버네티스 안내서
기본 명령어 페이지 설명 중 오타
안녕하세요, subicura님 덕분에 즐겁게 쿠버네티스 공부하고 있습니다. 마이너하지만 https://subicura.com/k8s/guide/kubectl.html#%E1%84%80%E1%85%B3%E1%84%8B%E1%85%AC의 '컨테이너 명령어 전달 (exec)' 부분에서 오타가 있습니다. COMMADN -> COMMAND
-
미해결iOS/Android 앱 개발을 위한 실전 React Native - Basic
ImagePicker Android 에뮬레이터 오류
안녕하세요. 강의 잘 듣고 있습니다. 정확하지는 않지만, ImagePicker 라이브러리의 버전에 따라 생기는 오류인 것 같습니다. --------------------------------------------------------------------------------------------------------------------------- [ImagePicker를 설치하고 안드로이드 에뮬레이터를 실행('react-native run-android')했을 때 생기는 오류] ... * What went wrong: Execution failed for task ':app:processDebugManifest'. > Manifest merger failed : uses-sdk:minSdkVersion 16 cannot be smaller than version 21 declared in library [:react-native-image-picker] ... --------------------------------------------------------------------------------------------------------------------------- [참고] https://github.com/razorpay/react-native-razorpay/issues/289 구글링을 통해 알아본 결과, 'android/build.gradle'에서 minsdkVersion 정보를 수정하면 해결이 가능하다고 합니다. 만약 저와 같은 문제가 생기신 분들이 계신다면 참고하시기 바랍니다! buildscript { ext { buildToolsVersion = "28.0.3" minSdkVersion = 21 compileSdkVersion = 28 targetSdkVersion = 28 }