묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결CSS 레이아웃 - flex & grid
다운로드가 안됩니다.
pdf파일도 아니고 .pdf로 만들어서 저장해도 열리지 않습니다..
-
미해결비전공자를 위한 진짜 입문 올인원 개발 부트캠프
소켓 프로그래밍 이란
질문있습니다. 소켓프로그래밍이라 하면 어떤것을 제작하는 것을 의미하나요 어렴풋이 서버 프로그래밍을 얘기하는 것 같은데.... 그리고 서버 어플리케이션을 만드는 것으 이야기하는지 서버의 운영체제를 만드는 것을 이야기하는지 잘 모르겠습니다. 도움말씀 부탁드려요..
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
소켓프로그래밍 - 운영체제
안녕하세요 수업들으면서 컴퓨터일반에 대한 질문이 생겼습니다. 1. 소켓프로그래밍과 운영체제의 관계는 무엇일까요? 2. 운영체제 커널내에 네트워크와 관련된 부분이 있나요? (그게 소켓일까요?) 전반적으로 운영체제를 공부해야 하나 고민중입니다.
-
미해결[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
api추가 질문입니다
api 추가 질문입니다. router.get('/search/:hashtag', async (req, res, next) => { try { const result = await request( req, `/posts/hashtag/${encodeURIComponent(req.params.hashtag)}`,// 문자를 UTF-8로 인코딩 ); res.json(result.data); } catch (error) { if (error.code) { console.error(error); next(error); } } }); 이 코드에서 :hashtag는 인코드 되어서 request함수에 넣었습니다. router.get('/posts/hashtag/:title', verifyToken, async (req, res) => { try { const hashtag = await Hashtag.findOne({ where: { title: req.params.title } }); if (!hashtag) { return res.status(404).json({ code: 404, message: '검색 결과가 없습니다', }); } const posts = await hashtag.getPosts(); return res.json({ code: 200, payload: posts, }); } catch (error) { console.error(error); return res.status(500).json({ code: 500, message: '서버 에러', }); } }); request함수는 헤더의 authorization에 토큰을 넣어서 이 라우터에 요청합니다. 그렇다면 이 코드의 :title 속성은 인코드된 문자열이지 않나요? Hashtag모델에 인코드된 문자열이 저장되는 것도 아니던데 왜 인코드된 문자열을 다시 디코드하지 않나요? const posts = await hashtag.getPosts(); return res.json({ code: 200, payload: posts, }); 또 Post에 있는 hashtag를 가져와 posts에 넣어서 json형식으로 출력했더니 이런 형태의 데이터가 나왔는데 Post모델에서 조건에 맞는 hashtag를 가져온것은 이해 했습니다. 그러나 PostHashtag테이블과 UserId컬럼은 왜 가져온것인가요? 혹시 관계 메서드 add set remove get에 대해 정확히 어떠한 인과관계가 나타는지 설명해주실수 있나요? 대충 느낌은 오지만 긴가민가 합니다 ㅜㅜ
-
미해결모던 자바스크립트(ES6+) 기본
prototype의 메소드 내부에 화살표 함수가 작성된 경우
안녕하세요 강의내용을 따라하다가 한가지 질문이 생겨서 글을 씁니다 prototype에 연결한 함수, 그러니까 method안에다가 화살표함수를 사용한 경우에서 말인대요 여기서 이 method의 스코프는 인스턴스이고, 그걸 화살표 함수가 this로서 사용한다고 이해를 했습니다 그래서 debugger를 붙여서 브라우저의 개발자 모드로 확인해봤는데, const Point = function(){ this.point = 100; }; Point.prototype.getPoint = function(){ // Set an Arrow Function in a normal function that is set under "prototype" const add = () => this.point +20; console.log(add()); [1, 2].forEach((value) => { console.log(this.point + value); // the "this" of the Arrow Function takes the "this" of its scope, which is the method, "getPoint()" }) // the scope of "getPoint()" is the instance }; new Point().getPoint(); debugger; 저기에 나오는 console.log(this.point + value)에서 this에 마우스를 가져가보면 Window라고 뜨고, this.point위로 마우스를 가져가 보면 undefined가 뜹니다 원래 이런건가요?
-
미해결Do It! 장고+부트스트랩: 파이썬 웹개발의 정석
<a> tag에서 role = "button" 과 type = "button" 차이가 있나요
두가지다 테스트 해봤는데 웹상에서는 별 차이가 없던데 혹시 role = "button"을 쓰는 이유가 있나요
-
미해결실전! Querydsl
querydsl에서의 값 타입 컬렉션
영한님 서포터즈님들 안녕하세요 강의에서는 엔티티 끼리의 DTO 변환은 조인을 통해 쉽게 할 수 있는데, querydsl의 프로젝션을 사용해서 DTO를 변환하는 중에 값 타입 컬렉션은 어떻게 할 수 있는지 궁금해서 여쭤보게 됐습니다. 현재 재 코드입니다 Club.class PetSizeType(Enum) EligibleBreed 이제 querydsl을 이용해서 DTO를 변환시키면 not an entity 라는 에러가 발생합니다 일단 값 타입 컬렉션은 entity가 아니기 때문에 해당 에러 로그는 이해가 됩니다 그렇다면 값 타입 컬렉션은 조인도 할 수 없기 때문에 10개의 Club을 가져오려면 select 쿼리가 20개가 나가게 되는데, 이를 최적화하는 방법이 없을까요? 아래의 사진은 하나의 club을 조회할 때 나가는 쿼리입니다! 그리고 제 개인적인 생각으로는 실무에서도 Enum타입을 자주 사용할 것 같은데,, 같은 Enum Type을 저장하기 위해서 따로 엔티티를 만드는 편인가요??(값 타입 컬렉션을 사용하지 않는지 궁금합니다) 감사합니다
-
해결됨MERN STACK 커뮤니티 : 시작부터 배포까지 알려주는 React
이미지 통신 오류...
안녕하세요. 서버와 이미지를 주고 받는 과정에서 에러가 발생했는데 어떤 부분이 문제일까요... 급하게 마무리 하려다 보니 자꾸 잘 안되네요ㅠㅠ 클라이언트의 ImageUpload.js 코드 import axios from 'axios' import React from 'react' function ImageUpload() { const FileUpload = (e)=>{ var formData = new FormData() //서버로 보내기 위한 파일내용 인코딩 formData.append("file", e.target.files[0]) //file이름으로 첨부된 파일 데이터를 추가 axios.post('/api/post/image/upload', formData) .then(()=>{ console.log("성공") }).catch((err)=>{ console.log(err) }) } return ( <div> <input onChange={(e)=>FileUpload(e)} type="file" accept='image/*'/> </div> ) } export default ImageUpload 클라이언트 창 콘솔 에러... 서버의 post.js 코드 const express = require('express') const router = express.Router() const multer = require('multer') const { Post } = require('../models/post.js') const { Counter } = require('../models/counter.js') router.post('/submit', (req, res) => { let temp = req.body Counter.findOne({ name: 'counter' }).exec().then(counter => { temp.postNum = counter.postNum const CommunityPost = new Post(temp) CommunityPost.save().then(() => { Counter.updateOne({ name: "counter" }, { $inc: { postNum: 1 } }) .then(() => { res.status(200).json({ success: true }) }) }) }).catch(err => { err.status(400).json({ success: false }) }) }) router.post('/list', (req, res) => { Post.find().exec().then(doc => { res.status(200).json({ success: true, postList: doc }) }).catch(err => { status(400).json({ success: false }) }) }) router.post('/detail', (req, res) => { Post.findOne({ postNum: Number(req.body.postNum) }).exec() .then(doc => { res.status(200).json({ success: true, postList: doc }) }).catch(err => { console.log(err) status(400).json({ success: false }) }) }) router.post('/edit', (req, res) => { console.log(req.body) let temp = { title: req.body.title, content: req.body.content, } console.log(temp) Post.updateOne({ postNum: Number(req.body.postNum) }, { $set: temp }).exec() .then(() => { console.log("수정성공") res.status(200).json({ success: true }) }).catch(err => { console.log("수정실패") err.status(400).json({ success: false }) }) }) router.post('/delete', (req, res) => { Post.deleteOne({ postNum: Number(req.body.postNum) }).exec() .then(doc => { res.status(200).json({ success: true }) }).catch(err => { console.log(err) status(400).json({ success: false }) }) }) const storage = multer.diskStorage({ //multer를 통해 전달받은 데이터를 파일 디스크에 저장 destination: (req, file, cb) => { //저장할 경로를 지정 cb(null, 'image/') }, filename: (req, file, cb) => { //저장할 파일의 이름 지정 cb(null, file.originalname + '-' + Date.now()) } }) const upload = multer({ storage }).single('file') router.post('/image/upload', (req, res) => { upload((req, res, err) => { if (err) res.status(400).json({ success: false }) else console.log("성공!") }) }) module.exports = router 이전 기능까지는 잘 구현되었는데 이미지 통신 자체가 잘 안되는 것 같습니다...
-
미해결자바스크립트로 알아보는 함수형 프로그래밍 (ES5)
좋은 강의 감사합니다.
개인 프로젝트 진행하면서 코드가 길어지니까 정리가 안되고 지저분해져서 고민이었는데 알려주신 방법대로 하면 간결하게 정리할 수 있겠네요. 감사합니다! 완강하고 다음 강의에서 만나요!
-
미해결Slack 클론 코딩[백엔드 with NestJS + TypeORM]
sessionOption.cookie.proxy = true 설정에 대해서 질문입니다.
강사님 안녕하세요 아래 설정에 대해서 궁금해서 문의글 남깁니다. sessionOption.cookie.proxy = true 배포시 위 설정이 실행되는거 같은데요. 강사님이 책에서 https적용을 위해 노드 서버 앞에 다른 서버를 두었을 때 true를 설정한다고 써있는데 구체적으로 어떤 상황인지 알려주실 수 있나여
-
미해결[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
nodebird-api코드 질문입니다
exports.verifyToken = (req, res, next) => { try { req.decoded = jwt.verify(req.headers.authorization, process.env.JWT_SECRET); return next(); } catch (error) { if (error.name === 'TokenExpiredError') { return res.status(419).json({ code: 419, message: '토큰이 만료되었습니다', }); } return res.status(401).json({ code: 401, message: '유효하지 않은 토큰입니다', }); } } 토큰을 검사하는 미들웨어 입니다 req.decode가 어떻게 생성되는지 궁금합니다. 또 jwt.verify함수가 토큰을 검사하는 함수로 알고있는데 토큰이 유효하다면 토큰을 req.decode에 넣는것인가요? 그리고 const result = await axios.get('http://localhost:8002/v1/test', { headers: { authorization: req.session.jwt }, }); axois.get 요청에 headers에 authorization부분에 세션을 넣던데 authorization 넣는 이유가 따로 있을까요? router.get('/posts/my', verifyToken, (req, res) => { Post.findAll({ where: { userId: req.decoded.id } }) .then((posts) => { console.log(posts); res.json({ code: 200, payload: posts, }); }) .catch((error) => { console.error(error); return res.status(500).json({ code: 500, message: '서버 에러', }); }); }); 이 부분에서 posts는 Post모델의 배열로 나오는데 그 앞에서 선언되지 않았음에도 불구하고 쓰던데 따로 규칙같은게 있나요? users면 User모델의 배열이라던가 등등...
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
distinct 대신 group by 사용해도 되나요?
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요. 김영한님 강의로 조금씩 지식을 쌓고 있는 취준생입니다! 개인 프로젝트를 진행하다가 궁금한 점이 생겼습니다. 일대다 페치 조인 시 중복을 걸러내기 위해 distinct를 사용한다는 강의를 들었습니다. 프로젝트를 진행하며 일대다 페치 조인을 하는 쿼리에 disctinct 대신 group by를 써봤는데 중복을 걸러내기에 문제가 없어보여서 질문드립니다. 1. group by를 써서 중복을 걸러내도 문제가 없나요? 2. 문제가 없다면, 왜 두 방법 중 distinct를 사용하는지? (고민해보기로는 sort의 유무..? group by의 경우 데이터가 내부적으로 정렬이 되어 시간이 더 소요된다는 게 이유인지 궁금합니다!) 답변 주시면 감사하겠습니다. // return em.createQuery(// "select distinct o from Order o " +// " join fetch o.orderBooks ob" +// " join fetch ob.book" +// " where o.member.id = :memberId", Order.class)// .setParameter("memberId", memberId)// .getResultList(); return em.createQuery( "select o from Order o " + " join fetch o.orderBooks ob" + " join fetch ob.book" + " where o.member.id = :memberId" + " group by o", Order.class) .setParameter("memberId", memberId) .getResultList();
-
미해결스프링 핵심 원리 - 기본편
이렇게 해도 되나요?
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용] OrderServieceImpl 에서 객체를 Repository와 FixDiscoubtPolicy를 썼습니다. 물론 다이어그램을 확인을 하였고 이렇게 만들기로 약속을 한건 압니다만, 제 생각에는 Memberservice와 FixDiscoubtPolicy 쓰느게 타당하다고 생각합니다. 직접적으로 Repository에 접근하는 것이 아닌 구현한 Memberservice를 이용하게는게 더 안전하다고 생각이 되어서요 선생님 의견이 듣고 싶습니다 !
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
Delivery Table 문제
안녕하세요. 야생형 코스로 듣고 있는 초보자입니다. 여태 잘 따라오다가, 오늘 에러를 마주쳤네요. 진작에 마주쳤으면 좋았을걸 맨 마지막강의에서 마주치게 돼서, 해결을 할수가 없어서 문의드립니다 ㅠㅠ 인텔리제이 로그 상에는 아래와 같이 에러로그가 뜹니다. 2022-05-25 23:53:27.033 ERROR 2855 --- [nio-8080-exec-6] o.h.engine.jdbc.spi.SqlExceptionHelper : Table "DELIVERY" not found; SQL statement: 그냥 해석해보면 Delivery Table이 생성이 안됐다는 것 같아서, h2 db를 보니까 정말 없었습니다. 해당 에러 발생 이후, p6spy가 실행되었고, 아래와 같은 에러가 연속적으로 로그에 남았습니다. 2022-05-25 23:53:27.042 ERROR 2855 --- [nio-8080-exec-6] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.dao.InvalidDataAccessResourceUsageException: could not prepare statement; SQL [insert into delivery (city, street, zipcode, status, delivery id) values (?, ?, ?, ?, ?)]; nested exception is org.hibernate.exception.SQLGrammarException: could not prepare statement] with root cause org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "DELIVERY" not found; SQL statement: insert into delivery (city, street, zipcode, status, delivery id) values (?, ?, ?, ?, ?) [42102-212] 아직 db에 테이블이 올라가는 메커니즘을 몰라서, 테이블 생성이 안되는 것이 이슈인것 같았습니다. 그래서, 일단 강의 자료를 처음부터 끝까지 다 뒤져가며 비교하고, 다른 부분이 있으면 고치고, 빠진 것 까지 작성하여 이제 해결되겠다 싶었는데 안되더라구요 ㅠ 아무래도 어디서 바보같은 실수를 한 것 같은데, 도저히 찾을수가 없습니다. 구글링도 해보고, 디버깅 툴까지 써가보며 해봤는데, 포인트를 잘 못잡는건지.. 어흐흑ㅠ 이유를 전혀 모르겠더라구요 (지식이 부족한것도 한 몫 한것같습니다 ㅎㅎ;;) 아무래도 제가 크게 놓치는 부분이 있는 것 같아서 도움 요청 드리고자 합니다. 어디가 잘못된지 감도 안와서, 코드는 따로 올리지 않겠습니다 ㅠㅠ 드려야 하는 자료 요청주시면 업로드 드리도록 하겠습니다.
-
미해결배달앱 클론코딩 [with React Native]
타입스크립트? 관련에러
안녕하세요 강의 하시는 영상을 보면 const [count, setCount] = useState(initialState: 1); 이런식으로 initialState로 타입?을 지정해 주는것같은데요 저는 에러가 납니다..ㅠ 타입스크립트에 대한 지식이 별로 없어서 제가 잘 모르는것인가 해서 (혹시 타입스크립트가 잘 설치가 안된것인가 해서) 구글링후 const str: string = 'Happy'; console.log(str); 이런식으로 코딩을 해주면 또 잘돌아갑니다.ㅠㅠ initialState의 정체가 무엇인지 궁금합니다. 사실 useState(1)로만 하면 잘 돌아가긴하는데 궁금하네요
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
실무에서의 검증사용이 궁급합니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. mvc validation과 bean validation 중 어떤게 더 자주 쓰이나요?
-
미해결[신규 개정판] 이것이 진짜 크롤링이다 - 기본편
주식 크롤링 이름 받아오는 법
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 친절하신 설명 덕분에 현재가 받아오는 방법은 충분히 완료하였습니다. 지금은 추가로 주식의 이름을 받아오고 싶은데 아래와 같은 조건이면 soup.select_one() 괄호 안에 들어갈 html코드를 무엇을 잡아야 할 지 감이 안잡혀서 질문드립니다. <h2> <a href="#" onclick="clickcr(this, 'sop.title', '', '', event);window.location.reload();">삼성전자</a> </h2> 잘 부탁드리겠습니다.
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
An expected CSRF token cannot be found 해결
PostMan 에서 API 요청시 403 unAuthorized, An expected CSRF token cannot be found가 응답으로 오는 경우 해당 코드 api gateway 프로젝트에 추가해 주면 해결 됩니다. @EnableWebFluxSecuritypublic class SecurityConfig { @Bean public SecurityWebFilterChain securityWebFilterChain(ServerHttpSecurity http) { return http.csrf() .disable() .build(); }}
-
미해결애플 웹사이트 인터랙션 클론!
위치 이동에 관해 질문이 있습니다.
JS보다 어려운게 CSS 같습니다... 질문이 있는데, 선생님께서는 위치를 이동시킬 때, 1. margin-Top과 2. position을 주고 top을 주는 두 방법에 대해 어떤 기준으로 나눠서 사용하시는지 궁금합니다. 아니면, 그냥 사용하시는건지요
-
미해결
node.js 노드에서 ENOENT errno : -2 해결이 안돼서 미치겠습니다..ㅠ
[Error: ENOENT: no such file or directory, open './restFront.html'] { errno: -2, code: 'ENOENT', syscall: 'open', path: './restFront.html' } 계속 이런식으로 에러가 뜨는데 구글링을 해봐도 -2 에러에 대한 해결책이 없습니다..ㅠ 도움 부탁드립니다! 맥 사용중입니다.