\uc2a4\ud504\ub9c1 \ubc30\uce58(Batch)\ub294 \ub300\uc6a9\ub7c9 \ub370\uc774\ud130 \ucc98\ub9ac\ub97c \uc704\ud55c \uc624\ud508 \uc18c\uc2a4 \ud504\ub808\uc784\uc6cc\ud06c\uc774\ub2e4. \uc2a4\ud504\ub9c1 \ubc30\uce58\ub294 \uc2a4\ud504\ub9c1 \ud504\ub808\uc784\uc6cc\ud06c\uc640 \ub9c8\ucc2c\uac00\uc9c0\ub85c Java \uc5b8\uc5b4\ub85c \uc791\uc131\ub418\uc5b4 \uc788\uc73c\uba70, \ub300\ub7c9 \ub370\uc774\ud130 \ucc98\ub9ac\ub97c \uc704\ud55c \ub2e4\uc591\ud55c \uae30\ub2a5\uc744 \uc81c\uacf5\ud55c\ub2e4. \uc2a4\ud504\ub9c1 \ubc30\uce58\ub294 \ub300\uc6a9\ub7c9 \ub370\uc774\ud130 \ucc98\ub9ac\ub97c \uc704\ud55c \uc77c\uad04 \ucc98\ub9ac(Batch Processing)\ub97c \uc9c0\uc6d0\ud558\uba70, \ub300\uc6a9\ub7c9 \ub370\uc774\ud130\ub97c \ud6a8\uc728\uc801\uc73c\ub85c \ucc98\ub9ac\ud558\uae30 \uc704\ud55c \ub2e4\uc591\ud55c \uc804\ub7b5\uc744 \uc81c\uacf5\ud55c\ub2e4.<\/p>\n
\uc2a4\ud504\ub9c1 \ubc30\uce58\ub294 \ub300\uc6a9\ub7c9 \ub370\uc774\ud130 \ucc98\ub9ac\ub97c \uc704\ud55c \ub2e4\uc591\ud55c \uae30\ub2a5\uc744 \uc81c\uacf5\ud558\uba70, \ub300\uc6a9\ub7c9 \ub370\uc774\ud130 \ucc98\ub9ac\ub97c \uc704\ud55c \uc804\uc6a9 \ud504\ub808\uc784\uc6cc\ud06c\ub85c\uc11c \ub9ce\uc740 \uae30\uc5c5\uc5d0\uc11c \ud65c\uc6a9\ub418\uace0 \uc788\ub2e4. \uc2a4\ud504\ub9c1 \ubc30\uce58\ub294 \ub300\uc6a9\ub7c9 \ub370\uc774\ud130 \ucc98\ub9ac\ub97c \uc704\ud55c \ub2e4\uc591\ud55c \uae30\ub2a5\uc744 \uc81c\uacf5\ud558\uba70, \uc774\ub97c \ud65c\uc6a9\ud558\uc5ec \ub300\ub7c9 \ub370\uc774\ud130\ub97c \ud6a8\uc728\uc801\uc73c\ub85c \ucc98\ub9ac\ud560 \uc218 \uc788\ub2e4.<\/p>\n
\uc2a4\ud504\ub9c1 \ubc30\uce58\ub294 \ub300\ub7c9 \ub370\uc774\ud130 \ucc98\ub9ac\ub97c \uc704\ud55c \ub2e4\uc591\ud55c \uae30\ub2a5\uc744 \uc81c\uacf5\ud55c\ub2e4. \uc774\ub97c \ud1b5\ud574 \ub300\ub7c9 \ub370\uc774\ud130\ub97c \ud6a8\uc728\uc801\uc73c\ub85c \ucc98\ub9ac\ud560 \uc218 \uc788\ub2e4. \uc2a4\ud504\ub9c1 \ubc30\uce58\uc5d0\uc11c \uc81c\uacf5\ud558\ub294 \ub300\ub7c9 \ub370\uc774\ud130 \ucc98\ub9ac\ub97c \uc704\ud55c \uae30\ub2a5\uc740 \ub2e4\uc74c\uacfc \uac19\ub2e4.<\/p>\n
\uc2a4\ud504\ub9c1 \ubc30\uce58\uc5d0\uc11c\ub294 Chunk \uae30\ubc18 \ucc98\ub9ac\ub97c \uc9c0\uc6d0\ud558\uba70, \uc774\ub97c \ud1b5\ud574 \ub300\ub7c9 \ub370\uc774\ud130\ub97c \uc791\uc740 \ub2e8\uc704\ub85c \ucabc\uac1c\uc5b4 \ucc98\ub9ac\ud560 \uc218 \uc788\ub2e4. \uc774\ub97c \ud1b5\ud574 \ub300\ub7c9 \ub370\uc774\ud130 \ucc98\ub9ac \uc2dc OutOfMemoryError \ub4f1\uc758 \ubb38\uc81c\ub97c \ubc29\uc9c0\ud560 \uc218 \uc788\ub2e4.<\/p>\n
@Configuration\n@EnableBatchProcessing\npublic class BatchConfiguration {\n\n @Autowired\n public JobBuilderFactory jobBuilderFactory;\n\n @Autowired\n public StepBuilderFactory stepBuilderFactory;\n\n @Bean\n public ItemReader itemReader() {\n return new CustomerItemReader();\n }\n\n @Bean\n public ItemProcessor itemProcessor() {\n return new CustomerItemProcessor();\n }\n\n @Bean\n public ItemWriter itemWriter() {\n return new CustomerItemWriter();\n }\n\n @Bean\n public Step step() {\n return stepBuilderFactory.get(\"step\")\n .chunk(10)\n .reader(itemReader())\n .processor(itemProcessor())\n .writer(itemWriter())\n .build();\n }\n\n @Bean\n public Job job() {\n return jobBuilderFactory.get(\"job\")\n .start(step())\n .build();\n }\n}<\/code><\/pre>\n\uc704 \ucf54\ub4dc\uc5d0\uc11c\ub294 Chunk \uae30\ubc18 \ucc98\ub9ac\ub97c \ud1b5\ud574 10\uac74\uc529 \ub370\uc774\ud130\ub97c \ucc98\ub9ac\ud558\uace0 \uc788\ub2e4.<\/p>\n
2. \ubcd1\ub82c \ucc98\ub9ac<\/h2>\n
\uc2a4\ud504\ub9c1 \ubc30\uce58\ub294 \ub300\ub7c9 \ub370\uc774\ud130 \ucc98\ub9ac\ub97c \uc704\ud574 \ubcd1\ub82c \ucc98\ub9ac \uae30\ub2a5\uc744 \uc81c\uacf5\ud55c\ub2e4. \uc774\ub97c \ud1b5\ud574 \ub300\ub7c9 \ub370\uc774\ud130\ub97c \ube60\ub974\uac8c \ucc98\ub9ac\ud560 \uc218 \uc788\ub2e4.<\/p>\n
@Configuration\n@EnableBatchProcessing\npublic class BatchConfiguration {\n\n @Autowired\n public JobBuilderFactory jobBuilderFactory;\n\n @Autowired\n public StepBuilderFactory stepBuilderFactory;\n\n @Bean\n public ItemReader itemReader() {\n return new CustomerItemReader();\n }\n\n @Bean\n public ItemProcessor itemProcessor() {\n return new CustomerItemProcessor();\n }\n\n @Bean\n public ItemWriter itemWriter() {\n return new CustomerItemWriter();\n }\n\n @Bean\n public Step step() {\n return stepBuilderFactory.get(\"step\")\n .chunk(10)\n .reader(itemReader())\n .processor(itemProcessor())\n .writer(itemWriter())\n .taskExecutor(taskExecutor())\n .build();\n }\n\n @Bean\n public Job job() {\n return jobBuilderFactory.get(\"job\")\n .start(step())\n .build();\n }\n\n @Bean\n public TaskExecutor taskExecutor() {\n ThreadPoolTaskExecutor taskExecutor = new ThreadPoolTaskExecutor();\n taskExecutor.setCorePoolSize(10);\n taskExecutor.setMaxPoolSize(10);\n taskExecutor.setQueueCapacity(10);\n taskExecutor.afterPropertiesSet();\n return taskExecutor;\n }\n}<\/code><\/pre>\n\uc704 \ucf54\ub4dc\uc5d0\uc11c\ub294 taskExecutor\ub97c \uc774\uc6a9\ud558\uc5ec \ubcd1\ub82c \ucc98\ub9ac\ub97c \uc218\ud589\ud558\uace0 \uc788\ub2e4.<\/p>\n
3. Retry \ubc0f Skip<\/h2>\n
\uc2a4\ud504\ub9c1 \ubc30\uce58\ub294 \ub300\ub7c9 \ub370\uc774\ud130 \ucc98\ub9ac \uc2dc \uc608\uc678\uac00 \ubc1c\uc0dd\ud560 \uacbd\uc6b0 Retry \ubc0f Skip \uae30\ub2a5\uc744 \uc81c\uacf5\ud55c\ub2e4. \uc774\ub97c \ud1b5\ud574 \ub370\uc774\ud130 \ucc98\ub9ac \uc911 \uc608\uc678\uac00 \ubc1c\uc0dd\ud574\ub3c4 \uc791\uc5c5\uc744 \uc911\ub2e8\ud558\uc9c0 \uc54a\uace0, \ub2e4\uc2dc \uc2dc\ub3c4\ud558\uac70\ub098 \ud574\ub2f9 \ub370\uc774\ud130\ub97c \uac74\ub108\ub6f0\uc5b4 \ucc98\ub9ac\ud560 \uc218 \uc788\ub2e4.<\/p>\n
@Configuration\n@EnableBatchProcessing\npublic class BatchConfiguration {\n\n @Autowired\n public JobBuilderFactory jobBuilderFactory;\n\n @Autowired\n public StepBuilderFactory stepBuilderFactory;\n\n @Bean\n public ItemReader itemReader() {\n return new CustomerItemReader();\n }\n\n @Bean\n public ItemProcessor itemProcessor() {\n return new CustomerItemProcessor();\n }\n\n @Bean\n public ItemWriter itemWriter() {\n return new CustomerItemWriter();\n }\n\n @Bean\n public Step step() {\n return stepBuilderFactory.get(\"step\")\n .chunk(10)\n .reader(itemReader())\n .processor(itemProcessor())\n .writer(itemWriter())\n .faultTolerant()\n .retryLimit(3)\n .retry(Exception.class)\n .skipLimit(10)\n .skip(Exception.class)\n .build();\n }\n\n @Bean\n public Job job() {\n return jobBuilderFactory.get(\"job\")\n .start(step())\n .build();\n }\n}<\/code><\/pre>\n\uc704 \ucf54\ub4dc\uc5d0\uc11c\ub294 Retry \ubc0f Skip \uae30\ub2a5\uc744 faultTolerant() \uba54\uc11c\ub4dc\ub97c \uc774\uc6a9\ud558\uc5ec \uc124\uc815\ud558\uace0 \uc788\ub2e4.<\/p>\n
\uc2a4\ud504\ub9c1 \ubc30\uce58\uc5d0\uc11c \uc608\uc678 \ucc98\ub9ac \uc804\ub7b5<\/h1>\n
\ub300\ub7c9 \ub370\uc774\ud130 \ucc98\ub9ac\ub97c \uc704\ud55c \uc2a4\ud504\ub9c1 \ubc30\uce58\uc5d0\uc11c\ub294 \uc608\uc678 \ucc98\ub9ac \uc804\ub7b5\uc774 \ub9e4\uc6b0 \uc911\uc694\ud558\ub2e4. \uc774\ub294 \ub370\uc774\ud130 \ucc98\ub9ac \uc911 \uc608\uc678\uac00 \ubc1c\uc0dd\ud560 \uacbd\uc6b0 \uc791\uc5c5\uc744 \uc911\ub2e8\ud558\uc9c0 \uc54a\uace0, \ub370\uc774\ud130 \ucc98\ub9ac\ub97c \uacc4\uc18d\ud560 \uc218 \uc788\ub3c4\ub85d \ud558\ub294 \uac83\uc774\ub2e4.<\/p>\n
\uc2a4\ud504\ub9c1 \ubc30\uce58\uc5d0\uc11c\ub294 Retry \ubc0f Skip \uae30\ub2a5\uc744 \uc81c\uacf5\ud558\uc5ec \uc608\uc678 \ucc98\ub9ac\ub97c \uc218\ud589\ud55c\ub2e4. Retry \uae30\ub2a5\uc740 \uc608\uc678\uac00 \ubc1c\uc0dd\ud588\uc744 \uacbd\uc6b0 \uc9c0\uc815\ub41c \ud69f\uc218\ub9cc\ud07c \uc7ac\uc2dc\ub3c4\ud558\ub294 \uae30\ub2a5\uc744 \uc81c\uacf5\ud558\uba70, Skip \uae30\ub2a5\uc740 \uc608\uc678\uac00 \ubc1c\uc0dd\ud588\uc744 \uacbd\uc6b0 \ud574\ub2f9 \ub370\uc774\ud130\ub97c \uac74\ub108\ub6f0\uc5b4 \ucc98\ub9ac\ud558\ub294 \uae30\ub2a5\uc744 \uc81c\uacf5\ud55c\ub2e4.<\/p>\n
\uc2a4\ud504\ub9c1 \ubc30\uce58\uc5d0\uc11c \uc608\uc678 \ucc98\ub9ac \uc804\ub7b5\uc744 \uc124\uc815\ud558\ub294 \ubc29\ubc95\uc740 \ub2e4\uc74c\uacfc \uac19\ub2e4.<\/p>\n
1. Retry \uae30\ub2a5 \uc124\uc815<\/h2>\n
\uc2a4\ud504\ub9c1 \ubc30\uce58\uc5d0\uc11c Retry \uae30\ub2a5\uc744 \uc124\uc815\ud558\ub294 \ubc29\ubc95\uc740 \ub2e4\uc74c\uacfc \uac19\ub2e4.<\/p>\n
@Bean\npublic Step step() {\n return stepBuilderFactory.get(\"step\")\n .chunk(10)\n .reader(itemReader())\n .processor(itemProcessor())\n .writer(itemWriter())\n .faultTolerant()\n .retryLimit(3)\n .retry(Exception.class)\n .build();\n}<\/code><\/pre>\n\uc704 \ucf54\ub4dc\uc5d0\uc11c\ub294 faultTolerant() \uba54\uc11c\ub4dc\ub97c \uc774\uc6a9\ud558\uc5ec Retry \ubc0f Skip \uae30\ub2a5\uc744 \ud65c\uc131\ud654\ud558\uace0 \uc788\ub2e4. retryLimit() \uba54\uc11c\ub4dc\ub97c \uc774\uc6a9\ud558\uc5ec \uc7ac\uc2dc\ub3c4 \ud69f\uc218\ub97c \uc9c0\uc815\ud558\uace0, retry() \uba54\uc11c\ub4dc\ub97c \uc774\uc6a9\ud558\uc5ec \uc5b4\ub5a4 \uc608\uc678\uc5d0 \ub300\ud574 \uc7ac\uc2dc\ub3c4\ub97c \uc218\ud589\ud560 \uac83\uc778\uc9c0 \uc9c0\uc815\ud560 \uc218 \uc788\ub2e4.<\/p>\n
2. Skip \uae30\ub2a5 \uc124\uc815<\/h2>\n
\uc2a4\ud504\ub9c1 \ubc30\uce58\uc5d0\uc11c Skip \uae30\ub2a5\uc744 \uc124\uc815\ud558\ub294 \ubc29\ubc95\uc740 \ub2e4\uc74c\uacfc \uac19\ub2e4.<\/p>\n
@Bean\npublic Step step() {\n return stepBuilderFactory.get(\"step\")\n .chunk(10)\n .reader(itemReader())\n .processor(itemProcessor())\n .writer(itemWriter())\n .faultTolerant()\n .retryLimit(3)\n .retry(Exception.class)\n .skipLimit(10)\n .skip(Exception.class)\n .build();\n}<\/code><\/pre>\n\uc704 \ucf54\ub4dc\uc5d0\uc11c\ub294 skipLimit() \uba54\uc11c\ub4dc\ub97c \uc774\uc6a9\ud558\uc5ec Skip \ud69f\uc218\ub97c \uc9c0\uc815\ud558\uace0, skip() \uba54\uc11c\ub4dc\ub97c \uc774\uc6a9\ud558\uc5ec \uc5b4\ub5a4 \uc608\uc678\uc5d0 \ub300\ud574 Skip\uc744 \uc218\ud589\ud560 \uac83\uc778\uc9c0 \uc9c0\uc815\ud560 \uc218 \uc788\ub2e4.<\/p>\n
\uc2a4\ud504\ub9c1 \ubc30\uce58\ub97c \ud65c\uc6a9\ud55c \ub300\uc6a9\ub7c9 \ub370\uc774\ud130 \ucc98\ub9ac \uc0ac\ub840<\/h1>\n
\uc2a4\ud504\ub9c1 \ubc30\uce58\ub294 \ub300\uc6a9\ub7c9 \ub370\uc774\ud130 \ucc98\ub9ac\ub97c \uc704\ud55c \ub2e4\uc591\ud55c \uae30\ub2a5\uc744 \uc81c\uacf5\ud558\uba70, \uc774\ub97c \ud65c\uc6a9\ud558\uc5ec \ub2e4\uc591\ud55c \ub300\uc6a9\ub7c9 \ub370\uc774\ud130 \ucc98\ub9ac \uc0ac\ub840\uac00 \uc788\ub2e4.<\/p>\n
1. \uc8fc\uc2dd \ub370\uc774\ud130 \ucc98\ub9ac<\/h2>\n
\ub300\ud615 \uc99d\uad8c\uc0ac\uc5d0\uc11c\ub294 \uc218\ub9ce\uc740 \uc8fc\uc2dd \uac70\ub798 \ub370\uc774\ud130\ub97c \ucc98\ub9ac\ud574\uc57c \ud55c\ub2e4. \uc774\ub97c \uc704\ud574 \uc2a4\ud504\ub9c1 \ubc30\uce58\ub97c \ud65c\uc6a9\ud558\uc5ec \ub300\ub7c9 \ub370\uc774\ud130\ub97c \ud6a8\uc728\uc801\uc73c\ub85c \ucc98\ub9ac\ud560 \uc218 \uc788\ub2e4. \uc2a4\ud504\ub9c1 \ubc30\uce58\ub97c \uc774\uc6a9\ud558\uc5ec \uc8fc\uc2dd \uac70\ub798 \ub370\uc774\ud130\ub97c \ucc98\ub9ac\ud558\ub294 \uc608\uc81c \ucf54\ub4dc\ub294 \ub2e4\uc74c\uacfc \uac19\ub2e4.<\/p>\n
@Configuration\n@EnableBatchProcessing\npublic class BatchConfiguration {\n\n @Autowired\n public JobBuilderFactory jobBuilderFactory;\n\n @Autowired\n public StepBuilderFactory stepBuilderFactory;\n\n @Bean\n public ItemReader itemReader() {\n return new StockItemReader();\n }\n\n @Bean\n public ItemProcessor itemProcessor() {\n return new StockItemProcessor();\n }\n\n @Bean\n public ItemWriter itemWriter() {\n return new StockItemWriter();\n }\n\n @Bean\n public Step step() {\n return stepBuilderFactory.get(\"step\")\n .chunk(10)\n .reader(itemReader())\n .processor(itemProcessor())\n .writer(itemWriter())\n .faultTolerant()\n .retryLimit(3)\n .retry(Exception.class)\n .build();\n }\n\n @Bean\n public Job job() {\n return jobBuilderFactory.get(\"job\")\n .start(step())\n .build();\n }\n}<\/code><\/pre>\n\uc704 \ucf54\ub4dc\uc5d0\uc11c\ub294 Stock \ub370\uc774\ud130\ub97c \ucc98\ub9ac\ud558\ub294 \uc608\uc81c \ucf54\ub4dc\ub97c \ubcf4\uc5ec\uc8fc\uace0 \uc788\ub2e4.<\/p>\n
2. \ub300\uc6a9\ub7c9 \ub85c\uadf8 \ub370\uc774\ud130 \ucc98\ub9ac<\/h2>\n
\ub300\uaddc\ubaa8 \uc6f9 \uc11c\ube44\uc2a4\uc5d0\uc11c\ub294 \ub9e4\uc6b0 \ub9ce\uc740 \ub85c\uadf8 \ub370\uc774\ud130\ub97c \ucc98\ub9ac\ud574\uc57c \ud55c\ub2e4. \uc774\ub97c \uc704\ud574 \uc2a4\ud504\ub9c1 \ubc30\uce58\ub97c \ud65c\uc6a9\ud558\uc5ec \ub300\ub7c9 \ub370\uc774\ud130\ub97c \ud6a8\uc728\uc801\uc73c\ub85c \ucc98\ub9ac\ud560 \uc218 \uc788\ub2e4. \uc2a4\ud504\ub9c1 \ubc30\uce58\ub97c \uc774\uc6a9\ud558\uc5ec \ub85c\uadf8 \ub370\uc774\ud130\ub97c \ucc98\ub9ac\ud558\ub294 \uc608\uc81c \ucf54\ub4dc\ub294 \ub2e4\uc74c\uacfc \uac19\ub2e4.<\/p>\n
@Configuration\n@EnableBatchProcessing\npublic class BatchConfiguration {\n\n @Autowired\n public JobBuilderFactory jobBuilderFactory;\n\n @Autowired\n public StepBuilderFactory stepBuilderFactory;\n\n @Bean\n public ItemReader itemReader() {\n return new LogItemReader();\n }\n\n @Bean\n public ItemProcessor itemProcessor() {\n return new LogItemProcessor();\n }\n\n @Bean\n public ItemWriter itemWriter() {\n return new LogItemWriter();\n }\n\n @Bean\n public Step step() {\n return stepBuilderFactory.get(\"step\")\n .chunk(10)\n .reader(itemReader())\n .processor(itemProcessor())\n .writer(itemWriter())\n .faultTolerant()\n .retryLimit(3)\n .retry(Exception.class)\n .build();\n }\n\n @Bean\n public Job job() {\n return jobBuilderFactory.get(\"job\")\n .start(step())\n .build();\n }\n}<\/code><\/pre>\n\uc704 \ucf54\ub4dc\uc5d0\uc11c\ub294 Log \ub370\uc774\ud130\ub97c \ucc98\ub9ac\ud558\ub294 \uc608\uc81c \ucf54\ub4dc\ub97c \ubcf4\uc5ec\uc8fc\uace0 \uc788\ub2e4.<\/p>\n
3. \ub300\uc6a9\ub7c9 \uc601\uc0c1 \ucc98\ub9ac<\/h2>\n
\ub300\uaddc\ubaa8 \uc601\uc0c1 \ucc98\ub9ac \uc2dc\uc2a4\ud15c\uc5d0\uc11c\ub294 \ub9e4\uc6b0 \ub9ce\uc740 \uc601\uc0c1 \ub370\uc774\ud130\ub97c \ucc98\ub9ac\ud574\uc57c \ud55c\ub2e4. \uc774\ub97c \uc704\ud574 \uc2a4\ud504\ub9c1 \ubc30\uce58\ub97c \ud65c\uc6a9\ud558\uc5ec \ub300\ub7c9 \ub370\uc774\ud130\ub97c \ud6a8\uc728\uc801\uc73c\ub85c \ucc98\ub9ac\ud560 \uc218 \uc788\ub2e4. \uc2a4\ud504\ub9c1 \ubc30\uce58\ub97c \uc774\uc6a9\ud558\uc5ec \uc601\uc0c1 \ub370\uc774\ud130\ub97c \ucc98\ub9ac\ud558\ub294 \uc608\uc81c \ucf54\ub4dc\ub294 \ub2e4\uc74c\uacfc \uac19\ub2e4.<\/p>\n
@Configuration\n@EnableBatchProcessing\npublic class BatchConfiguration {\n\n @Autowired\n public JobBuilderFactory jobBuilderFactory;\n\n @Autowired\n public StepBuilderFactory stepBuilderFactory;\n\n @Bean\n public ItemReader itemReader() {\n return new VideoItemReader();\n }\n\n @Bean\n public ItemProcessor itemProcessor() {\n return new VideoItemProcessor();\n }\n\n @Bean\n public ItemWriter itemWriter() {\n return new VideoItemWriter();\n }\n\n @Bean\n public Step step() {\n return stepBuilderFactory.get(\"step\")\n .chunk(10)\n .reader(itemReader())\n .processor(itemProcessor())\n .writer(itemWriter())\n .faultTolerant()\n .retryLimit(3)\n .retry(Exception.class)\n .build();\n }\n\n @Bean\n public Job job() {\n return jobBuilderFactory.get(\"job\")\n .start(step())\n .build();\n }\n}<\/code><\/pre>\n\uc704 \ucf54\ub4dc\uc5d0\uc11c\ub294 Video \ub370\uc774\ud130\ub97c \ucc98\ub9ac\ud558\ub294 \uc608\uc81c \ucf54\ub4dc\ub97c \ubcf4\uc5ec\uc8fc\uace0 \uc788\ub2e4.<\/p>\n
\uacb0\ub860<\/h1>\n
\uc774\ubc88 \uae00\uc5d0\uc11c\ub294 \uc2a4\ud504\ub9c1 \ubc30\uce58(Batch)\ub97c \ud65c\uc6a9\ud55c \ub300\uc6a9\ub7c9 \ub370\uc774\ud130 \ucc98\ub9ac\uc640 \uc608\uc678 \ucc98\ub9ac \uc804\ub7b5\uc5d0 \ub300\ud574 \uc54c\uc544\ubcf4\uc558\ub2e4. \uc2a4\ud504\ub9c1 \ubc30\uce58\ub294 \ub300\uc6a9\ub7c9 \ub370\uc774\ud130 \ucc98\ub9ac\ub97c \uc704\ud55c \ub2e4\uc591\ud55c \uae30\ub2a5\uc744 \uc81c\uacf5\ud558\uba70, \ub300\ub7c9 \ub370\uc774\ud130\ub97c \ud6a8\uc728\uc801\uc73c\ub85c \ucc98\ub9ac\ud560 \uc218 \uc788\ub2e4. \ub610\ud55c, Retry \ubc0f Skip \uae30\ub2a5\uc744 \uc81c\uacf5\ud558\uc5ec \uc608\uc678 \ucc98\ub9ac\ub97c \uc218\ud589\ud560 \uc218 \uc788\ub2e4. \uc774\ub97c \ud65c\uc6a9\ud558\uc5ec \ub2e4\uc591\ud55c \ub300\uc6a9\ub7c9 \ub370\uc774\ud130 \ucc98\ub9ac \uc0ac\ub840\ub97c \uad6c\ud604\ud560 \uc218 \uc788\ub2e4. \uc2a4\ud504\ub9c1 \ubc30\uce58\ub97c \uc774\uc6a9\ud558\uc5ec \ub300\uc6a9\ub7c9 \ub370\uc774\ud130 \ucc98\ub9ac\ub97c \uad6c\ud604\ud560 \ub54c\uc5d0\ub294 Chunk \uae30\ubc18 \ucc98\ub9ac, \ubcd1\ub82c \ucc98\ub9ac, Retry \ubc0f Skip \uae30\ub2a5 \ub4f1\uc744 \uc801\uc808\ud788 \ud65c\uc6a9\ud558\uc5ec \ud6a8\uc728\uc801\uc73c\ub85c \ucc98\ub9ac\ud560 \uc218 \uc788\ub3c4\ub85d \ud574\uc57c \ud55c\ub2e4.<\/p>\n","protected":false},"excerpt":{"rendered":"
\uc2a4\ud504\ub9c1 \ubc30\uce58\ub97c \ud65c\uc6a9\ud55c \ub300\uc6a9\ub7c9 \ub370\uc774\ud130 \ucc98\ub9ac\uc640 \uc608\uc678 \ucc98\ub9ac \uc804\ub7b5<\/p>\n","protected":false},"author":1,"featured_media":12882,"comment_status":"closed","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1957],"tags":[5898,2471,2105,2112,2188,5932,2238,2144,5979],"class_list":["post-35820","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-development","tag-backend","tag-configuration","tag-java","tag-processing","tag-public","tag-spring-boot","tag-stock","tag-web","tag-5979"],"acf":[],"_links":{"self":[{"href":"https:\/\/m9js.shop\/blog\/wp-json\/wp\/v2\/posts\/35820","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/m9js.shop\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/m9js.shop\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/m9js.shop\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/m9js.shop\/blog\/wp-json\/wp\/v2\/comments?post=35820"}],"version-history":[{"count":1,"href":"https:\/\/m9js.shop\/blog\/wp-json\/wp\/v2\/posts\/35820\/revisions"}],"predecessor-version":[{"id":35875,"href":"https:\/\/m9js.shop\/blog\/wp-json\/wp\/v2\/posts\/35820\/revisions\/35875"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/m9js.shop\/blog\/wp-json\/wp\/v2\/media\/12882"}],"wp:attachment":[{"href":"https:\/\/m9js.shop\/blog\/wp-json\/wp\/v2\/media?parent=35820"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/m9js.shop\/blog\/wp-json\/wp\/v2\/categories?post=35820"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/m9js.shop\/blog\/wp-json\/wp\/v2\/tags?post=35820"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}