묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨[리뉴얼] React로 NodeBird SNS 만들기
loading의 상태 변화에 따라 컴포넌트 렌더링시 무한렌더링이 발생합니다.
안녕하세요. 도움을 요청할 데가 없어서 혹시 원인을 알고 계실까하여 글을 작성합니다.우선 nodebirdSNS 가 아닌 개인 프로젝트에서 발생한 문제라는 점 양해 부탁드립니다.공공API를 사용하여 데이터를 불러오기 위해 Redux Toolkit 을 사용하여 extraReducers로 pending, fulfilled, rejected 일 때 각각 loading의 상태를 변경시켜준 후 loading이 true일 때는 <Loader /> 컴포넌트를, false 일때는 데이터를 그려줄 컴포넌트가 열리도록 코드를 짰습니다.pending 일 때, loading = truefulfilled 일 때, loading = false 값이 잘 들어갔고 데이터도 잘 받아와지는데.. 문제는 이렇게 loading 을 보여주려고만 하면 무한렌더링에 걸려버립니다...ㅠ ㅠ분명 fulfilled일 때 false로 변경되었는데도 말이죠... 삼항연산자를 제외하고 실행시켜보면 원하는 대로 데이터를 불러올 때 딱 한번만 렌더링이 되는 것을 확인했습니다. 값은 잘 들어가놓고 왜 로딩의 값에 따라 컴포넌트를 보여주려고만 하면 무한렌더링에 걸리는 지 뭐가 문제인 건지 조금만 알려주시면 정말 감사할 것 같습니다 ㅠㅠ 아무리 찾아봐도 비슷한 케이스를 찾지 못했고, 많은 블로그와 유투브 영상을 참고해도 원인을 알 수가 없었습니다.. [삼항연산자 추가 시][삼항연산자 제거시]해당 코드는 이렇습니다.[API][Reducer][Component]
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
안녕하세요 질문있습니다!
@ObjectType이랑 @EntryType이랑 같이 사용을 할수는 없는건가요??dto와 entry가 다른부분이 없어서 같이 쓰는게 낫겠다싶어서 시도하려니 안되네요확실히 역할을 나눠야하는건가요??
-
미해결성공적인 진짜 iOS 개발자 되기 [기초부터 실무까지]
이미지 기초 실행순서
안녕하세요 이미지로드 기초 실행순서가 헷갈려서 질문합니다.비동기방식으로 처리 안하면, 메인쓰레드는 직렬큐라 이미지뷰가 다 회전되고 난 후에 이미지 로드되는 시간이 오래 걸려야 하는것 아닌가요? 왜 쓰레드 락이 걸리는지 모르겠어요
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
반환타입을 Member로 한것은
public Member save(Member member)부분인데요, 반환타입을 Member로 준것이 domain의 멤버가 맞나요?그리고 이 Member안의 정보(아이디,이름)을 한번에 가져오기 위해서 반환타입을 Member로 준게 맞을까요?
-
미해결스프링 핵심 원리 - 기본편
() {} 이거 빨리치시던데 어떻게하나요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 바로치면 ({) 이렇게 나오던데 빨리치는법이있나요?
-
미해결스프링 핵심 원리 - 기본편
람다식 화살표는 어떻게 입력하는건가요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 인터넷 검색해봐도 답이안나오네요 람다식이 뭔지만나오고입력어떻게하는거죠?
-
미해결Vue3 완벽 마스터: 기초부터 실전까지 - "실전편"
header값이 들어오지 않습니다
_limit:3을 줬는데headers에 x-total값이 나오지 않습니다ㅜㅜ!PostListView.vue<template> <div> <h2>게시글 목록</h2> <hr class="my-4" /> <div class="row g-3"> <div v-for="post in posts" :key="post.id" class="col-4"> <PostItem :title="post.title" :content="post.content" :create-at="post.createAt" @click="goPage(post.id)" ></PostItem> </div> </div> <nav class="mt-5" aria-label="Page navigation example"> <ul class="pagination justify-content-center"> <li class="page-item"> <a class="page-link" href="#" aria-label="Previous"> <span aria-hidden="true">«</span> </a> </li> <li class="page-item"><a class="page-link" href="#">1</a></li> <li class="page-item"><a class="page-link" href="#">2</a></li> <li class="page-item"><a class="page-link" href="#">3</a></li> <li class="page-item"> <a class="page-link" href="#" aria-label="Next"> <span aria-hidden="true">»</span> </a> </li> </ul> </nav> <hr class="my-5" /> <AppCard> <PostDetailView :id="2"> <!-- index.js에서 PostDetailView안에 props가 true이면 화면에 나옴 --> </PostDetailView> </AppCard> </div> </template> <script setup> import PostItem from '@/components/posts/PostItem.vue'; import PostDetailView from '@/views/posts/PostDetailView.vue'; import AppCard from '@/components/AppCard.vue'; import { getPosts } from '@/api/post'; import { ref } from 'vue'; import { useRouter } from 'vue-router'; const router = useRouter(); const posts = ref([]); const params = ref({ _sort: 'createAt', _order: 'desc', _limit: 3, }); // pagination const fetchPosts = async () => { try { const { data } = await getPosts(params.value); posts.value = data; } catch (error) { console.error(error); } }; fetchPosts(); const goPage = id => { // router.push(`/posts/${id}`); router.push({ name: 'PostDetail', params: { id, }, }); }; </script>
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
MemberForm 대신에 domain 내 Member가 있는데 이것을 사용하면 안되나요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)예[질문 내용]위 질문에 대해 김영한님이 옛날에 답해주신 내용이,create(Member member)처럼 사용이 가능은 하나, 다양한 정보를 필요로 하는 경우가 있어 MemberForm 클래스를 따로 만드는 게 낫다는 말씀이었습니다. 여기서 궁금한 점이,MemberForm 클래스가 controller 패키지에 있어도 되는건가요?, 매핑 시 스프링 컨테이너에서 controller 를 찾는다고 하던데 이 뜻이 @Controller가 붙은 클래스를 찾는다는 의미인거지 Controller 패키지를 조사한다는 의미는 아닌거죠?그래서 MemberForm도 controller 패키지 내부에 있을 수 있는거고.. 제가 이해한게 맞나요? 1번 질문과 유사한 질문입니다만,Mapping 시 @Controller 가 붙은 클래스를 전부 조사하여 해당 주소에 Maaping된 메서드가 있으면 호출하는 방식이면 클래스명은 따로 @Controller 조사할때 상관은 없는거죠?
-
해결됨[중급편] 코인 가격 모니터링 앱 제작 (Android Kotlin)
관심있는 코인/관심없는 코인 업데이트 오류
하트를 누르면 값이 바뀌긴 하나 화면에 반영이 되진 않습니다.깃허브 주소https://github.com/Hju95/coin
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 레딧 사이트 만들기(NextJS)(Pages Router)
댓글 리스트 불러오는 핸들러에서
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 이 부분에서 Comment DB에 postID가 언제 저장된 것일까요??댓글 생성 부분에서는 Post 정보만 저장하지 않았나요?? Post정보를 저장하면 postId가 자동저장되는건가요??댓글을 생성하면 해당 댓글의 postId는 Null값이 아닌가요?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
강의 후반쯤에 편의기능 메서드들을 알려주시는데
service 메서드 안에서 한 줄이며 끝날 것을ex) response.setHeader("Content-Type", "text/plain;charset=utf-8");편의 기능을 쓰기 위해 함수를 만들어서 service메서드 안에서 했던 것과 같이 일일이 다 설정해주고private void content(HttpServletResponse response) { //Content-Type: text/plain;charset=utf-8 //Content-Length: 2 //response.setHeader("Content-Type", "text/plain;charset=utf-8"); response.setContentType("text/plain"); response.setCharacterEncoding("utf-8"); //response.setContentLength(2); //(생략시 자동 생성) }다시 service메서드 안에서 호출해주기까지 하는데 더 코드를 많이 쓰고 귀찮은 것 같은데 이게 왜 편의 기능인가요??
-
미해결
실행 시 연결 페이지 오류
이 코드를 활용해서 진행하고 있는데요 js파일에서 실행을 시키면 크롬창에서 제가 가지고 있는 파일로 링크가 나옵니다ㅠㅠ 도와주세요ㅠ import Grid from 'tui-grid'; import 'tui-grid/dist/tui-grid.css'; const options = { el: document.getElementById('grid'), columns: [{ header: 'Name', name: 'name' }, { header: 'Artist', name: 'artist' }, { header: 'Price', name: 'price' }, { header: 'Genre', name: 'genre' } ], data: [{ name: 'Beautiful Lies', artist: 'Birdy', price: 10000, genre: 'Pop' }] }; const grid = new Grid(options); // 그리드 인스턴스 생성 const rowData = [{ name: 'X', artist: 'Ed Sheeran', price: 20000, genre: 'Pop' }, { name: 'A Head Full Of Dreams', artist: 'Coldplay', price: 25000, genre: 'Rock' } ]; rowData.forEach(row => { grid.appendRow(row); });
-
미해결[2026년 출제기준] 웹디자인개발기능사 실기시험 완벽 가이드
공지사항 갤러리가 안먹혀요 ㅠ
<!DOCTYPE html><html lang="ko"><head><meta charset="UTF-8"><title>Document</title><link rel="stylesheet" href="css/style8.css"></head><body><div class="container"><div class="left"><header><div class="header-logo"><a href="#"><img src="images/logo-header.png" alt=""></a></div><div class="navi"><ul class="menu"><li><a href="#">menu</a><div class="sub-menu"><a href="#">sub-menu</a><a href="#">sub-menu</a><a href="#">sub-menu</a><a href="#">sub-menu</a></div></li><li><a href="#">menu</a><div class="sub-menu"><a href="#">sub-menu</a><a href="#">sub-menu</a><a href="#">sub-menu</a><a href="#">sub-menu</a></div></li><li><a href="#">menu</a><div class="sub-menu"><a href="#">sub-menu</a><a href="#">sub-menu</a><a href="#">sub-menu</a><a href="#">sub-menu</a></div></li><li><a href="#">menu</a><div class="sub-menu"><a href="#">sub-menu</a><a href="#">sub-menu</a><a href="#">sub-menu</a><a href="#">sub-menu</a></div></li></ul></div></header></div><div class="right"><div class="slide"><div><a href="#"><img src="images/slide-01.jpg" alt=""></a><a href="#"><img src="images/slide-02.jpg" alt=""></a><a href="#"><img src="images/slide-03.jpg" alt=""></a></div></div><div class="items"><div class="news"><div class="tab-inner"><div class="btn"><a href="#">공지사항</a></div><div class="tab1"><a href="#">운영위원장 후보자 추천을 받고 있습니다.<b>2020.01.09</b></a><a href="#">홈커밍데이 진행위원회 결과를 다운로드 받으세요.<b>2020.01.07</b></a><a href="#">카드결제 무이자 이벤트 한시적 10월 20일까지<b>2019.12.31</b></a><a href="#">보안강화 시스템 작업 안내 공지<b>2019.12.20</b></a><a href="#">부여 가을연꽃축제 10주년 콘서트 축제<b>2019.12.20</b></a></div></div></div><div class="gallery"><div class="tab-inner"><div class="btn"><a href="#">갤러리</a></div><div class="tab2"><a href="#"><img src="images/gallery-01.jpg" alt=""></a></div></div></div><div class="shortcut"><a href="#"><img src="images/shortcut.jpg" alt=""></a></div></div><footer><div class="copy">(주)이스타컴퍼니 | 대표자 : 최종윤 | 개인정보관리책임자 : 이주현 부장<br> 사업장주소 : 인천광역시 중구 개항로 6층 (주)이스타컴퍼니</div><div class="sns"><div><a href="#"><img src="images/sns-01.png" alt=""></a><a href="#"><img src="images/sns-02.png" alt=""></a><a href="#"><img src="images/sns-03.png" alt=""></a></div><div><select><option value="">여주군청 홈페이지</option><option value="">한국관광공사</option><option value="">여행자보험가입</option></select></div></div></footer></div></div><script src="script/jquery-1.12.4.js"></script><script src="script/custum8.js"></script></body></html> @charset "utf-8";body{font-size: 15px;}a{color: #000;text-decoration: none;}.container{}.container>div{ height: 650px; float: left;}.left{ width: 200px;}.right{ width: 800px;}header{}header>div{}.header-logo{ height: 100px; line-height: 130px;}.navi{ margin-top: 30px;}.menu{ padding: 0; width: 90%; margin: auto;}.menu li{ list-style: none; text-align: center; }.menu li>a{ border: 1px solid #000; display: block; padding: 5px; transition: 0.5s;}.menu li:hover>a{ background-color: #000; color: #fff;}.sub-menu{ border: 1px solid #000; display: none;}.sub-menu a{ display: block; padding: 5px; transition: 0.5s;}.sub-menu a:hover{ background-color: #000; color: #fff;}.slide{ width: 800px; position: relative; height: 350px; }.slide>div{ font-size: 0;}.slide>div a{ position: absolute; top: 0; left: 0; opacity: 0; animation: slide 10s linear infinite;}.slide>div a:nth-child(1){ animation-delay: 0;}.slide>div a:nth-child(2){ animation-delay: 3.5s;}.slide>div a:nth-child(3){ animation-delay: 7s;}@keyframes slide{ 0%{opacity: 0;} 5%{opacity: 1;} 35%{opacity: 1;} 40%{opacity: 0;} 100%{opacity: 0;}}.items{ overflow: hidden;}.items div{ height: 200px; float: left; box-sizing: border-box;}.news{ width: 300px;}.tab-inner{}.btn{}.btn>a{ border: 1px solid #000; display: inline-block; padding: 5px; width: 130px; text-align: center; border-radius: 5px 5px 0 0;}.tab1, .tab2{ border: 1px solid #000; height: 160px;}.tab1 a{ display: block;}.tab2 img{ width: 100px;}.gallery{ width: 300px;}.shortcut{ width: 200px;}footer{ overflow: hidden;}footer>div{ height: 100px; float: left; box-sizing: border-box;}.copy{ width: 600px; text-align: center; padding-top: 30px;}.sns{ width: 200px;}.sns div{ text-align: center;}.sns div:first-child{ padding-top: 5px; }.sns div:last-child{ text-align: center; line-height: 35px;}
-
미해결[입문자를 위한 UE5] Part1. 언리얼 엔진 블루프린트
구구단 연습문제 관련 질문입니다..
안녕하세요. 좋은 강의 너무 잘보고 있습니다 !! 다름이아니라 구구단 연습문제를 하는 중에 ForLoop에 대한 질문이 있어서 남깁니다.구구단 예제에서 루프 안에 루프가 돌아가는 것이라고 말씀해주셨는데, 그 개념자체가 잘 이해가 안갑니다ㅠㅠ제 생각으로 위 사진의 노드진행을 보면 결과값이 2*1다음에 3*2, 4*3 ... 이런식으로 나올것 같은데 그게 아니라 B에서 루프가 끝까지 돌고 다시 A로 돌아오게 된다는 그 상황자체가 이해가 안갑니다.. 도와주세요 선생님ㅠㅠ
-
해결됨PM을 위한 데이터 리터러시(프로덕트 데이터 분석)
잘못된 지표에 관하여
안녕하세요 :)제가 선정한 지표가 잘못되거나 문제상황에 최적화되지 않은 지표라는것을 깨닫기에는 outpout metric에 영향을 미치지 않았다 정도로 점검할 수 있는걸까요? 좀 더 이전에 알아채는 방법은 없을까요?
-
해결됨모두의 깃 & 깃허브
(END)를 어떻게 없애나요??
git 명령어를 입력하고나면, (END)줄이 자동으로 나타나서 q를 입력해 따로 빠져나오지 않은 상태에서는 명령어를 추가적으로 입력 할 수 없어서 불편하더라구요.예를 들어 git log --oneline을 통해 두개의 해시태그를 복붙해야하는 상황에서 q를 눌러 빠져나오지 않으면 명령어 입력이 안돼서, 메모장에 두개의 해시태그를 따로 복붙하지않는이상 맥은 클립보드가 지원이 안돼서 하나밖에 복사가 안되기때문에 하나밖에 복사를 못하고 빠져나오는 상황이 벌어집니다..강사님 보면 (END)없이 다음같이 계속 명령어입력이 가능하던데 어떻게 이렇게 만들까요??
-
해결됨스프링 DB 1편 - 데이터 접근 핵심 원리
오타
좋은 강의 감사합니다. pdf 6. 스프링과 문제 해결 - 예외 처리, 반복11페이지에 MemberServiceV4Test 클래스에 @Slf4j 가 필요합니다. 중요친 않지만..좋은 강의 제공해주셔서 감사해서 말씀드립니다.
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
동전교환문제 dfs 질문이있습니다
실행하였을 때 생각나는 테스트케이스 모두 통과되는데 오답이라고 나오는 반례가 어떤 게 있을까요?....import java.util.*; class Main{ static int number, result; static boolean check = false; boolean flag=false; public void DFS(int L,int sum, int[] arr){ if(sum>result || check) return; if(sum==result){ System.out.println(L); check = true; } else{ for(int i=0; i<number; i++) { DFS(L + 1, sum+arr[i], arr); } } } public static void main(String[] args){ Main T = new Main(); Scanner kb = new Scanner(System.in); number =kb.nextInt(); int[] arr = new int[number]; for(int i=0; i<number; i++){ arr[i] = kb.nextInt(); } Arrays.sort(arr); int first = 0; int last = arr.length-1; while(first<last){ int ch = arr[first]; arr[first++] = arr[last]; arr[last--] = ch; } result = kb.nextInt(); T.DFS( 0 , 0,arr); } }
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
질문입니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]이렇게 실패라고 뜨는데 어떤부분이 잘못되어서 그런건가요?
-
미해결[백문이불여일타] 데이터 분석을 위한 중급 SQL
GROUP BY
해커랭크 Top Earners 문제에서 ORDER BY 에서 내림차순을 안하고 GROUP BY에서 내림차순을 쓰고 ORDER BY를 안해도 정답이 되는데 두 방법의 차이점이 있나요?