Noah_Developer
Developer Noah
Noah_Developer
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ
  • ์ „์ฒด๋ณด๊ธฐ (88)
    • Programmers (33)
      • Level1 (33)
    • FRONT-END (3)
      • React (2)
      • HTML (0)
      • CSS (0)
      • JavaScrpit (1)
    • BACK-END (23)
      • JAVA (14)
      • C (0)
      • Spring (5)
    • DATABASE (11)
      • MySQL (3)
      • Oracle (0)
    • IDE (2)
      • IntelliJ (2)
      • Eclipse (0)
      • VSCode (0)
    • Android (1)
    • ์šฉ์–ด (2)
      • ๊ธˆ์œต (2)
    • Developer Diary (5)
      • Web (1)
    • ์ž๊ฒฉ์ฆ (1)
    • Operating System (3)
      • Linux (2)
    • Info (3)

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • ํ™ˆ
  • ๋ฐฉ๋ช…๋ก
  • ํฌํŠธํด๋ฆฌ์˜ค
  • ๊นƒํ—ˆ๋ธŒ

๊ณต์ง€์‚ฌํ•ญ

  • ๐Ÿ™ ๋ฐฉ๋ฌธ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

์ธ๊ธฐ ๊ธ€

ํƒœ๊ทธ

  • ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค
  • ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๋ ˆ๋ฒจ1
  • ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ธ”๋กœ๊ทธ
  • ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์ค€๋น„
  • programmers
  • ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์—ฐ์Šต๋ฌธ์ œ
  • ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ๋ฌธ์ œ
  • String StringBuilder ์ฐจ์ด
  • ์นด์นด์˜ค ๋ธ”๋ผ์ธ๋“œ ํ…Œ์ŠคํŠธ
  • ํฌ๋ ˆ์ธ ์ธํ˜•๋ฝ‘๊ธฐ ํ’€์ด
  • level1
  • programmers level 1
  • ์นด์นด์˜ค๊ณต์ฑ„
  • ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์‰ฌ์šด๋ฌธ์ œ
  • ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์—ฐ์Šต๋ฌธ์ œ
  • ์•Œ๊ณ ๋ฆฌ์ฆ˜ ํ’€์ด
  • ์ดˆ๋ณด์ž ์•Œ๊ณ ๋ฆฌ์ฆ˜
  • ํฌ๋ ˆ์ธ ์ธํ˜•๋ฝ‘๊ธฐ
  • ๊ฐœ๋ฐœ์ผ๊ธฐ
  • ์ž๋ฐ” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์—ฐ์Šต๋ฌธ์ œ
  • ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋”ฉ์—ฐ์Šต
  • ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๋ฌธ์ œํ’€์ด
  • ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์˜ˆ์ œ
  • ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ
  • MySQL
  • ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ๋ฌธ์ œ ํ’€์ด
  • ํฌ๋ ˆ์ธ ์ธํ˜•๋ฝ‘๊ธฐ ์ •๋‹ต
  • ์ฝ”๋”ฉํ…Œ์ŠคํŠธ
  • ์ž๋ฐ” ์‰ฌ์šด ์•Œ๊ณ ๋ฆฌ์ฆ˜
  • ์นด์นด์˜ค ๋ธ”๋ผ์ธ๋“œ

์ตœ๊ทผ ๋Œ“๊ธ€

์ตœ๊ทผ ๊ธ€

ํ‹ฐ์Šคํ† ๋ฆฌ

250x250
hELLO ยท Designed By ์ •์ƒ์šฐ.
Noah_Developer

Developer Noah

Spring Batch ์‹œ์ž‘ํ•˜๊ธฐ
BACK-END/Spring

Spring Batch ์‹œ์ž‘ํ•˜๊ธฐ

2023. 2. 19. 20:49
728x90

๐Ÿค” ์‚ฌ์šฉํ•˜๋Š” ์ด์œ 

Spring Batch๋Š” ๋Œ€๋Ÿ‰์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ์˜คํ”ˆ ์†Œ์Šค ํ”„๋ ˆ์ž„์›Œํฌ์ž…๋‹ˆ๋‹ค. Spring Batch๋Š” ๋งค์šฐ ์œ ์—ฐํ•˜๋ฉฐ ์ผ๊ด„ ์ฒ˜๋ฆฌ (Batch Processing) ์ž‘์—…์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด Spring Batch๋Š” ์ž‘์—…์„ ๋‹จ๊ณ„๋ณ„๋กœ ๋ถ„ํ• ํ•˜์—ฌ ๊ฐ ๋‹จ๊ณ„๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ํŠธ๋žœ์žญ์…˜ ๊ด€๋ฆฌ์™€ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

์ƒ˜ํ”Œ Spring Batch ํ”„๋กœ์ ํŠธ๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

1. Spring Boot ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ

Spring Boot CLI๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ƒˆ Spring Boot ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

$ spring init --dependencies=web,batch my-batch-project

 

2. ์˜์กด์„ฑ ์ถ”๊ฐ€

build.gradle ํŒŒ์ผ์— Spring Batch ๋ฐ ๊ด€๋ จ ์˜์กด์„ฑ์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

dependencies { 
	implementation 'org.springframework.boot:spring-boot-starter-batch' 
	implementation 'org.springframework.batch:spring-batch-core'
	implementation 'org.springframework.batch:spring-batch-infrastructure'
	testImplementation 'org.springframework.batch:spring-batch-test'
}

 

3. Job๊ณผ Step ์ƒ์„ฑ

Spring Batch ์ž‘์—… (Job)์€ ํ•˜๋‚˜ ์ด์ƒ์˜ ๋‹จ๊ณ„ (Step)๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค. Job๊ณผ Step์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ๋‹ค์Œ๊ณผ ๊ฐ™์ด Java ํด๋ž˜์Šค๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

@Configuration
public class BatchConfiguration {

    @Autowired
    private JobBuilderFactory jobBuilderFactory;

    @Autowired
    private StepBuilderFactory stepBuilderFactory;

    @Bean
    public Step step1() {
        return stepBuilderFactory.get("step1")
                .tasklet((stepContribution, chunkContext) -> {
                    System.out.println("Hello, World!");
                    return RepeatStatus.FINISHED;
                })
                .build();
    }

    @Bean
    public Job job(Step step1) {
        return jobBuilderFactory.get("job")
                .incrementer(new RunIdIncrementer())
                .start(step1)
                .build();
    }
}

์ด ์ฝ”๋“œ๋Š” ์ž‘์—… (Job)๊ณผ ์ฒซ ๋ฒˆ์งธ ๋‹จ๊ณ„ (Step)์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ ๋‹จ๊ณ„์—์„œ๋Š” "Hello, World!" ๋ฉ”์‹œ์ง€๊ฐ€ ์ถœ๋ ฅ๋ฉ๋‹ˆ๋‹ค.

4. ๋ฐฐ์น˜ ์‹คํ–‰

๋ฐฐ์น˜๋ฅผ ์‹คํ–‰ํ•˜๋ ค๋ฉด SpringApplication.run ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Spring Boot ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

@SpringBootApplication
@EnableBatchProcessing
public class MyBatchProjectApplication {

    public static void main(String[] args) {
        SpringApplication.run(MyBatchProjectApplication.class, args);
    }

}

์ด์ œ ํ”„๋กœ์ ํŠธ๋ฅผ ๋นŒ๋“œํ•˜๊ณ  ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

$ ./gradlew bootRun

์ด๊ฒƒ์œผ๋กœ ๊ฐ„๋‹จํ•œ Spring Batch ์ƒ˜ํ”Œ ํ”„๋กœ์ ํŠธ๋ฅผ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค! ์ด์ œ Job๊ณผ Step์„ ์ถ”๊ฐ€ํ•˜๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐฐ์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

728x90
์ €์ž‘์žํ‘œ์‹œ (์ƒˆ์ฐฝ์—ด๋ฆผ)

'BACK-END > Spring' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

Spring Batch ๊ธฐ๋ณธ ๊ตฌ์กฐ  (0) 2023.04.10
REST API ๋””์ž์ธ ๊ฐ€์ด๋“œ  (1) 2022.10.27
[Spring Batch] Scheduled cron Expression ํฌ๋ก  ํ‘œํ˜„์‹  (3) 2022.03.16
[Spring Boot] Failed to determine a suitable driver class ์—๋Ÿฌ  (0) 2021.12.14
    'BACK-END/Spring' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • Spring Batch ๊ธฐ๋ณธ ๊ตฌ์กฐ
    • REST API ๋””์ž์ธ ๊ฐ€์ด๋“œ
    • [Spring Batch] Scheduled cron Expression ํฌ๋ก  ํ‘œํ˜„์‹
    • [Spring Boot] Failed to determine a suitable driver class ์—๋Ÿฌ
    Noah_Developer
    Noah_Developer
    ๊ฐœ๋ฐœ ๊ธฐ๋ก ๋ชฉ์ ์„ ๊ฐ€์ง„ ๋ธ”๋กœ๊ทธ์ž…๋‹ˆ๋‹ค.

    ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”