inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

병렬 중첩

미해결

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

형 병렬 중첩 시키는 예제 코드있잖아. Worker Step Multithreading Implementation @Bean public Step managerStep(Step workerStep) { return new StepBuilder("managerStep", jobRepository) .partitioner("workerStep", dailyTimeRangePartitioner) .step(workerStep) .taskExecutor(partitionTaskExecutor()) .gridSize(4) .build(); } @Bean public Step workerStep(SynchronizedItemReader<TestLog> redisLogReader, ItemProcessor<TestLog, TestLog> logProcessor, MongoItemWriter<TestLog> mongoLogWriter) { return new StepBuilder("workerStep", jobRepository) .<TestLog, TestLog>chunk(500, transactionManager) .reader(redisLogReader) .processor(logProcessor) .writer(mongoLogWriter) .taskExecutor(workerTaskExecutor()) .build(); } @Bean @StepScope public SynchronizedItemReader<TestLog> redisLogReader(@Value("#{stepExecutionContext['startDateTime']}") LocalDateTime startDateTime) { log.info("{} read {}", Thread.currentThread().getName(), startDateTime.format(DateTimeFormatter.ofPattern("yyyyMMddHH"))); RedisItemReader<String, TestLog> itemReader = new RedisItemReaderBuilder<String, TestLog>() .redisTemplate(redisTemplate()) .scanOptions(ScanOptions.scanOptions() .match("logs:" + startDateTime.format(DateTimeFormatter.ofPattern("yyyyMMddHH")) + ":*") .count(10000) .build()) .build(); return new SynchronizedItemReader<>(itemReader); } @Bean public TaskExecutor workerTaskExecutor() { ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor(); executor.setCorePoolSize(5); executor.setMaxPoolSize(5); executor.setWaitForTasksToCompleteOnShutdown(true); executor.setAwaitTerminationSeconds(10); executor.setThreadNamePrefix("Worker-Thread-"); executor.setAllowCoreThreadTimeOut(true); executor.setKeepAliveSeconds(30); return executor; } 이렇게 했는데 2025-12-17T13:34:07.885+09:00 ERROR 1568 --- [ main] o.s.batch.core.step.AbstractStep : Encountered an error executing step workerStep in job testLogJob java.lang.NullPointerException: Cannot invoke "org.springframework.data.redis.core.Cursor.hasNext()" because "this.cursor" is null at org.springframework.batch.item.redis.RedisItemReader.read(RedisItemReader.java:62) ~[spring-batch-infrastructure-5.2.4.jar:5.2.4] 이런 오류가 나. 그리고 ItemReader쪽에 log.info("{} read {}", Thread.currentThread().getName(), startDateTime.format(DateTimeFormatter.ofPattern("yyyyMMddHH"))); 로그를 찍었는데 Worker-Thread-5 read 2025121712 Worker-Thread-1 read 2025121706 Worker-Thread-2 read 2025121700 Worker-Thread-3 read 2025121718 이런식으로 찍히고 있어. 하나의 파티션을 여러 스레드가 읽어야 하는데 workerTaskExecutor가 서로 다른 파티션을 읽고 있어. 내가 뭐 놓친게 있는걸까?

  • java
  • spring
  • spring-boot
  • spring-batch
  • backend
ABBCD 댓글 3 좋아요 1 조회수 130

article_like_count api test

해결됨

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

동시성 이슈가 안터질 수도 있나요?

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

SIGHUP 에러

미해결

한 번에 끝내는 AI 에이전트 개발 올인원 (w. LangGraph, Google ADK, CrewAI)

안녕하세요 섹션 4 수업 듣고 있는데 uv run ~ 명령어로 실행하면 아래와 같은 에러가 뜹니다. 해결 방법 알 수 있을까요?ㅠㅠ (agent-a-to-z) PS C:\Project\3_FUND_MANAGER_AGENT> uv run .\ main.py Traceback (most recent call last): File "C:\Project\3_FUND_MANAGER_AGENT\ main.py ", line 2, in <module> from crewai.flow.flow import Flow, listen, start, router, or_ File "C:\Project\3_FUND_MANAGER_AGENT\.venv\Lib\site-packages\crewai\__init__.py", line 6, in <module> from crewai.agent.core import Agent File "C:\Project\3_FUND_MANAGER_AGENT\.venv\Lib\site-packages\crewai\agent\__init__.py", line 1, in <module> from crewai.agent.core import Agent File "C:\Project\3_FUND_MANAGER_AGENT\.venv\Lib\site-packages\crewai\agent\ core.py ", line 36, in <module> from crewai.agents.crew_agent_executor import CrewAgentExecutor File "C:\Project\3_FUND_MANAGER_AGENT\.venv\Lib\site-packages\crewai\agents\crew_agent_ executor.py ", line 15, in <module> from crewai.agents.agent_builder.base_agent_executor_mixin import CrewAgentExecutorMixin File "C:\Project\3_FUND_MANAGER_AGENT\.venv\Lib\site-packages\crewai\agents\agent_builder\base_agent_executor_ mixin.py ", line 6, in <module> from crewai.events .event_listener import event_listener File "C:\Project\3_FUND_MANAGER_AGENT\.venv\Lib\site-packages\crewai\events\event_ listener.py ", line 10, in <module> from crewai.events .listeners.tracing.trace_listener import TraceCollectionListener File "C:\Project\3_FUND_MANAGER_AGENT\.venv\Lib\site-packages\crewai\events\listeners\tracing\trace_ listener.py ", line 74, in <module> from crewai.events .types.system_events import SignalEvent, on_signal File "C:\Project\3_FUND_MANAGER_AGENT\.venv\Lib\site-packages\crewai\events\types\system_ events.py ", line 17, in <module> class SignalType(IntEnum): ...<6 lines>... SIGCONT = signal.SIGCONT File "C:\Project\3_FUND_MANAGER_AGENT\.venv\Lib\site-packages\crewai\events\types\system_ events.py ", line 22, in SignalType SIGHUP = signal.SIGHUP ^^^^^^^^^^^^^ AttributeError: module 'signal' has no attribute 'SIGHUP'

  • python
찰식빵 댓글 1 좋아요 0 조회수 95

수업을 잘 듣고 있습니다.

미해결

토비의 스프링 6 - 이해와 원리

혹시 지금 강의하시는 내용 중애 notion의 내용을 받아 볼 수는 없을까 해서요.

  • java
  • spring
임정훈 댓글 2 좋아요 0 조회수 129

5.2.2 강의의 사운드만 조금 작은것 같네요

해결됨

파이썬 주식 매매 봇으로 주식시장 자동사냥하기

5.3.2도 5.4.2도 5.5.2도 작네요 실습하고 이론 동영상 분리하면서 사운드가 작아진건지 이건 나중에 강의 만드실때 반영해서 해주셨으면 좋겠습니다

  • python
  • pandas
  • 차트분석
  • 퀀트
  • trading
박윤재 댓글 2 좋아요 0 조회수 110

실습을 따라하는데 데이터베이스가 보이지 않아요

미해결

[리뉴얼] 처음하는 SQL과 데이터베이스(MySQL) 부트캠프 [입문부터 활용까지]

강의 내용에 실습 영역을 따라 스크립트를 작성하였는데 데이터베이스가 보여지지 않습니다. 맥, 윈도우 모두 동일한 상태라 별도로 db를 다운받아 워크벤치 넣어야되는 것인지 문의 드립니다. - 강의 영상에 대한 질문이 있으시면, 상세히 문의를 작성해주시면, 주말/휴일 제외, 2~3일 내에 답변드립니다 (이외의 문의는 평생 강의이므로 양해를 부탁드립니다.) - 강의 답변이 도움이 안되셨다면, dream@fun-coding.org 로 메일 주시면 24시간 내에 재검토하겠습니다. - 괜찮으시면 질문전에 챗GPT 와 구글 검색을 꼭 활용해보세요~ - 잠깐! 인프런 서비스 운영(다운로드 방법포함) 관련 문의는 1:1 문의하기를 이용해주세요.

  • python
  • sql
  • mysql
  • dbms/rdbms
  • 데이터-엔지니어링
Park Soo Jin 댓글 1 좋아요 0 조회수 82

자료 다운로드 하면 링크가 모두 클릭이 안됨

미해결

실리콘밸리 데이터 리더가 알려주는 Airflow 기초

자료 다운로드 하면 링크가 모두 클릭이 안됩니다. 모든 강의 자료 PDF로 다운로드되며, 하이퍼링크처럼 표시만 되고 클릭 불가합니다. 링크는 다른곳에 따로 올리시는 걸까요?

  • python
  • sql
  • airflow
  • snowflake
wony 댓글 2 좋아요 0 조회수 164

이벤트 페이로드 객체의 생성 방식이 팩토리 메서드 패턴이 아닌 빌더 패턴인 이유가 궁금합니다!.

해결됨

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

안녕하세요, 강사님 덕분에 많은 인사이트를 얻으며 성장중인 수강생입니다ㅎㅎ 다름이 아니라 이벤트 페이로드 타입의 생성 방식이 팩토리 메서드 패턴이 아닌 빌더 패턴인 이유가 궁금합니다! 빌더 패턴의 장점은 생성자 오버로딩이 많을 때, 간편하게 사용할 수 있다는 장점이 있지만 필수인 필드에 null 이 들어갈 수 있다는 단점이 있다고 생각합니다. 그래서, 저는 빌더 패턴을 해당 객체의 필드 중 null 이 들어갈 수 있는 필드가 많을 때 사용하는 걸 선호하다 보니, 이벤트 페이로드 타입을 생성 할 때 일부 필드에 null 이 들어가는 걸까? 란 궁금증으로 질문이 생기게 되었습니다. 빌더 패턴에 대한 강사님의 의견이 궁금하며 이벤트에 기존에 사용하신 팩토리 메서드 대신 빌더 패턴을 사용하신 계기가 궁금합니다! 감사합니다 :)

  • java
  • mysql
  • spring-boot
  • kafka
  • redis
종혁 댓글 2 좋아요 0 조회수 116

실행이 안되네요

미해결

실전! 코틀린과 스프링 부트로 도서관리 애플리케이션 개발하기 (Java 프로젝트 리팩토링)

Execution failed for task ':compileKotlin'. > Error while evaluating property 'filteredArgumentsMap' of task ':compileKotlin' > Could not resolve all files for configuration ':compileClasspath'. > Could not find org.jetbrains.kotlin:stdlib-jdk8:1.6.21. Required by: project : Possible solution: - Declare repository providing the artifact, see the documentation at https://docs.gradle.org/current/userguide/declaring_repositories.html 위와 같은 에러가 뜨는데 아래 잘 바꿨거든요? plugins { id 'org.springframework.boot' version '2.7.6' id 'io.spring.dependency-management' version '1.0.12.RELEASE' id 'java' id 'org.jetbrains.kotlin.jvm' version '1.6.21' } group = 'com.example' version = '0.0.1-SNAPSHOT' sourceCompatibility = '11' repositories { mavenCentral() } dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'org.jetbrains.kotlin:stdlib-jdk8' runtimeOnly 'com.h2database:h2' testImplementation 'org.springframework.boot:spring-boot-starter-test' } tasks.named('test') { useJUnitPlatform() } compileKotlin{ kotlinOptions{ jvmTarget="11" } } compileTestKotlin{ kotlinOptions{ jvmTarget="11" } } 왜안될까요

  • java
  • spring
  • kotlin
  • spring-boot
  • 리팩터링
김성관 댓글 2 좋아요 0 조회수 107

pdf 표현 질문드립니다.

미해결

실전! 스프링 데이터 JPA

pdf 6페이지에 org.springframework.data.repository.Repository 를 구현한 클래스는 스캔 대상 이라고 나와있는데요 이 표현에 대해 궁금합니다. 저는 JpaRepository 뿐만 아니라 Repository 인터페이스를 상속한 인터페이스는 스캔 대상이 되어 구현체가 생성되는 것으로 강의를 이해했는데요. Repository 를 구현한 클래스 가 스캔 대상이라고 하니 정말 Repository나 JpaRepository를 구현한 클래스가 스캔 대상이 되는 제가 이해하지 못한 부분이 있는 것인지 단순 표현이 잘못된 것인지 궁금합니다. 저는 상속한 클래스가 스캔 대상 일거라고 생각을 했습니다..

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

195개 실제 기출 문제 분석은 어디있을까요?

미해결

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

2026 최신 코딩테스트 자바, 195개 실제 기출 문제 분석 제목을 보고 이거다 싶어서 구매했어요. 강의의 제목과 강의에 대한 설명들을 볼때 195개에 대해 기출문제에 대해서 분석해주는 것처럼 보입니다. 실제로 본문 노션화면에서도 195개에 대해서 분석 한 것을 보여주는 것처럼 보여요. 초장에는 개념설명이기에 후에 195개에대해서 분석해주시는줄알았어요. 허나 자료에도, 강의에도 실제 기출 195개에 대한 분석 정보는 전혀 찾아볼수없습니다. 확인할 곳 이 있으면 알려주시면 좋겠고, 만약 아니라면 제목과 본문에서 해당 정보는 오해해 소지가 있어보입니다. 실제 기출 195개에 대한 분석이 없다면 환불요청하고싶어요.

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

AI 보이스 생성을 위한 사전 노드 채팅 질문 사항

해결됨

원클릭으로 AI가 생성해주는 Youtube 쇼츠 만들기 자동화(with n8n)

강사님과 동일하게 시행했는데 왜 아이템이 14개나 가져와질까요... 이부분에서 막혀가지고 다음회차에 open ai 실행중에 너무 많은 정보가 전송돼서 막히는것같은데 답변 부탁드리겠습니다 ㅠㅠ

  • python
  • youtube-api
  • n8n
  • ai-활용-(ax)
히포 댓글 2 좋아요 0 조회수 86

프론트 영역 보는법

미해결

실전! 코틀린과 스프링 부트로 도서관리 애플리케이션 개발하기 (Java 프로젝트 리팩토링)

안녕하세요 이거 프론트 부분은 다 해서 주시는데 프론트 영역은 어떻게 보는지 알 수 있을까요?

  • java
  • spring
  • kotlin
  • spring-boot
  • 리팩터링
김성관 댓글 2 좋아요 0 조회수 92

Kaggle 에서 Santander customer satisfaction data 를 다운로드 되지가 않습니다.

미해결

[개정판] 파이썬 머신러닝 완벽 가이드

안녕하세요! 강의 설명 너무 잘해주셔서 잘 듣고 있습니다. Santander customer satisfaction data 를 다운받으려고 하는데, Kaggle 에서 폰넘버도 verify 하라고 해서 그것도 했는데도, data가 다운로드가 안되네요. 이전에 비슷한 질문 올리신 분께, 선생님께서 data 를 올려놓아주신것을 보았는데, 그 파일은 더이상 구글드라이브에 존재하지 않는다고 떠서 다시 문의 드립니다. 감사합니다.

  • python
  • 머신러닝
  • 통계
minkyung julia kim 댓글 2 좋아요 0 조회수 109

좌표 정렬 문제 이 코드가 왜 틀린지 모르겠습니다 ㅠㅠ

미해결

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

package C06_07; import java.util.*; public class Main { public int[][] solution(int n, int[][] arr){ Arrays.sort(arr, new Comparator<int[]>(){ public int compare(int[] s1, int[] s2){ if (s1[0] == s2[0]){ return s1[1] - s2[1]; } else return s1[0] - s2[0]; } }); return arr; } public static void main(String[] args){ Main T = new Main(); Scanner scan = new Scanner(System.in); int n = scan.nextInt(); int[][] arr = new int[n][2]; for (int i = 0; i < n; i++){ for (int j = 0; j < 2; j++){ arr[i][j] = scan.nextInt(); } } for (int[] x : T.solution(n, arr)){ for (int y : x) System.out.print(y + " "); System.out.println(); } } } 이렇게 진행을 하였는데 계속 오답이 나옵니다 왜 틀린 걸까요..? 테스트 케이스도 맞는데 왜 틀린지 모르겠습니다 ㅠㅠ

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

강의 코드 요청 및 질문

해결됨

컴퓨터 비전 이상 탐지, 개발부터 배포까지 올인원 마스터

안녕하세요. 강의 코드를 메일 공유 부탁 드립니다. (메일 : kdhz0738@gmail.com) 질문 있습니다. 딥러닝 모델을 활용해 정상/불량 분류 외에 추가로 불량 영역을 박스 표시하고 싶습니다. 방식이나 키워드를 청해 들을 수 있을까요

  • python
  • 머신러닝
  • 딥러닝
  • azure-databricks
  • 인공지능(ai)
East Sea 댓글 2 좋아요 0 조회수 86

creatomate 영상이 시트에 있는 리스트 전부 다 만들어져요.

해결됨

원클릭으로 AI가 생성해주는 Youtube 쇼츠 만들기 자동화(with n8n)

첫번째 컬럼값만 가져오도록 한거 같은데 Creatomate영상편집부터 시트에 있는 리스트 전부의 영상을 만들고, 유튜브에도 다 업로드 해버려요. 공짜 다써버림요. 첨에 5개(이미지, 영상도 없던 것들을) Creatomate로 다 만들어버리고, 두번째는 4개 있었는데(state-업로드완료로 되어 있었던 것도 다시 영상을 만들어버려요..ㅠㅠ)

  • python
  • youtube-api
  • n8n
  • ai-활용-(ax)
wooaimage 댓글 1 좋아요 0 조회수 94

[33. 좋아요 수 구현] 에서 테스트 하는 화면 동시성 문제

해결됨

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

학습 관련 질문을 최대한 상세히 남겨주세요! 고민 과정도 같이 나열해주셔도 좋습니다. 먼저 유사한 질문이 있었는지 검색해보세요. 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. [33. 좋아요 수 구현] 에서 테스트 하는 화면에서요. 해당 방법대로 실행을 하면 동시성 문제가 발생합니다. Record has changed since last read in table 'article_like_count' 저는 MariaDB를 사용하고 있는데요. MySQL도 마찬가지로 기본 잠금 수준이 Repeatable Read 라고 알고 있습니다. 해당 기본 수준으로 실행하면 동시성 문제로 영상과 다른 결과를 보이게 됩니다. 따라서 잠금 수준을 Read Commited 나 Read Uncommited 로 변경하면 제대로 실행이 됩니다. 이렇게 하는 것이 정답인지 아니면 다른 원인이 있는건지 알려주세요.

  • java
  • mysql
  • spring-boot
  • kafka
  • redis
주주파파 댓글 2 좋아요 0 조회수 109

apache airflow 설치하기 질문

해결됨

실리콘밸리 엔지니어와 함께하는 Apache Airflow

안녕하세요 mac에서 apache 설치하려고 하는데, Apache Airflow 설치하기 강의가 learn-apache-airflow-main.zip 파일 기반으로 진행되는 걸까요? 일단 강의환경에 맞춰서 python 3.10 & airflow 2.6.2 로 가상환경 생성해서 하고있는데 강의에서보이는 파일목록이 따로 생성되지 않아서 문의드립니다..

  • python
  • 빅데이터
  • 데이터-엔지니어링
  • airflow
얌얌쩝쩝 댓글 2 좋아요 0 조회수 118

연관관계 매핑 질문드립니다.

미해결

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

강의 13:30분 부터 설명하시는 부분에 대한 질문입니다. 해당 부분은 Member의 팀 값을 변경했을때 DB의 Member의 외래키(TEAM_ID)가 변경되어야하는지, Team의 멤버들을 업데이트 했을 때 외래키 값이 업데이트 돼야하는지에 대한 내용인데요. 전자는 코드상으로 member.setTeam(team)이 될것이고 후자는 team.getMembers().addMember(member)가 될텐데요. 전자는 이전 강의인 단방향 연관관계에서도 봤듯이 해당 코드를 진행하면 DB Member의 외래키 업데이트가 자동적으로 이루어 지는 것으로 이해하고 있습니다 후자는 후자의 코드를 진행해도 FK 업데이트가 이루어 지지 않는 것으로 알고 있습니다.(Team에는 외래키가 없는 것이 원인으로 알고있습니다.) 그래서 영상에서 말씀하신 둘중 무엇으로 외래키를 업데이트 해야하냐 같은 딜레마라고 언급하신 것이 이해가 잘 되질 않습니다. 어차피 후자의 코드자체가 외래키가 업데이트 되지 않는 코드인데 강의에서 언급하신 전자, 후자 중 어느 것으로 업데이트 해야 하는지에 대한 딜레마가 나온 이유를 모르겠습니다. 이부분을 어떻게 이해하여야할까요?

  • java
  • jpa
yoon6669 댓글 2 좋아요 0 조회수 118

인기 태그

인프런 TOP Writers

주간 인기글