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는 최하위 레이어macro는types에 의존 가능id_sys는types에 의존 가능utility는types와macro에 의존 가능- 순환 의존성 금지
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 구조
- 타입 안정성 유지
- 컴파일 타임 검증 활용
- 모듈 간 순환 의존성 방지