구성 파일을 사용하여 앱 구성

.NET Framework 개발자와 관리자는 애플리케이션이 구성 파일을 통해 실행되는 방식을 제어하고 유연하게 제어할 수 있습니다. 구성 파일은 필요에 따라 변경할 수 있는 XML 파일입니다. 관리자는 애플리케이션에서 액세스할 수 있는 보호되는 리소스와 애플리케이션에서 사용할 어셈블리 버전 그리고 원격 애플리케이션과 개체의 위치를 제어할 수 있습니다. 개발자는 설정을 구성 파일에 저장할 수 있으므로, 설정이 변경될 때마다 매번 애플리케이션을 다시 컴파일할 필요가 없습니다. 이 단원에서는 애플리케이션 구성과 유용성에 대해 설명합니다.

참고

관리 코드는 System.Configuration 네임스페이스의 클래스를 사용하여 구성 파일에서 설정을 읽습니다. 그러나 구성 파일에 설정을 쓸 수는 없습니다.

이 문서에서는 구성 파일의 구문을 설명하고 컴퓨터, 애플리케이션 및 보안의 세 가지 구성 파일에 대한 정보를 제공합니다.

구성 파일 형식

구성 파일에는 구성 정보를 설정하는 논리적 데이터 구조인 요소가 포함되어 있습니다. 구성 파일에서는 태그를 사용하여 요소의 시작과 끝을 표시합니다. 예를 들어 요소는 <runtime>자식 요소</runtime><runtime> 구성됩니다. 빈 요소는 <runtime/> 또는 <runtime></runtime>으로 기록됩니다.

모든 XML 파일에서와 같이 구성 파일의 구문은 대/소문자를 구분합니다.

요소의 시작 태그 안에 이름/값 쌍으로 된 미리 정의된 특성을 사용하여 구성 설정을 지정합니다. 다음 예제에서는 런타임에 어셈블리를 찾을 위치를 지정하는 <codeBase> 요소의 두 가지 특성인 versionhref를 지정합니다. 자세한 내용은 어셈블리 위치 지정을 참조하세요.

<codeBase version="2.0.0.0"  
          href="http://www.litwareinc.com/myAssembly.dll"/>  

컴퓨터 구성 파일

컴퓨터 구성 파일 (Machine.config)에는 전체 컴퓨터에 적용되는 설정이 포함되어 있습니다. 이 파일은 %런타임 설치 경로%\Config 디렉터리에 있습니다. Machine.config 컴퓨터 전체 어셈블리 바인딩, 기본 제공 원격 채널 및 ASP.NET 대한 구성 설정을 포함합니다.

구성 시스템은 먼저 머신 구성 파일 <에서 개발자가 정의할 수 있는 appSettings> 요소 및 기타 구성 섹션을 찾습니다. 그런 다음 애플리케이션 구성 파일에서 찾아봅니다. 컴퓨터 구성 파일을 지속적으로 관리하려면 이러한 설정을 애플리케이션 구성 파일에 넣는 것이 가장 좋습니다. 그러나 컴퓨터 구성 파일에 설정을 넣으면 시스템을 유지 관리하기가 더 쉬울 수 있습니다. 예를 들어, 클라이언트 및 서버 애플리케이션이 모두 사용하는 타사 제품의 구성 요소를 가지고 있을 경우에는 이 구성 요소의 설정을 한 곳에 두는 것이 더 용이합니다. 이 때 설정을 넣을 적합한 위치는 컴퓨터 구성 파일이며, 이럴 경우 동일한 설정을 서로 다른 두 파일에 둘 필요가 없습니다.

참고

XCOPY를 사용하여 애플리케이션을 배포하면 컴퓨터 구성 파일의 설정이 복사되지 않습니다.

공용 언어 런타임에서 어셈블리 바인딩에 대해 컴퓨터 구성 파일을 사용하는 방법에 대한 자세한 내용은 런타임에서 어셈블리를 찾는 방법을 참조하세요.

애플리케이션 구성 파일

애플리케이션 구성 파일은 애플리케이션에 특정한 설정을 포함합니다. 이 파일에는 응용 프로그램에서 읽을 수 있는 설정과 어셈블리 바인딩 정책, 원격 개체 등과 같은 공용 언어 런타임에 읽을 구성 설정이 포함되어 있습니다.

애플리케이션 구성 파일의 이름과 위치는 애플리케이션의 호스트에 따라 달라지는데 호스트는 다음 중 하나가 될 수 있습니다.

  • 실행 파일에서 호스팅되는 응용 프로그램.

    이러한 앱에는 두 개의 구성 파일, 즉 개발 중에 개발자가 수정한 원본 구성 파일과 앱과 함께 배포되는 출력 파일이 있습니다.

    Visual Studio에서 개발할 때는 앱용 원본 구성 파일을 프로젝트 디렉터리에 두고 출력 디렉터리에 복사 속성을 항상 복사새 버전이면 복사로 설정합니다. 기본적으로 구성 파일의 이름은 App.config.

    앱과 함께 배포된 출력 구성 파일을 만들려면 Visual Studio 컴파일된 어셈블리가 배치된 디렉터리에 원본 구성 파일을 복사합니다. 이 파일의 이름은 <yourappname>.exe.config. 예를 들어 myApp.exe 앱에는 myApp.exe.config출력 구성 파일이 있습니다.

    어떤 경우에는 Visual Studio가 출력 구성 파일을 수정할 수 있습니다. 자세한 내용은 어셈블리 버전 리디렉션 문서의 앱 수준에서 어셈블리 버전 리디렉션 섹션을 참조하세요.

  • ASP.NET에서 호스팅되는 응용 프로그램.

    ASP.NET 구성 파일에 대한 자세한 내용은 ASP.NET 구성 설정 참조하세요.

  • Internet Explorer에서 호스팅되는 응용 프로그램.

    Internet Explorer에서 호스트되는 앱에 구성 파일이 있는 경우 이 파일의 위치는 다음 구문을 사용하여 <link> 태그에 지정됩니다. <link rel="*ConfigurationFileName*" href="*location*">

    이 태그에서 location은 구성 파일의 URL 로서, 이것은 App base를 설정합니다. 구성 파일은 응용 프로그램의 웹 사이트와 같은 곳에 위치해야 합니다.

보안 구성 파일

보안 구성 파일에는 코드 그룹 계층 구조 및 정책 수준과 관련된 사용 권한 집합에 대한 정보가 포함되어 있습니다. 정책 변경에 의해 보안 구성 파일이 손상되지 않도록 코드 액세스 보안 도구(Caspol.exe) 또는 코드 액세스 보안 정책 도구(Caspol.exe)를 사용하여 보안 정책을 수정하는 것이 좋습니다.

참고

.NET Framework 4부터 보안 구성 파일은 보안 정책이 변경된 경우에만 존재합니다.

보안 구성 파일은 다음 위치에 있습니다.

  • 기업 정책 구성 파일: %런타임 설치 경로%\Config\Enterprisesec.config

  • 컴퓨터 정책 구성 파일: %런타임 설치 경로%\Config\Security.config

  • 사용자 정책 구성 파일: %USERPROFILE%\Application data\Microsoft\CLR security config\vxx.xx\Security.config

참조