피드로 돌아가기
Dev.toBackend
원문 읽기
Core-Plugin 분리 구조를 통한 Workflow Engine 확장성 확보
Part 14: Community and Ecosystem - Contributing to Vyshyvanka
AI 요약
Context
오픈소스 Workflow Engine의 지속 가능한 성장을 위해 핵심 엔진의 안정성과 사용자 정의 기능의 유연성을 동시에 확보해야 하는 과제 직면. Core의 무분별한 수정으로 인한 유지보수 비용 증가와 릴리스 주기 지연 문제를 해결하기 위한 구조적 분리 필요.
Technical Solution
- 의존성 방향을 하향식으로 강제하여 Core-Engine-Api-Plugin 순의 엄격한 계층 구조 설계
- Core 레이어의 Zero Dependency 원칙 적용을 통한 도메인 순수성 유지 및 결합도 최소화
- BasePluginNode 상속 및 Attribute 기반 설정 방식을 통한 플러그인 개발 표준 인터페이스 제공
- Core 수정은 공통 성능 개선 및 근본적 기능 확장에 한정하고 개별 통합은 Plugin 레이어로 격리하는 거버넌스 수립
- .NET Aspire 기반의 AppHost 구조를 도입하여 API와 Designer를 포함한 전체 스택의 오케스트레이션 환경 구축
- NuGet 패키지 배포 체계를 통해 Core 릴리스 주기와 독립적인 플러그인 버전 관리 및 배포 가능 구조 설계
실천 포인트
1. 도메인 핵심 로직(Core)에서 외부 의존성을 완전히 제거했는가?
2. 기능 확장이 Core 코드 수정 없이 인터페이스 구현(Plugin)만으로 가능한가?
3. 의존성 그래프에 순환 참조(Circular Reference)나 상향 참조가 존재하지 않는가?
4. 기능 추가 시 '모든 사용자에게 유용한가'를 기준으로 Core와 Plugin의 배치 영역을 구분했는가?