Thumbnail
지식공유자의 깜짝할인 중(D-3)
BEST
개발 · 프로그래밍 백엔드

스프링 배치 대시보드

(4.8)
71개의 수강평 ∙  3,028명의 수강생
20% 99,000원 79,200원

월 15,840원

5개월 할부 시
지식공유자: 정수원
총 110개 수업 (45시간 14분)
수강기한: 
무제한
수료증: 발급
난이도: 
입문
-
초급
-
중급이상
지식공유자 답변이 제공되는 강의입니다
폴더에 추가 공유

초급자를 위해 준비한
[웹 개발, 백엔드] 강의입니다.

초급에서 중~고급에 이르기까지 스프링 배치의 기본 개념부터 API 사용법과 내부 아키텍처 구조를 심도있게 다룹니다. 그리고 스프링 배치 각 기능의 흐름과 원리를 학습하게 되고 이를 바탕으로 다양한 배치 어플리케이션 개발을 위한 실무적 감각을 익히게 됩니다.

✍️
이런 걸
배워요!
스프링 배치 핵심 도메인 이해
스프링 배치 Job, Step, Flow 이해 및 API 활용
스프링 배치 Chunk 기반 프로세스 이해 및 활용
스프링 배치 예외 및 오류 제어
스프링 배치 멀티 스레드 프로세싱 이해 및 활용
스프링 배치 이벤트 리스너 다루기
스프링 배치 TDD 및 운영 API 활용
스프링 배치 실전 프로젝트

백엔드 배치 처리를 더 간편하고 효과적으로! 
스프링 배치의 세계를 경험해 보세요. 

스프링 배치 학습, 
어떻게 시작해야 할까요?

스프링 재단에서 진행하는 스프링 프로젝트는 다양합니다.
대표적으로 스프링 부트나 스프링 데이터, 스프링 클라우드 등이 있습니다.
그리고 이 프로젝트들과 관련된 자료나 레퍼런스가 많이 존재합니다.

그런데 스프링 배치는 그렇지 않습니다.

Spring Batch?

스프링 배치는 배치 어플리케이션을 개발하는 데 필요한 강력한 API를 제공하고 있습니다. 기본적으로 제공하는 API만을 사용해도 복잡한 배치 프로그램도 간단하게 구현할 수 있습니다.

스프링 배치는 스프링의 하위 프로젝트 중에서도 역사가 짧지 않고 버전이 계속 업그레이드 되면서 견고한 기술적 기반을 갖추고 있습니다. 설계 및 구현에 있어서도 확장성과 유연성이 높음에도 불구하고, 관련 자료나 레퍼런스가 다른 스프링 프로젝트들과 비교해서 턱없이 부족한 것이 현실입니다.

이에 그동안 스프링 배치를 사용해 온 경험을 바탕으로 스프링 배치의 기술을 습득하고자 하는 개발자들에게 지식을 공유하고자 강의를 기획, 제작하게 되었습니다.


스프링 배치의 
핵심을 알려드립니다.

본 강의는 스프링 배치의 기본적인 사용법을 전혀 모르는 사용자부터 기초적인 지식 및 사용 경험은 있지만 좀더 깊이있는 지식을 습득하고, 스프링 배치의 핵심적인 개념과 원리, 내부 구조, 동작 방식 등을 심도있게 이해하고 이를 응용하고자 하는 분들을 위한 강의입니다.


자바 개발자라면 
스프링 배치보다 
더 나은 선택은 없습니다.

자바를 사용하고 있는 개발자라면 배치 어플리케이션을 개발함에 있어 스프링 배치보다 더 나은 선택은 없다고 자부합니다. 스프링의 공통적인 기능을 다 사용할 수 있는 동시에 배치 어플리케이션 개발에 필요한 다양한 요소들을 제공해주고 있으며 간단한 설정과 구성으로도 복잡하고 견고한 어플리케이션을 만들 수 있기 때문입니다.

그러기 위해서는 스프링 배치의 기초와 기본을 확실하게 이해 및 정립하고 나서 어플리케이션 개발로 넘어가야 합니다. 단순히 API 사용법을 외우고 코딩해서는 스프링 배치의 방대한 기술적 장점을 극대화할 수 없습니다.

스프링 배치를 둘러싼 고민, 
이 강의로 OK.

  • “배치 어플리케이션을 만들 때 스프링 배치가 가장 좋은 선택인가요?”
  • “스프링 배치의 기본적인 사용법 및 구성하는 내용을 대략적으로 알고 있는데 이것으로도 배치 어플리케이션을 개발하는데 괜찮을까요?”
  • “다양한 배치 어플리케이션을 개발하는데 스프링 배치를 어느 정도 수준까지 알아야 하는가요?”

이 강의는 스프링 배치의 핵심적인 개념과 원리뿐 아니라 다양한 실습과 내부 흐름들을 심층적으로 분석함으로써 실무적으로 다양한 배치 어플리케션을 개발할 수 있는 역량을 기르는 데 목적을 두고 있습니다.


이런 분들께 
추천합니다.

스프링 배치
(Spring Batch)를 
처음 접하는 
입문자 

스프링 배치를 통해 
배치 어플리케이션 
(Batch Application)을 
만들고자 하는 분 

단순 API 사용을 넘어 
내부 구조와 동작원리 
등을 심층적으로 
알고자 하는 분 

스프링 배치의 
기능을 확장하여 
커스터마이징할 수준의 
역량을 갖추고 싶은 분 


이 강의의 특징 

  • 단순한 API 사용법과 문법만을 학습하지 않습니다.
  • 스프링 배치가 어떤 구조로 동작하는지 정확한 흐름들을 이해하고 원리를 파악하도록 합니다.
  • 스프링 배치가 제공하는 기본 기능을 확장하여 커스터마이징하는 역량을 기르도록 합니다.
  • 실전 예제를 통해 스프링 배치의 기술을 어떻게 실무적으로 활용할 수 있을지에 대한 감각을 익히게 됩니다.

학습 커리큘럼

1. 스프링 배치의 핵심 도메인 이해 및 활용

스프링 배치에서 Job을 구성하는데 있어서 사용되는 여러 도메인들이 있습니다. 예를 들어 Job, Step, Flow, Tasklet, JobInstance, Jobexecution, StepExecution, ExecutionContext 등.. 이러한 도메인들에 대한 개념부터 확실하게 이해를 해야 올바른 Job을 구성하고 활용할 수 있습니다. 각 도메인들의 용어적 개념과 도메인들간의 관계를 이해함으로써 간단한 Job부터 복잡한 Job까지 원하는 Job을 체계적으로 구성하는 방법을 익히게 됩니다.

2. 스프링 배치의 Job, Step, Flow 이해 및 API 활용

스프링 배치에서 Job을 구성하기 위한 기본적인 단위와 항목들에 대해서 학습합니다. Job, Step, Flow의 기본 개념과 구조를 이해하고 각 API 에 대한 설정과 활용방법에 대해 학습합니다. 그리고 Job과 Step의 여러 유형들에 대해 살펴보고 Job, Step, Flow를 조합하여 배치잡을 구성하는 방법을 학습함으로서 스프링 배치의 가장 기본이 되는 Job의 구성 및 활용을 자유자재로 구현할 수 있는 능력을 기르게 됩니다.

3. 스프링 배치의 청크 기반 프로세싱 정복

스프링 배치에서 가장 핵심적인 기능 중에 하나가 바로 청크 기반 프로세싱입니다. Chunk 개념을 도입하여 대용량의 데이터를 고성능으로 처리를 할 수 있도록 합니다. 여기에 사용되는 API가 ItemReader, ItemProcessor, ItemWriter 입니다. 청크 기반 프로세싱의 기본적인 개념과 원리를 학습하고 내부 아키텍처까지 파악합니다. 그리고 다양한 예제를 통해 청크 기반 프로세싱을 통한 데이터 처리의 활용법을 정복하게 됩니다.

4. 스프링 배치의 멀티 스레드 프로세싱 정복

대용량의 데이터 처리와 시간이 많이 소요되는 배치 처리는 단일 스레드가 아닌 멀티 스레드로 구성하여 동시에 병렬적인 배치 처리를 함으로써 더욱 효율적인 배치 처리가 이루어지도록 합니다. 자바의 스레드 모델에 대한 기본적인 개념과 스프링 배치에서 제공하는 멀티 스레드 관련된 기술들을 먼저 이해하고 여러 멀티 스레드 유형의 배치처리 기술들을 익히게 됩니다.

5. 스프링 배치의 오류 제어

배치 실행에 있어서 오류나 예외는 언제든지 발생할 가능성이 있습니다. 이러한 상황에서 오류로 인한 장애를 미리 예상하고 대비함으로써 배치 서비스가 완전히 중단되는 것이 아닌 일시적인 중단 혹은 예외를 무시하고 다음 단계로 가는 등의 처리를 함으로써 내결함성을 가진 배치 어플리케이션을 어떻게 구성할 수 있는지 학습하게 됩니다. 이와 관련된 기술인 Skip과 Retry 기능에 대한 자세한 내용과 실습을 진행합니다.

6. 실전! 스프링 배치 어플리케이션 예제

스프링 배치의 기술을 사용해서 실전에서 응용할 수 있는 배치 어플리케이션을 제작하는 시간을 가집니다. 스프링 배치 기반 위에서 멀티 스레드 구조로 API 서버와 통신하는 배치 어플리케이션을 구현하는 예제를 구현해 봄으로써 스프링 배치의 전반적인 내용을 이해함과 동시에 실무에서 스프링 배치를 어떻게 활용할 수 있는지에 대한 식견을 넓혀 주는 시간이 될 것입니다.


이 강의를 만든 
지식공유자를 소개합니다. 

정수원(leaven)

  • 현직 자바 개발자
  • SI/SM/솔루션/Mobile/Front&Back-end 의 다양한 프로젝트 경험
  • Architect/PM/PL 로서 역할 수행
  • Github

 

이런 분들께 추천드려요!

🎓
학습 대상은
누구일까요?
스프링 배치의 기본적인 구조와 개념을 확실하게 이해하고 싶은 분
스프링 배치의 단순한 API 사용법을 넘어서 내부 처리 과정과 아키텍처를 이해하고 싶은 분
스프링 배치를 활용해 실무적 수준의 배치 어플리케이션을 개발하고자 하는 분
스프링 배치의 입문자부터 중고급자까지 활용할 수 있는 내용으로 구성
📚
선수 지식,
필요할까요?
Java
Spring Boot
JDBC, JPA
Lombok

안녕하세요
정수원 입니다.
정수원의 썸네일

다양한 프로젝트에서 웹/모바일/솔루션 제품 개발과 관련된 업무를 진행해 오고 있으며 분석/설계/개발 Role 을 맡아 오고 있습니다.

공공기간, 교육프로그램, 기업 프로젝트, 쇼핑몰 등의 웹 개발 및 솔루션 프로그램, 프레임워크, 오픈소스 연동 등의 아키텍처 설계 및 구조적 고도화 개선 등을 해 오고 있으며 개발, PL 등의 역할을 맡았습니다.

다양한 Open Source 와 여러 기술적인 경험들을 통해 웹의 전반적인 기술 흐름들을 익혔으며 개발 경험이 거듭될 수록 요구사항의 기능 구현에만 거치지 않고 좀 더 OOP 적인 구조의 소프트웨어로서 안전성과 성능을 고려한 아키텍처링과 튜닝의 기술들을 접목시켜 지속적으로 더 훌륭한 소프트웨어를 완성하기 위한 연구와 개발 실무를 책임감 있게 맡아 오고 있습니다.

 

커리큘럼 총 110 개 ˙ 45시간 14분의 수업
이 강의는 영상, 수업 노트, 첨부 파일이 제공됩니다. 미리보기를 통해 콘텐츠를 확인해보세요.
섹션 0. 강좌 소개
섹션 1. 스프링 배치 소개
섹션 2. 스프링 배치 시작
섹션 3. 스프링 배치 도메인 이해
목차 소개 미리보기 03:14 Job 미리보기 25:36 JobInstance 미리보기 30:47
JobParameter 32:31
JobExecution 25:10
Step 31:08
StepExecution 25:47
StepContribution 16:48
ExecutionContext 43:17
JobRepository 30:24
JobLauncher 39:51
섹션 4. 스프링 배치 실행 - Job
목차 소개 미리보기 01:03 배치 초기화 설정 미리보기 30:57
Job and Step 소개 04:57
JobBuilderFactory 39:12
SimpleJob - 개념 및 API 소개 31:55
SimpleJob - start() / next() 10:12
SimpleJob - validator() 30:04
SimpleJob - preventRestart() 13:59
SimpleJob - incrementer() 17:06
SimpleJob 아키텍처 18:12
섹션 5. 스프링 배치 실행 - Step
StepBuilderFactory 23:23
TaskletStep - 개념 및 API 소개 35:47
TaskletStep - tasklet() 13:16
TaskletStep - startLimit() / allowStartIfComplete() 17:22
TaskletStep 아키텍처 19:11
JobStep 35:16
섹션 6. 스프링 배치 실행 - Flow
FlowJob - 개념 및 API 소개 33:28
FlowJob - start() / next() 12:50
Transition - 배치상태 유형 (BatchStatus / ExitStatus / FlowExecutionStatus) 34:29
Transition - on() / to() / stop(), fail(), end(), stopAndRestart() 46:05
사용자 정의 ExitStatus 25:36
JobExecutionDecider 26:53
FlowJob 아키텍처 18:22
SimpleFlow - 개념 및 API 소개 24:28
SimpleFlow 예제 16:15
SimpleFlow 아키텍처 48:37
FlowStep 13:44
@JobScope / @StepScope - 기본개념 및 설정 31:27
@JobScope / @StepScope 아키텍처 36:19
섹션 7. 스프링 배치 청크 프로세스 이해
목차 소개 02:28
Chunk 29:32
ChunkOrientedTasklet - 개념 및 API 소개 41:11
ChunkOrientedTasklet - ChunkProvider / ChunkProcessor 44:40
ItemReader / ItemWriter / ItemProcessor 이해 44:12
ItemStream 38:19
Chunk Process 아키텍처 18:05
섹션 8. 스프링 배치 청크 프로세스 활용 - ItemReader
목차 소개 02:23
FlatFileItemReader - 개념 및 API 소개 54:53
FlatFileItemReader - delimetedlinetokenizer 15:58
FlatFileItemReader - fixedlengthtokenizer 16:43
FlatFileItemReader - Exception Handling 09:56
XML StaxEventItemReader - 개념 및 API 소개 13:56
XML StaxEventItemReader -예제 15:17
JsonItemReader 08:39
DB - Cursor & Paging 이해 13:47
DB - JdbcCursorItemReader 30:37
DB - JpaCursorItemReader 18:46
DB - JdbcPagingItemReader 33:54
DB - JpaPagingItemReader 25:38
ItemReaderAdapter 12:32
섹션 9. 스프링 배치 청크 프로세스 활용 - ItemWriter
FlatFileItemWriter - 개념 및 API 소개 12:51
FlatFileItemWriter - delimeted 21:09
FlatFileItemWriter - format 06:20
XML StaxEventItemWriter 15:34
JsonFileItemWriter 05:57
DB - JdbcBatchItemWriter 19:12
DB - JpaItemWriter 15:31
ItemWriterAdapter 11:30
섹션 10. 스프링 배치 청크 프로세스 활용 - ItemProcessor
CompositeItemProcessor 13:43
ClassifierCompositeItemProcessor 25:47
섹션 11. 스프링 배치 반복 및 오류 제어
목차 소개 02:32
Repeat 49:04
FaultTolerant 31:50
Skip 56:05
Retry (1) 57:02
Retry (2) 25:18
Retry (3) 35:57
Skip & Retry 아키텍처 14:56
섹션 12. 스프링 배치 멀티 스레드 프로세싱
기본 개념 22:49
AsyncItemProcessor / AsyncItemWriter 48:59
Multi-threaded Step 53:28
Parallel Steps 42:33
Partitioning (1) 37:45
Partitioning (2) 51:21
SynchronizedItemStreamReader 17:40
섹션 13. 스프링 배치 이벤트 리스너
기본개념 10:33
JobExecutionListener / StepExecutionListener 23:00
ChunkListener / ItemReadListener /ItemProcessListener /ItemWriteListener 21:16
SkipListener & RetryListener 36:07
섹션 14. 스프링 배치 테스트 및 운영
Spring Batch Test 26:11
JobExplorer / JobRegistry / JobOperator 43:16
섹션 15. 실전! 스프링 배치 어플리케이션 개발
어플리케이션 예제 (1) 07:24
어플리케이션 예제 (2) 27:16
어플리케이션 예제 (3) 30:28
어플리케이션 예제 (4) 59:04
어플리케이션 예제 (5) 20:20
어플리케이션 예제 (6) 27:23
어플리케이션 예제 (7) 24:47
섹션 16. 강좌 마무리
정리 13:16
강의 게시일 : 2021년 10월 08일 (마지막 업데이트일 : 2022년 11월 28일)
수강평 총 71개
수강생분들이 직접 작성하신 수강평입니다.
4.8
71개의 수강평
5점
4점
3점
2점
1점
VIEW 추천 순 최신 순 높은 평점 순 낮은 평점 순 평점 순 높은 평점 순 낮은 평점 순
pandabear thumbnail
5
스프링 시큐리티 강의와 마찬가지로 디버그를 찍어 흐름을 보여주시는 부분이 정말 좋습니다 강의 시간이 정말 압권이네요 인프런 강의 중 제일 혜자 강의 같습니다 감사히 잘 듣겠습니다
2021-10-11
지식공유자 정수원
네 소중한 평가 감사드립니다. 어떤 기술이든 기본적인 원리를 알게 되면 그만큼 응용은 쉬워지게 마련입니다. 끝까지 완주하셔서 좋을 결과 있으시길 바라겠습니다.^^
2021-10-12
kkkh0712 thumbnail
5
듣기 전: 45시간의 강의 시간이 부담스럽다. 들은 후: 군더더기 없는 45시간이었다. 스프링배치 학습을 위해 블로그 토막상식과 매번 배치의 특성만 적어놓는 얕은 깊이의 포스팅에서 헤메던 사람들을 위한 강의.
2022-09-16
Yebin thumbnail
5
친절하고좋아요
2024-02-05
ljh thumbnail
5
정말 열심히 강의 준비하신게 티가 확 나고, Batch의 밑 단까지 배울 수 있어 좋았습니다. 아쉬운 점이 있다면 깨끗한 코드와 거리가 너무 멀어서 다소 아쉬운 것 같아요..! (예를 들어 List를 기반으로 for문을 돌리는데 size > 0 검사를 먼저 한 후 for 문을 돌린다거나.. stream.anyMatch()만 써도 되는데 filter()를 써서 성능과 가독성을 낭비하는 부분, 패키지 구조, 각 도메인의 책임과 역할 로직 등 아쉬운 부분이 있습니다.) > 참고만 부탁드립니다. 강의 잘 들었습니다! 👍
2023-05-06
듀크 thumbnail
5
"이 시대 최고의 배치 강의"
2021-10-12
지식공유자 정수원
소중한 평가 감사드립니다. 긴 강의시간이지만 끝까지 완주하셔서 스프링 배치의 큰 그림을 그릴 수 있는 개발자로 거듭나시길 응원드리겠습니다. 감사합니다^^
2021-10-12
연관 로드맵
이 강의가 포함된 잘 짜여진 로드맵을 따라 학습해 보세요!