After Framework

아키텍처

계층, 의존성 규칙, 타협할 수 없는 원칙, 공유 앱 구조.

문서 버전: supercore main · 패키지 1.0.0

계층이 섹션으로 연결되는 링크: 계층

위에서 아래로 제품 도메인, 에코시스템과 AI, 제품 라인 계층 하나, 그리고 커널과 디자인 시스템 순입니다. Firebase 어댑터는 컴포지션 루트에서 바인딩됩니다.

  • 제품 도메인 계층

    각 제품 저장소의 lib/features/<vertical>/ 아래에 있는 버티컬 기능만 포함합니다(예: garage, patients, flights). 공유 패키지에는 절대 두지 않습니다.

  • 에코시스템 계층

    After ID, After+, 이벤트 버스, 제품 간 API, 공유 서비스를 포함합니다. 제품은 형제 저장소를 직접 임포트하지 않고 반드시 이 패브릭을 통해 서로 통신합니다.

  • AI 기능

    대화, OCR, 비전, 요약, 도구 호출 등 모듈형 기능을 갖춘 단일 AI 플랫폼입니다. 제품은 기능을 켜거나 끌 뿐, 별도의 AI 스택을 두지 않습니다.

  • 컨슈머 모듈

    멤버십 브리지, 컨슈머 기능 카탈로그, 개인 보관함, 출시 동의, 지역 위치로 구성된 얇은 B2C 계층입니다. 참조 제품: SuperGarage.

  • 엔터프라이즈 모듈

    조직, RBAC, 워크플로, 작업, 캘린더, 문서, 메시징, 리포팅, 감사, 오프라인 동기화 등 14개의 B2B 포트를 제공하며, 각 포트에는 인메모리 목이 포함됩니다. 참조 제품: SuperHospital.

  • 공유 커널

    인증, 강화된 네트워킹, 스토리지, Riverpod DI, 플래그, 원격 구성, BYOK AI SDK, 프리미엄 이용 권한, 알림, 딥 링크, 그리고 대시보드·플러그인·검색·설정 엔진을 제공합니다.

  • 디자인 시스템

    컨슈머와 엔터프라이즈를 아우르는 하나의 시각 체계입니다. 색상, 간격, 모서리 반경, 모션, 타이포그래피 토큰과 공유 컴포넌트를 제공합니다.

  • Firebase 어댑터

    after_core 포트 뒤에서 Firebase Auth, Firestore 블롭 동기화, Storage 미디어 동기화를 제공합니다. 컴포지션 루트에서만 바인딩되며, 도메인 코드는 Firebase를 임포트하지 않습니다.

의존성 규칙이 섹션으로 연결되는 링크: 의존성 규칙

의존성은 아래 방향으로만 향합니다. 제품은 에코시스템 계층의 이벤트와 보안 API를 통해 서로 통신합니다. 도메인을 추가하면 최상단 계층에 모듈이 추가될 뿐, 이 다이어그램은 바뀌지 않습니다.

after_ecosystemafter_aiafter_consumerafter_enterpriseafter_firebaseafter_coreafter_design_system

원칙이 섹션으로 연결되는 링크: 원칙

  • SuperGarage는 컨슈머 참조 제품이고, SuperHospital은 엔터프라이즈 참조 제품입니다.
  • 산업 및 버티컬 모듈은 제품 저장소에만 둡니다.
  • 공유 OS 모듈은 after_core, after_consumer, after_enterprise에만 둡니다.
  • 처음부터 만들지 말고 생성하세요.
  • SDK보다 포트.
  • 패밀리 일관성이 우선합니다: 크롬, 모션, 밀도, 스플래시, 셸은 동일합니다.
  • 모든 포트에는 목 구현이 함께 제공됩니다.

공유 앱 구조이 섹션으로 연결되는 링크: 공유 앱 구조

컨슈머든 엔터프라이즈든 모든 제품은 동일한 순서로 부팅됩니다.

text
main.dart
  → PlatformConfig.current = manifest
  → ProviderScope(overrides: After*Overrides…)
  → ColdStart (OVERSTEIN splash)
       → AuthGate
            → ProductShell (tabs from platform + spec)
                 → Home = Dashboard Engine (+ plugins)
                 → OS modules = platform screens
                 → Vertical = product feature modules only

소스 supercore/docs/PLATFORM_DOCTRINE.md (새 탭에서 열림)