묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
임베디드 타입 예시 코드 관련 질문
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]임베디드 타입 강의 (5:30)에서, @ManyToOne을 지웠는데, 강사님의 Team의 @OneToMany가 어떻게 되어 있기에 H2 데이터베이스와 연결했을 때, Member table에 FK로 TEAM_ID가 들어가게 되는지 (6:58)궁금합니다.저 같은 경우에는, Team의 어노테이션이 이렇게 되어있는데,@OneToMany(mappedBy = "team") private List<Member> members = new ArrayList<>();그대로 실행시켰을 때, 아래처럼 매핑이 잘못되었다는 문구가 뜹니다.Exception in thread "main" org.hibernate.AnnotationException: Collection 'hellojpa.Team.members' is 'mappedBy' a property named 'team' which does not exist in the target entity 'hellojpa.Member'
-
미해결
수강기한 연장 부탁드립니다
안녕하세요회사 프로젝트에 겹쳐서 미루다보니 수강기한이 점점 다가오는데 분량이 너무 많아서요수강 기한 연장 부탁드립니다!!
-
미해결[입문자를 위한] QGIS로 시작하는 데이터 시각화
파일이 좀 이상한데요
실습용자료 csv파일이용하였더니 점으로만 생성됩니다. 뒷배경없이요 그리고 shp파일도 없구요
-
미해결Next.js 15: Full-Stack Development
한글로 할 일 등록시 리스트 업데이트가 되지않습니다.
안녕하세요.강의를 보면서 차근차근 작업중인데요. 테스트 하다보니 한글로 제목과 내용을 작성하고 등록을 하면 등록이 완료되었다고 뜨나 실제 리스트 페이지에선 업데이트가 되지않고 있습니다. 제가 설정을 빠트린게 있는걸까요? 실제로 영문이나 숫자로만 입력후 등록하면 리스트에도 잘 반영됩니다.
-
해결됨[VOD] 6주 완성! 개발 실무를 위한 고농축 바이브코딩 (Cursor AI, Figma)
figma 연결오류
피그마 mcp연결이 안되요...링크주신 피그마도 유료계정결제하고 피그마연결블로그도 보고했는데.. 연결되었다고 나오는데 커서에 세팅에 빨간불이 안없어지고 [INFO] Connecting to Figma socket server at ws://localhost:3055...[INFO] FigmaMCP server running on stdio[INFO] Connected to Figma socket server[DEBUG] Received message: "Please join a channel to start chatting"[LOG] myResponse"Please join a channel to start chatting"[INFO] Received broadcast message: "Please join a channel to start chatting"이런에러만뜨고요..로그를 보니 피그마 소켓 서버에는 연결이 되었지만, 채널에 참여하라는 메시지가 계속 표시되고 있습니다. 이는 피그마 플러그인이 실행 중이지만 채널 연결이 완료되지 않았다는 의미입니다.피그마에서 다음 단계를 확인해보세요:피그마 앱에서 Cursor Talk to Figma 플러그인이 실행되고 있는지 확인플러그인에서 채널 생성 또는 참여가 필요할 수 있음플러그인에서 채널 ID(udfelzqr)를 정확히 입력했는지 확인피그마 플러그인 측에서 채널 연결이 완료되어야 터미널에서 실행한 명령이 제대로 작동할 수 있습니다.현재는 이미 구현한 색상 토큰 시스템을 계속 사용하는 것이 좋겠습니다. 피그마 연결이 필요하시면 피그마 플러그인 설정을 다시 확인해주세요. 커서는 이렇게이야기하는데 왜 안되는지 알수가없습니다..ㅠㅠ
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
병합정렬
병합정렬 관련하여 강의나 인사이트 얻을 수 있는 글 추천해주실 수 있나요?
-
미해결우리를 위한 프로그래밍 : 파이썬 중급 (Inflearn Original)
chapter05_02 클로저 질문사항 !
def closure_ex1(): # Free Variable # 클로저 영역 series = [] # 함수 밖에 선언된 변수임에도 불구하고, 함수 호출이 끝나도 사라지지않고 계속 유지됨 def averager(v): series.append(v) print("inner >> {} / {}" .format(series, len(series))) return sum(series) / len(series) return averager avg_closure1 = closure_ex1() !!!해당부분은 nonlocal 선언을 하지않았는데 어떻게 자유 변수로 설정이되는건가요?!!!
-
미해결[VOD] 6주 완성! 개발 실무를 위한 고농축 바이브코딩 (Cursor AI, Figma)
강의 챌린지 참여
안녕하세요. 강의를 이전에 구매하였는데 해당 강의가 챌린지 형태로 진행한다고 들었습니다.기존 구매자는 챌린지에 참여할 수 없을까요?
-
미해결비전공자 혼자서 하루 만에 수익화 앱 출시하기
스포트라이트
쳇gpt에 요구사항과 핵심기능 입력후에스포트라이트로 진행하셨는데, 맥북환경 아닌 윈도우 환경에서는 어떻게 해야하나요?
-
미해결[4주 과정] <클로드 코드> 완독 챌린지 : 매일 1시간씩 4주 동안 클로드 코드 도서 완독하기!
뭘 하고 있는지 모르겠네요.
돈내서 책사고돈내서 챌린지 참가하고돈내서 20달러 구독하고에러와 사투만 벌이고 있으니책 불질러 버리고 싶네요.
-
미해결[UI3 업데이트] 피그마 배리어블을 활용한 디자인 시스템 구축하기
인프런 피그마 교육계정 연장
안녕하세요. 피그마 계정을 인프런 교육용계정으로 승인받아 사용하고 있었습니다. 초반에 너무 짧게 설정을 해서 그런지, 아직 강의를 다 못들었는데 6일이 남았다고 해서요.혹시 추가 연장이 가능한가요? 확인부탁드립니다.감사합니다.
-
미해결한국인이 좋아하는 속도로 때려넣는 파이썬
보조 기억 장치와 보조기억장치가 바뀐거 같습니다.
[프로그램 설치 오류 문의]프로그램 설치 오류 발생시 사용중인 컴퓨터의 환경에 대한 상세 스크린샷을 함께 제공해 주셔야 합니다!또한, 강의에서 소개한 내용과 완전히 동일한 방식으로 설치를 진행하셨는지도 재확인 부탁드려요! [코드 실행 오류 문의]반드시 코드와 에러메시지의 스크린샷을 첨부해 주셔야 합니다!둘 중 하나라도 누락되면 도움을 드릴 수 없습니다! [그 외 오류 문의]그 외 오류가 발생한 경우 최대한 스크린샷이나 코드 등, 상황을 전달할 수 있는 자료를 수집하시어 함께 제공해 주세요.
-
해결됨Cursor AI로 만들면서 배우는 Web & Javascript
미업로드된 영상강의 업로드 일정이 궁금합니다.
강사님, 안녕하세요. 좋은 강의를 열어주셔서 감사합니다!현재 업로드한 강의는 모두 들었으나, 아래 영상은 미제공되어 업로드 일정 문의드립니다.1. 8/30 업로드 예정이나 미업로드된 강의(54, 55, 56, 57)2. 영상 편집 중으로 미업로드된 강의(59)3. 8/31 업로드 예정이나 미업로드된 강의(62, 63, 64, 65, 66, 67, 68, 69)
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
fetch join과 영속화와 OSIV의 관계
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]fetch join의 동작에 대하여 의구심이 들어 찾아봤더니 "fetch join의 경우 SQL에서 사용하는 join의 종류가 아닌 JPQL에서 성능 최적화를 위해 제공하는 기능인데요.fetch join은 조회하는 주체가 되는 entity 외에 fetch join이 걸린 연관 관계가 있는 entity까지 함께 select 하여 영속화합니다." 라고 합니다.영속성 컨텍스트는 기본적으로 트랜잭션 범위내에서 생성되고 종료되는거 할거같은데, 어떻게 컨트롤러에서 트랜잭션이 걸려있지 않은 메서드를 바로 호출해서 사용해도 이러한 것이 가능한지 궁금해서 찾아보니 OSIV라는게 있더군요.OSIV는 기본적으로 트랜잭션이 시작 후 종료되어도 일정 부분은 영속성 컨텍스트를 웹요청 전체에 열어둔다.때문에 OSIV를 끄면 지연로딩같은건 컨트롤러에서 이루어지게 코딩해두었으니 예외가 뜬다.근데 여기서 문제는 OSIV를 끄면 fetch join도 작동안해야할거같은데 작동을 합니다. 레포에 눈에 보이지 않는 트랜잭션이라도 걸려있는건가요?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
자신 필드에도 get으로 접근하는 이유가 있을까요?
[질문 내용]OrderItem에서 가격 총합을 구할 때 자기 자신의 필드임에도 return orderPrice * count;이렇게 바로 쓰기 보다는public int getTotalPrice() { return getOrderPrice() * getCount(); }get으로 가져오시더라구요. 그렇다면 Order에서는//==조회 로직== public int getTotalPrice() { int totalPrice = 0; for (OrderItem orderItem : orderItems) { totalPrice += orderItem.getTotalPrice(); } return totalPrice; }for문에 orderItems에도 getOrderItems()로 하셨었나? 하고 봤더니 이거는 바로 접근을 하시는데자기 필드를 get으로 접근 하는 것이 조금 어색한데, 혹시 이유가 있을까요?
-
미해결토비의 클린 스프링 - 도메인 모델 패턴과 헥사고날 아키텍처 Part 1
UseCase 메서드 단위에 대한 Best Practice
안녕하세요! 토비님.헷갈리는 개념이 하나 있어서 여쭤보고 싶습니다.바로 헥사고날 아키텍처에서 UseCase의 책임 범위인데요.우선 정답은 없다는 것은 알고 있습니다. 다만 Best Practice나 권장되는 방법이 있는지, 그리고 토비님의 고견이 궁금하여 질문드리게 되었습니다. 기능 단위로 UseCase 인터페이스 분리하기 vs 연관된 기능은 UseCase 인터페이스에 묶음으로 제공하기(메서드별로)입니다. 전자는 SRP가 매우 엄격하게 준수되고, 테스트 용이성, 개별 인터페이스별로 정책을 다르게 적용할 수 있다는 장점들이 있지만 과도하게 인터페이스화를 하다 보니 관리할 포인트가 많아져 복잡해진다는 게 단점인 것 같습니다. 후자는 SRP가 엄격하게 준수되지 않더라도, 관련된 기능을 응집도 있게 관리하기 때문에 테스트 용이성이 조금 떨어지고, 일관된 정책을 관리하거나 인터페이스가 비대해질 수도 있다는 단점이 있지만, 응집도 있게 관리하여 유지보수에는 편한 장점이 있는 것 같습니다. 코드를 예시로 보면 아래처럼 콘서트를 조회한다고 했을 때, 일반적으로 PK를 기반으로 조회하지만, 아래와 같이 콘서트명도 unique하고, 가수도 1개의 진행 중인 콘서트만 가지고 있을 수 있을 때 조회 조건이 Id, Name, ArtistName으로 분류될 수 있다고 예시를 들어보겠습니다.public interface GetConcertUseCase { ConcertResult findById(Long concertId); ConcertResult findByName(String name); ConcertResult findByArtistName(String ArtistName); ConcertResult findByIdWithSchedules(Long concertId); // Aggregate Member인 ConcertSchedule 목록 정보도 포함하여 조회 }위에처럼 구성하는 게 후자 방식이고 응집도가 높다고 생각합니다. 그런데 해당 방식은 유스케이스가 비대해질 수 있고, 단일 책임 원칙에서 벗어날 수 있다는 의견 때문에 조회 목적별로 유스케이스 분리하는 것을 권장하는 의견도 있습니다. (전자 방식)public class GetConcertByIdUseCase { ... } public class GetConcertByNameUseCase { ... } public class GetConcertByArtistUseCase { ... } public class GetConcertByIdWithSchedulesUseCase { ... } 정답은 없어서 프로젝트 규모나, 각자의 스타일, 기능 분석에 의해 정해지겠다만, 보편적으로 이런 경우 어떻게 접근하는 게 Best Practice인지 감이 잡히질 않아 질문드리게 되었습니다.
-
미해결죽음의 Spring Batch: 새벽 3시의 처절한 공포는 이제 끝이다.
스냅샷 읽기
cursorReader에서 스냅샷을 읽어서 동일한 스탭에서 데이터가 변경되어도 영향을 받지 않는다 하셨는데,이거는 mysql의 repeatable read와 관련된 스냅샷인걸까요? 아니면 배치 자체에서 제공하는 스냅샷인가요?
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
Distinct 사용 전 결과에 대한 의문
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용] { "orderId": 4, "name": "userA", "orderDate": "2025-09-24T02:20:27.580803", "orderStatus": "ORDER", "address": { "city": "서울", "street": "1", "zipcode": "1111" }, "orderItems": [ { "itemName": "JPA1 BOOK", "orderPrice": 10000, "count": 1 }, { "itemName": "JPA2 BOOK", "orderPrice": 20000, "count": 2 } ] }, { "orderId": 4, "name": "userA", "orderDate": "2025-09-24T02:20:27.580803", "orderStatus": "ORDER", "address": { "city": "서울", "street": "1", "zipcode": "1111" }, "orderItems": [ { "itemName": "JPA1 BOOK", "orderPrice": 10000, "count": 1 }, { "itemName": "JPA2 BOOK", "orderPrice": 20000, "count": 2 } ] }Distinct 사용 전 결과는 위와 같이 한 주문에 대해서 두 개의 결과가 나오는건 이해했습니다. 하지만 둘다 OrderItem 배열에 2개의 값이 각각 들어가있습니다.제 생각으로는 한쪽에는 JPA1 BOOK만,다른 한쪽에는JPA2 BOOK만 들어있어야하지 않나? 생각이 드네요. 실제 DB에서의 결과와 동일해야하는거 아닌가요?즉, DB에서의 결과 처럼 아래와 같이 반환되어야 맞지 않나요? { "orderId": 4, "name": "userA", "orderDate": "2025-09-24T02:20:27.580803", "orderStatus": "ORDER", "address": { "city": "서울", "street": "1", "zipcode": "1111" }, "orderItems": [ { "itemName": "JPA1 BOOK", "orderPrice": 10000, "count": 1 } ] }, { "orderId": 4, "name": "userA", "orderDate": "2025-09-24T02:20:27.580803", "orderStatus": "ORDER", "address": { "city": "서울", "street": "1", "zipcode": "1111" }, "orderItems": [ { "itemName": "JPA2 BOOK", "orderPrice": 20000, "count": 2 } ] }
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
레포지토리 계층에서의 트랜잭션에 대한 의문
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]본래 DB에 쿼리를 날리는 행위는 트랜잭션 안에서 이루어져야하는데본 강의부터 뒤쪽 강의까지 컨트롤러단에서 직접 레포지토리 메서드를 호출하여 코드를 작성하는걸 볼 수 있습니다.제가 알아본 바로는 아래와 같다고 합니다.쓰기 작업: 반드시 트랜잭션 필요.조회 작업: 트랜잭션 없어도 가능. 단, 지연 로딩 시 트랜잭션 없으면 예외 발생.실무 규칙: Repository는 트랜잭션 안 열고, Service 계층에 @Transactional로 비즈니스 단위 트랜잭션 관리.읽기 전용 조회 최적화: @Transactional(readOnly = true) 사용 → 성능 최적화 + 예외 방지.근데 뒤쪽 강의에서는 fetch join을 사용하니 지연 로딩에 대한 예외가 발생안한다고 쳐도현재 이 강의 초반에 /api/v1/simple-orders 에 대한 메서드에서는 실제로 지연 로딩에 의한 쿼리를 호출합니다.그렇다면 결국 트랜잭션이 없는 상태에서 이루어진 것이니 LazyInitializationException 예외가 발생해야하는거 아닌가요?그리고 보통 실무에서 컨트롤러에서 fetch join 쿼리 메서드(트랜잭션이 걸려있지 않은) 등을 레포지토리에서 바로 호출하는 경우가 흔한가요?
-
미해결Kafka & Spark 활용한 Realtime Datalake
git action실행 안됨
안녕하세요 강사님!ch03.8 git action 실행 강의 수강 중 입니다.강의안에 나온대로 디렉토리 설정 완료하고, master 파일의 버킷명도 제 고유버킷명으로 잘 변경했습니다. 이후 git push를 진행했고 push도 잘 된것을 깃허브에서 확인했는데요.문제는 git actions에 아무것도 올라오지 않는다는 것 입니다. 이에 chat-gpt를 통해 문제 원인을 분석해보니📌 원인master.yml 파일이 레포지토리 루트가 아니라kafka-producer/kafka-producer/.github/workflows/master.yml 처럼 하위 디렉토리 안에 들어 있었기 때문이에요.GitHub Actions는 오직 레포 최상위(repo-root/.github/workflows/) 위치만 인식합니다.하위 폴더 안에 있으면 파일이 있어도 무시돼서, Actions 탭에 아무것도 안 보였던 거예요.이와 같았습니다.chat-gpt의 수정대로 레포 구조를 바꿔 git push를 진행하면 actions에 워크플로우가 뜨고 빌드가 됩니다. 하지만 강의안에 나온 구조와는 상이해보여 질문드립니다. 정확한 문제의 원인과 해결 방안을 알 수 있을까요? 사진은 강의안대로 구성한 제 디렉토리 구조 입니다. chat-gpt가 제시한 해결 방안입니다. 이대로 했을 때 actions 탭에 워크플로우 뜸.