피드로 돌아가기
Dev.toFrontend
원문 읽기
Strategy Pattern 도입을 통한 if-else 조건문 제거 및 확장성 확보
The Strategy Pattern in JavaScript: Replace Messy If-Else Logic With Clean Code
AI 요약
Context
결제 수단 추가 시마다 기존 if-else 로직을 직접 수정해야 하는 구조적 한계 직면. 기능 확장 시 기존 코드의 사이드 이펙트 발생 가능성이 높고 코드 복잡도가 선형적으로 증가하는 Scaling 문제 발생.
Technical Solution
- 각 결제 수단별 비즈니스 로직을 독립적인 함수로 분리하여 책임 단일화
- 분기문 대신 Key-Value 형태의 Lookup-based Strategy Map 구조 설계
- 메인 함수에서 Strategy Map을 통한 동적 위임(Delegation) 방식으로 조건부 로직 제거
- TypeScript의 Union Type과 Record 타입을 활용하여 컴파일 타임에 유효성 검증 및 타입 안전성 확보
- OCP(Open-Closed Principle) 적용을 통해 기존 코드 수정 없이 신규 전략 추가가 가능한 구조 구현
실천 포인트
- 조건문 분기가 3개 이상 증가하며 빈번하게 변경되는 로직인지 확인 - 각 분기 내부 로직을 독립적인 함수나 클래스로 캡슐화 가능 여부 검토 - 단순 매핑 구조로 대체 가능한지 분석하여 Strategy Map 도입 고려 - TypeScript 환경인 경우 Record 타입을 사용하여 전략 누락 여부를 정적으로 체크