inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

@Lock(OPTIMISTIC)이 필요한 이유

미해결

재고시스템으로 알아보는 동시성이슈 해결방법

안녕하세요! 강의를 복습하던 중 의문이 생겼습니다. JPA에서 @Version을 사용하면 자동으로 낙관적락이 적용되는 걸로 알고 있는데 @Lock(OPTIMISTIC)이 필요한 이유가 궁금했습니다. 그래서 알아보니 @Version의 경우는 엔티티에 수정/삭제가 될 경우에만 version을 체크하기 때문에 읽기만 존재할 때도 다른 곳에서 변경이 됐는지 감지하기 위해서는 @Lock(OPTIMISTIC)을 사용하라고 하던데 이게 맞을가요? 혹시 맞다면 @Lock(OPTIMISTIC)을 사용해서 OptimisticLockException이 발생하는 예시코드 부탁드립니다. 아래와 같이 테스트코드를 작성해봤는데 테스트가 성공하지 않아서요 @Test void optimistic_lock_on_read_conflict() throws Exception { ExecutorService executor = Executors.newFixedThreadPool(2); Callable<Void> task1 = () -> { service.readWithOptimisticLock(productId); return null; }; Callable<Void> task2 = () -> { service.updatePrice(productId, 4000); return null; }; Future<Void> f1 = executor.submit(task1); Future<Void> f2 = executor.submit(task2); f2.get(); assertThatThrownBy(f1::get) // 읽기만 했던 쪽도 커밋 시점에서 충돌 감지 .hasCauseInstanceOf(OptimisticLockingFailureException.class); executor.shutdown(); } //service.readWithOptimisticLock(productId); @Transactional(readOnly = true) public void readWithOptimisticLock(Long id) { productRepository.findByIdWithOptimisticLock(id); try { Thread.sleep(2000); } catch (InterruptedException e) { throw new RuntimeException(e); } productRepository.flush(); } //service.updatePrice(productId, 4000); @Transactional public void updatePrice(Long id, int newPrice) { Product product = productRepository.findById(id).orElseThrow(); product.setPrice(newPrice); productRepository.flush(); // flush 시점에 @Version 체크됨 }

  • java
  • spring
  • 동시성
안_ 댓글 2 좋아요 0 조회수 123

동시성 관련 질문입니다

미해결

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

링크 위 링크 속 질문에서 영한쌤이 아래와 같은 답변을 해줬습니다 "서버가 한대만 있고, 자바(JVM)로 웹 애플리케이션을 단 하나만 구동하는 상황이면 자바 만으로 동시성 제어를 할 수 있습니다." MVC 1편 강의에서 배운 내용으로는 클라이언트 요청이 들어오면 was 내에 미리 만들어진 쓰레드들이 각 요청을 받고 서블릿 코드를 실행한다고 이해하고 있습니다 그렇다면 서버가 한 대여도 쓰레드는 이미 여러개가 만들어져 있으므로 동시에 여러 요청 처리가 가능하기에 자바만으로 동시성 제어가 안 되는거 아닌가요? 잘못 이해한 부분이 있다면 지적부탁드립니다

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
조태준 댓글 1 좋아요 0 조회수 91

추가 강의 있어요!

해결됨

[인프런어워드 베스트셀러] 코딩 없이 AI 자동화 전문가가 되는 법, n8n 완벽 가이드

이번 강의 끝나면 추가 강의(40강?) 쪽으로 넘어갈 것인지 물어봅니다. 대략적으로 기능만 익히고 막히면 버리고, 그쪽으로 넘어가도 좋을 것 같습니다. (물론 스스로 해볼려고 하는 공부는 추천하지만 시간이 없으면 추가강의도 보고 고민하셔도 좋을 것 같습니다.)

  • n8n
  • 인공지능(ai)
  • rag
  • ai-활용-(ax)
  • ai-agent
Giyun NAM 댓글 2 좋아요 0 조회수 82

메서드 시그니처

미해결

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

메서드 시그니쳐는 메서드 이름과 매개변수의 타입(순서 갯수 포함)이 들어가지만 반환타입은 포함되지 않는다고 알고 있습니다. 교재에 2. 람다 부분 p.8에서는 메서드 시그니처 + 반환타입으로 하던가 어떤 주석이 있는게 혼동을 피할수 있지 않을까 합니다. (문맥상 무슨의미인지 알겠으나 처음 배우시는 분들은 헷갈리실 수 있어서 좀 더 명확하게 하는게 낫지 않을까 합니다.) 오피셜 다큐먼트를 찾아보았습니다. https://docs.oracle.com/javase/specs/jls/se21/html/jls-8.html#jls-8.4.2 감사합니다.

  • java
  • 함수형-프로그래밍
  • lambda
  • optional
swdevelop24 댓글 3 좋아요 0 조회수 135

evaluate_retrieval_at_K 함수 문의드립니다.

미해결

RAG 마스터: 기초부터 고급기법까지 (feat. LangChain)

안녕하세요, krag 라이브러리가 pip 서버에는 등록이 되어있는데 상세한 정보는 찾을 수가 없어서 문의드립니다. 일정 한도 내에서는 무료로 사용할 수 있는 Gemini API를 통해서 검색 성능을 평가중에 있는데, 중간중간 NaN값이 나오길래 추적해봤더니 API 분당 호출 수가 초과해서 값을 호출받지 못하는 경우가 생기더라구요. time.sleep을 걸고싶어도 이게 함수 자체로 전체 데이터프레임을 순회하는지라.. 혹시 delay를 넣을 수 있는 옵션이 있을까요?

  • python
  • 챗봇
  • llm
  • langchain
  • rag
나띵메로 댓글 2 좋아요 0 조회수 82

공공데이터 api를 사용하여 자동화 하는...강의 질문

해결됨

[인프런어워드 베스트셀러] 코딩 없이 AI 자동화 전문가가 되는 법, n8n 완벽 가이드

지역 코드를 동작구로 했는데 구글docs에선 광진구 데이터를 보여줍니다.

  • n8n
  • 인공지능(ai)
  • rag
  • ai-활용-(ax)
  • ai-agent
member 댓글 1 좋아요 0 조회수 76

공공데이터 open ㅁapi 무한 로딩

해결됨

[인프런어워드 베스트셀러] 코딩 없이 AI 자동화 전문가가 되는 법, n8n 완벽 가이드

공공데이터 api를 활용하여 자동화하는 부동산 투자분석 시스템 만들기에서 trade 에이전트랑 rent 에이전트랑 연결하는 gpt 모델이 동일하게 설정했는데 돌기만하고 작업을 안합니다. 타임아웃 값도 설정했는데 5시간 째 무응답입니다.

  • n8n
  • 인공지능(ai)
  • rag
  • ai-활용-(ax)
  • ai-agent
member 댓글 2 좋아요 0 조회수 75

21분 경 Old generation의 GC 설명 질문입니다.

해결됨

기초 탄탄! 독하게 시작하는 Java - Part 2 : OOP와 JVM

21분 경에 Old Generation을 설명하시면서 Full GC를 언급하셨는데, 해당 시점에는 Major GC가 발생해서 개체를 회수하게 되고 Major GC로 부터 살아남은 개체가 Metaspace 영역으로 옮겨지는 것 아닌가요?? 물론 Full GC를 통해서도 Old Generation의 개체가 회수되기는 하겠지만 해당 부분 설명에선 Major GC로 언급하는 것이 그림과 일치하지 않나해서 질문드립니다

  • java
  • 객체지향
  • jvm
  • data-structure
하규영 댓글 3 좋아요 0 조회수 132

6강에서 query 정보가 입력되지 않습니다.

해결됨

[인프런어워드 베스트셀러] 코딩 없이 AI 자동화 전문가가 되는 법, n8n 완벽 가이드

여기 설정하는데, 네이버의 경우 name을 query로 하고 value를 {{ $json.chatInput }} 로 했는데, 전혀 되지 않습니다. 004에서 call n8n workflow tool에 보면 chatInput으로 입력되는데, 어떤 조치를 취해야 할까요?

  • n8n
  • 인공지능(ai)
  • rag
  • ai-활용-(ax)
  • ai-agent
일주일 댓글 2 좋아요 0 조회수 140

섹션2 10,11,12 수업자료

해결됨

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

섹션2 10,11,12강의 수업자료는 따로 없나요?

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

프린터 예제 main메서드 throw InterruptedException 질문

해결됨

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 섹션5의 프린터 예제 코드에서 교재에서는 main메서드에 throw InterruptedException을 지정했는데, 영상에서는 따로 지정을 하지 않아서요. 혹시 교재 코드에는 예외 던지는 코드가 들어간 이유 가 있을까요?

  • java
  • 객체지향
  • 동시성
  • multithread
  • thread
khcho1492 댓글 3 좋아요 0 조회수 89

윈도우 pc H2 실행 불가

미해결

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 여기에 질문 내용을 남겨주세요. H2 설치 및 삭제 여러차례 반복 및 구글링과 인프런에 등록된 F&Q 내용대로 해봐도 H2가 실행되지 않습니다. 저거 두 개 다 실행해도 작동이 안 됩니다.

  • java
  • spring
  • mvc
  • spring-boot
최요한 댓글 2 좋아요 0 조회수 215

CASCADE 질문드립니다.

미해결

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

안녕하세요. Order와 OrderItem엔티티에 있는 CASCADE에 대해 기본편을 복습해도 헷갈린 부분이 있어서 질문드립니다. em.persist(order)를 하면 CascadeType.ALL때문에 Delivery랑 OrderItem도 insert가 되는거 같은데, @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "order_id") private Order order; OrderItem에 있는 이 부분에 CASCADE를 적어준게 아니라 @OneToMany(mappedBy = "order", cascade = CascadeType.ALL) private List<OrderItem> orderItems = new ArrayList<>(); 왜 Order에 있는 여기에다가 CASCADE를 적어준것일까요? 어디에다 두어도 상관없을거 같은데, 특별한 규칙이 있는것인지 질문드립니다.

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
오리쉐리 댓글 1 좋아요 0 조회수 94

저장 오류

미해결

RAG를 활용한 LLM Application 개발 (feat. LangChain)

소득세법을 저장하려고 doc파일로 저장을 눌렀는데 왜 안될까요? 파일은 저장되는데 막상 눌러서 들어가보면 빈페이지 밖에 안나와요

  • vector-database
  • llm
  • langchain
  • rag
  • openai-api
dnckss1121 댓글 2 좋아요 0 조회수 76

OneToOne LAZY 관련 질문입니다.

미해결

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

User.java @OneToOne(mappedBy = "user", fetch = FetchType.LAZY, cascade = CascadeType.ALL) private MyRoommate myRoommate; MyRoommate.java @OneToOne(fetch = FetchType.LAZY) @JoinColumn(name = "member_id", unique = true, nullable = true) private User user; 이렇게 코드가 작성되어 있을 때 User를 조회하면 myRoommate가 LAZY가 아니라 EAGER로 동작해서 User만 조회하고 싶은데 MyRoommate도 같이 조회하고 있습니다. 혹시 그 이유와 해결방법을 알려주실 수 있으실까요?

  • java
  • jpa
AAA 댓글 2 좋아요 0 조회수 87

엔티티로 승인(결정)하는 기준

미해결

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

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 안녕하세요 ~ 강의 복습 중 궁금한게 생겨 여쭤봅니다 ! 도메인 설계 시 지금처럼 회원 - 주문 - 상품을 메인 도메인으로 잡지 않고 회원이 회원가입, 주문 기능을 수행하는 주체이기에 회원 속에 Embedded로 주문 클래스를 값타입으로 잡아 회원 속에 넣고 회원 - 상품을 메인 도메인으로 잡을 수도 있겠다는 생각이 들었는데, 스프링부트 1 예제처럼 주문과 배송 클래스를 하나의 엔티티로 규정한 이유는 주문과 배송에서 식별자 pk 값이 필요하다고 생각해서 한 것일까요 ? 회원 도메인이 회원 가입 관련 역할만 담당하는 도메인이라서 책임 분리를 위해 주문과 배송 클래스를 다른 엔티티로 규정했는지 라는 의문도 들었는데, 엔티티로 잡아야하는 기준에 대해 여쭤보고 싶어 질문 남깁니다 !

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
wonderwall09in 댓글 1 좋아요 0 조회수 87

검색기 관련 질문드립니다.

미해결

RAG 마스터: 기초부터 고급기법까지 (feat. LangChain)

안녕하세요, Langchain RAG 강의 잘 듣고 있습니다. 데이터셋이 방대해질 경우 분명 시간이 지나면서 이제는 사용되지 않은 정보 구식의 정보라고 해야할까요? 그런 것들이 생기는데, 그런 데이터들은 어떻게 필터가 되는지 궁금합니다. 예) Python 2.xx 버전 문서 저장 Python 3.xx 버전으로 신규 업데이트 분명 검색을 할 때 동일하게 겹치는 내용이라면 1번과 2번 모두 가져올 것 같은데요! 이 경우 최신 버전으로만 불러올 수 있게 가능한가요??

  • python
  • 챗봇
  • llm
  • langchain
  • rag
나띵메로 댓글 2 좋아요 0 조회수 103

unique-constraint 설정 질문드립니다.

미해결

토비의 클린 스프링 - 도메인 모델 패턴과 헥사고날 아키텍처 Part 1

orm.xml unique-constraint 설정 부분 설명해주신 부분에서 인덱스로서 성능을 위해서, 데이터 중복저장 문제를 위해서 설정을하면 좋다고 말씀해주셨는데요 <index unique="true">설정의 차이점이 뭔지 잘모르겠습니다

  • java
  • spring
  • spring-boot
  • jpa
  • 리팩터링
  • ddd
yamyam_Y 댓글 2 좋아요 0 조회수 163

고급 2편에는 퀴즈가 없네요?

해결됨

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

퀴즈가 섹션별로 있어서 복습하고 다시 리마인드하기 좋던데 고급 2편에는 퀴즈가 없네요? 퀴즈가 없는 이유가 있는걸까요? 찾아보니 3편에도 없는데 다른 이유가 있을까요? 최근에 나온 DB 편에도 있어서요. 확인 부탁드립니다. 감사합니다.

  • java
  • 네트워크
  • 객체지향
아라레 댓글 1 좋아요 0 조회수 124

데몬 스레드 예시 코드 실행 결과

해결됨

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 데몬스레드를 true로 설정하여 작성한 코드 실행 결과가 main: main() start main: main() end Thread-0: run() start 이렇게 나왔는데, main함수가 종료되었는데 Thread-0이 실행되는 이유가 무엇인가요? "main: main() end" 이 문자열이 출력되었어도 자바 프로그램이 완전히 종료되는데는 시간이 조금 더 걸려서 그런건가요?

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

인기 태그

인프런 TOP Writers

주간 인기글