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(...)
}