Unity

Unity 전처리 지시문(Preprocessor Directive)과 XML 주석

anvil925 2025. 4. 8. 22:29
728x90
반응형

Unity 전처리 지시문(Preprocessor Directive)과 XML 주석

Unity에서 개발을 하다 보면 코드의 구조나 가독성을 높이기 위해 다양한 기능을 활용하게 된다. 그중 자주 쓰이지만 정확한 개념을 모르고 넘어가는 기능이 바로 전처리 지시문과 XML 주석이다. 이 글에서는 이 두 가지를 소개하고, 실전에서 어떻게 사용하는지 예제와 함께 정리해본다.

 

전처리 지시문(Preprocessor Directive)


전처리 지시문은 컴파일러가 코드를 컴파일하기 전에 먼저 해석하는 명령어다. C#에서는 #으로 시작하며, 특정 조건에 따라 컴파일 여부를 제어하거나, 경고를 숨기거나, 코드 영역을 구분할 수 있다.

주로 사용되는 전처리 지시문은 다음과 같다.

  • #define / #undef: 특정 심볼을 정의하거나 해제할 때 사용
  • #if / #else / #elif / #endif: 조건부로 컴파일할 코드 블록을 구분할 때 사용
  • #region / #endregion: 코드 블록을 접었다 펼 수 있도록 구분 (가독성 향상)
  • #pragma warning disable / restore: 특정 경고를 무시하거나 다시 활성화
  • #error / #warning: 컴파일 중 강제로 에러 또는 경고를 발생시킴

예시 1: 디버그 빌드에서만 실행되는 로그

#define DEBUG_MODE

#if DEBUG_MODE
    Debug.Log("디버그 모드입니다.");
#endif

예시 2: 에디터에서만 실행되는 코드

#if UNITY_EDITOR
    Debug.Log("이 코드는 에디터에서만 실행됩니다.");
#endif

예시 3: 코드 접기 영역

#region 이동 관련 코드
void Move()
{
    // 이동 로직
}
#endregion

 

XML 주석


XML 주석은 Visual Studio나 Rider와 같은 IDE에서 자동으로 인식되어 툴팁으로 표시되는 문서용 주석이다. 특히 팀 프로젝트나 외부에 API를 제공하는 경우, XML 주석을 활용하면 코드의 의도를 쉽게 전달할 수 있다.

형식은 ///로 시작하며 <summary>, <param>, <returns> 등 XML 태그를 사용한다.

예시 1: 함수 설명

/// <summary>
/// 플레이어를 공격하는 함수
/// </summary>
void AttackPlayer()
{
    // ...
}

예시 2: 매개변수와 반환값 설명

/// <summary>
/// 데미지를 계산합니다.
/// </summary>
/// <param name="baseDamage">기본 공격력</param>
/// <param name="critical">치명타 여부</param>
/// <returns>최종 데미지 값</returns>
public float CalculateDamage(float baseDamage, bool critical)
{
    return critical ? baseDamage * 2f : baseDamage;
}
  1. 전처리 지시문과 XML 주석은 함께 쓰면 더 좋다

전처리 지시문은 코드 실행 조건을 구분하고, XML 주석은 코드 설명과 문서화를 담당한다. 둘을 함께 활용하면 유지보수성과 협업 효율이 매우 높아진다.

예를 들어, 에디터에서만 쓰는 함수에 XML 주석까지 작성해두면 다른 개발자도 쉽게 이해할 수 있다.

#if UNITY_EDITOR
/// <summary>
/// 개발 중 디버깅용으로 사용하는 함수
/// </summary>
void DebugOnlyFunction()
{
    Debug.Log("이 함수는 개발 중에만 호출됩니다.");
}
#endif

마무리

전처리 지시문과 XML 주석은 초반에는 다소 낯설 수 있지만, 한 번 익숙해지면 협업 시 커다란 도움이 된다. 특히 팀 프로젝트나 오픈소스 개발을 한다면 이 두 가지를 습관적으로 사용하는 것을 추천한다.

728x90
반응형