Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- ArrayList
- Grafana
- 회고
- github
- 코딩
- GIT
- 코딩테스트 준비
- HTML
- Java
- 코딩문제
- 정렬 알고리즘(sort algorithm)
- 자바
- 배열
- wil
- Entity
- 프로그래머스
- Spring
- 99클럽
- cs 공부)준비
- 코딩공부
- css
- CS
- 이진 탐색(binary search)
- 메서드
- 자료구조
- aop
- 개발자 취업
- 면접(java
- 항해99
- Til
Archives
- Today
- Total
hayu's 개발 일지
[TIL]240413 Scheduler, Batch, Quartz / 프로젝트 Spring Scheduler 선택 이유 본문
프레임워크/spring
[TIL]240413 Scheduler, Batch, Quartz / 프로젝트 Spring Scheduler 선택 이유
hayu00 2024. 4. 13. 21:03Spring Scheduler 선택 이유
Scheduler
- 주기적으로 또는 특정 시간에 작업을 실행할 수 있도록 도와주는 도구이다.단점 : 실행 시간의 예측이 어렵다. / 복잡한 작업 처리가 어렵다. /
- → 주기적으로 실행되어야 하는 간단한 작업에 적합하다. 실시간 처리가 필요하지 않은 경우에 사용된다.
- 장점 : 구현이 간편하다. / 다양한 스케쥴링 옵션이 있다. / 스프링 내부 기능와 통합이 용이하다.
Batch(배치)
- 배치는 대량의 데이터를 처리하고 일괄 작업을 수행하기 위한 기능이다.단점 : 실시간 처리가 어렵다. / 설정과 구현이 복잡하다.→ 대량의 데이터를 처리할 때 적합하다. 데이터 정제 및 변환 작업이 필요한 경우 혹은 일괄적인 작업 실행이 필요한 경우에 사용된다.
- → 일괄 작업을 실행하는 도구로, 스케쥴링 기능을 내장하고 있지 않다. 배치를 사용하면 Quartz, Scheduler, Jenkins 등 전용 스케줄러를 사용해야한다.
- 장점 : 대량의 데이터 처리가 가능하다. / 복잡한 작업의 흐름을 다룰 수 있다.
스프링 배치(Spring Batch)의 만족 조건
- 대용량 데이터 : 대량의 데이터를 가져오거나, 전달, 계산 등의 처리를 할 수 있어야 합니다.
- 자동화 : 심각한 문제 해결을 제외하고는 사용자가 개입 없이 실행되어야 합니다.
- 견고성 : 잘못된 데이터를 충돌/중단 없이 처리할 수 있어야 합니다.
- 신뢰성 : 무엇이 잘못되었는지를 추적할 수 있어야 합니다.(로깅, 알림)
- 성능 : 지정한 시간 안에 처리를 완료하거나 동시에 실행되는 다른 애플리케이션을 방해하지 않도록 수행되어야 합니다.
Quartz
- Quartz(쿼츠)는 자바 기반의 오픈 소스 스케쥴링 라이브러리로, 스프링 어플리케이션에서 스케쥴링 작업하는데 사용된다.
- 스프링에서 기본으로 제공해주지 않기 때문에 의존성 주입이 필요하다.
- implementation "org.springframework.boot:spring-boot-starter-quartz”
- corn 표현식만 사용 가능하다.단점 : 설정이 복잡하다. / 학습 곡선이 높다.
- → 다양한 스케쥴링 옵션이 필요한 경우에 적합하다.
- 장점 : 다양한 스케쥴링 옵션이 있다. (예) 특정 시간에 작업을 예약, 주기적으로 작업을 실행하는 옵션 등) / 고가용성 - 한 서버가 셧다운 되어도 다른 서버에서 실행되어 다운 타임이 없다. / 확작성 - 쿼츠 설정된 서버를 구동하면 자동으로 DB에 스케줄 인스턴스로 등록된다. (셧다운 된 서버는 다른 서버에 의해 DB에서 삭제된다.)
'프레임워크 > spring' 카테고리의 다른 글
[TIL]240418 영속성 컨텍스트 (0) | 2024.04.18 |
---|---|
[TIL]240415 테스트란 (0) | 2024.04.15 |
[TIL]240412 Spring Scheduler (0) | 2024.04.12 |
[TIL]240409 Dirty Checking (0) | 2024.04.09 |
[TIL]240402 Polling, Long Polling, Websocket, SSE (0) | 2024.04.02 |