스택큐힙리스트

고차함수로 끝내는 Strategy 패턴, 딱 3줄! 본문

개발

고차함수로 끝내는 Strategy 패턴, 딱 3줄!

스택큐힙리스트 2025. 7. 22. 09:48
반응형

“수수료 정책 또 바뀌었대…”
클래스 만들기 귀찮다면 코틀린 고차함수로 전략을 바로 끼워 넣자. 인터페이스도, DI 설정도 필요 없다. 함수 하나가 곧 전략 객체가 된다.

typealias FeePolicy = (Int) -> Int                     // ① 전략 타입
fun pay(amount: Int, strategy: FeePolicy) = amount + strategy(amount) // ② 컨텍스트
println(pay(10_000) { (it * 3) / 100 })               // ③ 런타임 전략 주입
  • 1줄: typealias로 전략(알고리즘) 시그니처 선언
  • 2줄: pay 함수가 컨텍스트 역할, 전략에 계산 위임
  • 3줄: 호출부에서 람다만 넘기면 카드·계좌이체·쿠폰 어떤 수수료든 즉석 교체 완료!

이렇게 하면

  • 파일 수 ZERO 증가 – 유지보수 스트레스 최소화
  • 테스트도 간단 – 다른 람다만 주입해 예상 금액 비교
  • 스프링 부트와도 찰떡 – @Bean으로 다양한 FeePolicy 등록 가능

단, 로직이 복잡하거나 상태가 필요해지면 정식 Strategy 클래스로 넘어가자. 고차함수는 “가볍고 단순”할 때 가장 빛난다.

반응형
Comments