묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결기초부터 따라하는 디지털포렌식
예제파일에 대해서
강의에서 사용되고 있는 예제파일(UBS.E01)등은 어디에서 다운받을수 있나요
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
ServletRequest에 대해 궁금한 점이 생겼습니다!
안녕하세요 강의를 듣다 ServletRequest에 대해 궁금한 점이 생겨 질문드립니다! ServletRequest, ServletRequest를 보니 인터페이스 였습니다. 그 후 HttpServletRequest도 보니 ServletRequest를 상속받고 있지만 이 또한 interface 였습니다. 혹시 구현은 어디서 하길래 인터페이스로 선언이 되어 있는 것인가요??
-
미해결Do it! 자바 프로그래밍 입문 with 은종쌤
짝수 홀수 개념이 이해가 안가요 ㅠㅠ
(num%2)==1 2로 나눴을 때 나머지가 1 (num%2)==0 2로 나눴을 때 나머지가 0 (num%2)==0 나머지가 0이 되는게 짝수인가요 ?
-
해결됨[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
operation not permitted, rename 에러에 대해 질문드리고 싶습니다
강사님 안녕하세요 비동기 함수와 await을 조합해서 아래의 소스코드를 실험해봤는데, 이해가 어려운 부분이 있어서 질문드리고 싶습니다 const fs = require('fs'); const path = require('path'); function func(){ fs.open(`.\\b.txt`, 'w', (err, fd)=>{ if(err) { //실패한 경우 throw err; }//성공한 경우 }); fs.rename(`.\\b.txt`, `.\\c.txt`,(err,data)=>{ if(err) { throw err; } }); fs.writeFile(`.\\c.txt`, `Hello `, (err)=>{ if(err) { console.log(err); } }); } func(); 터미널에서 실행시켰습니다 이렇게 c.txt가 잘 만들어졌습니다 이번엔 18행부터 24행의 주석을 풀었습니다 그러자, 이번에는 같은 소스코드인데도 실행결과가 성공이 나오기도 하고, 실패하기도 했습니다 실행 성공 했을 때는 c.txt 에도 Hello 가 잘 적혔습니다 주석을 해제한 소스코드를 디버깅 모드에서 한줄씩 실행할 때는 무조건 성공이었는데 터미널 또는 vscode에서 한번에 실행시키면 이렇게 실행결과가 복불복이 나와서 혹시 그 이유가 궁금해서 질문드리고 싶습니다읽어주셔서 감사합니다
-
해결됨실습으로 배우는 OAuth 2.0 개념 원리, 그리고 해킹과 보안
SQL 쿼리 오타 정보공유
friends 사이트 회원가입 할때 에러나서 가입이 안되길래 계속 확인해봤는데 \apache2\htdocs\friends_website\joinAction.php 파일에 아이디 중복 검증 SQL 쿼리에 오타가 있어서 그랬었네요. $query = "select user_id from users where id='{$id}'"; where절 다음 컬럼명을 user_id로 수정해야 제대로 진행이 됩니다. $query = "select user_id from users where user_id='{$id}'"; 질문 글 올리려다가 마지막으로 확인해보니 보이네용 ㅎㅎ, 다른 분들도 참고하셨으면 좋겠습니다.
-
미해결예제로 배우는 스프링 입문 (개정판)
IoC 컨테이너 안에 있는 객체들끼리만 의존성 주입
IoC 컨테이너 안에 있는 객체들끼리만 의존성 주입을 할 수 있다고 말해주셨는데 그말은 즉슨 Bean으로 등록되지 않은 class 안에서 생성자 주입이든 다른 주입방법들을 사용해서 DI 해줄 수 없다는 말씀이신가요?
-
미해결홍정모의 따라하며 배우는 C언어
get_integer 함수에서 return input이 있는 것과 없는 것의 차이점이 무엇인가요?
int get_integer(void) { int input; char c; while (scanf("%d", &input) != 1) { while ((c = getchar()) != '\n') putchar(c); printf(" is not an integer. \nPlease try again."); }// 숫자를 입력 받을 때까지 반복 //return input; // 이거 입력 안하면 3누르면 1 2 3 4 5 6 해서 38 39 40까지 나옴 교수님이 작성해주신 부분에서 다른 부분은 동일하고 int get_integer(void)에서 return input만 주석처리를 해보니까 메뉴에서 c를 누르고 숫자 3을 입력하니까 1~40까지 줄바꿈을 하면서 출력이 되고 다시 메뉴가 나왔습니다. return input을 안하더라도 scanf로 입력을 받아서 출력이 되는 것같긴 한데, return input;을 해주는 것과 안하는 것과의 정확한 차이점이 무엇일까요?
-
미해결예제로 배우는 스프링 입문 (개정판)
ExampleRepository exampleRepository = new ExampleRepository()
ExampleRepository exampleRepository = new ExampleRepository() 해당 코드같이 인스턴스를 생성 시킨다면 DI가 아니라고 해도 무방할까요? 만약 이것이 DI가 아니다라고 하신다면 해당 코드를 설명할때는 단지 인스턴스를 생성한다 라고 설명해도 무방한가요?
-
미해결프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)
대소문자 구분 관련
1) 최종 실습에서 소리 재생시 PlaySound로 하면 재생되는데... playsound로 하면 재생이 안됩니다. 이런 것들을 어떻게 구분할 수 있죠? 2) 역시, 동일하게 winsound.SND_FILENAME에서 SND_FILENAME가 꼭 대문자여야 하는 이유가 있나요?
-
미해결FreeRTOS 프로그래밍
프로세스 종료 관련
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요 강사님 예제 관련 강의들을 보고 따라하고 있습니다. 진행 중에 디버그모드 -> 종료 후에도 콘솔 창에서는 계속 실행이 되고 있어 문의 드립니다. 강사님 아래 이미지 확인 부탁드리겠습니다. 감사합니다.
-
미해결
작정하고 장고! Django로 Pinterest 따라만들기 : 바닥부터 배포까지 강의 듣고있는데 오류 해결좀 알려주세ㅇ
작정하고 장고! Django로 Pinterest 따라만들기 : 바닥부터 배포까지 강의 듣고있는데 오류 해결좀 알려주세요 ProjectApp 구현 이 강의에서 오류가 나서 아직도 해결이 안되네요 몇일전부터 질문을했는데 아직도 강사님이 답변을 안해주네요 성공 하시는분들 알려주세요 사진안보이면 새탭이미지 열기 하면 사진 잘나와요
-
미해결[백문이불여일타] 데이터 분석을 위한 중급 SQL
LEFT 조인 질문
FULL OUTER JOIN을 보고 직접 실습해보려다 LEFT JOIN을 해보았는데요, CustomerID가 왜 NULL이 되는지 이해가 안가서 질문드립니다.
-
미해결[개정판] 파이썬 머신러닝 완벽 가이드
test_size 및 random_state 질문드립니다.
1. 강의에서 train 및 test 의 비율을 결정하는 인자라고 설명해주셨는데, 예제에서 iris_data.data의 경우 feature 값만 가지고 있고 iris_data.target의 경우 target 값만 가지고 있는데 비율을 나누는게 어떤 의미가 있는지 잘 이해가 가질 않습니다. 또한, test_szie를 높이거나 줄였을 때 어떤 효과가 있는지도 알려주시면 감사드리겠습니다. 학습 효과를 높이기 위해 test size를 줄이면 학습이 더 잘 되어서 나중에 예측(predict)를 수행 하였을 때 더 좋은 결과를 예측할 수 있는건가요?2. random_state는 동일한 학습/테스트 용 데이터를 생성하기 위한것이라고 이해 했습니다. 입력하는 수치는 어떤 기준에 의해서 정하면 좋을까요?어떤 값을 입력 하던지 상관 없으며 단순히 선생님이 입력한 값과 임의의 사용자가 동일한 값을 출력 하기 위해서 같은 값을 입력한것으로 이해해도 될까요?
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
쿠키 와 OAuth 관련 질문입니다!
[질문 내용] 안녕하세요. 클라이언트의 로그인 요청 이후 서버에서는 Set-Cookie 헤더에 session id 를 넣어주고 이후 cookie 의 session id 를 DB와 비교하여 체크하는 점 잘 배웠습니다! Oauth인증방식에서도 이런 매커니즘이 동일하게 적용되나요? 즉, 서버에서 액세스 토큰을 Set-Cookie 헤더에 넣어주고, DB에도 저장하여 이후 클라이언트 요청에서 Cookie의 액세스토큰과 DB의 액세스토큰을 비교하여 인증 여부를 체크하는 것이 맞을까요?.. 강의내용와 조금 관련성이 떨어지는 것 같기도 하지만(죄송합니다...) 강의 수강중 궁금증이 생겨 질문남깁니다!
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 유튜브 사이트 만들기
에러를 해결 못하겠습니다
댓글 작성 후 submit을 누르면 이런 에러가 뜨는데 이유를 모르겠습니다. 댓글 목록도 가져오지 못하는 것 같습니다 .ㅠㅠ 이유를 알 수 있을까요? ㅠㅠ routes/comment.js const express = require('express'); const router = express.Router(); const { Comment } = require("../models/Comment"); //================================= // Comment //================================= router.post('/saveComment',(req,res)=>{ const comment = new Comment(req.body) comment.save((err,comment)=>{ if(err) return res.json({success: false, err}) Comment.find({'_id':comment._id}) .populate('writer') .exec((err,result)=>{ if(err) return res.json({success: false, err}) res.status(200).json({success: true,result}) }) }) }) router.post('/getComments',(req,res)=>{ Comment.find({"postId":req.body.videoid}) .populate('writer') .exec((err,comments)=>{ if(err) return res.status(400).send(err) res.status(200).json({success:true,comments}) }) }) module.exports = router; comment.js import React, { useState } from 'react' import axios from 'axios' import {useSelector} from 'react-redux'; import SingleComment from './Singlecomment' function Comment(props) { const videoId = props.postId const user=useSelector(state=>state.user); //redux/state/user 경로 const [commentValue,setcommentValue]=useState("") const handleClick=(event)=>{ setcommentValue(event.currentTarget.value) } const onSubmit=(event)=>{ event.preventDefault(); const variable={ content:commentValue, writer:user.userData._id, postId:videoId } axios.post('/api/comment/saveComment',variable) .then(response=>{ if(response.data.success){ console.log(response.data.result) setcommentValue("") props.refreshFunction(response.data.result) }else{ alert('코멘트를 저장하지 못했습니다.') } }) } return ( <div> <br /> <p> Replies </p> <hr /> {console.log(props.commentLists)} {props.commentLists && props.commentLists.map((comment, index) => ( (!comment.responseTo && <SingleComment refreshFunction={props.refreshFunction} comment={comment} postId={videoId} /> ) ))} <form style={{display:'flex'}} onSubmit={onSubmit}> <textarea style={{width: '100%' , borderRadius: '5px'}} onChange={handleClick} value={commentValue} placeholder="코멘트를 작성해주세요" /> <br /> <button style={{width: '20%', height : '52px'}} onClick={onSubmit}>Submit</button> </form> </div> ) } export default Comment VideoDetailPage.js import React, { useEffect,useState } from 'react' import {Row,Col,List,Avatar} from 'antd' import { FaLaughSquint } from 'react-icons/fa' import Axios from 'axios' //import { post } from '../../../../../server/routes/video' //import { response } from 'express' import SideVideo from './Sections/SideVideo' import Subscribe from './Sections/Subscribe' import Comment from './Sections/Comment' function VideoDetailPage(props) { //const [Comments,setComment]=useState(initialState) const videoId=props.match.params.videoId const variable={videoId: videoId} const [VideoDetail,setVideoDetail]=useState([]) const [Comments,setComments]=useState([]) useEffect(()=>{ Axios.post('/api/video/getVideoDetail',variable) .then(response=>{ if(response.data.success){ setVideoDetail(response.data.videoDetail) }else{ alert('비디오 정보 가져오기 실패') } }) Axios.post('/api/comment/getComments', variable) .then(response=>{ if(response.data.success){ setComments(response.data.Comments) }else{ alert('코멘트 정보 가져오기 실패') } }) }, []) const refreshFunction=(newComment)=>{ setComments(Comments.concat(newComment)) } if(VideoDetail.writer){ const subscribeButton = VideoDetail.writer._id!==localStorage.getItem('userId') && <Subscribe userTo={VideoDetail.writer._id} userFrom={localStorage.getItem('userId')}/> return ( <Row gutter={[16,16]}> <Col lg={18} xs={24}> <div style={{width:'100%',padding:'3rem 4rem'}}> <video style={{width:'100%'}} src={`http://localhost:5000/${VideoDetail.filePath}`} controls/> <List.Item actions={[subscribeButton]} > <List.Item.Meta avatar={<Avatar src={VideoDetail.writer.image}/>} title={VideoDetail.writer.name} description={VideoDetail.description} /> </List.Item> <Comment refreshFunction={refreshFunction} commentLists={Comments} postId={videoId}/> </div> </Col> <Col lg={6} sx={24}> <SideVideo/> </Col> </Row> //</div> ) }else{ return( <div>...loading</div> ) } } export default VideoDetailPage
-
미해결스프링 핵심 원리 - 고급편
lambda 사용관련하여 질문이 있습니다
강의 매우 잘 듣고 있습니다. 전략패턴 강의를 듣다가 V1 ... V4로 리팩토링 하는 과정에서 람다를 사용하신 것을 보았습니다. 저는 강의를 들으면서 코틀린으로 실습을 진행하고 있는데 ContextV1 context1 = new ContextV1(() -> log.info("비즈니스 로직1 실행")); 코틀린 언어를 사용하는 경우 위와 같이 람다를 사용할 수 없게 됩니다. 물론 저의 코틀린 실력이 부족한 탓이지만 간단한 이슈 때문에 신경쓰여서 다음 강의로 넘어가지 못하고 있습니다 ㅠㅠ 코틀린언어 사용시 위와같은 코드에서 람다를 어떻게 써야하는지 궁금합니다.
-
미해결함수형 프로그래밍과 JavaScript ES6+ 응용편
감사합니다.
감사합니다.
-
미해결Vue.js 끝장내기 - 실무에 필요한 모든 것
nvm으로 node버전을 10.16.3으로 내리고 vue create가 안되요.
node version보면 10.16.3으로 nvm이용해서 내리고 vue cli를 깔았느데요 깔고 나서 vue create vue-till을 해보려 하니 이 cli버전은 12이상을 요구하는데 node version을 업그레이드 하라는데 해야하나요?
-
미해결Slack 클론 코딩[백엔드 with NestJS + TypeORM]
socket io ping pong 클라 상태체크하는법
제로초님 nest js 에서 socket io 통신시 ping / pong 으로 유저 상태 체크하는법을 알고싶습니다. @WebSocketGateway({ namespace: /^\/api\/\w+/, pingInterval: 10000, pingTimeout: 5000, }) 위와 같이 ping / pong 을 설정해주었는데, 딱히 'ping' 이나 'pong' 이벤트가 오지 않아서 용도가 무엇인지 잘모르겠습니다. 따로 클라이언트에 socket.emit('ping') 이런식으로 interval을 만들어줘야하는걸까요? nestjs 에서 클라이언트 상태체크를 하려면 어떻게 해야하는지 알고싶습니다.
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
글로벌 오류 form 바깥에 설정
<div th:if="${#fields.hasGlobalErrors()}"><p class="field-error" th:each="err : ${#fields.globalErrors()}"th:text="${err}">글로벌 오류 메시지</p></div> <form action="item.html" th:action th:object="${item}" method="post"> ........ </form> 글로벌 오류 설정할 때 <form>태그 안에서만 가능한 이유와 <form>태그 밖에서 글로벌 오류 메시지를 보여줄 수 있는 방법이 있는지 궁금합니다.