03. Project Structure
이 문서의 목표
Framework 기준 권장 프로젝트(Game) 구조를 이해한다.
왜 필요한가
Game 코드와 Framework 코드가 섞이면 업그레이드 시 충돌하고, 의존 방향이 깨지기 쉽다.
언제 사용하는가
새 프로젝트를 시작하거나 기존 프로젝트에 Framework를 도입할 때.
권장 구조
Assets/
Game/
Scripts/
UI/
Characters/
Data/
Config/
Audio/
Effects/
Scenes/
Addressables/
_Framework/
Runtime/
Editor/
Samples/
Game 코드는 Framework의 System/Facade만 참조한다 (Register/Unregister/TryGet/Enable/Disable 같은 내부 API를 Gameplay 코드에 노출하지 않는다).
실제 프로젝트에서 사용
Game/Controllers(금지 네이밍:Game/Systems) 에서 Framework System을 주입받아 사용Game/Data는 저장/직렬화 대상 데이터(MemoryPack) 위치Game/Config는 Addressables Config 에셋 위치
Best Practice
폴더명은 목적이 명확해야 한다. Shared/, Misc/, Utility/ 같은 모호한 폴더명은 금지.
자주 하는 실수
- Game 코드에서 Framework Runtime 내부 타입 직접 수정
XxxManager,XxxHelper같은 금지 네이밍 사용 (XxxController/XxxService,XxxUtils권장)
실습 과제
- 위 구조대로 빈 폴더를 생성해본다.
- 임의의 Controller 클래스 하나를
Game/Controllers에 만들어 System을 주입받아본다.
이전 문서 / 다음 문서
이전: 02_Project_Setup.md 다음: 04_Dependency_Injection.md
관련 Sample
전체 Sample 폴더 구조 (Assets/_Framework/Samples/*)가 참고 예시다.
관련 API
없음 (구조 문서)