Skip to content

아키텍처

Context-Action은 MVVM에서 영감을 받은 패턴을 통해 명확한 관심사 분리를 구현합니다.

핵심 아키텍처

프레임워크는 관심사를 세 개의 명확한 레이어로 분리합니다:

[컴포넌트] → dispatch → [액션 파이프라인] → handlers → [스토어] → subscribe → [컴포넌트]

레이어

  1. View 레이어: UI를 렌더링하고 액션을 디스패치하는 React 컴포넌트
  2. ViewModel 레이어: 우선순위 기반 핸들러 실행을 가진 액션 파이프라인
  3. Model 레이어: 반응형 상태 관리를 가진 스토어 시스템

컨텍스트 분리

Context-Action은 코드를 도메인별 컨텍스트로 구성합니다:

도메인 기반 컨텍스트

  • 비즈니스 컨텍스트: 비즈니스 로직, 데이터 처리, 도메인 규칙
  • UI 컨텍스트: 화면 상태, 사용자 상호작용, 컴포넌트 동작
  • 검증 컨텍스트: 데이터 검증, 폼 처리, 에러 핸들링
  • 디자인 컨텍스트: 테마 관리, 스타일링, 레이아웃, 비주얼 상태
  • 아키텍처 컨텍스트: 시스템 설정, 인프라스트럭처, 기술적 결정

컨텍스트 장점

  • 도메인 격리: 각 컨텍스트는 완전한 독립성을 유지
  • 명확한 경계: 구현 결과는 뚜렷하고 잘 정의된 도메인 경계를 유지
  • 타입 안전성: 도메인별 훅과 함께 완전한 TypeScript 지원
  • 확장성: 기존 도메인에 영향을 주지 않고 새로운 도메인을 쉽게 추가

핸들러 관리

Context-Action은 정교한 핸들러 및 트리거 관리를 제공합니다:

우선순위 기반 실행

  • 순차 처리: 적절한 비동기 처리와 함께 우선순위 순서로 핸들러 실행
  • 도메인 격리: 각 컨텍스트는 자체 핸들러 레지스트리를 유지
  • 교차 컨텍스트 조정: 도메인 컨텍스트 간 제어된 통신
  • 결과 수집: 복잡한 워크플로를 위한 여러 핸들러의 결과 집계

트리거 시스템

  • 상태 변경 트리거: 스토어 값 변경에 기반한 자동 트리거
  • 교차 컨텍스트 트리거: 도메인 경계가 다른 컨텍스트의 액션을 트리거
  • 조건부 트리거: 비즈니스 규칙과 조건에 기반한 스마트 트리거
  • 트리거 정리: 자동 정리가 메모리 누수와 오래된 참조를 방지

패키지 구조

Context-Action은 TypeScript 모노레포로 구성됩니다:

  • @context-action/core - 핵심 액션 파이프라인 관리 (React 종속성 없음)
  • @context-action/react - Context API와 훅을 이용한 React 통합

주요 장점

  1. 문서-아티팩트 관리: 문서와 구현 간의 직접적인 관계
  2. 완벽한 관심사 분리: 서로 다른 도메인 컨텍스트 간의 명확한 경계
  3. 고급 핸들러 관리: 정교한 트리거 시스템을 가진 우선순위 기반 핸들러 실행
  4. 타입 안전성: 프레임워크 전반에 걸친 완전한 TypeScript 지원
  5. 성능: 영향받는 컴포넌트만 다시 렌더링
  6. 팀 협업: 서로 다른 팀이 서로 다른 도메인에서 작업 가능

Released under the Apache-2.0 License.