inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

ReentrantLock 동작 원리에 대한 질문입니다.

미해결

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

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] ReentrantLock에 대한 순서 보장에 대해 궁금증이 생겨 질문을 남깁니다. producerCond에서 대기하고 있던 스레드가 producerCond.signal() 호출로 깨어났을 때 ReentrantLock의 lock을 얻기 위한 대기 큐로 들어가는 것으로 알고 있습니다. 근데 이때 signal() 호출로 깨어난 A 스레드가 lock 대기 큐로 들어갔는데 앞에 이미 스레드 B가 있어서 B가 ReentrantLock의 lock을 얻어버렸다고 가정했을 때 A는 다시 producerCond.await() 호출로 producerCond 스레드 대기 큐에 들어가면 맨 뒤로 이동할 것 같습니다. 근데 저는 B는 await()에 넣고 A를 실행하는 순서로 순서를 보장하고 싶은데 이것도 더 세밀하게 구현을 할 수 있는 것일까요?? 제가 질문에 대한 설명을 잘 못해서.. 혹시 이해가 되신다면.. 답변해주신다면 감사하겠습니다!

  • java
  • 객체지향
  • 동시성
  • multithread
  • thread
닭이된기아 댓글 1 좋아요 0 조회수 114

@StepScope 또는 @JobScope와 JobOperator

해결됨

죽음의 Spring Batch: 새벽 3시의 처절한 공포는 이제 끝이다.

킬구형 아래는 step에서 ItemWriter의 jobParameter자리에 null을 넣는 방식으로 처리한거야. @Scheduled(cron = "0 0 19,22 * * *") fun runSampleJob() { jobOperator.start(sampleJob(),jobParameters) } @Bean fun sampleJob(): Job = JobBuilder("sampleJob",jobRepository) .start(sampleStep()) .build() @Bean fun sampleStep(): Step = StepBuilder("sampleStep", jobRepository) .chunk<String, String>(CHUNK_SIZE) .transactionManager(transactionManager) .reader(sampleReader()) .writer(sampleWriter(null, null)) .build() @Bean @StepScope fun sampleReader(): JdbcPagingItemReader<String> = JdbcPagingItemReaderBuilder<String>() ... .build() @Bean @StepScope fun sampleWriter( @Value("#{jobParameters['title']}") title: String?, @Value("#{jobParameters['content']}") content: String?, ): ItemWriter<String> = ItemWriter { chunk -> ...doSomeWrite } 위 코드를 빈 주입방식으로 변경하는 방법을 모르겠어. 빈 주입 방식으로 변경하면 아래처럼 되잖아? 이때 jobOpterator로 잡을 호출하는 부분까지 파라미터가 올라와버리는데 이걸 어떻게 해야할지 모르겠단 말이야~~! @Scheduled(cron = "0 0 19,22 * * *") fun runSampleJob() { jobOperator.start(sampleJob(**여기를 어떻게 처리하지?**),jobParameters) } @Bean fun sampleJob( sampleStep: Step ): Job = JobBuilder("sampleJob",jobRepository) .start(sampleStep) .build() @Bean fun sampleStep( sampleReader: ItemReader<String>, sampleWriter: ItemWriter<String> ): Step = StepBuilder("sampleStep", jobRepository) .chunk<String, String>(CHUNK_SIZE) .transactionManager(transactionManager) .reader(sampleReader) .writer(sampleWriter) .build() @Bean @StepScope fun sampleReader(): JdbcPagingItemReader<String> = JdbcPagingItemReaderBuilder<String>() ... .build() @Bean @StepScope fun sampleWriter( @Value("#{jobParameters['title']}") title: String?, @Value("#{jobParameters['content']}") content: String?, ): ItemWriter<String> = ItemWriter { chunk -> ...doSomeWrite } 새해 복 많이 받아 형~

  • java
  • spring
  • spring-boot
  • spring-batch
  • backend
스프링 댓글 5 좋아요 1 조회수 182

깃허브 코드

미해결

스프링 부트와 리액트로 구현하는 보안 JWT 로그인

강사님 혹시 44강 듣고 있는데 이거 프론트엔드 코드가 깃허브에 있는것과 다른 코드인데 어디서 볼 수 있나요?

  • react
  • java
  • aws
  • spring-boot
  • spring-security
KMC 댓글 1 좋아요 0 조회수 101

그럼 SOURCE나 CLASS는 어떤 경우에 사용하나요?

해결됨

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

특히 SOURCE는 소스 코드에만 남아있는거면 주석이랑 같은거 아닌가요?

  • java
  • 네트워크
  • 객체지향
jkyjong 댓글 2 좋아요 0 조회수 117

강의 순서가 바뀌었어요~

미해결

자바프로그래밍

12강과 13강 강의 순서가 바뀌었네요.. ^^

  • java
꿈꾸는농부 댓글 1 좋아요 0 조회수 44

랭체인 라이브러리

미해결

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

docs2txt 같은 라이브러리를 랭체인에 있는 것을 사용하는 이유가 있을까여? 순수라이브러리를 사용하면 조금 더 가볍지 않나 싶어서요!

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

강의 마지막 QueryDSL 사용 부분 질문있습니다

미해결

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

JPA를 사용하는 강의라고 하지만 QueryDSL에 대한 코드만 딱 보여주고 이게 어떤 dependency를 추가하고 build를 해서 사용해야한다는 등의 설명이 일절 없는것이 아쉽습니다. 강의 교재에도 해당 내용은 기재되어있지 않은데 왜 코드를 실제로 적용하는 부분에 대해서나 테스트 코드 작성에 대해서는 따로 언급이 없으신건가요?

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
이승병 댓글 2 좋아요 1 조회수 186

[LangGraph를 활용한 AI Agent 개발] 쿠폰 유효기간

미해결

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

안녕하세요. 좋은 강의를 잘 들었습니다. [LangGraph를 활용한 AI Agent 개발] 강의를 이어서 수강하려고 하는데 할인 쿠폰 링크에 들어가보니 유효기간이 끝났다고 하는데, 할인 받을 수 있는 방법은 없는건가요? 확인 부탁 드립니다. 🤖

  • vector-database
  • llm
  • langchain
  • rag
  • openai-api
  • 카카오공채-개발
Dae-Yong Kim 댓글 1 좋아요 0 조회수 128

Gradio 런치 PDF 관련 에러

미해결

프로젝트로 배우는 Python 챗봇 & RAG - LangChain, Gradio 활용

Gradio ChatInterface로 PDF 챗봇 애플리케이션 구현 (실습) 강의에서 작성하신 코드를 그대로 똑같이 적용해서 돌렸는데 이런 에러가 뜨네요. TypeError: argument of type 'bool' is not iterable ERROR: Exception in ASGI application demo = gr.ChatInterface(fn=process_pdf_and_answer, additional_inputs=[ PDF(label="Upload PDF file"), gr.Number(label="Chunk Size", value=1000), gr.Number(label="Chunk Overlap", value=200), gr.Dropdown(["cosine", "l2"], label="similarity metric", value="cosine"), gr.Slider(label="Temperature", minimum=0, maximum=2, step=0.1, value=0.0), ], ) gradio launch 시 additional_inputs에 PDF를 제외하면 launch가 되는데, PDF를 포함하니까 위의 에러가 뜨면서 launch 자체가 안 돼요. gradio document를 봐도 이해가 잘 안 돼서요.. 코드를 어떻게 수정하면 될까요?

  • 챗봇
  • gradio
  • chatgpt
  • llm
  • langchain
  • rag
  • openai-api
  • 카카오공채-개발
박지민(인공지능대학 인공지능소 댓글 2 좋아요 0 조회수 114

다른언어 개발

미해결

GPT + Bitget API로 만드는 실전 자동매매: 나만의 선물거래 봇 완전히 구현

파이썬말고 다른 언어로 개발하여도 상관 없을까요?

  • excel
  • bitcoin
  • chatgpt
  • openai-api
오개발 댓글 2 좋아요 0 조회수 99

커리큘럼 관련 질문

미해결

2026 코딩테스트 올인원 [JAVA]

학습 관련 질문을 남겨주세요. 구체적으로 적을수록 좋아요! 마크다운과 단축키를 활용하면 글을 더 편하게 작성할 수 있어요. 커뮤니티 질문 & 답변에 비슷한 내용이 있었는지 먼저 검색해보세요. 편하게 질문주세요:) 직접 답변 드리도록 하겠습니다~ dp나 다익스트라 같은 알고리즘은 이번 강의에서는 아예 다루지 않나요? 기존 올인원 강의(파이썬 버전) 같은 경우엔 포함되어있던데, 혹시 자바 버전도 추가 또는 별도 강의 개설할 예정인지 궁금합니다!

  • java
  • 코딩-테스트
  • 알고리즘
  • data-structure
에라토스테네스의체 댓글 1 좋아요 0 조회수 91

클라이언트에서 isbn과 author 수정 요청을 한 경우에 대해 질문드립니다.

미해결

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 안녕하세요 좋은 강의로 공부하고 있는 대학생입니다. 이번 영상에서 ItemService 클래스의 updateItem 메서드에서 값을 변경하는 부분을 각 변수에 대해 set 으로 접근하는 방법 대신 item 클래스 내부에서 change() 메서드를 선언 후 사용하는 방법으로 직접 수정해보려고 합니다. 그런데 만약 클라이언트에서 isbn과 author 값을 수정하고 싶다면, item 도메인에서는 두 변수에 대한 선언이 안되어있는데 item 엔터티 구조를 변경하는 방향으로 수정 로직을 작성해야 할지 궁금해서 질문 남깁니다.

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

queue에 값을 추가하는 메서드는 어떤 차이가 있나요?

해결됨

2026 코딩테스트 올인원 [JAVA]

학습 관련 질문을 남겨주세요. 구체적으로 적을수록 좋아요! 마크다운과 단축키를 활용하면 글을 더 편하게 작성할 수 있어요. 커뮤니티 질문 & 답변에 비슷한 내용이 있었는지 먼저 검색해보세요. 편하게 질문주세요:) 직접 답변 드리도록 하겠습니다~ Queue에 값을 추가하는 메서드는 enque offer 두 가지가 있다고 강의에서 말씀 주셨습니다. 둘 다 똑같이 값을 추가하는걸까요? 만약 맞다면, 어떤 차이점이 있는지 궁금합니다. (어떤 상황에서 사용되는지도 궁금해요.) +추가적으로, queue.poll() 이 dequeue다 라고 말씀 주셨는데, 둘도 어떤 차이가 있는지. 어떤 상황에서 사용하는지도 궁금합니다!

  • java
  • 코딩-테스트
  • 알고리즘
  • data-structure
겁많은 김앙리 댓글 1 좋아요 0 조회수 108

sLLM관련 강의 내용 문의

미해결

LLM 기초부터 최신 RAG·LangChain까지: 단 5시간 만에 LLM 기초과정 마스터!

sLLM을 설명을 주었는데, 내용은 SLM으로 보입니다. 다른 강의 자료를 보면 SLM과 sLLM를 구분하여 설명하고 있는데, 강의 내용은 sLLM 이 아닌 SLM으로 보입니다. 어떤 내용이 맞는지 확인 부탁드립니다.

  • 챗봇
  • llm
  • langchain
  • rag
  • openai-api
leon.park 댓글 1 좋아요 0 조회수 65

강의자료문의

해결됨

누구보다 빠르게 배우는 Springboot + React RestAPI 게시판 만들기

react ui 만들기 강의에서 헤더의파일같은거는 강의자료에 있다고 하셨는데 강의자료는 어디에 있나요?? 노션에도 없던데

  • react
  • java
  • kotlin
  • spring-boot
  • jpa
댓글 2 좋아요 1 조회수 90

도메인 모델 패턴 vs 트랜잭션 스크립트 패턴

미해결

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

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 주문 서비스에서 주문, 주문 취소 메서드 비즈니스 로직이 엔티티에 있는데 이렇게 엔티티가 비즈니스 로직을 가지는 도메인 모델 패턴과 서비스에서 비즈니스 로직을 처리하는 트랜잭션 스크립트 패턴 중에 실무에서는 보통 어떤 것을 사용하나요? 각각의 장단점이 있는지도 궁금합니다

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

부분집합 전역변수 질문

미해결

2026 코딩테스트 올인원 [JAVA]

public class Subsets { List<List<Integer>> ans = new ArrayList<>(); List<List<Integer>> solution(int[] nums, int m) { dfs(nums, m, 0, new ArrayList<>()); return ans; } void dfs(int[] nums, int m, int start, List<Integer> curr) { //base case ans.add(new ArrayList<>(curr)); // 매순간 ans에 추가 //상태 전이 for(int i=start; i< nums.length; i++) { curr.add(nums[i]); dfs(nums, m, i+1, curr); curr.remove(curr.size()-1); } } } ans를 전역변수로 설정하고 for문으로 상태 전이할때마다 ans값을 수정하는 방식으로 구현할때 addAll(dfs(nums, m, i+1, curr));으로 하니 dfs가 void로 리턴돼서 에러가 나는데 위의 코드 블럭과 같이 dfs(nums, m, i+1, curr);로 실행하고 basecase에서만 ans에 curr을 추가하는 방식으로 하면 되는걸까요? 질문 봐주셔서 감사합니다!

  • java
  • 코딩-테스트
  • 알고리즘
  • data-structure
ming 댓글 2 좋아요 0 조회수 72

postgresql의 pgvector 벡터는 어떤가요?

미해결

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

안녕하세요. 이번에 회사 내부에서 AI Agent를 도입 예정인데요. 회사 DB는 대부분 postgresql로 구성되어 있는데, postgresql에서 pgvector 벡터 데이터베이스를 제공하더라고요? 사용해도 성능이 괜찮을지.. 혹시 경험이 있을지 궁금해서요. 혹시 주위분들에게 들은 거라도 있으신지 ㅠ

  • vector-database
  • llm
  • langchain
  • rag
  • openai-api
  • 카카오공채-개발
km9311 댓글 2 좋아요 0 조회수 469

OperationEx3에서 꼭 boolean을 써야 하나요?

미해결

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 김영한님은 이렇게 푸셨는데 저는 이렇게 풀었습니다. 이게 문제가 있는 건지 알고 싶습니다. package operator.ex; public class OperationEx3 { static void main(String[] args) { int score = 88; System.out.println(80 <= score && score <= 100); } }

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

synchronized 대신 join 을 사용하여 순서를 보장할 경우 해법이 아닌가요?

미해결

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

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] synchronized 이전 강의에서 join 을 활용하여 순서를 쓰레드의 순서를 보장하여 실행하는 방법에 대해 배웠습니다. 만약 동시에 같은 값에 대해 접근하는 것이 문제 라고 가정 할 경우 join 을 활용하여 특정 쓰레의 종료 이전 까지 다음 쓰레드 를 시작하는 것을 막는 다면 해결할수 있는 문제가 아닌가 생각합니다. 예를들어 다음과 같이 t1.join() 을 사용하면 t1 의 쓰레드가 종료 이전 까지는 t2 는 대기 상태가 될 것이고 t1 에서 최종 결과가 나오기 전까지는 t2 는 실행하지 못할 것 입니다. public class BankMain { public static void main(String[] args) throws InterruptedException { //BankAccount account = new BankAccountV1(1000); BankAccount account = new BankAccountV1(1000); Thread t1 = new Thread(new WithdrawTask(account, 800), "t1"); Thread t2 = new Thread(new WithdrawTask(account, 800), "t2"); t1.start(); t1.join(); sleep(500); log("t1 state :"+t1.getState()); log("t2 state :"+t2.getState()); t2.start(); //t2.join(); log("최종 잔액 : "+account.getBalance()); } }

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

인기 태그

인프런 TOP Writers

주간 인기글