피드로 돌아가기
How to Switch the Algorithms at Runtime with Strategy Pattern in C#
Dev.toDev.to
Backend

Strategy Pattern 적용을 통한 런타임 알고리즘 동적 교체 및 OCP 달성

How to Switch the Algorithms at Runtime with Strategy Pattern in C#

Digital Craft Workshop2026년 4월 28일4beginner

Context

조건문 기반의 알고리즘 선택 구조로 인한 코드 복잡도 증가 및 확장성 저하 문제 발생. 새로운 국가별 전화번호 포맷 추가 시 기존 로직을 계속 수정해야 하는 유지보수 병목 지점 존재.

Technical Solution

  • IToStringStrategy 인터페이스 정의를 통한 알고리즘 추상화 및 Concrete Strategy의 다형성 확보
  • Context 클래스 내 ResolveStrategyByCulture 메서드를 구현하여 런타임 입력값에 따른 전략 객체 동적 할당
  • 알고리즘 구현체를 개별 클래스로 분리하여 단일 책임 원칙(SRP) 준수 및 관심사 분리
  • Interface 기반 설계를 통한 기존 클라이언트 코드 수정 없는 신규 전략 추가 구조 구축
  • 문자열 보간법(String Interpolation)을 활용한 포맷팅 로직의 가독성 및 처리 효율 개선

- 조건문(if-else, switch)이 반복되는 알고리즘 선택 로직 발견 시 Strategy Pattern 검토 - 알고리즘의 추가/변경이 빈번한 도메인에서 인터페이스 기반의 추상화 계층 설계 적용 - Context 클래스와 Strategy 구현체를 분리하여 단위 테스트 가능성 확보 여부 확인

원문 읽기