유니티 엔진/유니티 엔진의 구성

유니티 엔진의 구성 - 16) Assembly Definition

monstro 2026. 2. 2. 16:34
728x90
반응형

- 개요

Assembly Definition코드를 개별적인 컴파일 단위(패키지)분리하여 관리하는 도구를 의미한다

 

기본 어셈블리 : Assembly-CSharp.dll

 

기본적으로 유니티에서는 어셈블리를 정의하지 않으면 전체 프로젝트가 하나의 기본 어셈블리로 관리된다

 

Assembly Definition의 생성

 

생성하는 방법은 위와 같은데, 폴더를 선택하고 우클릭 - Scripting - Assembly Definition을 선택한다

위와 같은 상황에서 Assembly Definition을 생성하여 사용하면 다음의 장점을 얻을 수 있다

  • 컴파일 속도 향상 : 특정 어셈블리의 코드만 수정하는 경우 해당 어셈블리와 이를 참조하는 부분만 재컴파일
  • 코드 구조 개선 : 순환 참조를 방지하고 의존성을 명확하게 하여 코드를 더 깔끔하게 작성할 수 있음

 

 

생성한 Assembly Definition에서 다른 Assembly Definition의 코드를 사용하려면

Assembly Definition References 리스트에 해당 어셈블리를 추가해야 한다

 

- Assembly Definition 테스트

1) 테스트의 구성

1 - 1) CompilationTimer 클래스

 

CompilationTimer 클래스를 추가하여 컴파일 시간을 기록할 수 있도록 구성한다

 

1 - 2) TinyScript 클래스

 

TinyScript 클래스코드를 간단하게 수정할 목적으로 사용하며 최대한 간단하게 구성한다

 

1 - 3) HugeScript 클래스 1~5

 

HugeScript 클래스들은 위와 같이 구성하였으며 총 500줄의 코드로 구성되어 있다

 

2) Assembly Definition을 사용하지 않는 경우

 

전체 컴파일에 총 2.61초 소요되었다

 

3) Assembly Definition을 사용하는 경우

 

위와 같이 Assembly Definition을 생성하였다

 

 

전체 컴파일에 총 0.63초 소요되었다

728x90
반응형