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

코드 공유

미해결

NestJS 코어 가이드

이거 전체 완성 코드 있는 git hub 링크 혹시 받을 수 있을까요?

  • rest-api
  • nestjs
  • prisma
  • authentication
  • swagger
이승민 댓글 1 좋아요 0 조회수 110

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

해결됨

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

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

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

강의 순서가 바뀌었어요~

미해결

자바프로그래밍

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

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

3강부터 화면에 강좌소개 내용만 나오고 아무런 내용도 안나오고 완료 처리가 되네요.

미해결

<제미나이 CLI 완벽 가이드> 4주 완독 챌린지 : 책 한 권을 온전히 '나만의 무기'로 만드는 시간

강좌 내용이 없어 pc에서 핸드폰으로 옮겨서 3강,4강 클릭했더니 반응은 없고 완료된 것으로 처리되네요. 어떻게 시청해야 하나요?

  • rest-api
  • tauri
  • gemini
  • cli
  • 북-챌린지
oh419lee 댓글 2 좋아요 0 조회수 86

[공유] DTO optional 필드가 undefined로 잡혀 TypeORM 조건이 깨지는 현상

미해결

[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core

Postman 테스트 중 데이터를 받아오지 못하는 문제가 생겨 원인을 찾아보았습니다. 같은 문제를 겪는 분이 계시면 참고하세요. 이하 AI로 작성되었습니다. 현상: /posts?order__createdAt=ASC 처럼 where 파라미터 없이 호출했는데, findOptions.where.id 가 MoreThan(undefined) 로 만들어져 repository.find() 결과가 0건으로 나옵니다. 원인: ValidationPipe({ transform: true }) 로 DTO가 “클래스 인스턴스”가 되고 main.ts ), TS target 이 ES2022+ (예: ES2023 , tsconfig.json )이면 초기값 없는 DTO 필드도 JS에 field; 로 emit되어 인스턴스에 undefined 프로퍼티가 “존재”합니다 base-pagination.dto.js ). 이 상태에서 Object.entries(dto) 로 필터를 만들면 undefined 도 같이 파싱되어 MoreThan(undefined) 가 됩니다. 참고: 이 동작은 TS 3.7 의 useDefineForClassFields 도입 이후(4.3에서 esnext 기본 true, 4.6에서 es2022 타겟 추가) 현대 타겟에서 흔히 발생할 수 있습니다. NestJS/class-validator 변경이라기보다 TS 타겟/클래스 필드 emit 차이입니다. 해결: 필터 조합 시 undefined/null 은 스킵하도록 방어코드 추가(예: if (value === undefined || value === null) continue; ) — common.service.ts . 이 케이스를 막는 옵션은 필터 조합 로직에서 undefined/null 을 스킵(가장 단순/안전) (파이프 레벨로 하고 싶으면) 커스텀 파이프로 undefined 키 삭제/또는 class-transformer 의 instanceToPlain(dto, { exposeUnsetFields: false }) 같은 방식으로 “undefined 없는 plain”으로 만든 뒤 사용 등이 있습니다.

  • javascript
  • typescript
  • rest-api
  • nestjs
  • backend
목화 댓글 2 좋아요 0 조회수 154

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

미해결

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

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

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

compare 함수 설명에 오해의 소지가 있어보입니다.

해결됨

한 번에 끝내는 자바스크립트: 바닐라 자바스크립트로 SPA 개발까지

안녕하세요. 아래 혼동을 줄수 있는 설명에 대해 문의드립니다. 아래 캡춰 설명에서 a: 다음 b: 이전 이 설명이 오해의 소지가 있어보입니다. 오히려 거꾸로 설명해야 맞는거 같습니다. 이 설명에서 a: 이전 b: 다음 이렇게 옆 설명 멘트를 수정해야 맞는거 같습니다.

  • javascript
  • rest-api
  • spa
  • dom
사랑2 댓글 2 좋아요 0 조회수 125

커리큘럼 관련 질문

미해결

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

강의자료문의

해결됨

누구보다 빠르게 배우는 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

강의를 시청할 수가 없네요

해결됨

<제미나이 CLI 완벽 가이드> 4주 완독 챌린지 : 책 한 권을 온전히 '나만의 무기'로 만드는 시간

강의 듣고자 열기 눌러 인프런앱에 들어갔는데 이 강좌는 없고 자바강의 수강중이라고 나오네요. 이상하게 연결된 것 같습니다

  • rest-api
  • tauri
  • gemini
  • cli
  • 북-챌린지
댓글 2 좋아요 0 조회수 79

prisma 버전 변경

미해결

NestJS 코어 가이드

prisma 버전이 바뀌었는지 현재 강의대로 진행하면 13:15 부터 진행하는 서버 실행이 아래 오류 메시지 던지면서 불가능해집니다. 어떤 버전으로 다운그레이드 해야하는지, 혹은 어떻게 해결하면 되는지 확인 부탁드립니다. $ nest start file:///C:/Users/jw/Documents/GitHub/nest-js-core/dist/generated/prisma/client.js:38 Object.defineProperty(exports, "__esModule", { value: true }); ^ ReferenceError: exports is not defined in ES module scope at file:///C:/Users/jw/Documents/GitHub/nest-js-core/dist/generated/prisma/client.js:38:23 at ModuleJobSync.runSync (node:internal/modules/esm/module_job:436:37) at ModuleLoader.importSyncForRequire (node:internal/modules/esm/loader:427:47) at loadESMFromCJS (node:internal/modules/cjs/loader:1561:24) at Module._compile (node:internal/modules/cjs/loader:1712:5) at Object..js (node:internal/modules/cjs/loader:1895:10) at Module.load (node:internal/modules/cjs/loader:1465:32) at Function._load (node:internal/modules/cjs/loader:1282:12) at TracingChannel.traceSync (node:diagnostics_channel:322:14) at wrapModuleLoad (node:internal/modules/cjs/loader:235:24) Node.js v22.17.0 error Command failed with exit code 1. info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

  • rest-api
  • nestjs
  • prisma
  • authentication
  • swagger
댓글 2 좋아요 0 조회수 165

부분집합 전역변수 질문

미해결

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

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

주간 인기글