흩어진 Cron Jobs에 작별을 고하다: Heartbeat의 중앙 집중식 작업 스케줄러

2025-08-01
흩어진 Cron Jobs에 작별을 고하다: Heartbeat의 중앙 집중식 작업 스케줄러

Heartbeat은 이전에 예약된 작업을 관리하기 위해 여러 Cron Jobs를 사용했는데, 이로 인해 유지 관리 비용이 높아지고 빈번한 오류가 발생했습니다. 이 글에서는 단일 데이터베이스 테이블 `ScheduledTasks`와 단일 Cron Job을 사용하여 모든 예약된 작업을 관리하는 중앙 집중식 데이터베이스 기반 작업 스케줄러를 어떻게 구축했는지 설명합니다. 비동기 처리를 위해 AWS SQS를 활용함으로써 시스템은 작업의 안정적인 실행, 재시도 메커니즘, 강력한 모니터링을 보장합니다. 이러한 접근 방식은 작업 관리의 혼란, 어려운 오류 처리 등의 문제를 해결하고 새로운 예약된 작업 추가를 간소화합니다.

더 보기
개발

타입 주도 개발: 타입 시스템이 복잡한 프로그래밍 문제를 단순화하는 방법

2024-12-19
타입 주도 개발: 타입 시스템이 복잡한 프로그래밍 문제를 단순화하는 방법

이 글에서는 "타입 주도 개발" 개념을 탐구합니다. 저자는 대규모 Heartbeat Typescript 프로젝트(30만 줄 이상)에서의 경험을 바탕으로, Typescript의 타입 시스템이 복잡한 프로그래밍 문제를 어떻게 단순화하는지 보여줍니다. 핵심 아이디어는 타입 시스템을 효과적으로 활용하여 타입이 애플리케이션의 모든 계층에서 자유롭게 흐르도록 하고, 타입 정의부터 새로운 기능 설계를 시작하며, 불법적인 상태를 표현할 수 없도록 하고, 데이터 검증 대신 구문 분석을 수행하며, 코드의 정직성과 특이성을 유지함으로써 버그를 대폭 줄이고 개발 효율성을 높일 수 있다는 것입니다. 또한 순수 함수를 타입 브리지로 사용하는 방법, 타입 시스템을 코드 내성 도구로 사용하는 방법 등을 공유하며, 필요에 따라 타입 시스템 제약을 우회하는 방법도 언급합니다.

더 보기