inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

172만명의 커뮤니티!! 함께 토론해봐요.

업데이트 이후 조회

미해결

자바 ORM 표준 JPA 프로그래밍 - 기본편

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] em.find()로 가져온 후 이름을 바꾸고 commit 이전에 em.find()로 똑같은 id의 이름을 조회해서 이름을 확인했을 때 영속성 컨텍스트에서 1차 캐쉬로 조회하기에 바뀐 이름으로 조회되는 것이 맞나요?

  • java
  • jpa
염경호 댓글 1 좋아요 0 조회수 115

static 사용

해결됨

김영한의 실전 자바 - 중급 1편

package exception.ex; public class NetworkService { public void sendMessage(String data) { String url = "http://example.com"; NetworkClient networkClient = new NetworkClient(url); networkClient.initError(data); String connectResult = networkClient.connect(); if (isError(connectResult)) { System.out.println("[log] 오류 코드: " + connectResult); } else { String sendResult = networkClient.send(data); if (isError(sendResult)) { System.out.println("[log] 오류 코드: " + sendResult); } } networkClient.disconnect(); } private static boolean isError(String resultCode) { return !resultCode.equals("success"); } } 오늘 강의 중 작성해주신 코드입니다. isError() 를 static method로 잡으신 이유가 궁금합니다. instance method로도 가능할텐데 어떤 의도로 static 여부를 결정해야하는지 팁이 있을까요?

  • java
  • 객체지향
티티티 댓글 1 좋아요 0 조회수 117

import 오류 관련

미해결

[AI 실무] AI Research Engineer를 위한 논문 구현 시작하기 with PyTorch

안녕하세요 선생님, 주피터 test.ipynb 파일에서 models 파일의 StyleTransfer을 불러오는 기본적인 import가 안되어 문의 드립니다. 혹시 코드의 문제인가 싶어 loss.py라는 파일에 A라는 클래스를 만들고 똑같이 import 시도해 보았지만 실행이 되지 않습니다 ㅜ test와 loss 파일은 실행해 보았고 문제없이 돌아가는 것을 확인하였습니다. gpt를 통해 여러 방법을 시도해 보았지만 잘 풀리지 않아 질문 드립니다..

  • python
  • 딥러닝
  • pytorch
Emilie 댓글 2 좋아요 0 조회수 169

해당 강의가 실제로 현업에서 쓰는 방법들인가요??

해결됨

스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판

학습 관련 질문을 최대한 상세히 남겨주세요! 고민 과정도 같이 나열해주셔도 좋습니다. 먼저 유사한 질문이 있었는지 검색해보세요. 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요 강사님 이번에 강의를 구매한 학생입니다. 해당 강의가 실제로 현업에서 사용될 수 있는 방법들인가요? 해당 강의를 수강하고, 이를 바탕으로 프로젝트에 녹여내볼려고 하는데 현업에서 사용하지 않는 방법들이라던가 교육용 강의라면 고민을 좀 해봐야 될 것 같아 문의글 남깁니다 감사합니다.

  • java
  • mysql
  • spring-boot
  • kafka
  • redis
blackhole124 댓글 2 좋아요 0 조회수 225

정규표현식

해결됨

파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트 (장고 4.2 기준)

안녕하세요! 강의 들으며 많은 부분 배우고 있습니다. DateCoverter 정규표현식 부분을 보면서 드는 의문이 있어 질문드립니다. 제가 이해한 바가 맞다면, 정규표현식에서 {1,2} 부분은 앞부분의 패턴을 1번 또는 2번 반복한다고 이해했습니다. 그렇다면 r"20\d{2}/([1-9]|0[1-9]|1[0-2]){1,2}/([1-9]|0[1-9]|[12][0-9]|3[01]){1,2}" 라는 정규표현식에서 월과 일의 숫자를 체크하는 부분이 1번 또는 2번 반복될 수도 있으니 "2023/0303/1212"와 같은 문자열도 통과 가능한 것일까요?

  • react
  • python
  • django
  • web-api
  • htmx
김은혜 댓글 2 좋아요 0 조회수 131

상수, 문자 더하기 (참고) 부분 질문

해결됨

실전! Querydsl

안녕하세요. 상수처리에 궁금한 점이 있습니다. 3장 기본문법pdf의 p.21 참고를 강의촬영후 달아주셨는데요. Q1. '위와 같이 최적화가 가능' 이란 설명을 하셨는데 위 쿼리가 어떤 점에서 최적화가 된 쿼리인지 알고싶습니다. Q2. 상수를 더하는 것 처럼 최적화가 어려우면 SQL에 constant 값을 넘긴다. 이 말씀도 잘 이해가 되지 않습니다. 상수를 더한다는 표현과 상수를 넘긴다라는 표현이 낮설기만 한데요. 혹시 예시를 들을 수 있을까요?

  • java
  • jpa
창신동 장첸 댓글 1 좋아요 0 조회수 117

[오타 제보] 13. 스레드 풀과 Executor 프레임워크2

해결됨

김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성

[오타 내용] 대상 강의록 : 13. 스레드 풀과 Executor 프레임워크2.pdf 대상 위치 : p.2 close() 부분 오타 내용 변경 전: close() 는 자바 19부터 지원하는 서비즈 종료 메서드이다 변경 후: close() 는 자바 19부터 지원하는 서비스 종료 메서드이다

  • java
  • 객체지향
  • 동시성
  • multithread
  • thread
dev.rudevico 댓글 2 좋아요 0 조회수 99

8강 Spring Boot 프로젝트 세팅 2

해결됨

스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판

8강 Spring Boot 프로젝트 세팅 2 강의를 반복해서 보고 있습니다. 강의에서는 Multi Module 을 생성하기 위하여 Directory 를 생성하고, build.gradle 파일을 생성한 후 코드 입력 settings.gradle 에 Module 정의를 하시고 계십니다. 인텔리제이에서는 프로젝트에 Module 을 추가하기 메뉴가 있습니다. 인텔리제이 에서 프로젝트에 Module 을 추가하면, 강좌파일의 모듈처럼 생성이 되지 않습니다. project/module1, project/module2 이렇게 1단계 모듈만 작성이 가능합니다. 인터넷 검색자료에도 모듈작성이 1단계방식(에를들어 service-article, service-like)으로 되어 있습니다. 계층구조가 강의 내용이 보기 깔끔하여 따라 해보려 하는데 잘 되지 않습니다 디렉토리를 2단계로 작성( project/service/article)하고 build.gradle 파일을 직접 생성하면 "dependecies" 키워드도 자동안성이 되지 않습니다 인텔리제이 버전은 "IntelliJ IDEA 2024.3.3 (Ultimate Edition)", "Build #IU-243.24978.46, built on February 11, 2025" 입니다 인텔리제이가 버전업이 될때마다 메뉴라던가, 기능이 많이 바뀌기는 합니다만. 조금 답답합니다

  • java
  • mysql
  • spring-boot
  • kafka
  • redis
내멋으로 댓글 2 좋아요 0 조회수 189

댓글 최대 2 depth - CUD API 테스트 & 테스트 데이터 삽입 RestClient 호출시 null

미해결

스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판

학습 관련 질문을 최대한 상세히 남겨주세요! 고민 과정도 같이 나열해주셔도 좋습니다. 먼저 유사한 질문이 있었는지 검색해보세요. 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 댓글 최대 2 depth - CUD API 테스트 & 테스트 데이터 삽입 시 RestClient 호출시 null 발생 됩니다. 혹시 어느 부분을 봐야 할까요?? > Task :service:comment:test CommentApiTest > create() FAILED org.springframework.web.client.ResourceAccessException at CommentApiTest.java:36 Caused by: java.net .ConnectException at CommentApiTest.java:36 Caused by: java.net .ConnectException at Utils.java:1041 Caused by: java.nio.channels.ClosedChannelException at SocketChannelImpl.java:202 1 test completed, 1 failed > Task :service:comment:test FAILED FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':service:comment:test'. package kuke.board.comment.service.api; import kuke.board.comment.service.response.CommentResponse; import lombok.AllArgsConstructor; import lombok.Getter; import org.junit.jupiter.api.Test; import org.springframework.web.client.RestClient; public class CommentApiTest { RestClient restClient = RestClient.create("http://localhost:9001"); @Test void create() { CommentResponse response1 = createComment(new CommentCreateRequest(1L, "my comment1", null, 1L)); CommentResponse response2 = createComment(new CommentCreateRequest(1L, "my comment2", response1.getCommentId(), 1L)); CommentResponse response3 = createComment(new CommentCreateRequest(1L, "my comment3", response1.getCommentId(), 1L)); System.out.println("commentId=%s".formatted(response1.getCommentId())); System.out.println("\tcommentId=%s".formatted(response2.getCommentId())); System.out.println("\tcommentId=%s".formatted(response3.getCommentId())); } CommentResponse createComment(CommentCreateRequest request) { return restClient.post() .uri("/v1/comments") .body(request) .retrieve() .body(CommentResponse.class); } @Getter @AllArgsConstructor public static class CommentCreateRequest { private Long articleId; private String content; private Long parentCommentId; private Long writerId; } }

  • java
  • mysql
  • spring-boot
  • kafka
  • redis
요조 댓글 2 좋아요 0 조회수 169

아.. 혹시 이 강의 내용 맥북에서는 못하나요?

해결됨

챗GPT와 파이썬으로 주식 자동매매 앱 및 웹 투자 리포트 만들기

32bit 설정이 되지 않아서 찾아봤는데 MAC에서는 안되다고 하던데 방법이 없는지요?

  • python
  • 재테크
  • streamlit
  • chatgpt
  • 프롬프트엔지니어링
yh lee (gagdoc) 댓글 1 좋아요 0 조회수 214

트랜잭션 격리수준 질문

미해결

자바 ORM 표준 JPA 프로그래밍 - 기본편

애플리케이션 수준에서 Repeatable Read를 JPA는 항상 보장하는지 궁금합니다. 어떤 글에서는 DBMS의 격리수준 설정값에 따라 JPA도 동일한 격리수준 설정값을 갖는다고 하는데요. 대부분의 DBMS가 Read Commited라서 JPA도 ReadCommited인가보다 막연하게 생각했다가 아래 실습을 통해 큰 코를 다쳤습니다. 실습내용: TX1에서 MEMBER(id=1, age=20) 인 DB레코드를 em.find(Member.class, 1L)로 조회해서 엔티티객체를 얻는다. 이후 sleep(15초)을 걸어준다. TX2에서 h2-console에서 이 레코드를 업데이트 해서 age = 50 으로 변경하고 커밋을 한다. 그럼에도 불구하고 15초뒤 TX1에서 JPQL로 조회한 엔티티는 같은 주소값을 갖는 동일한 엔티티객체를 갖는다. 즉, age가 여전히 20이다. 어떻게 정리를 하는 것이 좋을까요? DBMS설정값을 따른다 vs Repeatable Read 참고: https://cheese10yun.github.io/jpa-jpql/

  • java
  • jpa
창신동 장첸 댓글 1 좋아요 0 조회수 74

axis=0, axis=1 개념 정리했습니다. 검토바랍니다.

해결됨

[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)

학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! 질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요 먼저 유사한 질문이 있었는지 검색해보세요 작업형1 모의고사2 2분지점 문제4에서 정리했습니다. axis=0 (기본값) → 행을 따라 연산, 열을 기준으로 결과 반환 sum(axis=0): 각 열(Column)의 합계 계산 count(axis=0): 각 열별 NaN 제외 개수 반환 drop(axis=0): 행(Row) 삭제 axis=1 → 열을 따라 연산, 행을 기준으로 결과 반환 sum(axis=1): 각 행(Row)의 합계 계산 count(axis=1): 각 행별 NaN 제외 개수 반환 drop(axis=1): 열(Column) 삭제 연산(sum, count 등)은 axis=0이면 열 기준, axis=1이면 행 기준 으로 수행되고, 반면에 삭제(drop)는 반대로 axis=0이면 행 삭제, axis=1이면 열 삭제 가 됩니다. 이 내용이 맞는지 검토 바랍니다. 맞다면 (sum, count 등)과 달리 삭제(drop)시에는 반대로 적용되는지가 궁금합니다.

  • python
  • 머신러닝
  • 빅데이터
  • pandas
  • 빅데이터분석기사
강민균 댓글 3 좋아요 0 조회수 614

질문 있습니다.

해결됨

실전! FastAPI 입문

안녕하세요. FastAPI로 개발한 어플리케이션을 Rocky 서버에 올려서 실행시키려고 합니다. 그런데, Sqlalchemy를 통해 DB와 연결하는 부분에서 UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb8 in position 61: invalid start byte 위와 같은 에러가 계속 발생하는데요. env에서 받아오는게 잘못됐나 싶어서 직접 스트링으로 넣어봐도 똑같은 에러가 계속 발생하고 있습니다. 서버의 locale도 찍어보면 LANG=ko_KR.UTF-8 LC_CTYPE="ko_KR.UTF-8" LC_NUMERIC="ko_KR.UTF-8" LC_TIME="ko_KR.UTF-8" LC_COLLATE="ko_KR.UTF-8" LC_MONETARY="ko_KR.UTF-8" LC_MESSAGES="ko_KR.UTF-8" LC_PAPER="ko_KR.UTF-8" LC_NAME="ko_KR.UTF-8" LC_ADDRESS="ko_KR.UTF-8" LC_TELEPHONE="ko_KR.UTF-8" LC_MEASUREMENT="ko_KR.UTF-8" LC_IDENTIFICATION="ko_KR.UTF-8" LC_ALL= 잘 설정되어있는데, 뭐가 문제일까요? 아래는 DB 연결하는 부분 코드입니다. from sqlalchemy import create_engine from sqlalchemy.orm import sessionmaker from core.settings.settings import settings DATABASE_URL = f"postgresql://{settings.DB_USER}:{settings.DB_PASSWORD}@{settings.DB_HOST}:{settings.DB_PORT}/{settings.DB_NAME}" print(f"DB: {DATABASE_URL}") engine = create_engine( DATABASE_URL, echo=True, connect_args={"options": "-c search_path=schema"} ) SessionFactory = sessionmaker(autoflush=False, autocommit=False, bind=engine) def get_db(): session = SessionFactory() try: yield session finally: session.close()

  • python
  • 리팩토링
  • orm
  • FastAPI
  • pytest
뱅준 댓글 2 좋아요 0 조회수 194

axis=0, axis=1의 정확한 워딩 문의드립니다.

해결됨

[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)

학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! 질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요 먼저 유사한 질문이 있었는지 검색해보세요 작업형1 모의고사2 2분지점 문제4에서 object컬럼을 삭제할 때 축 axis=1로 하라고 했는데. 여기서 axis=1은 object 행을 삭제한 건가요? object 열을 삭제한 건가요? 그 전에 axis=0은 열을 기준으로 하고, axis=1은 행을 기준으로 한다. 강의 시 이 둘의 개념을 의식적으로 구분하지 않고 워딩하셔서 이 경우 해석이 뒤죽박죽 입니다. 정리해보면 axis=0은 열을 기준으로 하고, axis=1은 행을 기준으로 한다는 것은 맞는데 표에서 "object 컬럼을 없앨 경우 워딩은 object(컬럼:열)을 삭제한다고 하지 않고, object(컬럼)의 전체 행 데이터가 삭제되는 것"이니 "object 행 삭제"라고 부른다? 이렇게 되는 건가요? 정확한 워딩을 부탁드립니다.

  • python
  • 머신러닝
  • 빅데이터
  • pandas
  • 빅데이터분석기사
강민균 댓글 3 좋아요 0 조회수 168

이벤트 폴링이 안되시는 분들

해결됨

스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판

스프링 최신버전으로 하신분들은 messageRelayPublishPendingEventExecutor가 Executer를 반환하면 안되고 TaskScheduler를 반환해야 한다고 하네요. @Bean public TaskScheduler messageRelayPublishPendingEventExecutor() { ThreadPoolTaskScheduler scheduler = new ThreadPoolTaskScheduler(); scheduler.setPoolSize(1); scheduler.setThreadNamePrefix("task-scheduler-"); scheduler.initialize(); return scheduler; } 이렇게 작성하시고 ArticleApplication에 @EnableScheduling을 추가해주시면 이벤트가 잘 폴링됩니다. @EntityScan(basePackages = "kuke.board") @SpringBootApplication @EnableJpaRepositories(basePackages = "kuke.board") @EnableScheduling public class ArticleApplication { public static void main(String[] args) { SpringApplication.run(ArticleApplication.class, args); } }

  • java
  • mysql
  • spring-boot
  • kafka
  • redis
gudwlszz 댓글 2 좋아요 1 조회수 174

스레드 작업 수행중 Ctrl + C 입력을 통한 인터럽트 명령이 제 생각대로 수행되지 않습니다.

해결됨

김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [소스 코드 다운로드 링크] https://drive.google.com/file/d/1c0QnKniulwUHetmd8iRalCwtm1o3RxSf/view?usp=share_link [질문 내용] 질문 대상 소스 코드 : NewOrderService.java - line 30 제 생각 : 스레드들이 작업을 수행중일 때 (mac 기준) ctrl + c 를 누르면 키보드 인터럽트가 발생하여 catch block에 잡혀서 line 31 의 log("일부 작업이 실패했습니다."); 코드가 수행될 것이라고 예상했습니다. 하지만 ctrl + c 를 입력하더라도 예외는 발생하지 않고, 스레드들이 정상적으로 처리되는 것이 실제 흐름이었습니다. 질문 1-1 . ctrl + c 입력은 인터럽트인가요? 질문 1-2 . 만약 1-1 에 대한 답변이 yes라면, 시스템 상의 인터럽트(?)는 맞지만 자바 프로그램 상의 인터럽트는 아닌 것인가요? 질문 1-3 . 만약 1-1 에 대한 답변이 yes라면, 이는 터미널 상에서만 입력 가능한 인터럽트이고, 인텔리제이에서는 불가능한 입력인가요? 질문 2 . (인텔리제이에서) 자바 프로그램에 대해서 예외를 일부러 발생시키려면 throw new IllegalStateException(); 등과 같이 코드를 통해서만 가능한가요?

  • java
  • 객체지향
  • 동시성
  • multithread
  • thread
dev.rudevico 댓글 1 좋아요 0 조회수 120

향상된 for 문 사용법 의문점

미해결

김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 배열의 입력과 출력 문제입니다. 스캐너로 배열을 입력받을 때 향상된 for문을 사용했더니 결과가 0,0,0,0,0이 나왔습니다. 주석처리된 일반 for 문으로 문제를 풀면 제대로 나옵니다. 두 가지가 같은 결과가 나올거라고 생각했는데 왜 다른 결과가 나온건지 알고싶습니다. package array.ex; import java.util.Scanner; public class Array02 { public static void main(String[] args) { Scanner input = new Scanner(System.in); int[] nums = new int[5]; //왜 안되는거지 for (int num : nums) { num = input.nextInt(); } // for (int i = 0; i < 5; i++){ // nums[i] = input.nextInt(); // } for (int i = 0; i < 5; i++){ System.out.print(nums[i]); if (i == 4){ break; } System.out.print(", "); } } }

  • java
  • 객체지향
이가영 댓글 1 좋아요 0 조회수 108

일대다 단방향 연관관계 질문드립니다.

미해결

자바 ORM 표준 JPA 프로그래밍 - 기본편

일대다 단방향 연관관계에서, @Entity public class Member { @Id @GeneratedValue @Column(name = "MEMBER_ID") private Long id; @Column(name = "USERNAME") private String name; ... getter and setter } @Entity public class Team { @Id @GeneratedValue @Column(name = "TEAM_ID") private Long id; private String name; @OneToMany @JoinColumn(name = "TEAM_ID") private List<Member> members = new ArrayList<>(); ... getter and setter } Member member = new Member(); member.setName("member1"); em.persist(member); Team team = new Team(); team.setName("teamA"); team.getMembers().add(member); em.persist(team); 위와 같은 일대다 단방향 연관관계에서, 1. 이렇게하면 Team엔티티의 members필드인 리스트에 값을 추가 및 변경(team.getMembers.add(member), team.setMembers())하고 Team엔티티를 저장하면, MEMBER 테이블에 대한 UPDATE쿼리가 추가적으로 생성되고, MEMBER 테이블의 외래키(TEAM_ID)를 추가 및 변경할 수 있다. 이렇게 이해했는데요. @OneToMany @JoinColumn(name = "TEAM_ID") private List<Member> members = new ArrayList<>();를 통해 MEMBER테이블에 TEAM_ID컬럼이 생기는거 같은데, 다른 여러 테이블도 있다고 가정했을때 어떤 이유로 MEMBER테이블에 TEAM_ID컬럼이 생성되는것인가요? @JoinColumn(name = "TEAM_ID")만 보고 MEMBER테이블인지 어떻게 아는것인가요..? 2. db에 위와같이 Member와 Team을 저장한다음에, team.getMembers()을 해서 Member를 구한 다음에, Member를 통해 MEMBER테이블에 있는 Member의 TEAM_ID값을 알고싶으면 어떻게해야하나요? 제가 알기로는 team.getMembers()로 가져온 Member 객체에는 TEAM_ID를 알 수 있는 필드가 없어서 알수없다고 생각하는데 이게 맞을까요? 그럼 Member의 TEAM_ID값을 알고싶으면 양방향 연관관계로 만들어서 Member 엔티티에 @ManyToOne을 추가하고 Member 객체에서 member.getTeam().getId(); 를 통해 TEAM_ID를 직접 조회해야할까요?

  • java
  • jpa
오리쉐리 댓글 3 좋아요 0 조회수 166

댓글 무한 depth 질문입니다.

해결됨

스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판

안녕하세요 강사님 강의 잘 듣고 있습니다. 댓글 무한 depth 강의를 듣고 있는 도중에, 전부터 궁금했던 내용인데 Repository에 extends JpaRepository를 하면 @Repository를 안 붙여도 되는 걸로 알고 있는데 붙이시는 이유가 따로 있으신지 궁금합니다. https://sudo-minz.tistory.com/147 참고했던 블로그 글입니다!

  • java
  • mysql
  • spring-boot
  • kafka
  • redis
pay 댓글 2 좋아요 1 조회수 303

다대일 패치 조인 고민

미해결

실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 다대일의 관계 패치 조인에 관련한 질문이 있습니다. 사이드 프로젝트에서 모임과 참여 모임 테이블이 있습니다. 참여 모임 테이블은 (userId, eventId)를 가지고 있습니다. 모임에 참여한 인원과 모임에 대한 정보를 얻고자 합니다. 참여 모임을 모임 id로 탐색 하여 참여 모임 List를 얻어 참여 모임의 인원수를 알 수 있습니다. 또한 패치 조인을 통하여 List<참여모임> 에 대한 모임의 정보를 얻을 수 있습니다. 고민은 여기서 ToOne으로 가지고 오는 모임은 모두 같은것 입니다. 이런 경우에도 패치조인을 통해 한번의 쿼리로 가져오는 것이 나은가요? 그래프 탐색이 가능 하도록 참여모임에 해당하는 모임을 넣는 과정이 모두 중복이라 이게 효율적인가?에 대한 고민 입니다.

  • java
  • spring
  • spring-boot
  • jpa
조희제 댓글 2 좋아요 0 조회수 125

인기 태그

인프런 TOP Writers

주간 인기글