제 8 장 로드맵

본 장은 Fayger 1 단계의 경계를 명시하고, 알려진 방향에 따라 후속 단계의 진화 계획을 제시합니다. 각 진화 항목은 현재 아키텍처에 대한 영향 범위를 표시하여, 후속 설계가 방향을 수렴하기 쉽게 합니다.

8.1 1 단계 범위

1 단계가 인도하는 Fayger 는 최소한 다음을 만족합니다:

  • 3 계층 구조(Loader / Runtime / Adapter) 의 안정 계약.
  • BuF 산출물의 5 단 형식과 결정적 CBOR Manifest / Section_Index.
  • 적재 사슬: Read(Header/Manifest/Index) → Parse → Verify(Structural) → Verify(Digest of Header/Manifest/Index) → Verify(Signature) → Negotiate Version → Select(Sections by LoadProfile) → Resolve → Read(Selected Section Bodies)? → HandOff.
  • BuF_Source 추상화. 임의 저장 백엔드(로컬, 네트워크, 객체 스토리지, 사용자 정의) 지원.
  • 부분 적재(프로파일 주도 Section 선택) 와 지연 적재(Eager / Lazy 두 LoadStrategy). 성능 제약 단말(드론, 카메라) 의 크기 및 실행 시 가져오기 요구 충족.
  • 해석 실행 경로, BuF_Instance 라이프사이클 상태 기계, 장애 격리.
  • 8 카테고리 Universal_Instruction 과 4 종 내장 Platform_Adapter(데스크톱 / 서버 / 브라우저 / In-App).
  • 통일 오류 모델과 관측 가능성 이벤트 버스. 로더 계층 오류는 phase 태그 부착.
  • 서명 검증, 강제 서명 모드, 신뢰 루트 업데이트 가시성.

8.2 1 단계 비목표

1 단계의 복잡도를 통제하기 위해 다음 방향은 명시적으로 인도하지 않습니다:

  • BuF_Instance 간 공유 메모리와 IPC 프로토콜.
  • JIT 컴파일과 머신 코드 생성.
  • 분산 스케줄링과 다중 노드 Fayger 협업.
  • BuF 의 차분 분배와 산출물 간 계층 캐시(부분 적재는 단일 산출물 내 단별 선택을 다루지만, 산출물 간 차분 재사용과 Distribution 프로토콜은 후속에).
  • 내장 원격 저장소 / Distribution 프로토콜.

비목표는 "미래에 필요 없다" 가 아니라, 현재 계약면에 없을 뿐입니다. 후속 단계가 추가할 때 기존 계약을 깨서는 안 됩니다.

8.3 후속 단계 1: 실행 성능

주축: Runtime_Interface 를 깨지 않으면서 더 효율적인 실행 경로를 추가.

8.3.1 ExecutionStrategy 추상화

"BuF 내 의미론을 어떻게 실행할지" 를 전략으로 추출:

interface ExecutionStrategy {
  prepare(obj: BuFObject) -> PreparedExecutable
  step(exec: PreparedExecutable, ctx: ExecutionContext) -> StepResult
}

1 단계가 제공하는 Interpreter 는 구체 전략. 후속에서 공존 가능:

  • JIT: BuF code section 의 중간 표현을 머신 코드로 컴파일.
  • AOT: 적재 단계에 머신 코드 생성(릴리스 시나리오 적합).
  • HybridTier: 해석 → 프로브 → 컴파일.

전략 전환은 Runtime_Implementation 내부 결정으로, Runtime_Interface 의 외부 계약에 영향을 주지 않습니다.

8.3.2 성능 관측 가능성

신규 이벤트 카테고리:

  • ExecutionMetric: 해석 / 컴파일 / GC 등 지표 샘플링.
  • TierTransition: 계층 실행이 한 계층에서 다른 계층으로 전환.

구체 전략 구현은 외부에 노출하지 않으나, 호출자가 그 영향을 관측할 수 있게 합니다.

8.4 후속 단계 2: 분배와 캐시

8.4.1 BuF 산출물 간 계층화와 분할

1 단계는 BuF 내부의 Section 단위 온디맨드 읽기(Lazy)를 이미 지원합니다. 후속은 산출물 간 차원에서 계층 공유를 도입:

  • BuF 간 공유되는 자원(표준 라이브러리, 모델 가중치 등)을 독립 계층으로 분리.
  • Manifest 에 선택적 layer_refs 선언을 추가하여 다른 산출물의 Section 을 참조.
  • 분배 프로토콜이 계층 자원을 공유 방식으로 가져오고, 로컬 캐시 적중 시 BuF 간 재사용.

이를 위해 Manifest 에 선택 필드를 추가하므로 schema_version 마이너를 한 단계 올립니다. 기존 BuF 는 영향을 받지 않습니다(호환 경로 §8.7).

8.4.2 Distribution 프로토콜

경량 분배 프로토콜 도입(OCI Distribution Spec 참고):

  • 3 단계 discover / pull / verify.
  • 분배 프로토콜 자체는 Fayger 프로세스 내가 아니라 독립 컴포넌트로 구현하며, Fayger 는 그것이 만든 chunk 만 소비.

8.4.3 로컬 캐시

이미 적재되고 서명 검증을 통과한 BuF 에 대해 Manifest 와 Section 의 파싱 결과를 캐싱하여 프로세스 간 적중. 적중 시에도 서명 검증을 다시 실행(캐시 오염 방지).

8.5 후속 단계 3: 인스턴스 간 협업

8.5.1 공유 메모리 (제어)

같은 Fayger 내 여러 BuF_Instance 가 공유 메모리 영역을 가질 수 있게 함:

  • Manifest 에서 shared_memory 권한을 명시 선언.
  • 런타임 계층이 영역을 일괄 할당하고 권한 부여에 따라 요청자에게 노출.
  • 공유 영역은 쿼터 모니터링 하에 위반 시 일시 정지 발동.

8.5.2 IPC 프로토콜

인스턴스 간 메시지 전달(같은 프로세스 내 또는 같은 Fayger 내):

  • Universal_Instruction 의 신규 카테고리 ipc 로 표현.
  • 기본 거부. Manifest 에서 상대 ID 집합 또는 토픽을 선언해야 함.

8.5.3 단일 Fayger 내 의존성 조립

한 BuF 가 다른 BuF 를 의존성으로 참조 가능하게 함:

  • 적재 사슬의 Resolve 단계가 재귀 해석을 지원.
  • 의존성 그래프는 Manifest 의 dependencies 필드로 표현.
  • 순환 의존성은 Resolve 단계에서 거부.

8.6 후속 단계 4: 분산

주축: 다중 노드 Fayger 협업. 1 단계에는 포함되지 않으나 다음 방향에 여지를 남깁니다:

  • BuF_Instance 의 ID 는 노드 간 관점에서도 고유 주소 가능해야 함.
  • Lifecycle 이벤트의 타임스탬프는 외부 추적 시스템과 정합 가능해야 함.
  • Universal_Instruction 의 TLV 인코딩은 이미 네트워크 전송 가능성을 갖추었으며, 향후 "원격 명령 디스패치" 는 독립 Adapter 구현으로 가능.

8.7 호환성 전략

각 진화는 다음 호환 규칙을 준수합니다. 그렇지 않으면 파괴적 변경으로 간주됩니다:

  1. Runtime_Interface 버전: 메서드 추가 또는 의미 변경 시 SemVer 에 따라 증가. BuF_Manifest 는 runtime_interface_min 으로 의존 최소 버전 표현.
  2. BuF schema 버전: 선택 필드 추가는 마이너 증가, 필수 추가나 기존 필드 의미 변경은 메이저 증가.
  3. 오류 코드 안정성: 이미 공개된 오류 코드는 재사용하거나 의미를 변경하지 않습니다. 신규 추가 가능.
  4. Universal_Instruction 카테고리: 기존 8 카테고리 번호는 재사용하지 않습니다. 신규 카테고리는 예약 비트 사용.
  5. 폐기 흐름: 먼저 deprecation_notice 로 표시. 적재 시 알림을 주지만 허용은 유지. 최소 한 메이저 버전 후에 제거.

8.8 도구 권장

장기 진화를 지원하기 위해 다음 도구 정비를 권장합니다:

  • 의존 방향 정적 검사: 런타임 계층이 Platform_Adapter 타입을 import 하거나 로더 계층 내부 타입을 역참조하는 것을 금지. ArchUnit / dep-cruiser / 사용자 lint 로 구현 가능.
  • 속성 테스트 기준 스위트: 청사진의 모든 정확성 성질(라운드트립 동치성, 상태 기계 전이, 오류 체인, 권한 축소 집합 대수 등)을 언어 횡단 Conformance Suite 로 고정하여 어떤 Runtime_Implementation 도 자체 검증.
  • Manifest CBOR 검증기: Manifest 가 결정적 CBOR 을 사용하는지 검사. 비결정 인코딩은 비준수.
  • Adapter 디스크립터 헬스 체크: 어댑터 등록 시 즉시 supported_capabilitiessupported_instructions 의 정합성(권한 비트와 명령 필요 권한의 최소 폐포 등) 점검.

8.9 후속 단계 로드맵 (요약)

단계주요 방향주요 영향 계층호환성 영향
1 단계(현재)3 계층 계약, 해석 실행, 내장 4 어댑터, 서명, Section 부분 적재, Eager/Lazy, BuF_Source 추상화3 계층 + 횡단
2 단계ExecutionStrategy / JIT / AOTRuntime호환(추가)
3 단계산출물 간 계층화 / Distribution / 로컬 캐시Loader호환(마이너)
4 단계공유 메모리 / IPC / 의존성 그래프Runtime + Loader호환(추가)
5 단계다중 노드 협업Adapter(원격 디스패치)호환(추가)

후속 단계의 설계 문서는 독립 청사진으로 발행되며, 본 청사진과 같은 용어 및 계약을 공유합니다.