묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
데이터 초기화 시 CASCADE 옵션 궁금증
안녕하세요. PostConstruct 어노테이션을 사용해 Spring이 초기화될 때 DB에 데이터를 초기화 해주셨는데요. Order, OrderItem 클래스 필드에 cascade 옵션이 있어서 order나 orderItem만 em.persist() 하면 다른 엔티티도(delivery, orderItems 등) 다 같이 persist 되지 않나요? 왜 엔티티별로 따로 하나씩 persist 하셨는지 궁금합니다. 제가 잘못 이해한 거라면 설명 한번 부탁드리겠습니다!
-
해결됨(2025) 일주일만에 합격하는 정보처리기사 실기
Java언어 기출문제의 변형 간단한재귀함수 21:33
Add 5 출력 후 return super.sum(n) 을 하면 n=5 가 부모 클래스 SUM으로 호출되서 if문 false로 인해 else 실행하며 5 + sum(n-1) 은 알겠어 근데 왜 ADD4 가 출력되는지 정확하게 이해하지 못하겠습니다. 5+Sum(4)4+Sum(3)3+Sum(2)2+Sum(1)1+Sum(0)n <=0 -> returm 0으로 제가 풀이된 답은ADD 5Sum : 15 로 되는데요 무슨 차이 이길래 다시 자식에게 ADD 4를 호출시키느거죠
-
미해결업무가 100배 빨라지는 엑셀 데이터 활용과 분석 노하우
빈셀만 선택 후 데이터 동시입력_수식입력
이미 정렬 및 필터를 할 때 부서가 나오지 않는 경우는 화면 내용과 어떤 게 다르게 적용된 걸까요? 필터 정렬 후 값 복사를 안 해도 되는 건 편한데 수식이 왜 똑같이 안 나오는지 알고 싶습니다!
-
해결됨(2025) 일주일만에 합격하는 정보처리기사 실기
정적메서드+문자열
Java언어 기출문제의 변형 13:48for (int i = 0; i < maxL; i++) { if (i < a.length() && i % 2 == 0) { c.append(a.charAt(i)); } if (i < b.length() && i % 2 != 0) { c.append(b.charAt(i)) }}에서 왜 1번 if문 출력 후 2번 if문이 실행되는건가요1번 if문 실행이 종료 후 2번 실행이 되어야하는거 아닌가요?
-
해결됨코딩 없이 AI 자동화 전문가가 되는 법, n8n 완벽 가이드
Railway 사용 case 문의
안녕하세요 n8n 셀프호스팅 도커로 잘 학습을 완료햇는데요 항상 도메인이 바뀌기 때문에 요새 가장 많이 사용한다는 railway를 통해서 호스팅을 해보려고하는데요 기존에 학습한 도커 컨테이너 이미지 들과 환경설정들을 이관하고 싶은데 혹시 이부분에 대해서 추가 강의를 해주실수 있을까여?
-
미해결[C#/.NET 7.0]어서와, WPF는 처음이지?
postgresql 설치 문제
https://choincnp.tistory.com/76위 링크와 동일한 설치 문제가 계속 발생합니다 현재 다운로드 링크에 있는 버전 전부 발생하며 해결 방법을 다 실행해 봐도 해결이 안됩니다. 그나마 해결됐던데 11.2-1 버전 설치인데 설치는 성공했지만 강의 해주시는 15 버전과 UI가 꽤 다른 점이 있네요 15.5 버전 설치 파일을 올려주시거나 예전 버전들 설치 파일 링크에 접근할 방도가 있을까요?
-
미해결
창의성은 연결이다
기능적,유사성 기반,상징적/은유적,인과적 연결 등을 통해 창의성을 발휘할 수 있다 철학도 마찬가지이다 우리가 푸는 문제도 이러한 것들을 토대로 만들어 졌기에 계속해서 반복하다 보면 우리도 모르게 이런 사고 회로를 갖는 것이다
-
미해결실전! GitHub Actions으로 CI/CD 시작하기
슬랙 연동 안됨
안녕하세요 강의 잘 듣고 있습니다.슬랙 연동하는 부분이 지속적으로 안돼서 어떻게 해결해야 하는지 여쭤보고 싶습니다. 강의에 나온대로해도 안되길래 payload를 간소화해보기도 했고, 직접 마켓플레이스에 들어가 v2.1.0 문법으로 수정하기도 했습니다. 그런데 워크플로우에서 계속해서 5회 리트라이에도 실패했다는 값이 출력됩니다. 웹훅 URL도 정상적으로 생성되어 있고, text 값을 수정해서 별도로 curl을 날려도 정상적으로 슬랙에 메시지가 전달되는 상태입니다. action을 통할 때에만 실패하네요.. 혹시 슬랙이 무료판이라 그런걸까요.. 아래는 워크플로우 로그와 yaml 설정값입니다. Run slackapi/slack-github-action@v2.1.02 with:3 webhook: ***4 webhook-type: incoming-webhook5 payload: {6 "text": "리포지토리 생성 결과: success"7 }8 errors: false9 payload-templated: false10 retries: 511 env:12 ACTIONS_STEP_DEBUG: true - name: slack if: always() uses: slackapi/slack-github-action@v2.1.0 with: webhook: ${{ secrets.SLACK_WEBHOOK_URL }} webhook-type: incoming-webhook payload: | { "text": "리포지토리 생성 결과: ${{ steps.create-repo.outcome }}" }
-
해결됨38군데 합격 비법, 2025 코딩테스트 필수 알고리즘
수업교재 링크 문의
안녕하세요! 수업 교재 링크에서 제목만 뜨고 코드나 내용 설명은 안뜨네요ㅠㅠ pdf로 열면 뜨는데 코드가 짤리게 나와서 드래그 복사를 해도 짤린 부분까지만 복사가 되요ㅜ 강의 영상에서처럼 강의 자료를 보려면 어떻게 해야 될까요?
-
해결됨초초보도 할 수 있다! 파이썬으로 쓱 만드는 스페이스 인베이더
숫자를 바꿔도 이미지가 바뀌지 않습니다
크기나 위치 숫자를 바꿔도 실행하면 변하지 않아서 질문드립니다.
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
order.getOrderItems() 시 필드 접근 안했는데 select문이 나가는 이유
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]안녕하세요.강의 자료에 orderItems.stream().forEach(o -> o.getItem()).getName()); // LAZY 강제 초기화라고 적혀있어서 그 위의 코드인 List<OrderItem> orderItems = order.getItems()에서는 DB에 SELECT 쿼리를 보내지 않는구나라고 이해했습니다. 근데 확인해보니 아래 코드를 PostMan으로 테스트를 해보았더니 orderItems : null 이지만SELECT절을 통해 데이터를 조회한 결과를 보였습니다.또한, order.getOrderItems()를 하지 않아도 orderItem을 조회하는 SELECT절이 나가더라구요 .. @GetMapping("/api/v1/simple-orders") public List<Order> ordersV1() { List<Order> all = orderRepository.findAllByString(new OrderSearch()); for (Order order : all) { order.getMember().getName(); // LAZY 강제 초기화 => 예외 발생 안함 ! why? Open Session in View(OSIV) 때문에 order.getDelivery().getAddress(); // LAZY 강제 초기화 => 예외 발생 안함 ! why? Open Session in View(OSIV) 때문에 order.getOrderItems(); // ? } // 원래는 LazyInitializationException이 발생하는게 정상이지만 OSIV로 인해 발생하지 않음 return all; } 다른 질문을 참고하였을 때 David님께서 아래와 같은 답변을 해주셨습니다.안녕하세요. Jeongmin Lee님:), 공식 서포터즈 Taewon David Hwang입니다.지연로딩(Lazy Loading)은 엔티티의 애트리뷰트에 접근할 때 데이터를 가져옵니다.그러나 하이버네이트에서 지정한 기본타입에 해당되는 것들은 기본적으로 지연로딩을 허용하지 않습니다.따라서 OrderItem의 애트리뷰트인 name, price, stockQuantty 중 하나라도 접근하게 되면 기본타입에 해당하는 name, price, stockQuantity의 데이터를 모두 불러오게 됩니다.David 선생님 의견에 따르면 엔티티의 에트리뷰트에 접근해야 데이터를 가져오는거 같은데 왜 위 사진같이 DB에 SELECT절을 호출 해 데이터를 가져오는건가요?
-
미해결[신규 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)
네이버카페 크롤링 실습
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 43강 페이지 안에 페이지가 있는 구조 : iframe 전환하기학습하고 있는데요. 현재 네이버 카페 구조가 바뀐것 같습니다.혹시 맞나요??아니면 제가 실습을 못따라가고 있는것인지 궁금합니다.
-
미해결C# 윈폼_ 응용프로그램 개발
솔루션 탐색기 WindowsFormApp 더블클릭 후 어셈블리명 변경안됨
거기다가 그 창이 안닫히네요 다시 껐다 켜도
-
해결됨초초보도 할 수 있다! 파이썬으로 쓱 만드는 스페이스 인베이더
해결되긴 했는데 이렇게 실행해도 되는지 질문 드립니다.
한글 사용자 명 자체를 영문으로 바꾸려다 허송세월(ㅜㅜ)하고 결국에 챗지피티 한테 물어봐서 import os, import sys 이용해서 실행하니 이미지가 뜨긴 합니다.이렇게 코드를 짜도 되는지 질문드립니다.
-
해결됨RabbitMQ를 이용한 비동기 아키텍처 한방에 해결하기
안녕하세요 "섹션2 8. Consumer간 작업 분배" 에서 질문 있습니다.
안녕하세요. 강의 잘 듣고 있습니다.섹션2. 8번 강의 11분 13초 쯤에 하시는 말씀에 의문이 들어 질문글 남깁니다. 이 부분 설명하실때 ' 컨슈밍을 할때 파라미터로 받은 초를 슬립을 준 뒤에 소진을 하겠다' 라고 하셨는데, 메시지를 받은 순간 이미 소진이 시작 된 것이고 각각 2초 4초 5초뒤에 소진이 끝나는 것 아닌가요? 조금 헷갈려서 질문 드립니다.좋은 강의 감사드립니다.
-
미해결Java/Spring 테스트를 추가하고 싶은 개발자들의 오답노트
빌드 안 되시는 분들 참고
Maven resources compiler 어쩌구자바 버전 문제제 기준 pom.xml에서 java.version 21로 올리고 프로젝트 설정에서 SDK/모듈도 동일하게 설정했더니 해소 됐습니다NoSuchFieldError 어쩌구lombok 버전이 자바 버전과 안 맞음.pom.xml lombok dependency의 버전을 자바랑 맞추기 https://jinseobbae.github.io/java/2023/02/27/lombok-version-compatibility.htmlUnsupported class file major version 65스프링부트 버전 문제3.3.0으로 올리니까 해소됐습니다
-
미해결GSAP의 ScrollTrigger를 활용한 포트폴리오 제작
스크립트 부분이 이해가 어렵네요
align = (e) => { setX(e.clientX); setY(e.clientY); },이 부분에서 align이 무슨 함수인가요?보통 함수 사용시에는 function이라던가 익명함수도 var, const등 변수에 할당하여 쓰던데 딸랑 이름만 있고 화살표 함수만 있는 함수는 처음봐서 헷갈립니다... if (activeImage) { gsap.set(image, { x: gsap.getProperty(activeImage, "x"), y: gsap.getProperty(activeImage, "y"), }); }여기서 굳이 activeImage를 밑에서 activeImage = image;이렇게 할당하여 사용할 필요가 있나요?그냥 바로 let으로 선언했던 image를 넣어도 상관없을 것 같아서요 그리고 이 강의에서 사용하셨던fade, fade.play(),fade.reverse()이 코드들은 gsap에서 사용하는 코드들인가요 아니면 일반 자바스크립트에서도 사용하는 코드들인가요..? 제가 기초가 부족해서 그런 걸 수도 있겠지만 jquery도 아니고 js에서 이렇게 사용하는 걸 처음봐서요,,,
-
미해결한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
컴포넌트 리렌더링 관련 질문
안녕하세요! 강의 잘 듣고 있습니다ㅎㅎ이번 강의에서 React dev tools의 'Highlight updates when components render' 옵션을 통해서 컴포넌트가 언제 리렌더링 되는지 감지하는 방법을 알려주셔서 해당 내용 학습 중에 궁금한게 생겨 질문 드립니다. 해당 옵션을 켜고, 이번 강의의 실습 내용 중에서 input 영역을 input component로 분리하면 다른 component와 어떠한 영향도 주고 받지 않으니까 input을 작성할 때 input 영역만 highlight가 될 거라 예상했는데요,실제로는 형제 컴포넌트도 다 같이 리렌더링 되는 것처럼 보이더라구요. 이 현상이 제 코드의 문제인건지, 다른 이유가 있는건지 궁금합니다. input component를 분리한 App.jsx와 Input.jsx를 아래에 코드로 첨부했습니다.[App.jsx]import { useState, useEffect, useRef } from 'react' import "./App.css" import Viewer from './components/Viewer' import Controller from './components/Controller' import Even from './components/Even' import Input from './components/Input' function App() { const [count ,setCount] = useState(0); const handleClickCount = (addValue) => { setCount(count + addValue) } return ( <div className="App"> <h1>Simple Counter</h1> <section> <Input /> </section> <section> <Viewer count={count} /> {count % 2 === 0 ? <Even /> : null} </section> <section> <Controller onCount={handleClickCount}/> </section> </div> ) } export default App[Input.jsx]import { useState } from "react"; const Input = () => { const [input, setInput] = useState(""); return ( <input value={input} onChange={(e) => { setInput(e.target.value) }} /> ) } export default Input;
-
미해결Vue3 완벽 마스터: 기초부터 실전까지 - "실전편"
title,content값이 비어서 저장되는데 제가 혹시 어떤 부분을 잘못 작성했는지 ㅜㅜ 알고싶습니다.
<template> <div> <h2>게시글 등록</h2> <hr class="my-4" /> <PostForm v-model.title="form.title" v-model.content="form.content" @submit.prevent="savePost" > <template #actions> <div class="pt-4"> <button type="button" class="btn btn-outline-dark me-2" @click="goPostListPage" > 목록 </button> <button class="btn btn-primary">저장</button> </div> </template> </PostForm> <!-- <form> <div class="mb-3"> <label for="title" class="form-label">제목</label> <input v-model="form.title" type="text" class="form-control" id="title" /> </div> <div class="mb-3"> <label for="content" class="form-label">내용</label> <textarea v-model="form.content" class="form-control" id="content" rows="3" ></textarea> </div> --> <!-- <div class="pt-4"> <button type="button" class="btn btn-outline-dark me-2" @click="goPostListPage" > 목록 </button> <button type="button" class="btn btn-primary" @click="goPostListPage"> 저장 </button> </div> </form>--> </div> </template> <script setup> import { useRouter } from "vue-router"; import { createPost } from "@/api/posts"; import { ref } from "vue"; import PostForm from "@/components/posts/PostForm.vue"; const router = useRouter(); const form = ref({ id: 0, title: "", content: "", createAt: Date.now(), }); const savePost = () => { try { // const data = { ...form.value, createAt: Date.now() }; createPost({ ...form.value }); goPostListPage(); // console.log("savePost data", data); } catch (err) { console.log("err", err); } }; // 목록이동 const goPostListPage = () => { router.push({ name: "PostList", }); }; </script> <style lang="scss" scoped></style> <template> <form> <div class="mb-3"> <label for="title" class="form-label">제목</label> <!-- v-model을 사용하지 않고, v-bind와 @input 이벤트를 사용하여 양방향 데이터 바인딩 --> <input :value="title" @input="$emit('update:title', $event.target.value)" type="text" class="form-control" id="title" /> </div> <div class="mb-3"> <label for="content" class="form-label">내용</label> <textarea :value="content" @input="$emit('update:content', $event.target.value)" class="form-control" id="content" rows="3" ></textarea> </div> <!-- <div class="pt-4"> <button type="button" class="btn btn-outline-dark me-2" @click="goPostListPage" > 목록 </button> <button type="button" class="btn btn-primary" @click="goPostListPage"> 저장 </button> </div> --> <slot name="actions"></slot> </form> </template> <script setup> defineProps({ title: String, content: String, }); // update:props데이터명 // 양방향 데이터 바인딩을 위해 사용 : 부모에게 내려받은 props를 업데이트 // update 접두사는 v-model과 함께 사용되는 이벤트 이름 defineEmits(["update:title", "update:content"]); </script> <style lang="scss" scoped></style>{ "posts": [ { "id": 2, "title": "제목2", "content": "내용2", "createAt": "2021-01-02" }, { "id": 3, "title": "제목3", "content": "내용3", "createAt": "2021-01-03" }, { "id": 4, "title": "제목4", "content": "내용4", "createAt": "2021-01-04" }, { "title": "제목8", "content": "내용83333333", "createAt": "2021-01-08", "id": 8 }, { "id": 9, "title": "", "content": "", "createAt": 1750817841654 }, { "id": 10, "title": "", "content": "", "createAt": 1750828553704 } ] }title,content값이 비어서 저장되는데 제가 혹시 어떤 부분을 잘못 작성했는지 ㅜㅜ 알고싶습니다.
-
해결됨아키텍처와 함께하는 부하(성능) 테스트 with Locust
강의자료 질문
안녕하세요 강의 듣기 시작했는데 강의자료는 따로 없는 거죠? PDF 파일이나, 사이트 등