1) 폴더/깃 구조 결정

권장 디렉토리 구조

D:\\Github\\ToyboxNightmare\\
├─ .git/
├─ External/
│  └─ GameFramework/              ← 외부 C# 프레임워크 (별도 .csproj)
│     ├─ .git/                    ← (옵션) Git 서브모듈로 관리 가능
│     ├─ GameFramework.csproj
│     ├─ Runtime/
│     └─ ... (소스 코드)
├─ Assets/
│  ├─ Plugins/
│  │  ├─ GameFramework.dll        ← 빌드된 DLL (자동 복사)
│  │  └─ GameFramework.pdb        ← Debug 빌드 시에만
│  ├─ Scripts/                    ← 게임 로직 (DLL 참조)
│  └─ ...
├─ Packages/
│  └─ manifest.json               ← Unity.SharpZipLib 등록
└─ ProjectSettings/

이 구조의 장점

1. Assets 외부 배치의 핵심 이점

2. 빌드 산출물만 Unity로 전달

3. Git 서브모듈 활용 (선택적)

# GameFramework를 별도 저장소로 관리하는 경우
git submodule add [<https://github.com/yourname/GameFramework.git>](<https://github.com/yourname/GameFramework.git>) External/GameFramework

피해야 할 안티패턴

구조 문제점
Assets/GameFramework/ (소스 직접 배치) Unity의 제한된 C# 컴파일러 사용, unsafe/고급 기능 제약, asmdef 복잡도 증가
Plugins에 의존성 DLL 중복 복사 SharpZipLib 등 Unity 패키지와 충돌 (중복 타입 정의 오류)
Debug/Release DLL 혼재 런타임 동작 불일치, 디버깅 혼란