#의사결정 프레임워크 — 접근 방식 선택 방법
버전: 0.33.0 최종 업데이트: 2026-03-15 적용 대상: ranvier (모든 크레이트) 카테고리: 철학 & 아키텍처
"Ranvier 방식"과 "에코시스템 방식" 사이에서 선택해야 할 때, 이 프레임워크를 사용하여 정보에 기반한 결정을 내리세요.
#질문 순서 (순서대로)
첫 번째 "예"가 접근 방식을 결정합니다:
- 핵심 비즈니스 로직인가? (검증, 계산, 오케스트레이션) → Ranvier 방식: 시각화, 조합, 테스트 용이성
- Schematic 그래프에서 볼 필요가 있는가? (복잡한 흐름 디버깅, 팀 문서화) → Ranvier 방식: Transition만 Circuit 뷰에 표시됨
- 순수 인프라인가? (CORS, TLS, 속도 제한, 서킷 브레이커) → 에코시스템 방식: 실전 검증된 라이브러리 재사용 (Tower)
- 기존 코드베이스에서 마이그레이션 중인가? (Tower 앱, actix 서비스) → 하이브리드: 에코시스템으로 시작, 점진적으로 Ranvier 도입
- 팀이 이미 도구 X를 알고 있는가? (Tower, Axum, diesel) → 에코시스템 → Ranvier: 기존 지식 활용, 나중에 Transition으로 래핑
#의사결정 플로우차트
START
│
├─ Core business logic? ───Yes──> Ranvier way (Transition)
│
├─ Need visualization? ────Yes──> Ranvier way
│
├─ Pure infrastructure? ───Yes──> Ecosystem way (Tower/library)
│
├─ Migrating existing? ────Yes──> Hybrid (Tower + Ranvier)
│
└─ Default ────────────────────> Ranvier way (when in doubt)#요약 표
| 영역 | Ranvier 방식 | 에코시스템 방식 | 하이브리드 |
|---|---|---|---|
| 비즈니스 로직 | 항상 | 절대 안 됨 | — |
| 복잡한 인증 | 권장 | 가능 | 일반적 |
| CORS | 과도함 | Tower 사용 | — |
| 데이터베이스 | Transition으로 래핑 | 직접 사용 가능 | 일반적 |
| 메트릭 | 수동 | Tower 사용 | — |
| 미들웨어 | 비즈니스 규칙용 | 인프라용 | 일반적 |
#언제 Ranvier를 사용해야 하는가?
| 시나리오 | 권장 사항 |
|---|---|
| 새 프로젝트, 복잡한 워크플로우 | 순수 Ranvier (Transition) |
| 새 프로젝트, 단순 CRUD | Ranvier 가능 (더 간단한 프레임워크도 OK) |
| 기존 Tower 앱 | 하이브리드 (Tower 유지, 새 기능에 Ranvier 추가) |
| 기존 actix/Axum 앱 | 핸들러에 Ranvier 임베드 |
| 마이크로서비스 오케스트레이션 | 오케스트레이터에 Ranvier |
| 단순 CRUD 서비스 | 더 간단한 프레임워크 사용 |
| CORS/기본 인증만 필요 | Tower/actix/Axum 미들웨어가 더 간단 |
| 다단계 상태 머신 | Ranvier의 최적 영역 |
기본 권장 사항: 확신이 없고 어떤 다단계 로직이든 있다면, Ranvier를 사용하세요. 시각화만으로도 투자를 정당화합니다.
#관련 문서
- 경계 맵 — 코어가 끝나고 에지가 시작되는 곳
- 코드 예제 — 실제 패턴
- PHILOSOPHY.md — 의사결정 프레임워크 — 상세 시나리오와 마이그레이션 경로