710 words
4 minutes
Assembly Definition을 통한 종속성 관리 / Assembly Definitionによる依存関係管理

최근 Unity 프로젝트에서 **Assembly Definition(어셈블리 디피니션)을 활용하여 종속성을 관리하고 있습니다.
最近Unityプロジェクトで
Assembly Definition(アセンブリ定義)**を活用して依存関係を管理しています。

시작 계기는 프로젝트를 코어 레이어, 시스템 레이어, 콘텐츠 레이어로 분리하고,
각 레이어 간의 명확한 참조 구조를 유지하기 위함입니다.
プロジェクトをコアレイヤー、システムレイヤー、コンテンツレイヤーに分け、
各レイヤー間の明確な参照構造を維持するために始めました。


Assembly Definition의 장점 / Assembly Definitionの利点#

  1. 명확한 레이어 구분 / 明確なレイヤー分割
  • 폴더 구조만으로 관리하던 종속성을 Assembly Definition으로 명시적으로 관리 가능
  • フォルダ構造だけで管理していた依存関係を、アセンブリ定義で明示的に管理可能
  1. 의도치 않은 참조 방지 / 意図しない参照の防止
  • 코어 레이어가 시스템 레이어를 직접 참조하는 문제 발견
  • コアレイヤーがシステムレイヤーを直接参照している問題を発見
  • 불필요한 종속성으로 인한 빌드 오류 및 유지보수 난이도 감소
  • 不要な依存関係によるビルドエラーや保守の難易度を低減
  1. 편리한 에디터 분리 / エディタ専用の分離
  • 예: MTLibrary 폴더 → MTLibrary.Editor 어셈블리로 에디터 전용 코드 관리
  • 例: MTLibraryフォルダ → MTLibrary.Editorアセンブリでエディタ専用コードを管理

실제 적용 예시 / 実際の適用例#

  • Core 레이어는 시스템 레이어와 콘텐츠 레이어를 참조하지 않도록 분리
  • MTLibrary 폴더 내부에 Editor 전용 어셈블리 정의 추가
  • 어셈블리 참조 규칙을 통해 불필요한 의존성 방지

프로젝트 빌드 시간 최적화, 모듈화, 테스트 편의성 향상
プロジェクトのビルド時間最適化、モジュール化、テストの利便性向上


종속성 관리 팁 / 依存関係管理のコツ#

  • 레이어별 참조 규칙 문서화 / レイヤーごとの参照ルールを文書化
  • 에디터 전용 코드는 별도 어셈블리 정의 / エディタ専用コードは別アセンブリで管理
  • 빌드 시 불필요한 참조 경로 확인 / ビルド時に不要な参照経路をチェック

정리 / まとめ#

Assembly Definition을 활용하면 단순히 폴더 구분을 넘어,
프로젝트 구조를 명확하게 하고, 의도치 않은 참조를 방지하며,
모듈 단위 테스트와 빌드 효율성을 향상시킬 수 있습니다.

Assembly Definitionを活用することで、単なるフォルダ分けを超えて、
プロジェクト構造を明確にし、意図しない参照を防ぎ、
モジュール単位テストやビルド効率を向上させることができます。

Assembly Definition을 통한 종속성 관리 / Assembly Definitionによる依存関係管理
https://yuminjo.github.io/YuminJo-Blog/posts/assemblydefinition/
Author
[Unity Developer] Yumin.Jo
Published at
2025-09-29
License
CC BY-NC-SA 4.0