유니티에서 어셈블리 데피니션(Assembly Definition)은 프로젝트의 스크립트 모듈을 분리하고 빌드 시간을 최적화하며 코드 관리성을 향상시키는 도구입니다.
어셈블리 데피니션의 용도
- 빌드 시간 단축: 변경된 스크립트만 재컴파일하도록 설정해 전체 프로젝트 빌드 시간을 크게 줄일 수 있습니다.
- 의존성 관리: 어셈블리 간 의존성을 명확히 정의하여 모듈 간의 참조를 체계적으로 설정할 수 있습니다.
- 코드 보안: 특정 코드 파일을 노출하지 않도록 어셈블리 단위로 관리할 수 있습니다.
- 플랫폼별 설정: 특정 플랫폼에서만 사용할 스크립트를 정의할 수 있습니다.
사용법
- 어셈블리 데피니션 파일 생성
- 프로젝트 내 관리할 폴더에서 우클릭 > Create > Assembly Definition을 선택합니다.
.asmdef
파일이 생성되며, 원하는 이름을 지정합니다.
- 어셈블리 데피니션 설정
.asmdef
파일을 더블클릭하여 설정창을 엽니다.- 주요 설정:
- Assembly Name: 어셈블리 이름 (중복 불가).
- References: 참조할 다른 어셈블리 추가.
- Platforms: 특정 플랫폼에서만 활성화되도록 설정.
- Optional Unity References: UnityEngine, UnityEditor와 같은 기본 의존성을 포함할지 여부.
- 어셈블리 간 의존성 설정
- 모듈 간 참조가 필요하다면, 각 어셈블리의
References
필드에서 다른 어셈블리를 추가합니다.
- 모듈 간 참조가 필요하다면, 각 어셈블리의
파일명 규칙
- 어셈블리 데피니션 파일의 이름은 폴더명과 일치시키는 것이 관례입니다.
- 예:
Scripts/Gameplay/Gameplay.asmdef
- 예:
- 파일명은 실제 컴파일에 영향을 미치지 않으나, 일관된 네이밍 규칙을 유지하면 관리에 용이합니다.
관련 파일 설명
.asmdef
- 어셈블리 데피니션 설정 파일.
- 각 어셈블리의 이름, 참조, 플랫폼 설정 등이 정의됩니다.
.dll
- 어셈블리 데피니션을 통해 생성된 C# 컴파일 결과물.
- 해당 어셈블리의 실행 파일이며, Unity Library에 저장됩니다.
.pdb
- 디버그 정보 파일.
- C# 코드 디버깅 시 변수 값이나 코드 라인 정보를 제공합니다.
팁 & 주의사항
- 의존성 사이클 주의
- 어셈블리 A와 B가 서로 참조하는 경우(순환 참조)는 컴파일 오류가 발생합니다.
- 의존성을 최소화하고 모듈 간 독립성을 유지하세요.
- Editor 전용 스크립트 분리
Editor
폴더 내 스크립트를 별도 어셈블리로 관리하여 빌드 결과에 포함되지 않도록 설정하세요.
- 테스트 코드 관리
- 테스트 코드는 일반 코드와 별도의 어셈블리로 분리하여 관리하면 좋습니다.