Operation/System Architecture

Cron vs Event scheduler 장단점 정리!

JaeHoney 2022. 1. 22. 22:16

Cron

Cron은 특정 시간에 특정 작업을 하는 작업을 말합니다. 대표적으로 리눅스의 cron을 사용하는 방법, Spring Scheduling, Node-cron 등이 있습니다.

 

Event scheduler

DB에서 정기적으로 특정 시간에 특정 작업을 수행시킬 수도 있습니다. MySQL의 Event scheduler, Oracle scheduler 등이 있습니다.

 

Cron vs Event scheduler

그럼 두 가지 중에 어떤걸 선택해야 할까요?

 

Cron

  • 예상하기 쉬운 위치에 있음
  • 원하는 플랫폼 사용 가능
  • 웹서버와 DB의 역할을 분리할 수 있음

 

Cron의 경우에는 예상하기 쉬운 위치에 있습니다. Event scheduler의 경우에는 나중에 프로젝트를 인수인계할 때라던지 다른 개발자분이 존재유무나 위치를 파악하기 힘들어요. DB를 까서 뒤져봐야 하니까요. 반면에 Cron의 경우에는 그냥 코드랑 같이 배포되니까 관리하기도 쉽습니다.

 

Cron은 웹서버와 DB의 책임을 분리할 수 있다는 장점도 있어요. DB가 데이터 저장소의 역할만 하게하고, 동작은 웹서버가 하는 구조면 유지보수를 하기가 쉬우니까요!

 

Event scheduler

  • 외부 스크립트를 사용할 필요가 없음 (플랫폼 독립적)
  • performance가 뛰어남
  • 매번 쿼리를 컴파일할 필요가 없음
  • DB에 종속적임

 

우선 Event scheduler의 경우에는 performance가 뛰어납니다. 크론은 DB와 통신해야 하는데, Event scheduler는 DB내에 저장되기 때문이에요!

 

그리고 따로 서버를 구성해서 Cron을 띄우지 않아도 되서 편합니다!

 

하지만, DB에 문제가 생긴다면 동작을 하지 않는다는 단점이 있고, 기능을 변경할 때 DB에 접근해서 수정해야 한다는 단점이 있습니다!

 

 

 

 

감사합니다 !