링크


https://tech.kakaobank.com/posts/2601-refining-complex-service-logic-into-pipeline/

정리


문제 상황

해결방법

기존 코드 한계

// 기존 코드 예시 (모든 로직이 하나의 함수에 집중)
fun analyze(qualificationDocument, paymentDocument): AnalyzedDocument {
   validateDocument(qualificationDocument, paymentDocument)
   val currentCompany = extractCurrentCompany(qualificationDocument)
   val previousCompany = extractPreviousCompany(qualificationDocument)
   val currentCompanyPayment = extractCurrentCompanyPayment(currentCompany, paymentDocument)
   val previousPayment = extractPreviousPayment(previousCompany, paymentDocument)
   ...
   // … 새로운 정책이 추가될 때마다 이 아래로 코드가 무한히 길어진다.
   // … 최종 결과로만 테스트가 가능하다.
   return AnalyzedDocument(...)
}

재설계