#왜 유연한 에지인가? — 격리가 아닌 통합
버전: 0.33.0 최종 업데이트: 2026-03-15 적용 대상: ranvier (모든 크레이트) 카테고리: 철학 & 아키텍처
코어는 독단적이지만, Ranvier는 경계 지점에서 Rust 에코시스템을 수용합니다. "유연한 에지"란 통합 지점에서 어떤 Rust 라이브러리, 프레임워크 또는 패턴이든 사용할 수 있다는 의미입니다.
#1. 에코시스템 통합: 거인의 어깨 위에 서기
Ranvier가 모든 곳에서 자체 패러다임을 강제한다면, 모든 도구의 "Ranvier 전용" 버전이 필요할 것입니다. 이는 지속 불가능하며 Ranvier를 더 넓은 Rust 커뮤니티로부터 고립시킵니다.
호환 가능한 에코시스템 도구:
- HTTP: Hyper 1.0, Tower, actix-web, Axum, warp
- 데이터베이스: sqlx, diesel, sea-orm, mongodb
- 캐싱: redis, memcached, in-memory
- 메트릭: Prometheus, OpenTelemetry, statsd
- 트레이싱: tracing, log, slog
- 비동기 런타임: tokio, async-std, smol (Ranvier는 런타임에 구애받지 않습니다)
#장점
- 기존 지식 재사용: 팀이 Tower를 알고 있다면, Tower 레이어를 사용하세요
- 실전 검증된 코드 활용: Tower의 CORS/Trace/Timeout은 프로덕션에서 검증되었습니다
- 최신 상태 유지: tower-http 새 버전이 릴리스되면 즉시 업그레이드 가능합니다
#2. 점진적 마이그레이션: X에서 Ranvier로, 단계별로
"전부 아니면 전무" 방식의 프레임워크는 위험합니다. 프로덕션 앱을 처음부터 다시 작성하는 것은 비용이 많이 들고 위험합니다. Ranvier는 점진적 도입을 허용합니다.
| 단계 | 작업 | 위험도 |
|---|---|---|
| 1주차 | 기존 Tower 레이어 유지, 하나의 핸들러를 Ranvier Transition으로 교체 | 최소 |
| 2주차 | 더 많은 핸들러 교체, Tower 인프라 유지 | 낮음 |
| 3주차 | Tower 미들웨어를 Transition으로 변환 시작 (원하는 경우) | 통제 가능 |
| 결과 | 프로덕션에서 검증된 점진적 마이그레이션, 필요시 롤백 가능 | — |
#3. 사용자 자율성: 사용자가 자신의 제약 조건을 가장 잘 압니다
프레임워크 제작자는 모든 사용 사례를 예측할 수 없습니다. 엄격한 프레임워크는 요구사항이 "정해진 경로"에서 벗어날 때 우회 방법을 강제합니다.
Ranvier의 철학: 무엇(비즈니스 로직에 Transition 사용)에 대해서는 독단적이지만, 어떻게(HTTP 서버, DB, 배포 방식 선택)에 대해서는 독단적이지 않습니다.
- HTTP 서버: ranvier-http (Hyper 기반) 사용 또는 기존 Axum 앱에 통합
- 데이터베이스: DB 라이브러리(sqlx, diesel 등)를 사용하는 Transition 작성
- 배포: 바이너리, 컨테이너, Lambda로 배포 — Ranvier는 그냥 Rust 코드입니다
최적 지점: 중요한 곳(패러다임)에서는 독단적, 중요하지 않은 곳(인프라)에서는 유연합니다.
#관련 문서
- 왜 독단적인 코어인가? — 동전의 다른 면
- 경계 맵 — 코어가 끝나고 에지가 시작되는 곳
- PHILOSOPHY.md — 상세 패턴과 마이그레이션 경로