피드로 돌아가기
AURORA Commerce Pro: adding Sanity support without touching the storefront
Dev.toDev.to
Frontend

Storefront 수정 없이 CMS 교체 가능한 Adapter 패턴 설계

AURORA Commerce Pro: adding Sanity support without touching the storefront

Franck LEBAS2026년 4월 1일7intermediate

Context

Nuxt Content 기반의 YAML 파일 시스템은 기술 운영자에게만 적합한 구조. 비기술직 클라이언트를 위한 시각적 CMS 인터페이스 부재. 특정 CMS 쿼리를 페이지에 직접 작성할 경우 발생하는 강한 결합도 문제.

Technical Solution

  • API Route와 데이터 소스 사이에 Resolver를 배치하는 Adapter 패턴 도입
  • 모든 데이터 공급자가 준수해야 할 표준 인터페이스인 CatalogAdapter 정의
  • CMS별로 상이한 데이터 형식을 내부 표준 객체인 CatalogProduct로 변환하는 정규화 로직 구현
  • CATALOG_PROVIDER 환경 변수를 통해 런타임에 데이터 소스를 결정하는 유연한 구조 설계
  • 다국어 처리와 가격 단위 변환(Euro to Cents)을 API 응답 전 단계에서 처리하는 mapProductForApi 함수 적용
  • 이미지 로드 실패 시 다음 사용 가능한 이미지로 자동 전환하는 Silent Fallback 처리 로직 구현

Key Takeaway

데이터 소스의 구체적인 구현 세부사항을 추상화 계층 뒤로 숨김으로써 비즈니스 로직의 변경 없이 인프라를 교체할 수 있는 유연한 아키텍처 확보.


외부 서비스 연동 시 도메인 모델과 외부 API 모델을 분리하는 정규화 계층을 두어 벤더 종속성을 제거할 것

원문 읽기