묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
복합키 Serializable implements 하는 이유
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(http://bit.ly/3fX6ygx)을 먼저 확인해주세요. 3. 질문 잘하기 메뉴얼(http://bit.ly/2UfeqCG)을 먼저 읽어주세요. 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 아니오3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용] 여기에 질문 내용을 남겨주세요. 복합키를 사용할 때 EmbeddedId랑 IdClass를 정의할 때 Seializable를 상속해야 하는 걸로 배웠습니다. 그리고 Seializable interface는 외부로 통신할 때 JVM단에서 객체를 byte 스트림 형태로 변환 해 주는 역할을 하는걸로 알고 있습니다. 하지만 외부로 객체 정보를 공유하지 않고, 영속성 컨태스트가 관리하는 @Id 변수 타입들이 왜 Serializable interface를 상속해야 만하는지 궁금합니다.
-
미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
Visual Studio 'UTF-8' 설정 방법
안녕하세요 강사님 강의를 보고 문제를 해결하던 도중 에러가 발생하여 질문드립니다. 코드 창에 한글을 적게 되면 다음 사진과 같은 에러가 발생하는데 이를 해결하는 방법이 있을까요?
-
미해결[2026년 출제기준] 웹디자인개발기능사 실기시험 완벽 가이드
포지션속성 주는 이유?
크로스페이드 슬라이드 만들때 포지션 속성은 왜 줘야 하는거예요?
-
미해결초보를 위한 도커 안내서
network 질문입니다.
docker-compose로 멀티 컨테이너를 돌리면 network는 자동으로 연결되는 것으로 보이는데 맞나요?
-
미해결반응형 웹사이트 포트폴리오(App Official Landing Website)
background url 이미지 색상
안녕하세요 선생님 background: url(images/wave-line.png) no-repeat center right 100px, linear-gradient(to right, blue, red); 배경색상은 그레디언트로 하고 url 로 깔아준 png 이미지의 색상을 변경하는 속성은 없을까요?
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
해쉬태그 등록 오류
이번 강의에 해쉬 태그 등록을 위한 코드들 const hashtags = ~~~ 부분과 if(hashtags) { } 요거를 추가하면은 500에러가 떠요. 왜 이럴까요? const express = require('express') const multer = require('multer') const path = require('path') const fs = require('fs') const { Post, Image, Comment, User, Hashtag } = require('../models') const { isLoggedIn } = require('./middlewares') const router = express.Router() try { fs.accessSync('uploads') } catch(error) { console.log('uploads 폴더가 없으므로 생성합니다.') fs.mkdirSync('uploads') } // multer 셋팅 const upload = multer({ storage: multer.diskStorage({ destination(req, file, done) { done(null, 'uploads') }, filename(req, file, done) { const ext = path.extname(file.originalname) // 확장자 추출(.png) const basename = path.basename(file.originalname, ext) // 이름 추출(제로초) done(null, basename + '_' + new Date().getTime() + ext) // 이름_1518123131.png }, }), limits: { fileSize: 20 * 1024 * 1024 }, // 20MB }) // 게시글 작성 router.post('/', isLoggedIn, upload.none(), async (req, res, next) => { try { // const hashtags = req.body.content.math(/#[^\s#]+/g) const post = await Post.create({ content: req.body.content, UserId: req.user.id, }) // if(hashtags) { // const result = await Promise.all(hashtags.map((tag) => Hashtag.findOrCreate({ // where: { name: tag.slice(1).toLowerCase() }, // }))); // 결과 [[노드, true], [리액트, true]] // await post.addHashtags(result.map((v) => v[0])); // } if(req.body.image) { if(Array.isArray(req.body.image)) { // 이미지 여러개면 image: [경로.png, 경로.png] const images = await Promise.all(req.body.image.map((image) => Image.create({ src: image }))) await post.addImages(images) } else { // 이미지 하나만 올리면 image: 경로.png const image = await Image.create({ src: req.body.image }) await post.addImages(image) } } const fullPost = await Post.findOne({ where: { id: post.id }, include: [{ model: Image, }, { model: Comment, include: [{ model: User, // 댓글 작성자 attributes: ['id', 'nickname'], }] }, { model: User, // 게시글 작성자 attributes: ['id', 'nickname'], }, { model: User, // 좋아요 누른 사람 as: 'Likers', attributes: ['id'], }] }) res.status(201).json(fullPost) } catch(error) { console.error(error) next(error) } }) router.post('/:postId/comment', isLoggedIn, async (req, res, next) => { try { const post = await Post.findOne({ where: { id: req.params.postId } }) if(!post) { // 게시글 존재하는지 확인 return res.status(403).send('존재하지 않는 게시글입니다.') } const comment = await Comment.create({ content: req.body.content, PostId: parseInt(req.params.postId), UserId: req.user.id, }) const fullComment = await Comment.findOne({ where: { id: comment.id }, include: [{ model: User, attributes: ['id', 'nickname'] }] }) res.status(201).json(fullComment) } catch(error) { console.error(error) next(error) } }) // 좋아요 누르기 router.patch('/:postId/like', isLoggedIn, async (req, res, next) => { // PATCH /post/1/like try { const post = await Post.findOne({ where: { id: req.params.postId }}) if(!post) { return res.status(403).send('게시글이 존재하지 않습니다.') } await post.addLikers(req.user.id) res.json({ PostId: post.id, UserId: req.user.id }) } catch(error) { console.error(error) next(error) } }) // 좋아요 취소 router.delete('/:postId/like', isLoggedIn, async (req, res, next) => { // DELETE /post/1/like try { const post = await Post.findOne({ where: { id: req.params.postId }}) if(!post) { return res.status(403).send('게시글이 존재하지 않습니다.') } await post.removeLikers(req.user.id) res.json({ PostId: post.id, UserId: req.user.id }) } catch(error) { console.error(error) next(error) } }) // 게시글 삭제 router.delete('/:postId', isLoggedIn, async (req, res, next) => { // DELETE /post/10 try { await Post.destroy({ where: { id: req.params.postId, UserId: req.user.id, }, }) res.status(200).json({ PostId: parseInt(req.params.postId, 10) }) } catch(error) { console.error(error) next(error) } }) // 이미지 업로드 router.post('/images', isLoggedIn, upload.array('image'), (req, res, next) => { console.log(req.files) res.json(req.files.map((v) => v.filename)) }) module.exports = router
-
미해결처음 배우는 리액트 네이티브
로그인 화면 구현
로그인 화면 구현시 안드로이드는 정상 로그인이 되는데 ios는 스크롤뷰에러가 뜹니다. 어떻게 해야 할까요? 에러를 검색해 봐도 나오질 않습니다...ㅠ,ㅠ
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
객체지향 계획법?
TextRPG 1~3 강의를 쭈욱 수강하면서 궁금한 부분이 있어 질문 드립니다! 객체지향으로 이와 같은 프로그램을 만든다고 할 때 사전에 내가 어떻게 구현할 것이다 하는 것들을 미리 일정 규칙과 문법에 맞게 계획을 한 뒤 구현하면 좀 덜 헷갈릴 것 같은데 혹시 그런 "계획법?" 같은 것은 어떻게 채울 수 있는지 궁금합니다.
-
미해결스프링 핵심 원리 - 기본편
안녕하세요 여쭤볼게있어 질문드려요
안녕하세요 Jpa부터 시작해서 강의 잘보고있습니당! 좋은 강의 항상 감사드려요! 다름이아니라 우리나라 si기업에서는 대부분 spring 부트를 사용하지 않고 spring legacy 프로젝트로 일을 한다고 하더라고요... 저는 spring boot 가 너무 좋고 spring 의 다양한 기능들을 사용하기 위해서는 spring boot 가 최적이란 것또한 이해 하였는데 왜 우리나라 많은 si 에서는 왜 서버띄우기도 느린 외장 톰캣을 쓰며, 복잡한 xml 설정들을 다 잡아줘야하는 spring legacy를 사용하는지 이해가 안되더라고요.. 혹시 spring boot 가 spring legacy 에 비해 단점이 존재할까요? 예를 들면 혹시 성능상 어떤것이 안돌아간다던가... 큰 규모의 프로젝트에서는 한계가 있다거나...혹시 spring boot 의 단점이 있나요?
-
미해결Data Engineering Course (1) : 빅데이터 하둡 직접 설치하기
자바에서 밑부분이 안나와요!
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요! 선생님 !! 자바에서 밑에 string[] args 이 부분들 설정하는 부분들이 안나옵니다 ...!! 자바16을 설치해서 그런것일까요? 저부분 때문에 그런것인지 이 부분도 나오지 않습니다 ㅜ
-
미해결홍정모의 따라하며 배우는 C++
resize() 함수 구현중 질문이 있습니다
resize() 함수 구현중에 size가 증가할때 증가된 변수 자리에는 아무것도 안넣었는데 그러면 다음에 Delete[] 할때 런타임에러가 발생하더라고요 빈자리를 0으로 초기화도록 바꾸니깐 에러가 없어졌는데 포인터에 인트형 배열 메모리를 할당하고 꼭 초기화를 다 해주어야 Delete[] 가능한건가요?
-
미해결파이널 코딩테스트 : 프론트엔드
이미지파일
이미지 파일은 어디서 받을수있는건가요 ??
-
해결됨풀스택 리액트 토이프로젝트 - REST, GraphQL (for FE개발자)
yarn add를 했을 때 node_modules가 2개가 한꺼번에 생성이 되었는데 파일 경로가 잘못되어있었습니다!
해결했습니다!
-
미해결비전공자를 위한 진짜 입문 올인원 개발 부트캠프
footer 와 겹침 현상
혹시 이렇게 footer 와 겹치는 일은 어떻게 하면 되나요? 단순히 개인 컴퓨터 사양(모니터 크기라던지..) 때문에 발생하는 것일까요?
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
강의 수강 후 개인공부 진행하면서 궁금한 점 질문드립니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(http://bit.ly/3fX6ygx)을 먼저 확인해주세요. 3. 질문 잘하기 메뉴얼(http://bit.ly/2UfeqCG)을 먼저 읽어주세요. 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 안녕하세요 영한님, JPA 강의를 모두 수강 후 개인적으로 토이 프로젝트를 진행해보면서 궁금한 점이 있어서 질문드립니다. 가정) Entity에서 값타입인 필드가 존재하는데, 값타입이 List나 Set 형식으로 존재합니다. 아래와 예시와 같이 Store(Entity)는 여러 Category(Value)를 가질 수 있도록 구성했습니다. 위 예시에서 특정 카테고리에 해당하는 Store Entity를 조회하고 싶은데 JPA로는 구현이 힘들어 보입니다. 또한, QueryDSL을 쓰려고 했는데 Category가 Entity 타입이 아니다 보니 Category 테이블과 Join을 할 수 없더라구요. 제가 생각한 방식은 Store를 findByAll을 해서 Category를 찾는거였는데 이렇게 할 경우 리소스 낭비가 심하다고 생각됩니다. 또 다른 방식은 Category를 하나의 Entity로 보고 Store-Category를 1:N 관계로 가져가는 방법을 생각해봤는데, Category가 지속적으로 수정이 필요하지도 않고 별도의 Entity로 가져가기엔 DDD 방법론에 맞지 않는다는 생각이 듭니다. 이런 경우에는 어떤 방식으로 구현을 해야 할까요? 조언 부탁드립니다.
-
미해결설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
compile error
ERROR: [XSIM 43-3409] Failed to compile generated C file xsim.dir/tb_clock_generator/obj/xsim_1.c. ERROR: [XSIM 43-3915] Encountered a fatal error. Cannot continue. Exiting... ERROR: Please check the snapshot name which is created during 'xelab',the current snapshot name "xsim.dir/tb_clock_generator/xsimk" does not exist 1강에서 환경 setting 중에 compile error 가 떠서 막혔습니다 ㅜㅜ 구글링 아무리 해도 해결이 안되네요 ㅜㅜ 답변 부탁 드립니다.
-
미해결바닥부터 시작하는 STM32 드론 개발의 모든 것
Roll 각도가 84도 이상으로 안올라갑니다
BNO080의 Roll 각도가 84.29?도 이상으로는 올라가지 않네요, 84도 이상으로 올라가지 않는게 정상인가요? 저는 드론을 수평에 놔뒀을때 롤피치 오차가 0.7도 미만으로 나와서 캘리브레이션은 하지 않았습니다.
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part2: 게임 수학과 DirectX12
강의이해
dx가 처음이라 사용되는 함수도 많고 해서 한번에 이해가 다 되지 않고 대충 00은 자료를 전달하는 클래스이고 00은 그걸 받아 자료를 출력하는 클래스로 동작한다 대충 이런 느낌으로 보고 있는데 이런 느낌으로 봐도 괜찮은가요? 처음에는 대충 굴러가는 느낌만 보고 완강 후 2~3번 다시 볼 계획입니다
-
미해결Slack 클론 코딩[실시간 채팅 with React]
Menu에 style 질문있습니다 !
현재 Menu components에 inline style을 주셨는데 이렇게되면, index.tsx에서 style 의 값을 받아서 <div> 태그안에 들어가게되는건가요 ? 만일 그렇다면 div 태그 안에는 어떠한 스타일도 정의되어 있지 않은데 top : 95, left:80 값을 주면 어떤 변화가 생기는 건가요 ? 이 값들은 position : absolute 시 정의해주는 속성들 아닌가요 ?!
-
미해결딥러닝 CNN 완벽 가이드 - TFKeras 버전
3x3 max pooling을 진행하면 Feature Map 크기가 줄어들지 않나요?
GoogleNet(Inception) 강의를 듣다가 궁금한 점이 있어 질문드립니다. Concatenate을 위해 Inception Module 내에서 출력되는 Feature Map의 크기가 전부 같아야 한다고 하셨습니다. 2x2 Max pooling은 output Feature Map 크기를 반으로 줄여주는 역할을 하는 것으로 알고 있습니다. 3x3 max pooling을 진행하면 Feature Map 크기가 줄어들어서 문제가 생기지 않나요? Model.summary()를 보면 문제가 없는데, 제가 생각하기에는 3x3 Max pooling 시에 Feature Map 크기가 줄어들어야 하는 것 같아서 질문드립니다.