경험 기반 구체화
배치 처리 로직을 구현할 때 가장 중요하게 생각하는 것은 멱등성(Idempotency)입니다. 같은 배치가 두 번 실행됐을 때 결과가 동일하게 유지돼야, 실패 후 재시도나 중복 실행이 발생해도 데이터가 망가지지 않습니다. 학교 데이터 엔지니어링 수업에서 Airflow로 배치 파이프라인을 구현했는데, 재시도 설계를 처음부터 고려하지 않아서 중복 적재가 발생하는 문제를 경험했습니다. 이후 Upsert 방식으로 전환하고 처리 상태를 별도 테이블에 기록하자 중복이 해결됐습니다. 두 번째로 중요한 것은 체크포인트 설계인데, 대용량 배치는 중간에 실패할 수 있어서 처음부터 다시 시작하지 않도록 진행 상태를 저장해두는 것이 처리 시간을 크게 줄입니다. 또 배치 실행 로그와 처리 건수를 남기는 것이 이상 탐지와 운영 모니터링의 기본이라고 생각합니다.