๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๋ฐ˜์‘ํ˜•

IT Blog404

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.
MySQL EXPLAIN ์‹คํ–‰๊ณ„ํš ๋งˆ์Šคํ„ฐํ•˜๊ธฐ(feat. RealMySQL 8.0) ๐Ÿ’ฏ MySQL EXPLAIN ์‹คํ–‰๊ณ„ํš ๋งˆ์Šคํ„ฐํ•˜๊ธฐ(feat. RealMySQL 8.0) ์‹คํ–‰ ๊ณ„ํš(EXPLAIN) ์ด๋ž€? ๋Œ€๋ถ€๋ถ„์˜ DBMS๋Š” ๋งŽ์€ ๋ฐ์ดํ„ฐ๋ฅผ ์•ˆ์ „ํ•˜๊ณ , ๋น ๋ฅด๊ฒŒ ์ €์žฅ ๋ฐ ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ์ด ์ฃผ๋ชฉ์ ์ด๋‹ค. ์ด๋Ÿฌํ•œ ๋ชฉ์ ์„ ๋‹ฌ์„ฑํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ์ž์˜ ์ฟผ๋ฆฌ๋ฅผ ์˜ตํ‹ฐ๋งˆ์ด์ €๊ฐ€ ์ตœ์ ์œผ๋กœ ์ฒ˜๋ฆฌ๋  ์ˆ˜ ์žˆ๋„๋ก ์ฟผ๋ฆฌ์˜ ์‹คํ–‰ ๊ณ„ํš์„ ์ˆ˜๋ฆฝํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค. ํ•˜์ง€๋งŒ ์˜ตํ‹ฐ๋งˆ์ด์ €๊ฐ€ ํ•ญ์ƒ ์ตœ์ ์˜ ์‹คํ–‰ ๊ณ„ํš์„ ๋งŒ๋“ค์–ด๋‚ผ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์€ ์•„๋‹ˆ๋ฏ€๋กœ DBMS ์„œ๋ฒ„๋Š” ์ด๋Ÿฌํ•œ ๋ฌธ์ œ์ ์„ ๊ด€๋ฆฌ์ž๋‚˜ ์‚ฌ์šฉ์ž๊ฐ€ ๋ณด์™„ํ•  ์ˆ˜ ์žˆ๋„๋ก EXPLAIN ๋ช…๋ น์œผ๋กœ ์˜ตํ‹ฐ๋งˆ์ด์ €๊ฐ€ ์ˆ˜๋ฆฝํ•œ ์‹คํ–‰ ๊ณ„ํš์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. ํ…Œ์ŠคํŠธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค: https://github.com/datacharmer/test_db ์‹คํ–‰ ๊ณ„ํš ์˜๋ฏธ id SELECT ์ฟผ๋ฆฌ ๋ณ„ ๋ถ€์—ฌ๋˜๋Š” ์‹๋ณ„์ž ๊ฐ’ se.. 2023. 1. 7.
๋ฌด๋‚œํ–ˆ๋˜ 2022๋…„, ์ƒˆ๋กœ์šด ์‹œ์ž‘ 2023๋…„ ๐Ÿ—“ ๋ฌด๋‚œํ–ˆ๋˜ 2022๋…„, ์ƒˆ๋กœ์šด ์‹œ์ž‘ 2023๋…„ ์ž‘๋…„ ํšŒ๊ณ ๋ฅผ ์ž‘์„ฑํ•  ๋•Œ๋„ ๋ฒŒ์จ 2021๋…„์ด ๋๋‚ฌ๋‹ค๊ณ  ํ–ˆ๋Š”๋ฐ, 2022๋…„๋„ ๋™์ผํ•˜๊ฒŒ ๋ฒŒ์จ๊ฐ€ ๋ฌด์ƒ‰ํ•  ๋งŒํผ ๋น ๋ฅด๊ฒŒ ์ง€๋‚˜๊ฐ€๋ฒ„๋ ธ๋‹ค. (์—ฐ๋ง์— ๊ณ ํ–ฅ์„ ๋‹ค๋…€์˜ค๋‹ค ๋ณด๋‹ˆ ์ž‘์„ฑ ์‹œ์ ์€ 2022๋…„์ด์ง€๋งŒ ๋ฐœํ–‰ ์‹œ์ ์€ 2023๋…„์ด ๋˜์–ด๋ฒ„๋ ธ๋‹ค.. ๐Ÿ˜ญ ๋ฐœํ–‰ ์‹œ์ ์€ 2023๋…„์ด์ง€๋งŒ ์ž‘์„ฑ์€ 2022๋…„ 12์›” 31์ผ ๊ธฐ์ค€์ด๋‹ค.) 2021๋…„๋„ ํ›„๋”ฑ ์ง€๋‚˜๊ฐ€๋ฒ„๋ ธ๋Š”๋ฐ, ์˜ฌํ•ด๋Š” ์–ด์ฉŒ๋ฉด ๋” ๋น ๋ฅด๊ฒŒ ์ง€๋‚˜๊ฐ„ ๊ฒƒ๋งŒ ๊ฐ™์€ ๋Š๋‚Œ์ด ๋“ ๋‹ค. ์ด๋ฒˆ ๋‹ฌ ์ดˆ๋ถ€ํ„ฐ ๋ฒŒ์จ 12์›”์ด๋ผ๊ณ  ๋…ธ๋ž˜๋ฅผ ๋ถˆ๋ €๋Š”๋ฐ, ์ •์‹ ์„ ์ฐจ๋ ค๋ณด๋‹ˆ ๋ฒŒ์จ 2022๋…„ ๋งˆ์ง€๋ง‰ ๋‚ ์ด ๋˜์–ด๋ฒ„๋ ธ๋‹ค. ์ตœ๊ทผ์— ๋ดค์—ˆ๋˜ ํšŒ์‚ฌ ๋‹ค๋‹ˆ๋ฉด์„œ ๋ฐ”์œ ์™€์ค‘์—๋„ ์„ฑ์žฅํ•˜๋Š” ํŒ์ด๋ผ๋Š” ํฌ์ŠคํŒ…์—์„œ ์ฒซ ๋ฌธ์žฅ์„ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์‹œ์ž‘ํ•˜๊ณ  ์žˆ๋Š”๋ฐ, ๋‚ด ์–˜๊ธฐ๋ฅผ ํ•˜๋Š” ๊ฒƒ๋งŒ ๊ฐ™์•„ ๋„ˆ๋ฌด๋‚˜ ๊ณต๊ฐ์ด ๋˜์—ˆ๋‹ค. ๐Ÿ˜‚.. 2023. 1. 2.
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.
[Java DeepDive] - Map(HashMap) 1. ๊ฐœ๋…, ํ•„๋“œ, ์ƒ์„ฑ์ž ๐Ÿ”— Map(HashMap) Java์—์„œ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ์ž๋ฃŒ๊ตฌ์กฐ๋Š” List์™€ Map์ด ์•„๋‹๊นŒ ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์–ด๋””์—์„œ๋“  ๊ต‰์žฅํžˆ ๋งŽ์ด ํ™œ์šฉํ•˜๋Š” ์ž๋ฃŒ๊ตฌ์กฐ๋กœ ์ €๋˜ํ•œ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š”๋ฐ์š”, ์ด๋ฒˆ์—๋Š” Map ์ธํ„ฐํŽ˜์ด์Šค์˜ ๊ฐœ๋…๊ณผ ์ œ๊ณต๋˜๋Š” API๋“ค, ๊ตฌํ˜„์ฒด์ธ HashMap์— ๋Œ€ํ•ด ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. (์˜ˆ์ œ ์ฝ”๋“œ๋Š” ๊นƒํ—ˆ๋ธŒ์—์„œ ํ™•์ธํ•˜์‹ค ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋ฒ„์ „์€ Java 11์„ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค.) Map ์ธํ„ฐํŽ˜์ด์Šค๋Š” Collection ํ”„๋ ˆ์ž„์›Œํฌ์™€๋Š” ๋‹ค๋ฅด๊ฒŒ ํ‚ค์™€ ๊ฐ’์„ ํ•˜๋‚˜์˜ ์Œ์œผ๋กœ ์ €์žฅํ•˜๋Š” Key-Value ํ˜•์‹์˜ ์ž๋ฃŒ๊ตฌ์กฐ ์ž…๋‹ˆ๋‹ค. Key๋Š” ์ด๋ฆ„ ๊ทธ๋Œ€๋กœ ๊ฐ’(Value)์„ ์ฐพ๊ธฐ ์œ„ํ•œ ์—ญํ• ์„ ํ•˜๋ฉฐ Map ์ธํ„ฐํŽ˜์ด์Šค์˜ key, value๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํŠน์ง•์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. key๋Š” ์ค‘๋ณต์ด ๋ถˆ๊ฐ€๋Šฅํ•˜์ง€๋งŒ, value๋Š” ์ค‘๋ณต์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ๊ฐ .. 2022. 11. 27.
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.
๋ฐ˜์‘ํ˜•