피드로 돌아가기
I Stopped Fighting WordPress… So I Rebuilt How I Use It
Dev.toDev.to
Backend

WordPress를 Data Source로 격리한 KiwiPress 계층 설계를 통한 관심사 분리

I Stopped Fighting WordPress… So I Rebuilt How I Use It

Drew Marshall2026년 4월 28일2intermediate

Context

CMS, Backend, Frontend, Plugin 시스템이 혼재된 WordPress의 단일 구조로 인한 로직 산재 및 유지보수 복잡도 증가. 기능 추가에 따른 Plugin 의존성 심화 및 아키텍처 경계 붕괴로 인한 시스템 엔트로피 상승 문제 발생.

Technical Solution

  • WordPress를 애플리케이션이 아닌 단순 Data Source로 정의하여 데이터 저장과 비즈니스 동작의 책임 분리
  • Seltzer를 통한 Route 및 Request Lifecycle 관리와 Nectarine을 이용한 API 구조 파싱의 계층화
  • WPCore, WPRead, WPCreate 등 기능별 전용 Service 클래스 도입을 통한 WordPress 통신 로직의 캡슐화
  • Route 핸들러가 WordPress 내부 동작을 알 필요 없는 Delegation 패턴 적용으로 인터페이스 단순화
  • Vendor-neutral 시스템 지향 설계를 통한 CMS 교체 시 애플리케이션 붕괴 방지 및 포터빌리티 확보

- CMS 도입 시 비즈니스 로직이 템플릿이나 플러그인 내부에 직접 구현되고 있는지 확인 - 데이터 제공자와 비즈니스 로직 수행자를 분리하는 Wrapper/Adapter 계층 설계 검토 - 특정 벤더 기술에 종속된 API 호출을 추상화된 서비스 인터페이스로 대체하여 결합도 낮추기

원문 읽기