#왜 유연한 에지인가? — 격리가 아닌 통합

버전: 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 — 상세 패턴과 마이그레이션 경로