inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

'섹션 4 영속성 관리 - 내부 동작 방식' 관련 내용 질문

미해결

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

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 처음에 Member 테이블이 비어있는 상태입니다. 아래 코드를 첫번째 실행할때는 insert, insert, update 총 3번의 쿼리가 날아가고, 두번째 실행할때는 insert, insert 총 2번의 쿼리가 날아가게 됩니다. 왜 첫 번째 실행시에는 update 쿼리가 날아가지만, 동일한 코드를 두 번째 실행할때는 update 쿼리가 날아가지 않는지 궁금합니다. 둘다 persist시에 영속성 컨텍스트의 1차캐시에 PK가 150L인 엔티티가 저장되고, find시에 DB가 아닌 해당 1차 캐시에서 가져오는 것이라고 이해했습니다. 그렇다면 두 코드 모두 변경 감지(Dirty Checking)에 의해 update가 날아가야하는 것 아닌가요? public class JpaMain { public static void main(String[] args) { EntityManagerFactory emf = Persistence.createEntityManagerFactory("hello"); EntityManager em = emf.createEntityManager(); EntityTransaction tx = em.getTransaction(); tx.begin(); try { // 트랜잭션을 지원하는 쓰기 지연 Member member1 = new Member(150L, "A"); Member member2 = new Member(160L, "B"); em.persist(member1); em.persist(member2); System.out.println("================"); // 변경 감지 Member member = em.find(Member.class, 150L); member.setName("ZZZ"); tx.commit(); } catch (Exception e) { tx.rollback(); } finally { em.close(); } emf.close(); } }

  • java
  • jpa
박형규 댓글 2 좋아요 0 조회수 102

App router 랜더링 방식에 대해 질문 드립니다.

해결됨

한 입 크기로 잘라먹는 Next.js

선생님 데이터 캐시부분 보고 있는데요 page router의 SSG, ISR처럼은 app router에서 동작이 일어나지 않는걸까요? 아니면 동일한건지 궁금합니다. SSG의 경우는 페이지를 build타임에 페이지를 만드는데 app router는 fetching 한 데이터만 캐시하는것 같아 질문 드립니다.

  • react
  • typescript
  • next.js
uphoon 댓글 2 좋아요 0 조회수 194

묵시적 조인말고 명시적 조인을 쓰라고 하셨는데 그러면 외래키 연관관계 매핑을 할 필요가 없지 않나요?

미해결

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 묵시적 조인말고 명시적 조인을 쓰라고 하셨는데 그러면 외래키 연관관계 매핑을 할 필요가 없지 않나요? 외래키를 @ManytoOne mappyby 이런걸 쓸 필요가 없지 않나요? 처음에 배울때 member.getTeam() 이렇게 member에서 team을 꺼낼때는 사용하는 용도로 아는데 이때도 조인이 이루어지는걸로 아는데 이것도 묵시적 조인이 아닌가요? getTeam() 이런걸 쓰지 말라는건가요? 아니면 jpql을 사용할때만 m.team 이런걸 쓰지말라는건지 에매하네요

  • java
  • jpa
캐내기 댓글 1 좋아요 0 조회수 132

섹션 3의 6번 문제 - 뒤집은 소수

미해결

자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비

강사님 영상 보고 입력 받는 방식만 다르게 하고, 나머지 로직은 똑같이 처리했는데 자꾸 오답이라고 뜹니다. 결과 창에 들어가서 리턴값과 정답값을 비교해보아도 다른 점을 발견하지 못했습니다. 도와주세요ㅜㅡㅜㅡㅜ package 인프런.section3; import java.io .BufferedReader; import java.io .IOException; import java.io .InputStreamReader; import java.util.ArrayList; import java.util.StringTokenizer; public class section3_6 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader( System.in )); int n = Integer.parseInt(br.readLine()); StringTokenizer st = new StringTokenizer(br.readLine()); int[] arr = new int[n]; for (int i = 0; i < n; i++) { arr[i] = Integer.parseInt(st.nextToken()); } System.out.println(); for(int x : solution_2(n, arr)){ System.out.print(x + " "); } } public static ArrayList<Integer> solution_2(int n, int[] arr){ ArrayList<Integer> answer = new ArrayList<>(); for (int i = 0; i < n; i++) { int tmp = arr[i]; int res = 0; while(tmp > 0){ int t = tmp % 10; res = res * 10 + t; tmp /= 10; } if (isPrime(res)) answer.add(res); } return answer; } public static boolean isPrime(int n){ if (n == 1) return false; for (int i = 2; i < n; i++) { if (n % i == 0) return false; } return true; } }

  • java
  • 코딩-테스트
댓글 2 좋아요 0 조회수 125

챕터18 retry yml 강의 부분 질문

해결됨

RabbitMQ를 이용한 비동기 아키텍처 한방에 해결하기

안녕하세요 챕터18 강의에 대한 질문 두가지가 있습니다.. retry 관련 yml에 설정을 하였을 경우에는 아래 코드에 자동으로 retryTemplate 이 적용되는 것으로 확인하였는데요.. 여기서 스프링이 어떻게 구분을 하고 해당 메서드에 retry를 적용 시키는 건가요? 아니면 큐 이름을 보고 ORDER_COMPLETED_QUEUE에 설정된 .withArgument(데드레터인자) 이 설정값들을 보고 확인 했던 것일까요..? 그리고 @Retryable 해당 어노테이션도 존재하던데 해당 어노테이션은 aop 방식으로 template이 적용되는 것 같은데 이 방법을 사용하여도 똑같이 적용 되는 것일까요.? @RabbitListener(queues = ORDER_COMPLETED_QUEUE) public void consume(String message){ if ("fail".equalsIgnoreCase(message)){ System.out.println("retry count: " + ++retryCount); throw new RuntimeException(); } System.out.println("Received Message: " + message); }

  • java
  • spring-boot
  • jpa
  • msa
  • websocket
  • rabbitmq
  • retry
hoonseung 댓글 2 좋아요 0 조회수 219

여행자 게시판 '트립토크'와 숙박상품에관련한 강의는

해결됨

[코드캠프] 부트캠프에서 만든 '완벽한' 프론트엔드 코스

강의는 하이브리드앱에 포함 되어있나요? 아니면 중급 웹프론트엔드앱에 포함되어있나요? 중급 듣고 있는데 언제쯤 나오는지 궁금해서 여쭤봅니다...

  • react
  • react-native
  • 하이브리드-앱
  • graphql
  • next.js
이 규성 댓글 2 좋아요 0 조회수 86

SPOCK 의존성 추가 후 Generate Test 옵션 미노출

해결됨

서버개발자 과제전형 완벽가이드 - 1편

안녕하세요 강사님 spock의 의존성 추가 후(build완료) generate test 창에서 target library에 spock이 뜨지 않습니다. 혹시 강사님이 추가로 설치하신 plugin이나 세팅이 있을까요?

  • java
  • spring
  • spring-boot
  • database
차근차근 댓글 3 좋아요 0 조회수 249

렌더링에서 말하는 서버란 무엇인가요?

해결됨

한 입 크기로 잘라먹는 Next.js

안녕하세요. 예전부터 궁금했던게 있습니다. 이번 사전렌더링 강의에서 계속 설명하는 유저-브라우저-서버 개념 에서 서버란 무엇인가요? 단순히 csr은 서버에서 빈껍데기를 먼저주고, 초기접속속도가 느리고, ssr은 빈껍데기가아니라 이미 렌더링된 html을 서버에서 받아서 그대로 렌더링하고... 이런 개념들은 CSR과 SSR 차이만 검색해도 수많은 블로그와 개념이 나오고, 항상 많이 들어왔고 면접준비했을때도 수없이 외워서 알겠습니다만 여기서 항상 의문이 있었는데요. 여기서 말하는 서버란 대체 무엇인가요? 제가 알고있던 서버라는것은 백엔드서버였는데, 이 서버라는 개념이 어려웠습니다.

  • react
  • typescript
  • next.js
타루 댓글 2 좋아요 3 조회수 254

persist 호출 시점에 영속성 컨테스트 객체 상태

미해결

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

https://www.inflearn.com/community/questions/336059/%EC%96%91%EB%B0%A9%ED%96%A5-%EC%97%B0%EA%B4%80%EA%B4%80%EA%B3%84-%EC%A3%BC%EC%9D%98%EC%A0%90%EC%97%90-%EA%B4%80%ED%95%9C-%EC%A7%88%EB%AC%B8 안녕하세요. 위 질문을 보고 궁금한 점이 생겨서 질문드립니다. 강의에서 진행하는 프로젝트에서 기본키 생성전략을 IDENTITY 라고 하면 em.persist()를 호출하는 시점에 insert 쿼리를 날려서 db에 저장을 하고, 키를 조회해서 영속성 컨텍스트의 키로 사용한다고 이해하고 있습니다. 이 때 영속성 컨텍스트의 키는 실제 DB의 키를 사용하고 영속성 컨텍스트의 엔티티는 DB의 데이터가 아닌 순수 객체가 들어가는 것이 맞나요?

  • java
  • jpa
lmkn5342 댓글 1 좋아요 0 조회수 92

[코드 공유] yield() 유무에 따른 체크 로직 수행 횟수를 확인할 수 있는 코드 공유합니다.

해결됨

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

[비교 결론] (맥북 프로 2018형 기준) yield() 사용 X : 체크 로직 319_216_379 회 수행 yield() 사용 O : 체크 로직 000_730_447 회 수행 [코드 사용법] 체크로직 while loop에 있는 Thread.yield(); 를 주석처리 on/off 하면서 체크하시면 됩니다. 프로그램 수행 -> a, b, c, d, e, q를 순서대로 입력 위 두 동작을 주석처리 on/off한 후에 실행하는 두 경우 모두에서 비슷한 속도로 해 주시면 비교가 더 명확합니다. [코드 설명] MyPrinterV4 코드를 기준으로 하여 다음과 같이 체크 로직의 수행 횟수를 카운트할 수 있도록 개선했습니다. 러프하게 작성한 코드라서 세부적인 부분은 무시바랍니다. // 체크 로직의 수행 횟수를 기록하는 변수 private static int count = 0; while (!Thread.interrupted()) { if (jobQueue.isEmpty()) { count++; // 체크 로직 수행시 1회 추가 기록 Thread.yield(); // 여기를 On/Off하며 체크 continue; } } // 메인 함수의 마지막 부분에 추가한 코드 // q를 입력하여 프로그램을 종료했을 때까지 수행된 체크 로직의 횟수를 출력 System.out.println(count); [전체 코드] package thread.control.printer; import java.util.Queue; import java.util.Scanner; import java.util.concurrent.ConcurrentLinkedQueue; import static util.MyLogger.log; public class MyPrinterV4 { // 추가된 코드 private static int count = 0; public static void main(String[] args) { Printer printer = new Printer(); Thread printerThread = new Thread(printer, "printer"); printerThread.start(); Scanner userInput = new Scanner(System.in); while (true) { log("프린터할 문서를 입력하세요. 종료 (q): "); String input = userInput.nextLine(); if (input.equals("q")) { printerThread.interrupt(); break; } printer.addJob(input); } // 추가된 코드 System.out.println(count); } static class Printer implements Runnable { Queue<String> jobQueue = new ConcurrentLinkedQueue<>(); @Override public void run() { while (!Thread.interrupted()) { if (jobQueue.isEmpty()) { // 코드 추가된 부분(시작) count++; Thread.yield(); // 주석 on/off 하며 비교 // 코드 추가된 부분(종료) continue; } try { String job = jobQueue.poll(); log("출력 시작: " + job + ", 대기 문서: " + jobQueue); Thread.sleep(3000); log("출력 완료: " + job); } catch (InterruptedException e) { log("인터럽트 발생. message=" + e.getMessage()); break; } } log("프린터 종료"); } public void addJob(String input) { jobQueue.offer(input); } } }

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

setOrder();를 하신 이유가 궁금합니다.

미해결

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

안녕하세요. 강의 내용 16분30초쯤에 Order order = new Order(); order.addOrderItem(new OrderItem()); 위 코드를 아래와같이 Order order = new Order(); em.persist(order); OrderItem orderItem = new OrderItem(); orderItem.setOrder(order); 1. 이렇게 수정하셨는데, 이렇게 하시는 이유가 무엇인가요..? 양방향연관관계라서 addOrderItem()을 통해 양쪽에 값을 설정해줬었는데 왜 아래와 같이 변경하신건지 궁금해서 질문드립니다. 2. Order와 OrderItem간의 관계를 양방향연관관계로 하지말고, OrderItem -> Order 단방향연관관계로 설계해서 OrderItem에만 setOrder()로 설정해주신것일까요?? 3. 만약 2번의 내용이 맞다면, 그렇게 하신 이유도 궁금합니다... 감사합니다

  • java
  • jpa
오리쉐리 댓글 4 좋아요 0 조회수 200

pub/sub, producer/consumer 차이

해결됨

RabbitMQ를 이용한 비동기 아키텍처 한방에 해결하기

안녕하세요 두 개념의 차이점이 궁금한데요 pub/sub 은 특정 topic으로 메세지를 발행하면 해당 topic을 구독중인 여러 구독자들에게 전달될 수 있고 producer/consumer는 메세지를 큐에 발행하면 큐에 저장된 메세지는 한명의 소비자에게만 전달 될 수 있는 건가요? 그러면 rabbitmq는 producer/consumer 이고 websocket은 pub/sub 인가요?

  • java
  • spring-boot
  • jpa
  • msa
  • websocket
  • rabbitmq
  • pub/sub
hoonseung 댓글 2 좋아요 0 조회수 287

DTO 분리

미해결

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 안녕하세요 좋은 강의 항상 감사드립니다. 강의를 수강 하던 중 간단한 질문이 있어 작성하였습니다! OSIV를 끄기 위해 분리를 하실 때 QueryService를 만드시면서 동시에 기존의 DTO들을 사용하지 않으시고 Query 패키지에 새로 만들어 사용하셨는데 기존 DTO를 사용하지 않는 이유가 궁금합니다! 또한 이렇게 분리해서 새로 만드는 것이 권장되는 사항인지 궁금합니다!

  • java
  • spring
  • spring-boot
  • jpa
shshjkjk 댓글 1 좋아요 0 조회수 144

모듈질문

미해결

RabbitMQ를 이용한 비동기 아키텍처 한방에 해결하기

안녕하세요. 강의 잘 듣고 있습니다 선결지식 확인 질문과, 강의 질문이 있습니다. Q1. 원래는 프로듀서 모듈, 컨슈머 모듈, 클라이언트(API) 이렇게 3개의 모듈로 분리되어서 처리되는게 맞는거죠? 그리고 모듈이라하는거는 하나의 jar로 묶일 수 있는 모듈과, 각각 pid를 갖는 단일 프로세스 모듈 이렇게 있는데 보통은 프로듀서/컨슈머/클라이언트 모듈이라 하면 후자를 지칭하는 것도 맞구요!? Q2. 강의에서 애플리케이션을 jar로 말아서 2개를 띄우신 것은 어떻게 보면 현재 애플리케이션 내부에서 produce/consume/client 3개의 역할을 혼자 다 맡고 있기때문에 의도하신 바는 consumer를 2개 띄웠을 경우 RR 방식으로 동작한다는 것을 뜻하신게 맞을까요? 감사합니다 :)

  • java
  • spring-boot
  • jpa
  • msa
  • websocket
  • rabbitmq
보키 댓글 1 좋아요 0 조회수 123

Valid체크 오류 문의드려요

미해결

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 상품등록시에서도 입력받는 책 데이터들의 valid를 체크하고싶어서 memberForm을 받을때와 마찬가지로 코드를 짰는데 계속해서 오류가 납니다... 아무리 찾아봐도 모르겠어서 질문 남깁니다 (name만 null체크를 합니다.) BookForm ItemController templates/items/createItemForm.html 오류

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
고나검 댓글 2 좋아요 0 조회수 131

배열과 비교한 리스트의 이점 중에서 itemCount가 size++랑 비슷한거 아닌가요?

미해결

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

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 배열과 비교한 리스트의 이점으로 itemCount와 같이 배열에 몇 개의 데이터가 추가 되었는지 추적하는 변수를 제거할 수 있다고 했는데, MyArrayList calss에서 add(E e) 메서드를 보면 size++; 부분이 동일한 역할이을 하고 있는 것이 아닌가요?

  • java
  • 객체지향
  • 코딩-테스트
  • 알고리즘
하연 댓글 1 좋아요 0 조회수 106

리액트 state에 대해 질문있습니다.

해결됨

[코드캠프] 부트캠프에서 만든 '완벽한' 프론트엔드 코스

안녕하세요 강의 너무 잘 보고 있습니다. 너무 이해하기 쉽게 알려주셔서 열심히 듣고 있는데 state부분에 대해 궁금해서 질문을 드립니다. state는 그럼 글자가 변한다거나 어떤한 것이 변경되는것처럼 이런 상태들이 변하게 할때 state를 사용한다라고 이해하고 이럴때 state를 사용하면 되는건가요?

  • react
  • react-native
  • 하이브리드-앱
  • graphql
  • next.js
부드러운 족제비 댓글 2 좋아요 0 조회수 109

좋아요 수 설계

해결됨

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

학습 관련 질문을 최대한 상세히 남겨주세요! 고민 과정도 같이 나열해주셔도 좋습니다. 먼저 유사한 질문이 있었는지 검색해보세요. 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요! 10:30초 쯤부터 설명해주시는 내용이 잘 이해가 안가서 질문드립니다. article 테이블에 insert 문과 update 문을 동시에 실행한다고 하더라도 서로 다른 레코드에 대한 작업이어서 update문이 실행될 때 x-lock이 걸리는 레코드는 insert하는 레코드와 상관 없을 거라고 생각했는데 게시글 쓰기와 좋아요 수 쓰기 작업을 할 때 어떻게 동일한 레코드에 락이 걸릴 수 있는지 상황이 잘 안그려지네요.. 게시글을 새로 작성하는 경우가 아니라 게시글 수정 - 좋아요 수 업데이트 간에 동일한 레코드에 대한 락이 잡힐 수 있는 상황을 말씀하신 건가요??

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

59분 14초

해결됨

(2026 최신!) 일주일만에 합격하는 정보처리기사 실기

59분 14초까지 따라가서 arr[0]까지 되는건 이해가 가는데 그 뒷부분이 설명이 여러번 다시들어봐도 거기서 길을 잃었어요.. 계산을 return줄에서 해서 그 값으로 위로 쭉쭉 올라가면서 계산하는게 맞나요? 59분 42초에서 arr[1] arr[0] 이렇게 적으셨는데 return(arr[size-1]>max)?arr[size-1]:max; 에서 size에 1을 넣으면 배열[0]이 1인건 알겠는데 5(배열[1])가 어디서 어떤식으로 나와서 어떻게 비교가 되는건지 모르겠어요

  • python
  • java
  • c
  • 정보처리기사
chenney 댓글 2 좋아요 0 조회수 235

쿠폰 문의

해결됨

[풀스택 입문] Firebase보다 10배 좋은 Supabase

[풀스택 완성] Supabase로 웹사이트 3개 클론하기 (Next.js 14) 할인 쿠폰코드를 적용하려니까 신규 발급이 제한되었거나 발급 수량이 초과된 쿠폰이라고 하네요 ㅠ

  • postgresql
  • next.js
  • tailwindcss
  • supabase
밀당이 댓글 2 좋아요 0 조회수 256

인기 태그

인프런 TOP Writers

주간 인기글