데브허브 | DEVHUB | 배치 작업 크게 만들지 말자 feat. 수집/가공 분리배치 작업 크게 만들지 말자 feat. 수집/가공 분리
- 배치 작업 시 데이터 수신, 가공, 송신을 분리하는 것의 장점을 다룹니다. 💡
- 외부 API 연동 사례에서, 단일 배치 작업은 중간 실패 시 전체 재실행의 부담과 외부 API 트래픽 문제를 야기했습니다. 💥
- 특히 외부 API 호출이 잦거나 트래픽 제한이 있는 경우, 단일 배치 작업은 운영 및 유지보수에 큰 어려움을 줍니다. 🚫
- 해결책으로 배치 작업을 '외부 데이터 수신 및 원본 저장' (배치 1)과 '내부 DB의 원본 데이터를 가공하여 저장' (배치 2)으로 분리하는 전략을 제시합니다. ✂️
- 배치 1은 외부 API 호출을 격리하여 트래픽 부담을 줄이고, 배치 2는 내부 데이터만을 사용하므로 무한 재실행이 가능해 가공 로직 버그 수정 및 재처리에 용이합니다. 🔄
- 분리된 배치 작업의 연속 실행은 시간 간격 설정이나 배치 완료 후 다음 배치 호출 API 연동 (예: 젠킨스) 등의 방식으로 구현할 수 있습니다. ⏰
- 핵심은 한 번의 작업을 너무 크게 만들지 않고, 각 단계를 작게 쪼개어 효율적인 운영과 유지보수를 가능하게 하는 것입니다. 🛠️