Skip to main content

Architecture

1. Layer Position

  • gbase는 Grap 엔진의 최하위 Foundation 레이어이다
  • 상위 모듈은 gbase에 의존할 수 있다
  • gbase는 상위 모듈에 의존하지 않는다
Application


ginter


ghost


gcore


gbase

2. Internal Modules

gbase는 다음 네 개의 서브시스템으로 구성된다.

gbase
├─ types
├─ id_sys
├─ macro
└─ utility

types

  • 기본 타입 정의
  • 타입 유틸리티 제공

id_sys

  • 타입 안전 ID 시스템 제공

macro

  • 전처리 매크로 제공
  • 컴파일러 attribute wrapper 제공

utility

  • 범용 RAII 유틸리티 제공
  • helper 유틸리티 제공

3. Dependency Structure

gbase 내부 모듈은 다음 의존 구조를 따른다.

types


macro


id_sys


utility

의존 규칙

  • types는 최하위 레이어
  • macrotypes에 의존 가능
  • id_systypes에 의존 가능
  • utilitytypesmacro에 의존 가능
  • 순환 의존성 금지

4. Header Architecture

  • gbase는 header-only 라이브러리이다
  • 모든 기능은 <gbase/...> 형태로 접근한다
  • umbrella header gbase.hpp를 제공한다

5. Directory Layout

gbase/
├─ CMakeLists.txt
├─ gbase.hpp
├─ types/
├─ id_sys/
├─ macro/
└─ utility/

6. Design Principles

  • 플랫폼 독립성 유지
  • 최소 의존성 유지
  • header-only 구조
  • 타입 안정성 유지
  • 컴파일 타임 검증 활용
  • 모듈 간 순환 의존성 방지