๋ฐฐ์น ์ฒ๋ฆฌ
ใป ์ผ์ ๋์ ๋ฐ์ดํฐ๋ฅผ ๋ชจ์์ ํ๋ฒ์ ์ฒ๋ฆฌํ๋๊ฒ
ใป ์ผ์ ํ ์์์ ๋ฐ๋ผ ์ฒ๋ฆฌ๊ฐ ์ด๋ฃจ์ด์ง
ใป ์๋ต์ฑ๋ณด๋ค ์๊ฐ๋น ์ฒ๋ฆฌ๋์ ์ฐ์ ์ํ๋ ์ฒ๋ฆฌ๋ฐฉ์!
โฐ ์ก ์ค์ผ์ค๋ฌ, ์ ธ ์คํฌ๋ฆฝํธ, ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ฑ์ผ๋ก ๊ตฌํํ ์ ์๋ค.
๋ฐฐ์น์ฒ๋ฆฌ ์ถฉ์กฑ ์กฐ๊ฑด
ใป ๋๋์ ๋ฐ์ดํฐ๋ฅผ ์ ํ๋ ๋ฆฌ์์ค๋ก ํจ์จ์ ์ผ๋ก ์ฒ๋ฆฌํ ์ ์์ด์ผ ํจ
ใป ๊ฐ๋ฅํ ํ ์ค๋จ๋ ์์
์ ๋ค์ ๊ณ์ํ ์ ์์ด์ผ ํจ
ใป ๋ค์ํ ์คํ ์กฐ๊ฑด์ ์ง์ํด์ผ ํจ.
ใป ๋ค์ํ ์
์ถ๋ ฅ ์ธํฐํ์ด์ค๋ฅผ ๋ค๋ฃฐ ์ ์์ด์ผ ํจ
์คํ๋ง ๋ฐฐ์น
ใป ์คํ๋ง์์ ์ ๊ณตํด์ฃผ๋ ๋ฐฐ์น ํ๋ ์์ํฌ
ใป ์คํ๋ง์ด ๊ฐ์ง๊ณ ์๋ DI ์ปจํ
์ด๋, AOP, ํธ๋์ญ์
๊ด๋ฆฌ ๊ธฐ๋ฅ์ ๊ธฐ๋ณธ์ผ๋ก ๊ฐ์ง๊ณ ์์.
๐ฅ ์ฐธ๊ณ ๋ก ์คํ๋ง ๋ฐฐ์น๋ ๋๋ ๋ฐ์ดํฐ๋ฅผ ํ๋ฒ์ ์ฒ๋ฆฌ ํ๊ณ
์คํ๋ง ์ค์ผ์ค๋ฌ๋ ์คํ๋ง ๋ฐฐ์น๋ฅผ ์ผ์ ํ ์๊ฐ๊ฐ๊ฒฉ or ์ผ์ ํ ์๊ฐ์ !!์คํ!!์์ผ์ฃผ๋ ์ญํ ์ ํจ! (๋ฐฐ์น๋ ์ค์ผ์ค๋ฌ ๋ค๋ฆ!!)
์ค์ผ์ค๋ฌ ํ๋ ์์ํฌ๋ก..
- Spring Scheduler (๋ณ๋์ ์์กด์ฑ ํ์ํ์ง ์์! spring boot starter ์ ๊ธฐ๋ณธ ์์กด์ฑ ์ ๊ณต๋จ)
- Spring Quartz (์์กด์ฑ ์ถ๊ฐ ํ์, ์ค์ผ์ค๋ง์ ์ธ๋ฐํ ์ ์ด๊ฐ ํ์ํ ๋ ์ฌ์ฉ..)
๋ฑ์ด ์กด์ฌํจ.
์ ํจ์ค๋ก๋ ๊ด๋ฆฌํ ์ ์๋ค.
์คํ๋ง ๋ฐฐ์น ํน์ง
ใป Tasklet ๋ฐฉ์ (SQL ํ๋ฒ ์คํ, ๋ช
๋ น ์คํ ๋ฑ ๋จ์ ์ฒ๋ฆฌ) / Chunk ๋ฐฉ์ ์กด์ฌํจ (๋๋ ๋ฐ์ดํฐ ์ฒ๋ฆฌ, ํธ๋์ญ์
์ ์คํ๋ง ๋ฐฐ์น๊ฐ ์ฒ๋ฆฌ)
ใป ๋ค์ํ ์คํ ๋ฐฉ๋ฒ์ ์ ๊ณตํ๋ค. (๋ช
๋ นํ ์คํ, ์๋ธ๋ฆฟ ์คํ ๋ฑ)
ใป ๋ค์ํ ๋ฐ์ดํฐ ํ์์ผ๋ก ์
์ถ๋ ฅํ ์ ์๋ค. (ํ์ผ, ๋ฐ์ดํฐ๋ฒ ์ด์ค, ๋ฉ์ธ์งํ ๋ฑ)
ใป ๋ฐฐ์น ์ฒ๋ฆฌ๋ฅผ ํจ์จ์ ์ผ๋ก ์ํํ ์ ์๋ค. (๋ค์ค์คํ, ๋ณ๋ ฌ์คํ, ์กฐ๊ฑด๋ถ๊ธฐ ๋ฑ)
ใป Job์ ๊ด๋ฆฌํ ์ ์๋ค. (Job์ด ์คํ๋๋ ์ํฉ์ ์ ์ฅ or ์ฌ์์ ๊ฐ๋ฅ)
์คํ๋ง ๋ฐฐ์น ๊ตฌ์กฐ
- JobLauncher
๋ฐฐ์น ์ดํ๋ฆฌ์ผ์ด์ ์ ๊ธฐ๋ํ๊ธฐ ์ํ ์ธํฐํ์ด์ค. ๋ชจ๋ ๋ฐฐ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ์ด ํด๋์ค๋ฅผ ํตํด ์คํ.
์ธ์์ ๋ฌ ๋ฑ๋ ์ฌ๊ธฐ์ ์ฒ๋ฆฌ! - Job
๋ฐฐ์น ์ ํ๋ฆฌ์ผ์ด์ ์์ ์ผ๋ จ์ ์ฒ๋ฆฌ ๊ณผ์ ์ ํ๋์ ๋จ์๋ก ๋ง๋ ์คํ ๋จ์ - Step
์ก์ ๊ตฌ์ฑํ๋ ์ธ๋ถ ์ฒ๋ฆฌ ๋จ์. ํ๋์ Job์ N๊ฐ์ Step์ผ๋ก ๊ตฌ์ฑ๋ ์ ์๋ค.
ํ๋์ Job ์ฒ๋ฆฌ๋ฅผ ์ฌ๋ฌ๊ฐ์ Step์ผ๋ก ๋ถํ ํ๋ฉด ์ธ๋ถ ์ฒ๋ฆฌ๋ฅผ ์ฌ์ฌ์ฉํ๊ฑฐ๋ ๋ณ๋ ฌ ์ฒ๋ฆฌ๋ฅผ ์ ์ฉํ ์ ์๊ณ , ์กฐ๊ฑด ๋ถ๊ธฐ์ ๋ฐ๋ฅธ ์ ์ด๋ ํ ์์๋ค.
Chunk๋ฐฉ์์ด๋ Step๋ฐฉ์ ์ค ํ๊ฐ์ง ํํ๋ก ์คํ๋จ. - ItemReader, ItemProcessor, ItemWriter
Step์ ๋ฐ์ดํฐ์ ์ ๋ ฅ, ๊ฐ๊ณต, ์ถ๋ ฅ์ ์ธ๊ฐ์ง ํจํด ์ฒ๋ฆฌ๋ก ๋ถํ ํ๊ธฐ ์ํ ์ธํฐํ์ด์ค
Chunk๋ฐฉ์์ ๊ตฌํํ ๋ ์ด ์ธ๊ฐ์ง ํจํด์ ํ์ฉํจ. - JobRepository
Job or Step ์ํ๋ฅผ ๊ด๋ฆฌํจ. ์ด๋ฌํ ์ ๋ณด๋ ์คํ๋ง ๋ฐฐ์น๊ฐ ์ ์ํ ํ ์ด๋ธ ์คํค๋ง ํํ๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅ๋จ.
์คํ๋ง ๋ฐฐ์น ์ํคํ ์ฒ
์ฐธ๊ณ
https://terasoluna-batch.github.io/guideline/5.0.0.RELEASE/en/Ch02_SpringBatchArchitecture.html
https://sabarada.tistory.com/113
https://jojoldu.tistory.com/325?category=902551
์ฑ ์คํ๋ง ์ฒ ์ ์ ๋ฌธ