피드로 돌아가기
Dev.toBackend
원문 읽기
프레임워크 종속성 제거, Engine-Adapter 패턴으로 확장성 확보
How to Build Framework-Agnostic Open Source Tools (The Engine-Adapter Pattern)
AI 요약
Context
특정 HTTP 프레임워크에 결합된 비즈니스 로직 설계. 타 프레임워크 사용자의 라이브러리 도입 불가능한 구조. 개발 생태계 확장성을 저해하는 강한 결합도 문제.
Technical Solution
- 비즈니스 로직과 HTTP 계층을 완전히 분리한 Engine-Adapter 아키텍처 도입
- Pure TypeScript 기반의 Core Engine 설계로 프레임워크 의존성 제로화
- 표준 입력(String, Object)과 표준 출력만을 처리하는 핵심 로직 인터페이스 정의
- 각 프레임워크의 요청을 Engine 표준 입력으로 변환하는 20라인 내외의 경량 Adapter 구현
- Turborepo 및 npm workspaces를 활용하여 엔진과 어댑터를 개별 패키지로 분리 배포
- HTTP 서버 실행 없이 JSON 객체 전달만으로 가능한 Core Engine 단위 테스트 환경 구축
Key Takeaway
핵심 도메인 로직을 외부 인터페이스로부터 격리하여 인프라 변경에 유연하게 대응하는 설계 원칙의 중요성.
실천 포인트
오픈소스 라이브러리 설계 시 Core Logic에서 Request/Response 객체 참조를 제거하고 표준 인터페이스를 통해 통신할 것