inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

remove() 정확한 흐름을 알고싶습니다

미해결

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

링크 위 링크 속 질문에 대한 답변을 아래와 같이 이해하였습니다. em.remove(member)를 하는 순간에 member가 1차 캐시에서 제거되고 동시에 delete 쿼리가 쓰기 지연 SQL 저장소에 저장 commit()을 만나면 내부적으로 flush()를 호출하고 쓰기 지연 SQL 저장소에 있는 쿼리가 나간다고 이해했습니다. 그리고 아래와 같은 테스트를 했을 때 의문이 생겼습니다 Member member1 = em.find(Member.class, 101L); em.remove(member1); Member member2 = em.find(Member.class, 101L); System.out.print(member2); // null tx.commit(); 위 테스트의 결과는 처음 member1을 찾을 때 select 문 1번 remove()로 인한 delete 문 1번 이처럼 총 2번 발생했습니다 하지만 제 생각은 remove()를 하면서 1차 캐시에서 지웠기 때문에 두 번째 find() 시에는 쿼리를 날려야 되는거 아닌가요? 그리고 또 이해가 안되는 부분은 member2를 찍어보면 null 이 나옵니다. commit()을 하기 전, 즉 flush()를 통해 remove()에 의해 만들어진 쓰기 지연 SQL 저장소에 저장된 delete 문이 나가기 전인데 왜 null 이 찍히는 걸까요? 정리하자면 두번째 find()는 왜 안 날라가는지 member2는 왜 null 인지 별도로 궁금한 점 쓰기 지연 SQL 저장소에 있는 쿼리들은 들어온 순서대로 나가나요?

  • java
  • jpa
조태준 댓글 1 좋아요 0 조회수 85

Exception과 명시적인 체크예외의 차이

미해결

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

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 강사님께서 설명해주신 것처럼 다른 예외가 발생시 disconnect(); 의 호출이 불가피하게 되었을때 finally 라는 문구를 사용하여 해결방법이 있겠지만 catch 의 예외타입을 Exception (= 실질적인 최상위 예외)로 지정하면 다른 에러가 발생하여도 해결할수 있을것 같은데 통합적으로 Exception 으로 잡지 않는 이유가 궁금합니다!

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

다차원배열과 문자열 8분23초에 arr[5]

해결됨

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

arr[5]가 6번째 인거는 알겠는데 밑에 arr배열에서 6번째 찾으면 6아닌가요??

  • python
  • java
  • c
  • 정보처리기사
이진욱 댓글 2 좋아요 0 조회수 107

초기화하면 1차캐시에

미해결

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

안녕하세요. em.getReference()를 통해 프록시 객체를 조회하면 1차캐시에 프록시객체가 저장되고, 이후에 getName()을하더라도 실제 엔티티객체는 1차캐시에 저장되지않고 프록시객체만 1차캐시에 저장되어있는건가요??

  • java
  • jpa
오리쉐리 댓글 1 좋아요 0 조회수 69

[오타 제보] pdf 10, 11 챕터

미해결

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

안녕하세요. 오타 제보입니다. 자바 고급1편 11.동시성 컬렉션 pdf 4페이지 add(): 컬렉션에 데이터를 추가한다 sleep(100): 잠시 기대한다 . 자바 고급1편 10. CAS-동기화와 원자적 연산 pdf 7페이지 6번째 줄 이 문제는 연산 자체가 나누어져 있기 때문에 발생한다. volatile 은 연산 차제 를 원자적으로 묶어주는 기능이 아니 다. 강의 감사히 듣고 있습니다!! 감사합니다.

  • java
  • 객체지향
  • 동시성
  • multithread
  • thread
jarchive 댓글 2 좋아요 0 조회수 82

프록시 객체의 초기화 부분에서

미해결

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

안녕하세요. 강의 내용 15분쯤에 프록시 객체의 초기화 부분에서 설명해주신 부분이 잘 이해가 되지않아서 찾아보고 아래와 같이 정리해보았는데요. 이렇게 이해하는게 맞을까요? 프록시 초기화(프록시객체의 초기화) : 프록시 객체의 target필드에 실제 엔티티 객체의 참조를 설정하는것. em.getReference()를 하게되면, 프록시 객체가 영속성컨텍스트(1차캐시)에 저장된다. 프록시는 내부에 Member target;이라는 멤버변수(필드)를 가지고 있다. member.getName()을 호출해서 초기화 요청을 한다. JPA는 영속성 컨텍스트(1차캐시)에 실제 엔티티객체가 있는지 확인한다. 4-1. 있으면, JPA는 프록시 객체 내부의 target필드에 1차캐시에 있는 실제 엔티티객체의 참조를 설정한다. 4-2 없으면, JPA는 db조회를 해서 실제 엔티티객체를 생성하고 프록시 객체 내부의 target필드에 실제 엔티티객체의 참조를 설정한다. 초기화된 필드를 통해 실제 객체의 메서드를 호출한다.

  • java
  • jpa
오리쉐리 댓글 1 좋아요 0 조회수 65

FilterExampleEx2의 또 다른 답안 질문

해결됨

김영한의 실전 자바 - 고급 3편, 람다, 스트림, 함수형 프로그래밍

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 정보] 질문 내용의 위치: 3. 함수형 인터페이스.pdf _ 문제와 풀이 _ 문제1 - FilterExampleEx2 제가 작성한 소스코드: https://inf.run/GQrVP 질문 요약: 1) Predicate 말고도 추가적으로 filter() 메서드도 BiFunction 함수형 인터페이스로 대체했는데, 이 정도까지 (메서드까지) 대체하는 것은 너무 과한 행동인지 궁금합니다. 2) BiFunction.apply() 를 호출하여 필터링 하는 방식은 filter() 메서드로 필터링하는 방식보다 직관성이 떨어지기 때문에 권장되지 않는지 또는 그냥 사용해도 되는지 궁금합니다. [질문 내용] 안녕하세요. 기존 FilterExampleEx2 의 모든 부분을 자바가 제공하는 함수형 인터페이스로 대체하는 문제로 잘못 이해해서 filter(리스트, Predicate) 메서드까지 BiFunction<리스트, Predicate, 리스트> 함수형 인터페이스로 대체를 했습니다. 이때 제가 생각했을 때는 크게 두 가지 부분이 문제가 될 수도 있겠다고 생각을 했는데, 실제로도 문제가 될 위험이 있는지 궁금해서 질문드립니다. (필터링 결과는 동일합니다.) (제가 추측한) 문제 상황1. 너무 과한 대체 메서드까지 함수형 인터페이스로 대체하는 것은 너무 과하다. (제가 추측한) 문제 상황2. 직관성의 저하 (영한님 답안의 경우) filter() 메서드를 호출하는 방식의 경우 메서드명이 filter 로 직관적이다. (제 답안의 경우) BiFunction.apply() 를 호출하는 방식의 경우 apply() 라는 메서드명만 보고는 "필터링한다"라는 느낌을 받을 수 없어 직관적이지 못하다. 제가 작성한 소스코드는 [질문 정보] 부분에 구글 드라이브 링크를 첨부했으나, 혹시 몰라 질문글에도 작성해봅니다. package lambda.ex3; import java.util.ArrayList; import java.util.function.BiFunction; import java.util.function.Predicate; import java.util.List; // 내 풀이 public class FilterExample { public static void main(String[] args) { List<Integer> numbers = List.of(-3, -2, -1, 1, 2, 3, 5); System.out.println("원본 리스트: " + numbers); // predicate까지 parameter로 받으면 더 유연하다. BiFunction<List<Integer>, Predicate<Integer>, List<Integer>> listFilter = (numberList, predicate) -> { ArrayList<Integer> filteredList = new ArrayList<>(); for (Integer number : numberList) { if (predicate.test(number)) filteredList.add(number); } return filteredList; }; // 조건 1. 음수(negative)만 골라내기 Predicate<Integer> isNegative = n -> n < 0; List<Integer> negatives = listFilter.apply(numbers, isNegative); System.out.println("음수만: " + negatives); // 조건 2. 짝수(even)만 골라내기 Predicate<Integer> isEven = n -> n % 2 == 0; List<Integer> evens = listFilter.apply(numbers, isEven); System.out.println("짝수만: " + evens); } }

  • java
  • 함수형-프로그래밍
  • lambda
  • optional
dev.rudevico 댓글 2 좋아요 0 조회수 154

59분58초

해결됨

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

안녕하세요, 비전공자 수강생입니다. 공부하다 헷갈려서 질문드립니다. 17강 함수와 재귀함수 (v2) 59분58초 질문을 드립니다. maxVal(arr,1)은 size==1 조건에 만족하기에, maxVal(arr,1)라는 식 전체를 a[0]으로 호출받는다는 해석이 맞을까요? maxVal(arr,1) 내의 arr를 뭐 따로 어떻게 해석하고 말고 필요없이, 그냥 maxVal(arr,1) 전체가 arr[0]이 되었으니, 이제 arr[1]>arr[0]과 비교해 각기 값을 호출받아 5>1 비교가 되었고, 참이 되었으니 삼항연산자의 참값인 arr[1]을 호출받고서는 maxVal(arr,2)=arr[1] 이 되고선 그 이후 계속해서 같은 방식으로 계산을 하니깐 %d에 들어갈 maxVal 최종값이 9가 나오기는 하던데 이게 맞는 해석법인지 궁금합니다. 특히, "maxVal(arr,1) 내의 arr를 뭐 따로 어떻게 해석하고 말고 필요없이" 이부분이 제가 맞게 해석을 했는지 궁금합니다.

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

콘솔창

미해결

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 콘솔창이 가로로 나와야 할 게 세로로 나와요.. 예를 들면 123 이렇게 나와야 되는데 1 2 3 이렇게 나와요.

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

기존 풀이와 다른 예외에 의한 탈출 기저 조건

미해결

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

안녕하세요 강사님! 문제와 풀이2 의 문제에 있어서 저는 이렇게 풀었습니다. 영한선생님도 if else 보다 탈출 조건을 통해서 하신다고 하셔서 같은 접근을 했음에 기뻤는데 풀이 중 for (Book book : books) 의 foreach 문 사용에 있어서 count 를 따로 빼시고 일반 for 문을 사용하셨는데 2가지 질문이 있습니다. Book 객체 배열을 n의 크기로 생성자에서 입력받아 배열을 생성한다면 cnt++을 통해 배열의 인덱스를 초과할경우도 고려해야 되지 않나요? Book b : books 의 foreach 문은 당연히 n 개로 구성되어있기에 foreach문을 사용할 수 있을거라고 생각했습니다. 강사님은 사용할 시 주의하라하셨는데 ArraryList도 아닌 일반 배열을 생성했을 때 값이 추가해서 들어갈 수 없지 않나요?

  • java
  • 객체지향
무깨 댓글 1 좋아요 0 조회수 119

h2 DB연결 오류

미해결

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

이 상황에서 연결 누르면 에러가 뜨는데 어떻게 해야될까요...

  • java
  • jpa
최기훈 댓글 2 좋아요 0 조회수 190

강의에 Ip주소 구하는법 다뤄주시는 강좌도 있나요?

해결됨

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

최근 기출에 한문제씩 나오고 있는 것 같은데 강의 아직 다 시청하진 않았지만 목차와 강의들 제목에서 ip관련은 안보여서 혹시 없나해서요!

  • python
  • java
  • c
  • 정보처리기사
이재윤 댓글 2 좋아요 0 조회수 105

생성자 탐색과 객체 생성 - ConstructV1 코드질문

해결됨

김영한의 실전 자바 - 고급 2편, I/O, 네트워크, 리플렉션

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 안녕하세요. 또 이해가 안되서 질문 을 올립니다. 영한님 ConstructV1코드를 보면 declaredMethods()를 쓰면 모든 메서드 들을 보여주신다고 하였는데.. 다시 확인해보니 디폴트 메서드 및 프로텍티트 메서드가 출력이 안된것을 확인을 할 수가 있었습니다. 그래서 전에 학습했던 코드 MethodV1 코드를 돌려본 결과 여기에서는 프로텍티드 및 디폴트 메서드도 보여주는것을 확인을 햇습니다. getConstructors()는 부모꺼 뺀 public 메서드만 호출 가능, getDeclaredConstructors()는 모든 메서드를 호출하다고 했는데 디폴트및 프로텍트 메서드가 안나오니 의문점이 생기네요. 이것도 알려주시면 감사하겠습니다. 답변 부탁 드립니다.

  • java
  • 네트워크
  • 객체지향
생각하는자 댓글 1 좋아요 0 조회수 127

필드 탐색과 값 변경 - 리플렉션 코드 질문

해결됨

김영한의 실전 자바 - 고급 2편, I/O, 네트워크, 리플렉션

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 안녕하세요. 세션13 - '필드 탐색과 값 변경' 복습을 하다가 의문점이 생겨서 질문을 드립니다. 영한 님이 리플렉션을 이용해서 name의 filed 값을 변경 하는 것을 보고 'final로 변경하면 안되겠지.'라는 생각을 하게 되었습니다. 그래서 userTest를 만들어서 name을 final로 변경해 보고 실험해보았습니다.(당연히 예외 터질 것을 예상 하고요) 근데 왠걸? 저의 예상과는 다르게 결과가 나오는 것을 보고, "......" 밖에 말이 안나 옵니다. 이게 코드 결과입니다. 왜 이렇게 나오는지 설명해 주실 수 있으신가요? (내용 수정) 답변 부탁 드립니다.

  • java
  • 네트워크
  • 객체지향
생각하는자 댓글 1 좋아요 0 조회수 191

9분 질문

해결됨

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

9분12초에서 왜 스타트엔진만 호출했는데 부모 클래스에 있는 거부터 다 호출이 되나요?

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

[오타 제보] 3. 함수형 인터페이스.pdf - p.23

해결됨

김영한의 실전 자바 - 고급 3편, 람다, 스트림, 함수형 프로그래밍

[오타 제보] 대상 강의록: 3. 함수형 인터페이스.pdf 대상 위치: #특화 함수형 인터페이스 - ##Operator를 제공하는 이유 - 1. 의도(목적)의 명시성 중 세 번째 글머리 대상 페이지: p.23 오타 내용 수정 전: 만약 모두 Function <T, R> 나 BiFunction<T, T, T>만으로 처리한다면, ... 수정 후: 만약 모두 Function <T, T> 나 BiFunction<T, T, T>만으로 처리한다면, ... 입력과 리턴이 같은 XxxOperator 와 비교하는 문장이기 때문에 BiFunction<T, U, R> 을 BiFunction<T, T, T> 으로 표현했으니 Function<T, R> 도 Function<T, T> 으로 표현해야 될 것 같아서 제보합니다! 앞서 배웠던 제네릭이랑 연관된 부분을 배우니 특히 더 재밌습니다!!

  • java
  • 함수형-프로그래밍
  • lambda
  • optional
dev.rudevico 댓글 2 좋아요 0 조회수 125

이론파트 데이터베이스

해결됨

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

단원 2.데이터 입출력 구현 12번 데이터베이스 클러스터와 데이터베이스 클러스터링의 개념과 관련하여 질문드립니다. 12번 데이터베이스 클러스터를 설명하시오에서 동일한 성격의 데이터를 동일한 데이터블럭에 저장하는 물리적인 방법은 클러스터링이라는 개념인거 같습니다. 그렇다면 클러스터는 '서버'에 관한 것이고 클러스터링은 '데이터'에 관한것으로 이해하면될까요? 만약 문제가 나온다면 데이터베이스 클러스터라고 해도 정답으로 인정해주나요?

  • python
  • java
  • c
  • 정보처리기사
이우영 댓글 2 좋아요 0 조회수 82

데이터 조회 후 변경 시 쿼리 시점이 어떻게 되나요?

해결됨

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

질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/) [질문 내용] 선생님 질문이 있습니다. 강의 22:00 쯤 변경 감지 듣다가 궁금증이 생겼습니다. 질문은 영속 컨텍스트에 넣지 않은 상태로 DB에서 바로 가져올 땐 커밋 시점 보다 먼저 쿼리가 발생하나요? package hellojpa; import jakarta.persistence.*; import java.util.List; 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 member = em.find(Member.class, 450L); member.setName("XXXX"); // em.persist(member); System.out.println("=================="); tx.commit(); } catch (Exception e) { tx.rollback(); } finally { em.close(); } emf.close(); } } 출력결과 Hibernate: select m1_ 0.id , m1_ 0.name from Member m1_0 where m1_ 0.id =? ================== Hibernate: /* update for hellojpa.Member */update Member set name=? where id=? 예상 출력 결과는 === select ... update ... 이렇게 나올 줄 알았는데요 왜 이렇게 나오지 않을까요?

  • java
  • jpa
문주영 댓글 1 좋아요 0 조회수 100

12강 깃허브에 있는 12.7 chat.html 복붙했는데 css오류

미해결

[개정3판] Node.js 교과서 - 기본부터 프로젝트 실습까지

이부분에서 <div class="mine" style="color: {{chat.user}}"> 가 오류뜨는데, 속성값예상 at-rule 또는 선택기가 필요함 이라고 복붙했는데 왜이런오류가뜰가요?

  • node.js
  • mysql
  • mongodb
  • express
  • typescript
  • socket.io
  • jwt
김영기 댓글 2 좋아요 0 조회수 141

whitelabel error page 500

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 회원목록 화면 들어가면 저렇게 Whitelabel Error Page가 뜹니다. properties에 username도 추가했고, localhost로도 바꿨는데 계속 안되네요 ㅠ 조언 부탁드립니다ㅠ!

  • java
  • spring
  • mvc
  • spring-boot
Youjin 댓글 3 좋아요 0 조회수 386

인기 태그

인프런 TOP Writers

주간 인기글