Skip to content

고급 파이프라인 기능

정교한 비즈니스 로직 오케스트레이션을 위한 Context-Action 파이프라인 엔진의 고급 기능에 대한 포괄적인 가이드.

개요

Context-Action 파이프라인 엔진은 복잡한 애플리케이션 시나리오를 위한 엔터프라이즈급 기능을 제공합니다. 이러한 고급 기능을 통해 정교한 워크플로우, 조건부 실행, 성능 모니터링 및 런타임 인트로스펙션이 가능합니다.

이 가이드는 각 주제에 대한 상세한 문서 링크와 함께 모든 고급 기능에 대한 개요를 제공합니다.

🚀 기능 카테고리

🔀 파이프라인 플로우 제어

동적 파이프라인 관리를 위한 고급 플로우 제어 메커니즘.

주요 기능:

  • 우선순위 점프: 특정 우선순위 레벨로 실행을 동적으로 리디렉션
  • 조기 반환: 결과와 함께 파이프라인 실행 종료
  • 조건부 중단: 런타임 조건에 따른 실행 중지

사용 사례:

  • 보안 에스컬레이션 워크플로우
  • 성능 최적화 패턴
  • 오류 복구 메커니즘
  • 캐시 우선 아키텍처

→ 플로우 제어에 대해 자세히 알아보기

🎯 고급 결과 처리

정교한 결과 수집 및 처리 전략.

주요 기능:

  • 결과 수집: 여러 핸들러에서 결과 수집
  • 결과 병합: 복잡한 집계를 위한 사용자 정의 병합 전략
  • 점진적 구축: 순차적 결과 구성 패턴

사용 사례:

  • 보고서 생성 워크플로우
  • 데이터 집계 파이프라인
  • 다단계 검증 프로세스
  • 분석 및 메트릭 수집

→ 결과 처리에 대해 자세히 알아보기

⚙️ 핸들러 인트로스펙션

등록된 핸들러의 런타임 발견 및 분석.

주요 기능:

  • 핸들러 발견: 태그, 카테고리 및 메타데이터로 핸들러 쿼리
  • 실행 통계: 핸들러 성능 및 성공률 모니터링
  • 레지스트리 분석: 포괄적인 레지스트리 정보 및 인사이트

사용 사례:

  • 시스템 디버깅 및 모니터링
  • 성능 분석
  • 동적 핸들러 관리
  • 문서 생성

→ 핸들러 인트로스펙션에 대해 자세히 알아보기

🔄 조건부 실행

환경 기반 및 규칙 기반 핸들러 실행.

주요 기능:

  • 환경 필터링: 배포 환경에 따른 핸들러 실행
  • 기능 플래그: 기능 토글을 사용한 동적 기능 제어
  • 권한 기반 실행: 역할 기반 핸들러 필터링
  • 비즈니스 규칙: 복잡한 조건부 로직 패턴

사용 사례:

  • 다중 환경 배포
  • 기능 롤아웃 관리
  • 보안 및 인증
  • A/B 테스트 및 실험

→ 조건부 실행에 대해 자세히 알아보기

📊 성능 모니터링

내장된 메트릭 수집 및 성능 분석.

주요 기능:

  • 실행 메트릭: 자동 타이밍 및 성공률 추적
  • 메모리 모니터링: 메모리 사용량 분석 및 누수 탐지
  • 성능 프로파일링: 핸들러 수준 성능 분석
  • 로드 테스트: 동시 실행 분석

사용 사례:

  • 시스템 성능 최적화
  • 병목 현상 식별
  • 용량 계획
  • SLA 모니터링

→ 성능 모니터링에 대해 자세히 알아보기

🧪 빠른 시작 예제

기본 플로우 제어

typescript
// 보안 에스컬레이션을 위한 우선순위 기반 핸들러 등록
securityRegister.register('processRequest', async (payload, controller) => {
  // 보안 위반이 감지되면 controller.abort를 사용하여 파이프라인 중지
  if (payload.securityViolation) {
    controller.abort('보안 위반 감지');
    return;
  }
  // controller.return을 사용하여 특정 결과로 파이프라인 종료
  if (payload.requiresElevation) {
    controller.return({ elevated: true, handled: true });
    return;
  }
  // 정상 처리 계속
}, { priority: 100 }); // 높은 우선순위가 먼저 실행됨

// 정상 처리를 위한 낮은 우선순위 핸들러
securityRegister.register('processRequest', async (payload, controller) => {
  // 정상 비즈니스 로직
  console.log('요청을 정상적으로 처리');
}, { priority: 50 });

결과 수집

typescript
// 여러 핸들러에서 결과를 수집하고 병합
const result = await register.dispatchWithResult('generateReport', data, {
  result: { 
    collect: true, 
    strategy: 'merge',
    merger: (results) => ({ sections: results, summary: { total: results.length } })
  }
});

// 개별 핸들러는 컨트롤러를 사용하여 결과를 설정할 수 있음
register.register('generateReport', (payload, controller) => {
  const report = generateSection(payload);
  controller.setResult(report); // 컬렉션에 결과 추가
}, { priority: 1 });

핸들러 인트로스펙션

typescript
// 핸들러 성능 및 구성 분석
const stats = register.getActionStats('processData');
if (stats?.executionStats) {
  console.log(`평균 실행 시간: ${stats.executionStats.averageDuration}ms`);
  console.log(`성공률: ${stats.executionStats.successRate}%`);
  console.log(`총 실행 횟수: ${stats.executionStats.totalExecutions}`);
}

// 레지스트리 정보 가져오기
const registryInfo = register.getRegistryInfo();
console.log(`레지스트리: ${registryInfo.name}`);
console.log(`총 액션: ${registryInfo.totalActions}`);
console.log(`총 핸들러: ${registryInfo.totalHandlers}`);

환경 필터링

typescript
// 환경 태그로 핸들러 등록
register.register('deploy', deployProd, { 
  priority: 1, 
  environment: 'production',
  tags: ['deployment', 'prod'] 
});
register.register('deploy', deployDev, { 
  priority: 1, 
  environment: 'development',
  tags: ['deployment', 'dev'] 
});

// 디스패치 중 환경별 필터링
await register.dispatchWithResult('deploy', deployData, {
  filter: { environment: 'production' } // 프로덕션 핸들러만
});

// 태그로 필터링
await register.dispatch('deploy', deployData, {
  filter: { tags: ['prod'] } // 'prod' 태그가 있는 핸들러만
});

🎯 실제 예제

이러한 고급 기능이 실제로 작동하는 모습을 탐색하세요:

🚀 시작하기

애플리케이션에서 고급 기능을 구현하려면:

  1. 종속성 설치:

    bash
    npm install @context-action/core @context-action/react
  2. 기능 선택: 사용 사례에 맞는 고급 기능 선택

  3. 상세한 가이드 따르기: 구현 세부사항에 대해서는 특정 문서 사용

  4. 테스트 및 모니터링: 성능 모니터링을 구현하여 시스템 상태 추적

📚 아키텍처 가이드

이러한 고급 기능들은 다음에서 다루는 기본 개념을 기반으로 구축됩니다:

관련 문서

Released under the Apache-2.0 License.