๋ฐ์ํ Spring45 SpringBoot Multi DataSource - JPA ๐ SpringBoot์์ ๋ฉํฐ ๋ฐ์ดํฐ์์ค ์ค์ ํ๊ธฐ - JPA ํ๋์ ํ๋ก์ ํธ์์ ์ฌ๋ฌ ๊ฐ์ ๋ค๋ฅธ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฌ์ฉํด์ผ ํ๋ ๊ฒฝ์ฐ๊ฐ ์๋๋ฐ์, ์ด๋ฐ ๊ฒฝ์ฐ DataSource๋ฅผ ์ปค์คํ ์ผ๋ก ์ค์ ํ์ฌ ๊ด๋ฆฌํ ์ ์์ต๋๋ค. ๊ฐ๋จํ ์ค์ ์ ํตํด ํ ํ๋ก์ ํธ์์ ๋ค๋ฅธ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ์ ๋ฆฌํฉ๋๋ค. ์์ ์ฝ๋๋ GitHub์์ ํ์ธํ ์ ์์ต๋๋ค. ๐ application.yml yml ํ์ผ์ ๋ ๊ฐ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค(datasource, datasource-second)๋ฅผ ์ค์ ํฉ๋๋ค. (๊ธฐ๋ณธ ์คํ๋ง ๋ถํธ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ค์ ๊ณผ ๋ฌ๋ฆฌ ๋ฉํฐ ๋ฐ์ดํฐ ์์ค HikariConfig์์๋ url์ด ์๋ jdbc-url์ผ๋ก ๋ค์ด๋ฐ์ ํด์ผํฉ๋๋ค.) ๐ DataSource Configuration ์๋ ์ฝ๋์์ ์ฌ์ฉํ ํจ.. 2023. 1. 21. Spring Batch (11) Repeat ๐ Spring Batch Repeat Batch Processing๋ ๋จ์ ์ต์ ํ ๋๋ ๋ฐ๋ณต์ ์ธ ์์ ์ ๊ดํ ๊ฒ์ ๋๋ค. ๋ฐ๋ณต์ ์ ๋ตํํ๊ณ ์ผ๋ฐํํ๊ธฐ์ํด Spring Batch์์๋ ๋ฐ๋ณต ์์ ์ ์ ์ดํ๋ RepeatOperation ์ธํฐํ์ด์ค๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค. ์ธํฐํ์ด์ค์ ๊ตฌํ์ฒด๋ RepeatTemplate ํด๋์ค ์ ๋๋ค ๐ ๋ฐ๋ณต ์ข ๋ฃ๋ฅผ ๊ฒฐ์ ํ๋ ์ธ ๊ฐ์ง ํญ๋ชฉ Spring Batch์์์ ๋ฐ๋ณต ์์ ์ ๋ํ ์ข ๋ฃ ์ฒ๋ฆฌ๋ RepeatTemplate ํด๋์ค์์ ์ค์ ํ ์ ์์ต๋๋ค. 1. RepeatStatus ์คํ๋ง ๋ฐฐ์น์ ์์ ์ด ์ข ๋ฃ๋์๋์ง ํ๋ณํ๊ธฐ ์ํ Enum 2. CompletionPolicy RepeatTemplate ๋ด๋ถ์์ ๋ฐ๋ณต ๋ฉ์๋์ ์ข ๋ฃ๋ CompletionPolicy์ ์ํด ๊ฒฐ์ ๋ฉ๋๋ค. .. 2023. 1. 15. Spring AOP๋ฅผ ์ฌ์ฉํ์ฌ ํด๋ผ์ด์ธํธ์ ์์ฒญ ์ ๋ณด ๋ก๊น ํ๊ธฐ ์๋น์ค์์ ํด๋ผ์ด์ธํธ์ ๋ชจ๋ ํธ์ถ์ ๋ํด ์ ์ฅํ์ฌ ๊ด๋ฆฌ๋ฅผ ํ ์ ์์ต๋๋ค. ์ด ๋, ๋จ์ํ ๋ก๊ทธ๋ก ๋จ๊ธธ์๋ ์๊ณ ํน์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ชจ๋ ์์ฒญ ์ ๋ณด๋ฅผ ์ ์ฅํ์ฌ ๊ด๋ฆฌํ ์ ์์ต๋๋ค. ์ด๋ฒ ํฌ์คํ ์์๋ ํด๋ผ์ด์ธํธ์ ์์ฒญ ์ ๋ณด(URI, Http Method, payload ๋ฑ๋ฑ)๋ค์ ๋ก๊น ๋ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅํ์ฌ ๊ด๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ๋ํด ๊ฐ๋ตํ ์ดํด๋ด ๋๋ค. ์์ ์ฝ๋๋ GitHub์์ ํ์ธํ ์ ์์ต๋๋ค :) ๐ ApiRequestEntity ApiRequestEntity ํด๋์ค๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅํ ํด๋ผ์ด์ธํธ์ ์์ฒญ ๋ฐ์ดํฐ์ ์ผ๋ก ๊ฐ ํ๋์ ์ญํ ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. id : PK methodValue : Http Method apiUri : Request URI payload : Request Body req.. 2023. 1. 14. Spring Batch (10) @JobScope, @StepScope ๐ Spring Batch @JobScope, @StepScope ์ง๋ ํฌ์คํ ์์๋ JobParametersValidator์ ๋ํด ์ดํด๋ณด์๋๋ฐ์ ๊ฐ๋ตํ ์ ๋ฆฌํด๋ณด๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค. Job ์คํ ์ ํ์์ ์ธ ํ๋ผ๋ฏธํฐ๋ฅผ ๊ฒ์ฆํ๋ ์ญํ ์ ๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก DefaultJobParametersValidator ๊ตฌํ์ฒด๋ฅผ ์ง์ํ๋ฉฐ, JobParametersValidator ์ธํฐํ์ด์ค๋ฅผ ์ง์ ๊ตฌํํ์ฌ ํ๋ผ๋ฏธํฐ๋ฅผ ๊ฒ์ฆํ ์๋ ์์ต๋๋ค. ์ด๋ฒ์ ์ ๋ฆฌํ @JobScope, @StepScope๋ ์ง๋ Spring Batch Job ํฌ์คํ ์์ JobParameters๋ฅผ ๋ฐ์ ๋ ๊ฐ๋ตํ ์ฌ์ฉ์ ํ์์ต๋๋ค. ์ฝ๋๋ก ์์ฑ : JobParameterBuilder SPEL ์ฌ์ฉ : @Value(“#{jobParameter[reques.. 2022. 12. 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. ์ด์ 1 2 3 4 5 ๋ค์ ๋ฐ์ํ