묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 시큐리티 OAuth2
oauth2clinet api 사용 이유?
시큐리티 필터체인 구성 시 oauth2login api를 사용하면 되는데 굳이 oauth2client를 사용할 이유가 어떤것이 있을까요?
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
글작성시 userId가 데이터에 저장을 안해서 게시글을 가져올려고 해도 안가져와집니다.
1. 뭔가 프론트는 문제가 없는거같은데 백에서는 어디에서 문제가 있는지 잘모르겠습니다 ㅠㅠ에러는 없습니다3. const express = require("express"); const { Post, Image, Comment, User } = require("../models"); const { isLoggedIn } = require("./middlewares"); const router = express.Router(); router.post("/", isLoggedIn, async (req, res) => { try { const post = await Post.create({ content: req.body.content, UserId: req.user.id, }); 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) => { try { const post = await Post.findOne({ where: { id: req.params.postId }, }); if (!post) { return res.status(403).send("존재하지 않는 게시글입니다"); //return을 붙여줘야지 send하고 밑에 json이 동시에 실행안됨 } const comment = await Comment.create({ content: req.body.content, PostId: req.params.postId, UserId: req.user.id, }); res.status(201).json(comment); } catch (error) { console.error(error); next(error); } }); router.delete("/", (req, res) => { res.json({}); }); module.exports = router; import { Form, Input, Button } from "antd"; import { useCallback, useRef, useEffect, useState } from "react"; import { useDispatch, useSelector } from "react-redux"; import { ADD_POST_REQUEST } from "../reducers/post"; import useInput from "./hooks/useInput"; const PostForm = () => { const { imagePaths, addPostDone, addPostLoading } = useSelector( (state) => state.post ); const [text, setText] = useState(""); const dispatch = useDispatch(); const imageInput = useRef(); useEffect(() => { if (addPostDone) { setText(""); } }, [addPostDone]); const onSubmitForm = useCallback(() => { dispatch({ type: ADD_POST_REQUEST, data: text, }); }, [text]); const onChangeText = useCallback((e) => { setText(e.target.value); }, []); const onClickImageUpload = useCallback(() => { imageInput.current.click(); }, [imageInput.current]); return ( <Form style={{ margin: "10px 0 20px" }} encType="multipart/form-data" onFinish={onSubmitForm} > <Input.TextArea value={text} onChange={onChangeText} maxLength={140} placeholder="어떤 일이 생겼나요" /> <div> <input type="file" multiple hidden ref={imageInput} /> <Button onClick={onClickImageUpload}>이미지 업로드</Button> <Button type="primary" style={{ float: "right" }} htmlType="submit" loading={addPostLoading} > 짹쨱 </Button> </div> <div> {imagePaths.map((v) => ( <div key={v} style={{ display: "inline-block" }}> <img src={v} style={{ width: "200px" }} alt={v} /> <div> <Button>제거</Button> </div> </div> ))} </div> </Form> ); }; export default PostForm; //saga - AddPost function addPostAPI(data) { return axios.post("/post", { content: data }); } function* addPost(action) { try { const result = yield call(addPostAPI, action.data); yield put({ //put : dispatch type: ADD_POST_SUCCESS, data: result.data, }); yield put({ type: ADD_POST_TO_ME, data: result.data.id, }); } catch (err) { yield put({ type: ADD_POST_FAILURE, data: err.response.data, }); } } // reducer case ADD_POST_REQUEST: draft.addPostLoading = true; draft.addPostDone = false; draft.addPostError = null; break; case ADD_POST_SUCCESS: draft.addPostLoading = false; draft.addPostDone = true; draft.mainPosts.unshift(action.data); break; case ADD_POST_FAILURE: draft.addPostLoading = false; draft.addPostError = action.error; break;
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
회원가입 테스트 코드는 실행이 잘 되지만 실제 DB에는 올라가지 않아요
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요 TEST코드가 실행은 잘 되지만 실제 DB에 올라가지 않는 문제가 있습니다. 도움을 받을 수 있을까 해서 올려봅니다.https://drive.google.com/file/d/1dLceWpDp71m9dsvZXlVEfKa1db8M885g/view?usp=sharing파일링크입니다!
-
해결됨20년 경력자의 알기쉬운 컴퓨터네트워크
무선 라우터에서 buffer frame
다음과 같은 토폴로지에서 ED0에서 Server0으로 ping 테스트를 진행했을때, 패킷이 server0에 도착하였을때쯤 갑자기 Wireless Router0에서 End Device 전체로 메시지가 전송됨을 확인했습니다.패킷 상세를 확인해보니, buffer 가 되어있던 메시지를 보낸거라고 하는데.( “The device takes out this frame from the buffer and sends it.”) 왜 buffer에 메시지가 저장된건가요? 패킷 낭비같은데..이걸 막을 수 있는 방법은 없나요?
-
미해결2025 정보처리기사 필기
POINT 50
포인트 50에 대한 강의가 누락된 것 같은데 확인 가능할까요??
-
미해결코알못에서 웹서비스 런칭까지 : 2021 제주 코딩 베이스캠프(Django)
atom 실행 안됨
안녕하세요. atom 프로그램이 실행되지 않아 문의드립니다. 재설치/재부팅을 여러번 시도해봤으나 실행이 되지 않네요.22년에 지원도 중단된 것 같은데 맞나요?VSC기준으로 강의를 따라가기에 어려움은 없을지 궁금합니다.
-
미해결파이썬 증권 데이터 수집과 분석으로 신호와 소음 찾기
5/6 tqdm으로 전체 데이터...
concat으로 전제 종목을 합치는 pd.concat(result.tolist()) 코드 실행시 오류가 납니다. 오류 메세지는 : InvalidIndexError: Reindexing only valid with uniquely valued Index objects입니다. get_item_info 함수를 실행해서 result 결과를 확인해 보니, index 가 모두 같지 않은 것 같습니다. 오류 부분이 어디일까요?
-
해결됨스프링 핵심 원리 - 고급편
포인트컷 활용 질문
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]안녕하세요.개인 토이 프로젝트에 생성과 관련된 트랜잭션이 발생할 때마다 로그를 남기는 기능을 aop를 적용 해서 만들어 보고 싶어서 새로운 어노테이션을 만들어서 구현을 했습니다. 그런데 이렇게 구현하면 aop의 장점인 본래 코드를 수정하지 않고 적용할 수 있다는 점을 놓치게 되는것 같아서 고민이 생겼습니다.새로운 어노테이션을 만들어서 적용하는 것과 관련된 메서드의 이름을 전부 통일( "ex) create~~()" ) 하는 것 중에 어떤 방법이 좀 더 좋은 방법일지 기준이 잘 안섭니다. 사진도 같이 첨부하겠습니다. 감사합니다.+) 혹시 스프링 시큐리티에 대한 강의가 계획에 있으신지 궁금합니다. 당장 계획이 없으시다면 공부하기 좋은 도서도 추천해주시면 감사하겠습니다.
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
command not found
계속 yarn을 설치해도 command not found라고만 뜨는데 어떻게 하면 좋을까요
-
미해결[초급편] 안드로이드 커뮤니티 앱 만들기(Android Kotlin)
로그인 버튼 눌렀는데 다음 화면으로 안넘어가고 앱이 종료돼요
선생님이 보고 똑같이 따라했는데 안되네요,, 앱에 버그가 있어 앱을 종료했다고만 떠요
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2주차 #7 맵과 방향벡터 개념에서 문제 3번 질문입니다.
안녕하세요 큰돌님. 2주차 #7 맵과 방향벡터 개념에서 문제 3번 질문있습니다.큰돌님 블로그에 나와있는 코드를 입력하고 실행시켜봤는데 제가 예상한 답과 조금 다른거 같습니다.1 0 11 0 10 1 1이렇게 입력했을때 방문한 좌표는 (0:0), (1:0), (0:2), (1:2), (2:1), (2:2) 이렇게 6개가 나와야 하는데 밑의 사진처럼 (0:0), (1:0) 밖에 안나옵니다.혹시나 입력이 틀린건가 싶어 (1),(2)과 같이 입력해 보았는데 같은 결과였습니다...(1)(2)배열에 입력한 값은 잘 들어갔는데... 뭐가 문젠지 모르겠습니다.도와주세요.. =========================================================아 해결되었습니다.main 문에서 2차원배열을 순회하며 if(visited[i][j] == 0 && a[i][j]) 조건을 충족하는 것만 DFS재귀함수 돌리면 되네요..ㅋㅋㅋ=> 결과
-
해결됨초보자를 위한 <어바웃타임> 쉐도잉 마스터 클래스
워크북은 URL이 안 보입니다.
워크북은 URL이 안 보입니다.
-
해결됨20년 경력자의 알기쉬운 컴퓨터네트워크
네트워크 확장시 OSPF area 설정
네트워크 확장시 OSPF area에 변화가 필요한지 궁금합니다Background:1. 기존 하단의 LAN 네트워크에서 R1, SW1, SW2 를 OSPF area 0 으로 설정하였습니다2. LAN 네트워크 구성 후, WAN 부분(R2, RADIUS 서버)과 무선 라우터를 추가하였습니다 질문:1. 무선 라우터를 area 0에 넣어야할까요 아니면 area 분리해 area 1으로 넣어줘야할까요?2. R2(WAN 외부 라우터)를 area0에 넣어야할까요 아니면 area 분리해 area 2로 넣어줘야할까요?3. 만약 R2가 area0에 속한다면 WAN 사이즈 < area0사이즈 아닌가요? Backbone area가 너무 커지는거 아닌가요...?4. 어디까지가 WAN이고 LAN인지 네트워크가 어떻게 인식하나요?
-
미해결데이터 분석 SQL Fundamentals
to_date 포맷관련 질문드립니다.
안녕하세요. 강사님.평소 궁금하고 잘 안됬던 부분들을 학습할 수 있어서 열심히 수강중입니다. 기초적인 질문이나 개념을 잡기 위해 문의드립니다. select to_date('2022-01-01', 'yyyy-mm-dd');select to_date('2022-01-01', 'yyyy/mm/dd');select to_date('2022/01/01', 'yyyy/mm/dd');select to_date('2022/01/01', 'yyyy-mm-dd'); 위 네가지 모두 결과값으로는 to_date2022-01-01 로 나오던데요. to_date() 라는 것은 구성에 대한 부분일 뿐date에 대한 db관리나 출력시의 포맷과는 무관한 것인가요??
-
미해결[개정판] 딥러닝 컴퓨터 비전 완벽 가이드
multi-class segmentation mask일 때 COCO format으로 변환하는 방법
구글링을 해도 도저히 답을 못 찾겠어서 질문 드립니다. 지금 맡고 있는 프로젝트에서는, 총 4개의 class가 masking되어있는 이미지 형태로 annotation이 준비되어 있고 이걸 json annotation으로 만들어야 하는데 이럴 경우에는 어떻게 해야 하죠?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
중복된 요소 제거 목적으로는
중복된 요소 제거 목적으로는 그냥 set을 활용하면 안되나요?굳이 unique와 erase를 활용하는 이유가 있을까요? 시간복잡도도 많이 차이날텐데 set을 활용하때와 비교해서요.
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
이중 for문 런타임 에러 문제
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요.제가 이번 문제를 two pointers 알고리즘으로 풀기 이전이중 for문으로 구현을 했었는데요, 채점 사이트에서 돌려보니 시간 초과가 났습니다.제가 궁금한 점은,지난 문제에서는 4중 for문까지도 채점 사이트에서 정답이 떴었는왜 이번엔 이증 for문도 런타임 에러가 나는지 모르겠습니다.답변주시면 감사하겠습니다.
-
미해결파이썬/장고로 웹채팅 서비스 만들기 (Feat. Channels) - 기본편
run_test_hello_channel.py 11002 Error
안녕하세요 강사님 run_test_hello_channel.py을 실행했더니 생기는 오류에 대해서 질문드립니다.실행을 했을시 True가 나올때도 있지만Traceback (most recent call last): File "D:\23_project\django_channels\venv\lib\site-packages\redis\asyncio\connection.py", line 709, in connect await self._connect() File "D:\23_project\django_channels\venv\lib\site-packages\redis\asyncio\connection.py", line 744, in _connect reader, writer = await asyncio.open_connection( File "C:\Users\honge\AppData\Local\Programs\Python\Python310\lib\asyncio\streams.py", line 47, in open_connection transport, _ = await loop.create_connection( File "C:\Users\honge\AppData\Local\Programs\Python\Python310\lib\asyncio\base_events.py", line 1016, in create_connection infos = await self._ensure_resolved( File "C:\Users\honge\AppData\Local\Programs\Python\Python310\lib\asyncio\base_events.py", line 1395, in _ensure_resolved return await loop.getaddrinfo(host, port, family=family, type=type, File "C:\Users\honge\AppData\Local\Programs\Python\Python310\lib\asyncio\base_events.py", line 855, in getaddrinfo return await self.run_in_executor( File "C:\Users\honge\AppData\Local\Programs\Python\Python310\lib\concurrent\futures\thread.py", line 58, in run result = self.fn(*self.args, **self.kwargs) File "C:\Users\honge\AppData\Local\Programs\Python\Python310\lib\socket.py", line 955, in getaddrinfo for res in _socket.getaddrinfo(host, port, family, type, proto, flags): socket.gaierror: [Errno 11002] getaddrinfo failed During handling of the above exception, another exception occurred: Traceback (most recent call last): File "D:\23_project\django_channels\run_test_hello_channel.py", line 23, in <module> asyncio.run(main()) File "C:\Users\honge\AppData\Local\Programs\Python\Python310\lib\asyncio\runners.py", line 44, in run return loop.run_until_complete(main) File "C:\Users\honge\AppData\Local\Programs\Python\Python310\lib\asyncio\base_events.py", line 641, in run_until_complete return future.result() File "D:\23_project\django_channels\run_test_hello_channel.py", line 16, in main await channel_layer.send('hello', message_dict) File "D:\23_project\django_channels\venv\lib\site-packages\channels_redis\core.py", line 218, in send await connection.zremrangebyscore( File "D:\23_project\django_channels\venv\lib\site-packages\redis\asyncio\client.py", line 484, in execute_command conn = self.connection or await pool.get_connection(command_name, **options) File "D:\23_project\django_channels\venv\lib\site-packages\redis\asyncio\connection.py", line 1525, in get_connection await connection.connect() File "D:\23_project\django_channels\venv\lib\site-packages\redis\asyncio\connection.py", line 715, in connect raise ConnectionError(self._error_message(e)) redis.exceptions.ConnectionError: Error 11002 connecting to redis-10519.c294.ap-northeast-1-2.ec2.cloud.redislabs.com:10519. 11002.위와 같은 에러가 발생할 때도 있습니다.혹시 지역이 일본으로 해놓아 거리때문에 생기는 이슈또는 너무 많은 요청에 의한 이슈일까요??
-
미해결나도코딩의 자바 기본편 - 풀코스 (20시간)
수강 범위에 대한 질문입니다 ㅠㅠㅠ
안녕하세요 나도코딩님 오늘도 열심히 공부중인 학생입니다 ㅠㅠㅠ복수전공 과목 중 자바로 배우는 자료구조를 수강중인데 사전에 자바 공부도 없이 듣는 수업이라 도통 무슨 소린지 이해가 가질 않네요..그래서 현재 고급편 결제하고 섹션9 추상클래스 까지 들은 상태인데 뒤로 갈수록 내용이 어려워져서 복습한다고 속도가 너무 늦어지는 상태에요..자료구조 내용을 이해하려면 일단 어떤 파트를 필수적으로 빨리 들어야 하고 어떤 파트는 빼도 되는지 알려주실 수 있을까요??ㅜ 답변 주시는데 도움이 될 지 모르겠지만 교재 한 챕터에{자바 데이터 타입(기본타입, 참조타입), 제어문(조건문,반복문), 메소드(호출문,메인), try문}이렇게만 존재하긴 하는데 중간중간 책에는 없는 추상클래스, 입력문 같은 파트도 보여서 감이 안잡히네요..
-
미해결실전! 스프링 데이터 JPA
Setter, Merge, InvalidDataAccessApiUsageException Error
안녕하세요. Setter를 사용하고 싶지 않아서 아예 Setter를 사용하지 않는 방향으로 코드를 작성중입니다.Member1의 이름을 Member 1에서 Updated Member로 바꾸기 위해서 setUsername 함수를 사용하지 않고, 처음에 Member1의 아이디를 그대로 받는 생성자를 만들어서 이름 빼고 모두 똑같이 맞춰주고 Save를 하면 될 줄 알고 코드를 이렇게 작성했는데InvalidDataAccessApiUsageException:detached entity passed to persist라는 에러를 얻게 됬습니다.newMember1이라는 객체에 따로 뭘 하지도 않았는데 Detached 상태라고 해서 조금 의아해서 찾아봤는데 이미 영속성 컨텍스트에 id가 1인 Member1이 있는 상태에서 갑자기 쌩뚱맞게 똑같은 Identifier를 가진 NewMember를 Persist하려고 하니 생긴 오류인걸 알게 됬습니다.그래서 Setter없이 하는 방법은 정말 없을까 하다가 해당 글을 발견하게 되었고, 아래 스샷과 같이 Comment를 참고 해서, 해당 Oracle Reference에서 Merge라는 Method를 알게되었고(조금 밑으로 스크롤을 내려야합니다.) 현재 영속성 컨텍스트에 매개변수로 받은 Entity의 상태를 Merge한다는 내용이 제가 원래 하려던 생각과 맞는것 같아생각과 비슷한 것 같아 사용해 보았습니다.이렇게 Merge를 사용한 테스트코드에서는 테스트가 통과되고, 실제 DB에도 Member1의 이름이 Updated Member로 변경이 되었습니다. (Update Query도 실제로 실행되는것을 확인할 수 있었습니다.)JPA가 변경 감지를 통해서 Update를 해준다는것과 그게 정석이라고 말씀해 주셨고, 그렇게 JPA의 변경 감지를 사용하는게 상태를 마치 값변수처럼 직접 변경하는것 보다 좋을 것 같습니다.하지만 change~ 함수나 아래와 같이 다른 Setter를 대신하겠다고 만든 여러 함수들에서 이름만 set이 안들어갔지 결국 그 함수의 내용은 Setter랑 다를바가 없는데 이게 Setter를 사용하는것과 무슨 차이가 있는지 잘 모르겠습니다. Lombok의 @Setter를 사용해서 단지 모든 프로퍼티에 대해서 Setter를 만들어주지않고 개발자가 직접 지정한 부분만 Setter를 만들어 줄 수 있다는 측면에서는 차이가 있는것 같습니다.또한 제가 이렇게 Merge를 사용해서 Update를 하는게 확실히 다른 개발자 분들이 잘 사용하지 않은 방법인것 같긴합니다. 혹시 이렇게 Merge를 사용하는것에 대해서 어떠한 의견을 가지고 계신지 궁금합니다!감사합니다 :D