JSCODE Logo
블로그후기멘토진
회사명 : JSCODE대표 : 박재성사업자 등록번호 : 244-22-01557통신판매업 : 제 2023-인천미추홀-0381 호
학원 명칭 : 제이에스코드(JSCODE)원격학원학원설립ㆍ운영 등록번호 : 제6063호

서울특별시 구로구 경인로 20가길 11(오류동, 아델리아)

Copyright ⓒ 2025 JSCODE - 최상위 현업 개발자들의 프로그래밍 교육 All rights reserved.

이용약관개인정보처리방침
← 블로그 목록으로 돌아가기

[실습] Jenkins 연동을 위한 메인 메소드 및 환경설정 수정

JSCODE 시니
JSCODE 시니
2026. 04. 04.
author
JSCODE 시니
category
Spring Batch
createdAt
Feb 7, 2026 01:14 AM
isPublic
isPublic
series
Spring Batch 입문: 3시간 만에 끝내는 대용량 처리의 기초
slug
configuring-main-method-for-jenkins-integration
type
post
updatedAt
Apr 4, 2026 10:00

✅ 1. 메인 메소드 변경

public static void main(String[] args) { System.exit(SpringApplication.exit(SpringApplication.run(SettlementApplication.class, args))); }
  • 스프링 배치가 실행된 결과(성공/실패)를 운영체제나 외부 스케줄러(Jenkins, Airflow 등)에게 정확하게 알려주기 위해서 작성하는 표준 패턴
  • 웹 애플리케이션은 서버가 계속 켜져있어야 하지만, 배치는 작업을 마치고 꺼지는 것이 목표이기 때문에 어떻게 꺼지는지가 중요함.
  • 0 : 정상종료
  • 1(0이 아닌 수) : 비정상 종료
 
 

✅ 2. 어노테이션 삭제

package com.batch.settlement; // @EnableScheduling 해당 배치를 실행시키는 주체가 스프링일때만 @SpringBootApplication public class SettlementApplication { public static void main(String[] args) { System.exit(SpringApplication.exit(SpringApplication.run(SettlementApplication.class, args))); } }
👩‍💼
@EnabledScheduling 어노테이션을 제거하는 이유는, 우리가 이 배치의 실행 주도권을 스프링 부트에서 젠킨스로 넘기기 때문입니다.
기존의 방식이 24시간동안 서버를 켜놓고 해당 시간이 되면 배치를 돌려주는 방식이라면, 젠킨스는 해당 시간에 자바 프로그램만 잠시 실행했다가 꺼주기 때문에, 서버 자원을 보다 효율적으로 관리할 수 있습니다.
 
 

✅ 3. application.yml 파일 변경

spring: batch: jdbc: initialize-schema: always job: enabled: true #false => true로 변경
  • 젠킨스로 해당 job을 실행하기 위해 enabled의 값을 true로 변경해준다.
 
author
category
Spring Batch
createdAt
Mar 5, 2026 10:56 PM
isPublic
isPublic
series
Spring Batch 입문: 3시간 만에 끝내는 대용량 처리의 기초
slug
type
series-footer
updatedAt
Apr 4, 2026 10:00
📎
이 글은 Spring Batch 입문 강의의 수업 자료 중 일부입니다.