묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 유튜브 사이트 만들기
댓글기능 질문
강사님 안녕하세요^^ 댓글기능 관련 질문 드려요. Comment.js 컴포넌트에서 '/api/comment/saveComment'에 variable을 보내는데, variable은 다음과 같습니다. const variable={ writer:user.userData._id, postId:videoId, content:commentValue } 이제 comment.js route로 와서 다음을 실행합니다. router.post('/saveComment', (req, res)=>{ const comment = new Comment(req.body) comment.save((err,commentInfo)=>{ if(err) return res.status(400).send(err); (★★★★★)Comment.find({'_id':comment._id}) .populate('writer') .exec((err,result)=>{ if(err) return res.status(400).send(err) return res.status(200).json({success:true, result}) }) }) }) 위의 5번째 줄 : Comment.find( {'_id' : comment._id} ) 이 부분에서 어떻게 comment._id가 입력 가능한지 궁금합니다. 1) req.body에서는 userData의 _id를 'writer'라는 이름으로 axios 햇으니 'writer'로 받아야 하는것은 아닌지요? 2) const comment = new Comment(req.body) 이 부분 때문이라고 해도.. Comment 모델이나 User 모델에는 '_id'가 나와있지 않고, 'writer'만 나와있는데 어떻게 'comment._id'로 받아지는 건지 궁금합니다. ++++++++++++++++++++++++++++++++++) 그리고 1) commentLists를 mapping한 것을 console창에 띄워보면, _id와 writer에 속한 _id가 각각 존재하던데 이 둘의 차이는 무엇인지 궁금합니다. 2) 또 parentCommentId로 'comment._id' 값을 주셨는데, 이것은 writer의 _id인지, 그냥 _id 인지요?? writer의 _id 토큰값은 동일하고, 그냥 _id 토큰값은 매 댓글마다 변경되는 듯 합니다. 그럼 답변 부탁드립니다^^
-
미해결Angular(2+) Front에서 Back까지 - Nest js를 알려면 Angular 모듈을 알아야한다!
ngOnchanges 질문
영상에서는 ngOnchanges 메소드를 그냥 호출해서 쓰는데, 저는 지금 angular cli 버전이 9.x라서 7.x인 영상 당시와의 기준이 다른건가용 없네요...; 그래서 angular 사이트 가서 stable v9.1.11 기준으로 보니 Onchagnes interface를 implements 해서 구현해서 하는데 무리는 없었어요. 근데 이거 이렇게 다르면 그냥 cli 7.x 버전으로 다시 밀어버리고 따라할까요..ㅠ
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 챗봇 사이트 만들기
npm run start - 서버 실행이 안됩니다.
구글 프로젝트를 두번이나 지우면서 생성하고 순서대로 진행해도 노드 서버가 실행이 안되면서 늘 같은 메시지가 나옵니다. D:\chatbot_App\node_modules\google-gax\build\src\pathTemplateParser.js:304 if (input.charCodeAt(peg$currPos) === 47) { ^ TypeError: Cannot read property 'charCodeAt' of undefined atpeg$parsetemplate (D:\chatbot_App\node_modules\google-gax\build\src\pathTemplateParser.js:304:17) . . . . 서버가 실행이 안되니 진행이 어렵네요. 어디에 문제가 있는 지요. 수고하세요
-
미해결Vue로 Nodebird SNS 만들기
fetch는 deprecated 될 라이프사이클?
안녕하세요. 제로초님. fetch에 대해 학습하며 nuxt의 공식문서를 보게되었는데 "fetch(context)는 deprecated 되었습니다. 대신에 익명 미들웨어를 페이지에서 사용해주세요: middleware(context)" 라는 안내문이 게시되어 있어서요.. https://ko.nuxtjs.org/api/pages-fetch/ 현시점에서 공식문서 가이드 대로 적용하려면 아래의 구문을.. fetch({ store }) { return store.dispatch('posts/loadPosts', { reset: true }); }, 다음과 같이 변경하여야할까요? middleware({ store }) { return store.dispatch('posts/loadPosts', { reset: true }); }, 추가로 deprecated 의 이유는 둘다 동일한 state를 인자로 받는 라이프사이클이고, 둘다 렌더 전에 실행된다는 공통점이 있어 fetch를 없앤단 것으로 이해하면 맞을까요?
-
미해결애플 웹사이트 인터랙션 클론!
canvas가 성능상의 이점을 가지는 이유가 궁금합니다.
안녕하세요! 좋은 강의 감사합니다. 이미지 태그의 src를 직접 바꾸는 것 보다는 canvas를 사용하는 것이 좀 더 부드러운 애니매이션이 가능하다고 강의에서 언급해주셨는데요, 어떤 이유로 canvas가 성능상의 이점을 가지는지가 궁금해져 질문드립니다.
-
미해결그림으로 배우는 자바, 파트2: 객체지향!
생성자 생략
선생님 다이어그램에서 보고 코드쓸때요! 생성자가 생략되는이유가 객체생성을 안해서인가요~~??!!
-
미해결예제로 배우는 스프링 입문 (개정판)
안녕하세요 강의에 대해서 질문 드립니다.
이번에 인프런에 올라온 백기선님의 강좌 로드맵을 따라서 들으려고 하는데요. 저는 스프링부트가 아닌 스프링 학습을 하고싶은데 이 강좌들이 스프링에 관한 내용인지 스프링 부트에 관한 내용인지 궁금해서 질문드립니다. 만약 둘다 포함하고있다면 비중이 어느정도인지 궁금합니다. 또 인프런에 올라온 강좌중 김영한님 께서 올린 자바ORM 표준 JPA프로그래밍 / 활용 강의중 어떤걸 먼저 수강하는게 좋을지도 궁금합니다.. 감사합니다.
-
미해결[모바일] 딥러닝 Computer Vision 실전 프로젝트
케라스 모델 파일
라즈베리 파이 강의에서 digits_model.h5파일을 만드셨다고 하셨는데 그 부분을 어떻게 만들어야하나요? 특강형식의 포함된 라즈베리 강의를 듣기는 했는데 cmd창이 아닌 다른 곳에서 만드는 건가요?
-
미해결React로 NodeBird SNS 만들기
문의 드립니다.
AppLayout = {{ childrun }} => { return ( {childrun} ... } childrun 텍스트만 다시 쳐줘도 childrun에 빨간줄이 가면서 에러가 나는건 왜 그런건지.. 좀 당황스럽네요. 같은 코드인데.. 줄바꿈과 띄워쓰기를 같게 해도 childrun 에 빨간줄이 가면 서 에러가 뜨네요.. 강사님 코드를 return 부분만 복붙하면 에러가 사라지네요.. 이유가 무었인지 궁금합니다.
-
미해결애플 웹사이트 인터랙션 클론!
좋은강의 감사합니다. 그런데 익스에서 아예실행안되는거 맞나요..?
오늘 결제해서 소스 다운받고 먼저 둘러보았는데 익스에서 아예 안돌아가던데.. 실화인가여..? 아니면 바벨로 컴파일하기전이라서 그런건지.. 아니면 제가 확인을 잘못한건지...... 설마..... 아니죠..? 확인부탁드립니다 ㅠ__ㅠ
-
미해결파이썬 무료 강의 (활용편1) - 추억의 오락실 게임 만들기 (3시간)
AttributeError: module 'pygame' has no attribute 'dispaly'
똑같이 입력했는데 왜이럴까요?
-
미해결페이스북 클론 - full stack 웹 개발
안녕하세요 선생님
강의 너무 재밋게 잘듣고 있습니다. 다름이아니라 선생님, 자바 스크립트부분 <script>...</script> 이 이해가 안되서 자바스크립트 부분을 없애고 작동해봤는데 잘 작동 되더라고요. 왜 자바 스크립트를 넣는가요?
-
미해결Vue.js 끝장내기 - 실무에 필요한 모든 것
vue-til 과 vue-til-server 폴더의 차이가 궁금합니다.
혹시 강의 중에 vue-til 폴더와 vue-til-server 폴더를 vscode 상에서 바로 전환하였는데 이 부분 명령어가 따로 있나요?? 그리고 vue-til 폴더에서 npm run serve 해서 서버 실행하면 port가 기본으로 8080 으로 뜨는데 port 변경은 어디서 하나요?? vue-til-server 에서 port 변경하는 부분은 알고 있습니다! 마지막으로 두 개 폴더의 차이를 자세히 알고 싶습니다. 감사합니다..!
-
미해결파이썬 무료 강의 (기본편) - 6시간 뒤면 나도 개발자
다른 풀이 방법 질문
선생님 안녕하세요, 언제나 직관적이고 명쾌한 강의 잘 듣고 있습니다. 다름이 아니라 저는 '중복 불가' 조건을 보고 아래처럼 코드를 짜려고 했었는데요. 1) 변수 1 = [1 ~ 20] (20명) 2) 변수 1에서 치킨 한 명 추첨 3) 변수 2 = [1 ~ 20] - [치킨 추첨한 n] (19명) 4) 변수 2에서 커피 세 명 추첨 이렇게 코드를 짜는 게 가능할까요? 선생님께서 짜신 코드가 훨씬 간결한 것 같긴 한데, 궁금해서 여쭤봅니다. 리스트 수업에서 맨 뒤에서부터 하나씩 빼는 .pop() 을 배웠는데, 원하는 값을 빼는 함수는 없을까요? 추가로, 치킨 당첨자 결과값은 그냥 1, 숫자만 뜨는데 커피 당첨자는 [2, 3, 4] 대괄호에 쌓여서 나오는 이유도 궁금합니다. 답변 부탁드립니다.
-
미해결코어 자바스크립트
return으로 인한 할당에 관련하여 질문드립니다.
6:36 익명 함수를 정의 하고 반환한다는 것 까지는 이해가 가는데 반환된 익명함수가 변수 count에 할당된 다는 것이 이해가 잘 가지 않습니다. return function 이라는 것을 setCounter 함수로 받아들여야 하나요?? return이 나오니 갑자기 헷갈리는 것 같습니다 ㅠ
-
미해결프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)
아스키 코드와 sorted 함수
안녕하세요! sorted 함수가 문자들을 어떤 순서로 배열하는지 궁금했는데, 강의 후반에 '아스키 코드'와 관계가 있어 보여서 이런저런 글자들을 넣어가며 테스트 해보니 아스키 코드가 낮은 순서대로 정렬되는 것 같은데, 맞나요?
-
미해결[유니티 3D] 실전! 생존게임 만들기 - Advanced
스크립트에서 Vector3 있는 구문에서 계속 오류나 갑니다
error CS0104: 'Vector3'은(는) 'System.Numerics.Vector3' 및 'UnityEngine.Vector3' 사이에 모호한 참조입니다. 이런 오류가 뜨는데 어떻게 해야하나요.
-
미해결애플 웹사이트 인터랙션 클론!
opacity out 이 안됩니다. script 검토한번 부탁드릴게요.
(() => { let yOffset = 0; // window.pageYOffset 대신 쓸 변수 let prevScrollHeight = 0; // let currentScene = 0; // let enterNewScene = false; // 새로운 Scene 이 시작도는 순간. const sceneInfo = [ { type: 'sticky', heightNum: 5, // 브라우저 높이의 5배로 scrollHeight 세팅; scrollHeight: 0, objs: { container: document.querySelector("#scroll-section-0"), messageA: document.querySelector("#scroll-section-0 .main-message.a"), messageB: document.querySelector("#scroll-section-0 .main-message.b"), messageC: document.querySelector("#scroll-section-0 .main-message.c"), messageD: document.querySelector("#scroll-section-0 .main-message.d"), }, values: { messageA_opacity_in: [0, 1, { start: 0.1, end: 0.2 }], // messageB_opacity_in: [0, 1, { start: 0.3, end: 0.4 }], messageA_opacity_out: [0, 1, { start: 0.25, end: 0.3 }], } }, { type: 'normal', heightNum: 5, // 브라우저 높이의 5배로 scrollHeight 세팅; scrollHeight: 0, objs: { container: document.querySelector("#scroll-section-1") } }, { type: 'sticky', heightNum: 5, // 브라우저 높이의 5배로 scrollHeight 세팅; scrollHeight: 0, objs: { container: document.querySelector("#scroll-section-2") } }, { type: 'sticky', heightNum: 5, // 브라우저 높이의 5배로 scrollHeight 세팅; scrollHeight: 0, objs: { container: document.querySelector("#scroll-section-3") } } ] function setLayout() { for (let i = 0; i < sceneInfo.length; i++) { sceneInfo[i].scrollHeight = sceneInfo[i].heightNum * window.innerHeight; // A : 각 section height 값 sceneInfo[i].objs.container.style.height = `${sceneInfo[i].scrollHeight}px`; // A값을 각 section에 적용. } document.body.setAttribute('id',`show-scene-${currentScene}`); } function calcValues(values, currentYOffset) { let rv; const scrollHeight = sceneInfo[currentScene].scrollHeight; const scrollRatio = currentYOffset / scrollHeight; // 현재 씬(스크롤섹션)에서 스크롤된 범위를 비율로 구하기 if (values.length === 3) { // start ~ end 사이에 애니메이션 발생 const partScrollStart = values[2].start * scrollHeight; const partScrollEnd = values[2].end * scrollHeight; const partScrollHeight = partScrollEnd - partScrollStart; if (currentYOffset >= partScrollStart && currentYOffset <= partScrollEnd) { rv = (currentYOffset - partScrollStart) / partScrollHeight * (values[1] - values[0]) + values[0]; } else if (currentYOffset < partScrollStart) { rv = values[0]; } else if (currentYOffset > partScrollEnd) { rv = values[1]; } } else { rv = scrollRatio * (values[1] - values[0]) + values[0]; } return rv; // 안써주면 undefined } function playAnimation() { const objs = sceneInfo[currentScene].objs; const values = sceneInfo[currentScene].values; const currentYOffset = yOffset - prevScrollHeight; const scrollHeight = sceneInfo[currentScene].scrollHeight; const scrollRatio = currentYOffset / scrollHeight; switch (currentScene) { case 0 : // console.log('0 play'); const messageA_opacity_in = calcValues(values.messageA_opacity_in, currentYOffset); const messageA_opacity_out = calcValues(values.messageA_opacity_out, currentYOffset); if (scrollRatio <= 0.22) { // in objs.messageA.style.opacity = messageA_opacity_in; } else { // out objs.messageA.style.opacity = messageA_opacity_out; } break; case 1 : // console.log('1 play'); break; case 2 : // console.log('2 play'); break; case 3 : // console.log('3 play'); break; } } function scrollLoop() { enterNewScene = false; prevScrollHeight = 0; for (let i = 0; i < currentScene; i++) { prevScrollHeight += sceneInfo[i].scrollHeight; } if (yOffset > prevScrollHeight + sceneInfo[currentScene].scrollHeight) { enterNewScene = true; currentScene++; document.body.setAttribute('id',`show-scene-${currentScene}`); } if (yOffset < prevScrollHeight) { enterNewScene = true; if (currentScene === 0) return; currentScene--; document.body.setAttribute('id',`show-scene-${currentScene}`); } // console.log(currentScene); if (enterNewScene) return; playAnimation(); } window.addEventListener('resize',setLayout); window.addEventListener('scroll',() => { yOffset = window.pageYOffset; scrollLoop(); }); setLayout(); })();
-
데브옵스(DevOps)를 위한 쿠버네티스 마스터
설치 오류
삭제된 글입니다
-
미해결프론트엔드 개발환경의 이해와 실습 (webpack, babel, eslint..)
플러그인설치시 의존성
어떤건 devDependencies 에 설치하고 어떤건 dependencies에 플러그인들을 설치하는데 어디에 하던 상관없나요??