
Deferred Batch와 비동기 워크플로우로 구현한 50% 생산성 향상의 비밀
카카오뱅크가 개인사업자 담보 대출 심사의 복잡한 수동 단계를 어떻게 자동화했는지에 대한 기술적 여정을 담고 있습니다. 단순히 사람을 배제하는 것이 아니라, 시스템이 비동기적으로 배경 작업을 수행하고 사람은 결정적인 판단에만 집중할 수 있도록 돕는 견고한 아키텍처 설계 노하우를 공유합니다.
레거시 환경이나 제약 사항이 많은 시스템에서 복잡한 비즈니스 프로세스를 자동화하려는 백엔드 개발자에게 적극 추천합니다. 특히 외부 API 의존성이 높고 순차적인 작업 처리가 필요한 도메인을 다루는 엔지니어들에게 실무적인 가이드가 될 것입니다.
기존 부동산 담보 대출 심사는 서류 확인 및 외부 기관 연동 등 사람이 개입하여 대기해야 하는 단계가 많아 업무 효율이 낮았습니다. 특히 신청 건수가 늘어날수록 특정 담당자에게 의존하는 구조적 한계로 인해 처리 속도가 저하되고 인력 부담이 가중되는 문제가 있었습니다.
기존의 'Deferred Batch' 기능을 확장하여 심사 프로세스를 독립적인 작업 단위로 분리하고, 이를 비동기적으로 연결하는 '작업 체인' 모델을 도입했습니다. 각 작업은 상태 관리 테이블을 통해 독립적으로 수행되며, 오류 발생 시 REQUIRES_NEW 트랜잭션 옵션을 활용해 실패 이력을 안전하게 격리하고 자동으로 재시도하는 구조를 설계했습니다.
심사 담당자 1인당 일일 처리 가능 건수가 최대 50% 향상되었으며, 외부 연동 과정에서 발생하던 불필요한 대기 시간이 제거되었습니다. 또한 전용 모니터링 대시보드를 통해 업무 가시성을 확보함으로써 기획-운영 조직 간의 커뮤니케이션 비용을 줄이고 시스템 신뢰도를 높였습니다.
Trade-off
경량 배치 방식을 활용하므로 작업이 즉시 실행되지 않고 스케줄링 주기에 따라 순차적으로 처리되는 지연 시간이 존재할 수 있습니다. 또한 시스템의 복잡도를 관리하기 위해 별도의 상태 관리 테이블과 모니터링 시스템을 추가로 구축하고 유지보수해야 하는 운영 비용이 발생합니다.
사전에 정의된 주기에 따라 특정 조건을 SQL로 조회하고 대상 작업을 실행하는 카카오뱅크 내부의 경량 배치 처리 프레임워크입니다.
전체 업무를 하나의 큰 흐름으로 묶지 않고, 이전 작업의 완료가 다음 작업의 등록을 유발하도록 설계한 느슨하게 결합된 구조입니다.
Spring 등에서 지원하는 트랜잭션 전파 속성으로, 현재 실행 중인 트랜잭션의 성공 여부와 관계없이 항상 새로운 독립적인 트랜잭션을 생성합니다.




