
GitLab CI/CD에서 힌트를 얻어 완성한, 변화에 유연하고 테스트가 쉬운 백엔드 아키텍처 개선기
복잡한 금융 데이터 가공 로직을 Pipeline, Job, Store라는 명확한 역할로 재설계하여 유지보수성을 극대화한 사례를 소개합니다. 기존의 거대한 서비스 함수를 조립 가능한 모듈로 분리함으로써 정책 변화에 기민하게 대응할 수 있는 구조를 구축했습니다.
복잡한 조건문과 긴 함수로 고통받는 백엔드 개발자에게 강력 추천하며, 특히 정책이 자주 변경되고 데이터 가공 단계가 명확한 도메인에서 확장성을 고민할 때 훌륭한 해결책이 됩니다.
카카오뱅크의 대출 심사 과정에서 공공 마이데이터 가공 규칙이 복잡해짐에 따라 단일 함수가 500줄 이상으로 비대해졌으며, 로직 간 강한 결합으로 인해 유지보수와 테스트가 극도로 어려워졌습니다.
GitLab CI/CD 파이프라인 구조에서 영감을 얻어, 흐름을 관리하는 Pipeline, 단일 책임을 가진 Job, 데이터를 공유하는 Store로 역할을 분리한 파이프라인 아키텍처를 도입했습니다.
정책 변경 시 특정 Job만 교체하는 방식으로 영향 범위를 최소화했고, 각 단계를 독립적으로 검증할 수 있는 단위 테스트 환경을 구축하여 개발 생산성과 시스템 안정성을 동시에 확보했습니다.
Trade-off
비즈니스 로직이 단순한 경우 클래스 구조가 복잡해지는 오버헤드가 발생할 수 있으며, Job 간의 암묵적인 데이터 의존성 관리 및 파이프라인 구성의 복잡도 증가에 대한 지속적인 관리가 필요합니다.
파이프라인 아키텍처의 전체 공정을 설계하고 조율하는 관리자 클래스로, Job들의 실행 순서와 흐름을 제어합니다.
단일 책임 원칙을 따르는 최소 작업 단위로, 특정 데이터의 검증, 추출, 가공 등의 역할을 독립적으로 수행합니다.
파이프라인 내의 여러 Job들이 서로 직접 참조하지 않고 데이터를 주고받을 수 있도록 돕는 공용 작업대 역할을 하는 데이터 컨테이너입니다.









