스케줄러란

스케줄러의 장/단점

장점 단점
- 애플리케이션 없이 DB 단독으로 실행 가능

주요 DBMS별 스케줄러

정리

DBMS 스케줄러 기능 스케줄 정의 방법 특징
Oracle DBMS_SCHEDULER PL/SQL, Repeat Interval 강력하고 정밀함
MySQL/MariaDB EVENT CREATE EVENT 간단하지만 제한적
PostgreSQL pg_cron / pgAgent 확장 설치 or OS cron 외부 도구 필요

스프링 스케줄러와의 비교

항목 스프링 스케줄러 (@Scheduled 등) DB 스케줄러 (DBMS 내장 기능)
실행 위치 Java 애플리케이션 (서버) DB 서버 내부
작업 범위 비즈니스 로직 전반 (외부 API, DB, 파일 등) DB 내부 로직 (SQL, 프로시저 등)
언어/구현 Java 코드 SQL / PL(SQL) 코드
장점 ✅ 외부 연동 유리
✅ 복잡한 로직 구현 용이
✅ 로깅/모니터링 도구 연동 쉬움
✅ Git 등 버전 관리 쉬움 ✅ DB만 있어도 동작 (애플리케이션 필요 없음)
✅ 트랜잭션 처리에 유리
✅ 애플리케이션 재배포 없이 스케줄 변경 가능
단점 ❌ 애플리케이션 다운 시 스케줄 정지
❌ 클러스터 환경에서 중복 실행 이슈 존재 가능 ❌ 복잡한 로직/외부 연동 어려움
❌ 버전 관리/테스트 어려움
❌ 에러 로깅/알림 기능 미비
중복 방지 컨테이너/인스턴스 수에 따라 설정 필요 (예: Lock) DB는 1개이므로 기본적으로 단일 실행