묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨따라하며 배우는 노드, 리액트 시리즈 - 기본 강의
User 와 User()의 차이가 뭔지 궁금합니다.
const app = express(); 여기서 express에 ()붙이는것도 비슷한 맥락인것 같은데 차이가 뭔가요 ?
-
해결됨[리뉴얼] React로 NodeBird SNS 만들기
회원가입할 때 request payload에 저장되는 정보 노출 안 시키게 할 수 있나요?
안녕하세요 제로초님! 궁금한 부분이 있어 질문 드립니다. 회원가입할 때 개발자도구 network 탭에서 해당 요청의 request payload를 보면 회원가입할 때 입력했던 정보를 그대로 확인할 수 있는데요, 혹시 이거 노출시키지 않도록 설정할 수 있나요? 가령 비밀번호는 암호화 한다는가하는 방법으로요. 실제 실무에서는 이 부분이 보안상 문제가 될 거 같은데, 실무에서는 어떻게 처리하는지 궁금합니다. :) 감사합니다!
-
해결됨프론트엔드 개발환경의 이해와 실습 (webpack, babel, eslint..)
husky도 버전이 변경되었나 봐요..
버전 5가 되면서 package.json 파일에서 입력하는게 아니고 npx husky add .husky/pre-commit "npx eslint app.js --fix" 이런식으로 생성해서 하는 것으로 바뀐것 같네요. (여기서는 npx를 안넣어주면 실행이 안되네요...) 아니면 package.json에서 하는 방법이 있는데 제가 못찾은 것 일수도 있구용... ps. npm install husky@4 로 설치하면 기존의 방식대로 할 수 있네요.. 문제는 lint-staged를 어떻게 쓰는지 모르겠네요...
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
npm run build 오류
안녕하세요 front에서 내용을 수정하고 ec2에서 git pull하고 npm run build과정에서 자꾸 먹통이 나는데 무슨 문제일까요?? 제가 했던 순서는 제로초님 말대로 그냥 로컬 : git commit -am " ~comit msg" git push origin master에서 git에 등록한 후 ubuntu 접속: sudo git pull sudo npm run build 아래의 캡처본과 같이 여기서 자꾸 동작이 멈추게 되네요... pm2 kill하고도 해봤고 pm2를 그대로 실행시킨 상태에서도 해도 똑같네요... 어딜 고쳐야하는 걸까요? (로컬에서 npm run build하면 제대로 작동하고 위의 경우에도 인스턴스 중지 후 다시 재시작해서 build하면 제대로 작동해요)
-
해결됨[리뉴얼] React로 NodeBird SNS 만들기
인피니트 스크롤 throttle 두번씩 요청 질문입니다,,,
안녕하세요, redux devtools 로 확인해보면 요청이 두번씩가는데 도데체 이유를 모르겠습니다..ㅠㅠ 코드도 동일하고 throttle 5000도 동일하게 적용했는데 왜그럴까요.. throttle을 설정했는데 요청이 두번갈수가 있나요?
-
미해결[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
Cannot read property 'split' of undefined 에러가 나옵니다...
코드 작성 후 정상적으로 실행이 되었는데 갑자기 재실행을 하면 8005 번 포트에서 대기 중 몽고디비 연결 성공 chat 네임스페이스에 접속 C:\Users\juren\OneDrive\바탕 화면\Node\chapter12\gif-chat\socket.js:29 .split('/')[referer.split('/').length - 1] ^ TypeError: Cannot read property 'split' of undefined at Namespace.<anonymous> (C:\Users\juren\OneDrive\바탕 화면\Node\chapter12\gif-chat\socket.js:29:8) at Namespace.emit (events.js:315:20) at Namespace.emit (C:\Users\juren\OneDrive\바탕 화면\Node\chapter12\gif-chat\node_modules\socket.io\lib\namespace.js:213:10) at C:\Users\juren\OneDrive\바탕 화면\Node\chapter12\gif-chat\node_modules\socket.io\lib\namespace.js:181:14 at processTicksAndRejections (internal/process/task_queues.js:75:11) [nodemon] app crashed - waiting for file changes before starting... 이런 에러가 나오면서 실행이 되지않습니다.. 그리고 저 에러가 나고 나서?? 채팅방에 사용자가 0명일때 채팅방이 삭제되는 부분도 삭제는 정상적으로 되는데 새로고침을 해줘야만 삭제된상태로 나옵니다.. 왜 그런걸까요 제로초님..
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 유튜브 사이트 만들기
동영상이 아닌 사진 저장
동영상이 아닌 사진으로 올리려고 하는데 사진 사이즈를 바꾸고 렌더 시키고 싶어서 ffmpeg의 screenshot의 옵션 이용했는데 썸네일이 저장이 안되네요 ㅠ 혹시 사진 사이즈를 바꾸고 렌더시킬 수 있는 방법이 있을까요?
-
미해결비전공자를 위한 진짜 입문 올인원 개발 부트캠프
영상에 갑자기 자막이 같이 나와요
소리랑 안 맞기도 하고 화면 밑부분을 보여주실 때 자막에 가려서 안 보입니다ㅜ
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
samesite=none 일 때 쿠키 공유 문제
안녕하세요. 쿠키 관련 질문이 있습니다. front에서 axios로 보낼 때 withcredentials: true 를 해주고 backend에서도 cors에서 credentials : true를 해주었기 때문에 로컬에서 프론트와 백엔드를 같이 돌릴 경우에는 쿠키 공유 문제가 없습니다. 그런데 백엔드를 aws EC2에 두고 프론트 엔드를 로컬에서 돌릴 경우 쿠키가 공유되지 않습니다. 원인은 samesite 정책 때문이고 해결하려면 backend에서 쿠키를 보낼 때 samesite=none과 secure:true를 같이 적용해줘야 한다는 걸 알았습니다. 이를 해결하려면 결국 https 적용을 위해 nginx로 프록시를 만들어 줘야 하는데 다른 방법이 있을까요? 간단한 방법은 로컬에서 계속 테스트 하다가 배포관련 수업에서 하는 것 처럼 도메인을 같이 등록하면 되긴 하지만 이런 경우에도 해결하는 방법이 있는지 궁금합니다.
-
해결됨[리뉴얼] React로 NodeBird SNS 만들기
리덕스 툴킷 유튜브 영상
안녕하세요, 제로초님 강의 잘 보고 있습니다. 예전에 유튜브에 리덕스 툴킷영상이 올라갔던걸로 기억하고, 봐야지... 하고 있었는데 없어졌네요?? 영상에 문제가 있어서 내리셨나요??
-
해결됨[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
passport-naver
passport-naver을 이용해보려 하는데 porfile.displayName 값이 계속 undefind여서 nick값에 들어가지가 않습니다... naver 앱등록할때 권한도 다 설정 해줬는데 왜 정보를 받아오지 못할까요 제로초님 ㅠㅠ const passport = require('passport'); const NaverStrategy = require('passport-naver').Strategy; const User = require('../models/user'); module.exports = () => { passport.use(new NaverStrategy ({ clientID: process.env.NAVER_ID, // 네이버에서 발급받을 ID clientSecret: process.env.NAVER_SECRET, callbackURL: '/auth/naver/callback', // 네이버로부터 인증결과를 받을 라우터 주소 }, async (accessToken, refreshRoken, response, done) => { // 네[이버에서 인증 후 Token 과 profile을 보내준다. console.log('naver profile', response); try { const exUser = await User.findOne({ // 기존의 User가 있는지 조회 where: { snsId: response.id, provider: 'naver' }, }); if(exUser) { // 기존 User의 정보가 있다면 User정보를 done과 호출하고 전략을 종료 done(null, exUser); } else { // 기존의 User정보가 없다면 회원가입을 진행 const newUser = await User.create({ email: response.emails[0].value, nick: response.id, snsId: response.id, provider: 'naver', naver: response._json }); done(null, newUser); // 사용자 생성 후 done함수 호출 } } catch (error) { console.log(error); done(error); } })); }; 이렇게 작성했습니다 naver profile { provider: 'naver', id: '60727489', displayName: undefined, emails: [ { value: 'juren528@gmail.com' } ], _json: { email: 'juren528@gmail.com', nickname: undefined, profile_image: undefined, age: undefined, birthday: undefined, id: '60727489' } } 가져온 결과 콘솔로 확인해보니 이렇게 나오구요 좀더 공부해보려다 안되서 막막합니다 ㅠㅠ 혹시 이유를 아실까요 ㅠㅠ
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 기본 강의
이런 에러는 왜 생기는건가요?
(node:17608) [DEP0148] DeprecationWarning: Use of deprecated folder mapping "./" in the "exports" field module resolution of the package at C:\Users\oksos\Desktop\study\PTE\loginWeb\client\node_modules\postcss-safe-parser\node_modules\postcss\package.json. Update this package.json to use a subpath pattern like "./*". (Use `node --trace-deprecation ...` to show where the warning was created) createProxyMiddleware is not a function
-
해결됨[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
deserializeUser findAll()실행시 로그인 성공 후 화면이 그대로입니다.
로그인을 하면 세션까지는 올바르게 잘 넣어집니다. 그런데 deserializeUser를 실행할때 findOne을 findAll로 실행하면 req.user까지만 되고 나머지 user.id user.nick 등이 받아와지지 않습니다. findAll 과 findOne에 id를 조건으로 입력하면 같은 결과가 나온다고 생각했는데 왜 안되는지 혹시 알려주실수 있나요 ㅠㅠ
-
미해결[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
Node.js 교과서
안녕하세요 제로초님 Node.js 교과서를 사서 열심히 수업을 듣고 있는 한 학생입니다! 다름이 아니고 유튜브를보며 노드교과서 개정판 4-5. 쿠키 이해하기에서 코드 질문이 있어서 여쭤보러 왔습니다. 이것은 되는 코드이고 const parseCookies = (cookie = '') => cookie .split(';') .map(v => v.split('=')) .reduce((acc, [k,v]) => { acc[k.trim()] = decodeURIComponent(v) return acc; }, {}); 이것은 안되는 코드입니다. const parseCookies = (cookie = '') => { cookie .split(';') .map(v => v.split('=')) .reduce((acc, [k,v]) => { acc[k.trim()] = decodeURIComponent(v) return acc; }, {}); }; 둘의 차이점은 함수를 {} 로 감싸냐 안감싸냐의 차이인데 화살표함수에서 중괄호는 선택사항이라고 배웠습니다. 만약 아래 코드를 사용하게 되면 (node:9452) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'name' of undefined at Server.<anonymous> (C:\Users\ksy\Desktop\Node.js\ch04\ex03\cookie2.js:30:22) at Server.emit (events.js:315:20) at parserOnIncoming (_http_server.js:874:12) at HTTPParser.parserOnHeadersComplete (_http_common.js:126:17) (Use `node --trace-warnings ...` to show where the warning was created) (node:9452) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1) (node:9452) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code. 라는 에러가 뜹니다. 함수를 제대로 사용하지 못해서 그런거 같은데 왜 중괄호를 붙이면 함수가 실행이 안되는건지 궁금합니다
-
해결됨프론트엔드 개발환경의 이해와 실습 (webpack, babel, eslint..)
npm install -D
npm install -D @babel/preset-env 라 적혀 있는데 실제론 npm install @babel/preset-env 라고 하기도 하고.... -D가 dev에 추가한다. 라고는 알고 있는데, 실제로 바벨 프리셋들은 dev에 했을 때와 아닐때 차이가 없나요? 아니면 차이점으로 어떤 것들이 있나요?
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 쇼핑몰 사이트 만들기[전체 리뉴얼]
선생님 질문있습니다.
다른분이 질문하신건데 9:30초에 const productId = props.match.params.productId; 여기서 props.match.params.productId 가 어디서 나온건지 잘 모르겠습니다 ㅠㅠ. App.js 에서 Auth로 감싸줘서 props가 있는건 알겠는데 match.params.productId가 어디서 나온건지 모르겠네요 ㅠㅠ App.js -> hoc/auth.js -> user_actions.js->index.js-> routes/users.js 까지 가봤는데 잘 모르겠네요 ㅠㅠ
-
propery 'nickname' of undefined
삭제된 글입니다
-
해결됨비전공자를 위한 진짜 입문 올인원 개발 부트캠프
세팅 제이슨
세팅 제이슨을 검색하면 그랩님 화면과 다르게 엄청나게 많은 코드가 뜨는데 제가 잘못 검색한건지, 그냥 이 밑에 그대로 코드를 추가하면 되는지 궁금합니다. 그리고 프리티어가 꼭 필요한지도 궁금합니다. 프리티어 없이 써왔어서 있고 없고의 차이가 현저할까요?
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
rootReduecer함수에서 리듀의 초기화
reducers 폴더의 index파일의 rootReducer함수에서 defalut: return state 들어가는이유 설명해주실때 액션타입해서 그 다음상태 만들어주는것을 처리해주는대 리듀서 초기화할때 또 rootReducer함수가 실행이되는대 그때defalut: return state이 부분이 없으면 리턴값이 undefined된다 이렇게 설명해주셨는대 리듀서가 왜 초기화되는지 이유가 궁금합니다!
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
user를 찾을 수 없다고 나와요ㅠㅠㅠㅠ
AppLayout에서 store에서 IsLoggedIn 가져오는데서 에러가 발생합니다. const isLoggedIn = useSelector((state) => state.user.isLoggedIn); 에러 코드 TypeError: Cannot read property 'user' of undefined const initialState = { user: { isLoggedIn: false, user: null, signUpdata: {}, loginData: {}, }, post: { mainPosts: [], }, }; const rootReducer = (state = initialState, action) => { switch (action.type) { case "LOG_IN": return { ...state, user: { ...state.user, isLoggedIn: true, user: action.data, }, }; case "LOG_OUT": return { ...state, user: { ...state.user, isLoggedIn: false, user: null, }, }; default: return; } }; 뭐가 문제일까여...힝ㅜㅜㅜㅜ