피드로 돌아가기
OCP — Open Close Principle
Dev.toDev.to
Backend

Strategy Pattern 기반 OCP 적용을 통한 회귀 버그 원천 차단 및 확장성 확보

OCP — Open Close Principle

Nghề không nhiều chẳng sắc2026년 6월 29일6intermediate

Context

중앙 집중식 조건문(if/else, switch) 구조로 인한 로직 비대화 및 유지보수 효율 저하 발생. 새로운 기능 추가 시 기존 검증 완료 코드의 수정이 불가피하여 회귀 버그(Regression Bug) 발생 가능성이 높은 구조적 한계 노출.

Technical Solution

  • PaymentStrategy Interface 정의를 통한 구체적인 구현체와 호출부의 의존성 분리
  • 각 결제 수단별 전용 Class 구현을 통한 개별 로직 캡슐화 및 독립적 테스트 환경 구축
  • Map 기반의 Strategy Registry 도입으로 런타임에 전략을 선택하는 동적 바인딩 구조 설계
  • PaymentProcessor의 역할을 단순 전략 조회 및 실행으로 제한하여 핵심 프로세서 코드를 수정 없이 유지하는 Closed 구조 완성
  • 분기 로직을 시스템 가장자리(Edge)인 Factory 또는 Registry 단계로 밀어내어 비즈니스 로직의 순수성 보존
  • 변화가 예상되는 변동 지점(Variation Point)에만 추상화 계층을 도입하여 불필요한 Over-engineering 방지

- Git 이력상 동일 함수가 새로운 타입 추가 시마다 반복 수정되는지 확인 - 동일한 타입 분기 로직이 처리, 검증, 표시 등 여러 모듈에 산재해 있는지 점검 - 변경 가능성이 낮은 고정된 로직에 과도한 Interface 설계가 적용되었는지 검토 - 새로운 타입 추가 시 기존 파일 수정 없이 '신규 파일 생성 + 등록'만으로 구현 가능한지 검증

원문 읽기