경험 중심 1인칭 답변
다중 마켓 추상화를 설계할 때 핵심은 공통 인터페이스를 정의하고, 마켓별 차이는 구현체로 격리하는 것입니다. 국가마다 세금 계산 방식, 결제 수단, 배송 정책, 언어가 다른데 이것을 if-else로 하드코딩하면 마켓이 하나 추가될 때마다 기존 코드를 건드려야 하는 구조가 됩니다. Strategy 패턴이나 플러그인 구조로 마켓별 규칙을 독립 모듈로 분리하면 기존 코드 수정 없이 새 마켓을 추가할 수 있습니다. 또한 설정 주도(config-driven) 방식으로 마켓별 차이를 코드가 아닌 설정으로 관리하면 배포 없이 조정이 가능합니다. 학교 프로젝트에서 여러 국가 대상 이커머스 가격 계산 모듈을 만들 때 국가 코드를 키로 하는 설정 맵으로 세율과 환율을 외부화했고, 신규 국가 추가 시 설정 파일만 수정하면 됐습니다.
확장 가능한 설계는 처음부터 변경이 발생할 지점을 예측하고 격리하는 것에서 시작한다는 것을 그때 배웠습니다.