[Spring Batch] 0. ์๋ก
1. ๋ชฉ์ฐจ
1) ์คํ๋ง ๋ฐฐ์น ์๊ฐ
2) ์คํ๋ง ๋ฐฐ์น ์์
3) ์คํ๋ง ๋ฐฐ์น ๋๋ฉ์ธ ์ดํด
4) ์คํ๋ง ๋ฐฐ์น ์คํ
5) ์ฒญํฌ ํ๋ก์ธ์ค (1)
6) ์ฒญํฌ ํ๋ก์ธ์ค (2)
7) ์คํ๋ง ๋ฐฐ์น ๋ฐ๋ณต ๋ฐ ์ค๋ฅ ์ ์ด
8) ์คํ๋ง ๋ฐฐ์น ๋ฉํฐ ์ค๋ ๋ ํ๋ก์ธ์ฑ
9) ์คํ๋ง ๋ฐฐ์น ๋ฆฌ์ค๋
10) ์คํ๋ง ๋ฐฐ์น ํ ์คํธ ๋ฐ ์ด์
11) ๋ฒ์ธํธ (์ค์ผ์ค๋ฌ - ์คํ๋ง๋ฐฐ์น ์ฐ๋)
2. ๊ฐ๋ฐํ๊ฒฝ ๋ฐ ์ ์์ง์
1) ๊ฐ๋ฐํ๊ฒฝ
- JDK 1.8
- Spring Boot 2.5.1
- DB - H2, Mysql
- IDE - Intellij
- Maven
2) ์ ์์ง์
- Spring Boot
- Spring Data JPA
- Spring JDBC
- Mysql
- Lombok
[Spring Batch] 1. ์คํ๋ง ๋ฐฐ์น ์๊ฐ
1. ๊ฐ์ ๋ฐ ์ํคํ ์ฒ
1) ์คํ๋ง ๋ฐฐ์น ํ์ ๋ฐฐ๊ฒฝ
- ์๋ฐ ๊ธฐ๋ฐ ํ์ค ๋ฐฐ์น ๊ธฐ์ ๋ถ์ฌ
- ๋ฐฐ์น ์ฒ๋ฆฌ์์ ์๊ตฌํ๋ ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ์๋ฐ ๊ธฐ๋ฐ ๋ฐฐ์น ์ํคํ ์ฒ ํ์ค์ ํ์์ฑ ๋๋
2) ๋ฐฐ์น ํต์ฌ ํจํด
- Read - ๋ฐ์ดํฐ๋ฒ ์ด์ค, ํ์ผ, ํ์์ ๋ค๋์ ๋ฐ์ดํฐ ์กฐํ
- Process - ํน์ ๋ฐฉ๋ฒ์ผ๋ก ๋ฐ์ดํฐ ๊ฐ๊ณต
- Write - ๋ฐ์ดํฐ๋ฅผ ์์ ๋ ์์์ผ๋ก ๋ค์ ์ ์ฅ
= E T L (extract / transform / load)
3) ๋ฐฐ์น ์๋๋ฆฌ์ค
- ๋ฐฐ์น ํ๋ก์ธ์ค๋ฅผ ์ฃผ๊ธฐ์ ์ผ๋ก ์ปค๋ฐ
- ๋์ ๋ค๋ฐ์ ์ธ Job์ ๋ฐฐ์น ์ฒ๋ฆฌ, ๋์ฉ๋ ๋ณ๋ ฌ ์ฒ๋ฆฌ
- ์คํจ ํ ์๋ ๋๋ ์ค์ผ์ค๋ง์ ์ํ ์ฌ์์
- ์์กด๊ด๊ณ๊ฐ ์๋ step ์ฌ๋ฌ ๊ฐ๋ฅผ ์์ฐจ์ ์ผ๋ก ์ฒ๋ฆฌ
- ์กฐ๊ฑด์ Flow ๊ตฌ์ฑ์ ํตํ ์ฒด๊ณ์ ์ด๊ณ ์ ์ฐํ ๋ฐฐ์น ๋ชจ๋ธ ๊ตฌ์ฑ
- ๋ฐ๋ณต, ์ฌ์๋, skip ์ฒ๋ฆฌ
* ๋ฐ๋ณต : ๋ฐ๋ณต์ ์ผ๋ก ์คํ
์ฌ์๋ : ์ ๊น๋์์ ๋คํธ์ํฌ ์ฅ์ ๋๋ฌธ์ ์ ์ฒด ์ก์ด ์คํจํ๋ ๊ฒ๋ณด๋ค ๋ช๋ถ ํ ๋ณต๊ตฌ๋๋ฉด ์ก์ด ์ฌ์๋ ๋ ์ ์๋ ๊ธฐ๋ฅ
skip : ์์ธ ์ค๋ฅ ๋ฐ์ ์ ์ค์ํ์ง ์์ ์์ธ๋ ์คํตํจ์ผ๋ก ํด์ ์ก์ด ๊ณ์ ์คํ๋ ์์๋๋ก
4) ์ํคํ ์ฒ (3 Layers)
a) Application
- ์คํ๋ง ๋ฐฐ์น ํ๋ ์์ํฌ๋ฅผ ํตํด ๊ฐ๋ฐ์๊ฐ ๋ง๋ ๋ชจ๋ ๋ฐฐ์น Job๊ณผ ์ปค์คํ ์ฝ๋ ํฌํจ
- ๊ฐ๋ฐ์๋ ์ ๋ฌด๋ก์ง์ ๊ตฌํ์๋ง ์ง์คํ๊ณ ๊ณตํต์ ์ธ ๊ธฐ๋ฐ๊ธฐ์ ์ ํ๋ ์์ํฌ๊ฐ ๋ด๋น
b) Batch Core
- Job์ ์คํ / ๋ชจ๋ํฐ๋ง / ๊ด๋ฆฌํ๋ API๋ก ๊ตฌ์ฑ
- JobLauncher, Job, Step, Flow
- Job์ ๋ช ์ธ์ (๊ตฌ์ฑ๊ณผ ์ค์ ์ ์ํ ํด๋์ค๊ฐ ์ํจ)
c) Batch Infrastructure
- Application, Core ๋ชจ๋ ๊ณตํต Infrastructure ์์์ ๋น๋
- Job ์คํ์ ํ๋ฆ๊ณผ ์ฒ๋ฆฌ๋ฅผ ์ํ ํ์ ์ ๊ณต
- Reader, Processor, Writer, Skip, Retry
'๐จโ๐ป Web Development > Spring - Batch' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Spring Batch] 3. ์คํ๋ง ๋ฐฐ์น ๋๋ฉ์ธ ์ดํด (0) | 2024.01.16 |
---|---|
[Spring Batch] 2. ์คํ๋ง ๋ฐฐ์น ์์ (0) | 2023.11.20 |
์ต๊ทผ๋๊ธ