Computer >> 컴퓨터 >  >> 프로그래밍 >> C#

C#에서 디버그(Debug)와 릴리스(Release) 모드를 구분하는 조건부 컴파일 지시문 완벽 가이드

Visual Studio에서 디버그(Debug) 모드릴리스(Release) 모드는 .NET 프로젝트를 빌드할 때 사용되는 서로 다른 구성(Configuration)입니다.

디버그 모드는 코드를 한 줄씩 실행하며 문제를 추적하고 분석할 때 사용하고, 릴리스 모드는 최종 배포용 어셈블리 파일(.dll 또는 .exe)을 만들 때 사용합니다.

빌드 구성 변경 방법

빌드 구성을 변경하는 방법은 두 가지가 있습니다.

  • 메뉴 이용: [빌드(Build)] 메뉴에서 [구성 관리자(Configuration Manager)]를 선택한 후, Debug 또는 Release를 지정합니다.
  • 도구 모음 이용: 상단 도구 모음의 솔루션 구성(Solution Configurations) 드롭다운 목록에서 Debug 또는 Release를 선택합니다.

#if DEBUG 지시문의 동작 원리

C#에서는 전처리기 지시문인 #if DEBUG를 사용하여 빌드 모드에 따라 다른 코드를 실행할 수 있습니다.

  • #if DEBUG 블록 안에 작성된 코드는 디버그 모드로 실행될 때만 컴파일 및 실행됩니다.
  • 릴리스 모드로 빌드하면 #if DEBUG 조건은 false로 평가되므로 해당 블록 내부의 코드는 컴파일에서 제외되어 실행되지 않습니다. 대신 #else 블록의 코드가 실행됩니다.

예제 코드

class Program{
    static void Main(string[] args){
        #if DEBUG
            Console.WriteLine("Mode=Debug");
        #else
            Console.WriteLine("Mode=Release");
        #endif
        Console.ReadLine();
    }
}

실행 결과

// 디버그 모드로 실행한 경우
Mode=Debug

// 릴리스 모드로 실행한 경우
Mode=Release

이처럼 #if DEBUG 지시문을 활용하면 개발 중에만 필요한 로그 출력, 디버깅용 코드 등을 릴리스 빌드에서 자동으로 제외할 수 있어, 배포용 프로그램의 성능과 보안을 효과적으로 관리할 수 있습니다.