๋ฐ์ํ ์คํ๋ง ๋ฐฐ์น8 Spring Batch (9) JobParametersValidator ์ง๋ ์๊ฐ์๋ JobLauncher์ ๋ํด ์ดํด๋ณด์์ต๋๋ค. JobLauncher๋ ์ค์ Spring Batch Job์ ์คํํ๋ ์ญํ ์ ํ๋ฉฐ, Job & JobParameters๋ฅผ ์ธ์๋ก ๋ฐ์ ๋ฐฐ์น ์์ ์ ์ํํ ํ JobExecution์ ๋ฐํํฉ๋๋ค. Spring Batch์์๋ BatchAutoConfiguration ํด๋์ค ๋ด์ JobLauncherApplicationRunner ํด๋์ค๊ฐ Job์ ์คํํ๊ฒ ๋ฉ๋๋ค. ๐ JobParametersValidator ๊ธฐ๋ณธ ๊ฐ๋ Job ์คํ ์ ํ์์ ์ธ ํ๋ผ๋ฏธํฐ๋ฅผ ๊ฒ์ฆํ๋ ์ญํ ์ ๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก DefaultJobParametersValidator ๊ตฌํ์ฒด๋ฅผ ์ง์ํ๋ฉฐ, JobParametersValidator ์ธํฐํ์ด์ค๋ฅผ ์ง์ ๊ตฌํํ์ฌ ํ๋ผ๋ฏธํฐ๋ฅผ ๊ฒ์ฆํ ์๋ .. 2022. 11. 13. Spring Batch (8) JobLauncher ๐ JobLauncher ์ง๋ ์๊ฐ์๋ JobRepository์ ๋ํด ์ดํด๋ณด์์ต๋๋ค. JobRepository๋ Spring Batch ์์ ์ ์งํํ๋ฉด์ JobInstance, JobExecution, StepExeuction ๋ฑ Batch์ ๊ด๋ จ๋ ๋๋ฉ์ธ์ CRUD ์ฒ๋ฆฌ๋ฅผ ํ๋ ์ญํ ์ ํฉ๋๋ค. ์ด๋ฒ ์๊ฐ์๋ Spring Batch Job์ ์คํ ์ฃผ์ฒด์ธ JobLauncher์ ๋ํด ์ดํด๋ณด๊ฒ ์ต๋๋ค. ๐ JobLauncher ๊ธฐ๋ณธ ๊ฐ๋ Spring Batch Job์ ์คํ์ํค๋ ์ญํ Job & JobParameters๋ฅผ ์ธ์๋ก ๋ฐ์ผ๋ฉฐ ์์ฒญ๋ ๋ฐฐ์น ์์ ์ ์ํํ ํ JobExecution์ ๋ฐํ Spring Batch์์๋ BatchAutoConfiguration ํด๋์ค ๋ด์ ์กด์ฌํ๋ JobLauncherA.. 2022. 11. 11. Spring Batch (7) JobRepository ๐ JobRepository ์ง๋ ์๊ฐ์๋ Spring Batch์ ExecutionContext์ ์ดํด๋ณด์์ต๋๋ค. ExecutionContext๋ Spring Batch ํ๋ ์์ํฌ์์ ์ง์ํ๋ key/value ํ์์ ๊ณต์ ๊ฐ์ฒด๋ก Job์ ์คํํ๋ฉด์ ํ์ํ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ๊ณต๊ฐ์ ๋๋ค. ์๋ก ๋ค๋ฅธ Job ๊ฐ์๋ ๊ณต์ ๊ฐ ์๋์ง๋ง, ๋์ผํ Job ๋ด์ ์๋ก ๋ค๋ฅธ Step ์ฌ์ด์๋ ๋ฐ์ดํฐ๋ฅผ ๊ณต์ ํ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ Batch Job ๋ด์ Step ์ฌ์ด์์ ๋ฐ์ดํฐ ๊ณต์ ๋ฐ ์กฐ์์ด ํ์ํ๋ค๋ฉด ExecutionContext๋ฅผ ํ์ฉํ ์ ์์ต๋๋ค. ์ด๋ฒ ์๊ฐ์๋ Spring Batch JobRepository์ ๋ํด ์ดํด๋ณด๊ฒ ์ต๋๋ค. ๊ธฐ์กด์ Job & JobParameters๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์กฐํํ ํ JobIn.. 2022. 11. 8. Spring Batch (6) ExecutionContext ๐ ExecutionContext ์ง๋ ์๊ฐ์๋ Step, StepExecution์ ๋ํด ์ดํด๋ณด์์ต๋๋ค. ์ด๋ฒ ์๊ฐ์๋ JobExecution ๋ฐ StepExecution ๊ฐ์ฒด์ ์กด์ฌํ๋ ExecutionContext์ ๋ํด ์ดํด๋ณด๊ฒ ์ต๋๋ค. (์์ ์ฝ๋๋ GitHub์์ ํ์ธํ ์ ์์ต๋๋ค. ๐) ๐ ํด๋น ํฌ์คํ ์ ๋ชฉํ Spring Batch ExecutionContext (JobExecution, StepExecution) ๐ ExecutionContext ๊ธฐ๋ณธ ๊ฐ๋ Spring Batch ํ๋ ์์ํฌ์์ ์ง์ํ๋ key/value ํ์ ๊ณต์ ๊ฐ์ฒด๋ก Job์ ์คํํ๋ฉด์ ํ์ํ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ๊ณต๊ฐ ๊ณต์ ๋ฒ์ Job ๋ฒ์ - ๊ฐ Job์ JobExecution์ ์ ์ฅ๋๋ฉฐ ์๋ก ๋ค๋ฅธ Job ๊ฐ์๋ ๊ณต์ ๊ฐ.. 2022. 11. 5. Spring Batch (5) Step, StepExecution ๐ Step, StepExecution ์ง๋ ์๊ฐ์๋ Job, JobInstance, JobParameter, JobExecution์ ๊ฐ๋ ์ ๋ํด ์ดํด๋ณด์์ต๋๋ค. ์ด๋ฒ ์๊ฐ์๋ Job์ ๊ตฌ์ฑํ๋ ์์ ์ ๋จ์์ธ Step, StepExecution ๊ฐ์ฒด์ ๋ํด ์ดํด๋ณด๊ฒ ์ต๋๋ค. (์์ ์ฝ๋๋ GitHub์์ ํ์ธํ ์ ์์ต๋๋ค. ๐) ๐ ํด๋น ํฌ์คํ ์ ๋ชฉํ Spring Batch Step Spring Batch StepExecution ๐ Step ๊ธฐ๋ณธ ๊ฐ๋ Step์ ๋ ๋ฆฝ์ ์ด๊ณ ์์ฐจ์ ์ธ Batch Job์ ์บก์ํํ๋ ๋๋ฉ์ธ ๊ฐ์ฒด Step์๋ ์ค์ Batch ์ฒ๋ฆฌ๋ฅผ ์งํํ๋๋ฐ ํ์ํ ๋ชจ๋ ์ ๋ณด๋ค์ ํฌํจํ๊ณ ์์ Step์ ๊ฐ๋ฐ์๊ฐ ์ํ๋ ๋งํผ ๊ฐ๋จํ๊ฑฐ๋ ๋ณต์กํ ์ ์์ ๋ชจ๋ Job์ ํ๋ ์ด์์ Step์ผ๋ก.. 2022. 11. 3. Spring Batch (4) Job, JobInstance, JobParameters, JobExecution ๐ Job, JobInstance, JobParameters, JobExecution ์ง๋ ์๊ฐ์๋ Spring Batch์ Meta Data Schema์ ๋ํด ์ดํด๋ณด์์ต๋๋ค. ์ด๋ฒ ์๊ฐ์๋ Job์ ์ฌ๋ฌ ๋๋ฉ์ธ ๊ฐ์ฒด์ธ JobInstance, JobParameters, JobExecution ๊ฐ์ฒด์ ๋ํด ์ดํด๋ณด๊ฒ ์ต๋๋ค. (์์ ์ฝ๋๋ GitHub์์ ํ์ธํ ์ ์์ต๋๋ค. ๐) ๐ ํด๋น ํฌ์คํ ์ ๋ชฉํ Spring Batch Job Spring Batch JobInstance Spring Batch JobParameters Spring Batch JobExecution ๐ Job ๊ธฐ๋ณธ ๊ฐ๋ ๋ฐฐ์น ๊ณ์ธต ๊ตฌ์กฐ์์ ์ต์์์ ๊ฐ๋ ์ผ๋ก ์ ์ฒด ๋ฐฐ์น ํ๋ก์ธ์ค๋ฅผ ์บก์ํํ ์ํฐํฐ Job Configuration์ ํตํด ์.. 2022. 11. 1. Spring Batch (3) DB ์คํค๋ง ๐ ํด๋น ํฌ์คํ ์ ๋ชฉํ Spring Batch DB ์คํค๋ง ๋ถ์ ๐ Spring Batch DB ์คํค๋ง ์ง๋ ์๊ฐ์๋ Spring Batch์ ๊ฐ์ ๋ฐ ํ๋ก์ ํธ ๊ตฌ์ฑ, ์ธํ ๋ฐ ๊ฐ๋จํ Job ์คํ์ ๋ํด ์ดํด๋ณด์์ต๋๋ค. ์ด๋ฒ ์๊ฐ์๋ Spring Batch์ Meta Data Schema์ ๋ํด ์ดํด๋ณด๊ฒ ์ต๋๋ค. Meta Data Schema ์คํ๋ง ๋ฐฐ์น์ ์คํ ๋ฐ ๊ด๋ฆฌ๋ฅผ ์ํ ๋ชฉ์ ์ผ๋ก ์ฌ๋ฌ ๋๋ฉ์ธ๋ค(Job, Step, JobParameters ๋ฑ)์ ๋ํ ์ ๋ณด๋ฅผ ์ ์ฅ, ์ ๋ฐ์ดํธ, ์กฐํ ๋ฑ์ ์์ ์ ํ ์ ์๋ ์คํค๋ง ์ ๊ณต ๊ณผ๊ฑฐ ๋ฐ ํ์ฌ์ Batch ์คํ์ ๋ํ ์ ๋ณด(์ฑ๊ณต, ์คํจ ์ฌ๋ถ)๋ฅผ ๊ด๋ฆฌํจ์ผ๋ก์ ๋ฐฐ์น์ด์ ๋ฐ ์ฅ์ ์ ๊ด๋ จ๋ ๋์ฒ ๊ฐ๋ฅ DB์ ์ฐ๋ํ ๊ฒฝ์ฐ ํ์์ ์ผ๋ก ๋ฉํ ํ ์ด๋ธ์ด ์์ฑ๋์ด์ผ ํจ DB ์คํค.. 2022. 10. 30. Spring Batch (2) ํ๋ก์ ํธ ๊ตฌ์ฑ ๋ฐ ์์กด์ฑ ์ค์ , Hello World ๐ ํด๋น ํฌ์คํ ์ ๋ชฉํ Spring Batch ํ๋ก์ ํธ ์ค์ Spring Batch ์ค์ ๋ด๋ถ Spring Batch Hello World ๐ Spring Batch ํ๋ก์ ํธ ๊ตฌ์ฑ ํ๋ก์ ํธ ๊ตฌ์ฑ์ IntelliJ, Java 11, Gradle, MySQL(Docker), H2, Spring Boot, Batch ๋ฑ์ ์ฌ์ฉํ ์์ ์ ๋๋ค. (ํ๋ก์ ํธ ์ค์ ๊ด๋ จ ์ค๋ช ์ ์์ผ๋ GitHub๋ฅผ ์ฐธ๊ณ ํด์ฃผ์ธ์.) ๐ Spring Batch ์์กด์ฑ ์ค์ ์คํ๋ง ๋ฐฐ์น๋ฅผ ์๋์ํค๊ธฐ ์ํด ๋ฉ์ธ ํด๋์ค์ @EnableBatchProcessing ์ด๋ ธํ ์ด์ ์ ์ ์ธํด์ผ ํฉ๋๋ค. import org.springframework.batch.core.configuration.annotation.EnableBatchProcessing;.. 2022. 10. 29. ์ด์ 1 ๋ค์ ๋ฐ์ํ