여러 환경 에서 ASP . NET Core 작업 | Microsoft Docs 
 여러 환경 작업 Working with multiple environments 
 ASP . NET Core 개발 , 스테이 징 및 프로덕션 등 의 여러 환경 에 걸쳐 앱 동작 을 제어 하 기 위한 지원 을 제공 합니다 . ASP . NET Core provides support for controlling app behavior across multiple environments , such as development , staging , and production . 환경 변수 는 해당 환경 에 구성 된 응용 프로그램 런타임 환경 을 나타내 는 데 사용 됩니다 . Environment variables are used to indicate the runtime environment , allowing the app to be configured for that environment . 
 개발 , 스테이 징 프로덕션 Development , Staging , Production 
 특정 환경 변수 를 참조 하 는 ASP . NET Core ASPNETCORE _ ENVIRONMENT 를 응용 프로그램 에서 현재 실행 중 인 환경 에 설명 합니다 . ASP . NET Core references a particular environment variable , ASPNETCORE _ ENVIRONMENT to describe the environment the application is currently running in . 이 변수 를 설정 값 을 원하 는 하지만 규칙 에 따라 3 개 의 값 사용 : Development , Staging , 및 Production 합니다 . This variable can be set to any value you like , but three values are used by convention : Development , Staging , and Production . 이러 한 샘플 에서 사용 되 는 값 및 ASP . NET Core 와 함께 제공 되 는 서식 파일 을 찾 을 수 있 습니다 . You will find these values used in the samples and templates provided with ASP . NET Core . 
 현재 환경 설정 은 응용 프로그램 내 에서 프로그래밍 방식 으로 검색 할 수 있 습니다 . The current environment setting can be detected programmatically from within your application . 환경 을 사용 할 수 는 또한 태그 도우미 의 특정 섹션 에 포함 하 도록 프로그램 보 기 현재 응용 프로그램 환경 에 따라 합니다 . In addition , you can use the Environment tag helper to include certain sections in your view based on the current application environment . 
 참고 : Windows 및 macOS 에서 지정 한 환경 이름 을 대 / 소문자 구분 . Note : On Windows and macOS , the specified environment name is case insensitive . 이 변수 를 설정 하 는지 여부 를 Development 또는 development 또는 DEVELOPMENT 결과 같 은 됩니다 . Whether you set the variable to Development or development or DEVELOPMENT the results will be the same . 그러나 Linux 는 는 대 / 소문자 구분 기본 적 으로 운영 체제 . However , Linux is a case sensitive OS by default . 환경 변수 , 파일 이름 및 설정 을 대 / 소문자 구분 을 해야 합니다 . Environment variables , file names and settings require case sensitivity . 
 이 응용 프로그램 을 개발 할 때 사용 되 는 환경 이 어야 합니다 . This should be the environment used when developing an application . 앱 을 실행 할 때 프로덕션 환경 에서 와 같 은 사용 가능 하 도록 해서 는 안 되 는 기능 을 활성 화 하 는 일반 적 으로 개발자 예외 페이지 합니다 . It is typically used to enable features that you wouldn ' t want to be available when the app runs in production , such as the developer exception page . 
 Visual Studio 를 사용 하 는 경우 프로젝트 의 디버그 프로필 에 환경 을 구성 할 수 있 습니다 . If you ' re using Visual Studio , the environment can be configured in your project ' s debug profiles . 디버그 프로필 지정 는 서버 를 설정 할 응용 프로그램 및 모든 환경 변수 를 시작 할 때 사용 하 도록 합니다 . Debug profiles specify the server to use when launching the application and any environment variables to be set . 프로젝트 는 환경 변수 를 서로 다르 게 설정 하 는 여러 디버그 프로필 을 가질 수 있 습니다 . Your project can have multiple debug profiles that set environment variables differently . 사용 하 여 이 프로필 을 관리 하 는 디버그 웹 응용 프로그램 프로젝트 의 탭 속성 메뉴 . You manage these profiles by using the Debug tab of your web application project ' s Properties menu . 프로젝트 속성 에 설정 된 값 에 유지 되 는 launchSettings . json 파일 과 있 습니다 또한 프로필 을 구성 할 수 해당 파일 을 직접 편집 하 여 합니다 . The values you set in project properties are persisted in the launchSettings . json file , and you can also configure profiles by editing that file directly . 
 IIS Express 에 대 한 프로필 은 다음 과 같 습니다 . The profile for IIS Express is shown here : 
 다음 은 한 launchSettings . json 프로필 에 대 한 포함 된 파일 Development 및 Staging : Here is a launchSettings . json file that includes profiles for Development and Staging : 
 사용 되 는 웹 서버 를 다시 시작 될 때 까지 프로젝트 프로필 에 대 한 변경 내용 이 적용 되 지 않 을 수 있 습니다 ( 특히 Kestrel 를 다시 시작 해야 해당 환경 에 대해 변경 내용 을 감 지 합니다 ) . Changes made to project profiles may not take effect until the web server used is restarted ( in particular , Kestrel must be restarted before it will detect changes made to its environment ) . 
 에 저장 된 환경 변수 가 launchSettings . json 어떤 방식 으로 든 에서 보호 하 지 않 는 하 고 사용 하 는 경우 프로젝트 에 대 한 소스 코드 리포 지토리 의 일부 가 됩니다 . Environment variables stored in launchSettings . json are not secured in any way and will be part of the source code repository for your project , if you use one . 이 파일 에 자격 증명 또는 기타 보안 데이터 를 저장 하 지 마십시오 . Never store credentials or other secret data in this file . 사용 하 여 이러 한 데이터 를 저장 해야 할 경우 는 암호 관리자 에 설명 된 도구 개발 하 는 동안 앱 암호 의 안전 한 저장 소 합니다 . If you need a place to store such data , use the Secret Manager tool described in Safe storage of app secrets during development . 
 스테이 징 Staging 
 일반 적 으로 는 Staging 환경 은 프로덕션 에 배포 하 기 전 에 최종 테스트 에 사용 되 는 사전 프로덕션 환경 입니다 . By convention , a Staging environment is a pre - production environment used for final testing before deployment to production . 이상 적 으로 실제 특성 도 그대로 반영 해야 프로덕션 , 프로덕션 환경 에서 발생 할 수 있 는 모든 문제 는 사용자 에 게 영향 을 주 지 않 고 해결 할 수 있 습니다 를 스테이 징 환경 에서 먼저 발생 합니다 . Ideally , its physical characteristics should mirror that of production , so that any issues that may arise in production occur first in the staging environment , where they can be addressed without impact to users . 
 Production 환경 은 응용 프로그램 이 라이브 상태 일 때 실행 하 는 환경 이 며 최종 사용 자 가 사용 되 고 있 습니다 . The Production environment is the environment in which the application runs when it is live and being used by end users . 이 환경 보안 , 성능 및 응용 프로그램 의 견고성 을 최대 화 하 기 위해 구성 되 어야 합니다 . This environment should be configured to maximize security , performance , and application robustness . 다음 과 같 은 몇 가지 일반 적 인 프로덕션 환경 에 있 을 수 있 는 것 다른 설정 을 개발 Some common settings that a production environment might have that would differ from development include : 
 캐 싱 설정 Turn on caching 
 모든 클라이언트 측 리소스 가 번들 로 , 축소 , 및 CDN 에서 잠재 적 으로 제공 Ensure all client - side resources are bundled , minified , and potentially served from a CDN 
 진단 ErrorPages 해제 Turn off diagnostic ErrorPages 
 오류 페이지 설정 Turn on friendly error pages 
 프로덕션 로 깅 및 모니터링 을 사용 하 도록 설정 ( 예 를 들 어 Application Insights ) Enable production logging and monitoring ( for example , Application Insights ) 
 이 속성 은 결코 전체 목록 은 으로 제공 됩니다 . This is by no means meant to be a complete list . 응용 프로그램 의 많 은 부분 에서 환경 검사 분산 되 지 않 도록 하 는 것 이 좋 습니다 . It ' s best to avoid scattering environment checks in many parts of your application . 응용 프로그램 의 내 에서 이러 한 검사 를 수행 하 는 방법 이 권장 된 되 는 대신 , Startup 클래스 가 가능 Instead , the recommended approach is to perform such checks within the application ' s Startup class ( es ) wherever possible 
 환경 설정 Setting the environment 
 환경 설정 에 대 한 메 서 드 는 운영 체제 에 따라 달 라 집니다 . The method for setting the environment depends on the operating system . 
 설정 하 는 ASPNETCORE _ ENVIRONMENT 를 사용 하 여 앱 이 시작 하 는 경우 현재 세션 에 대 한 dotnet run , 다음 명령 을 사용 하 는 To set the ASPNETCORE _ ENVIRONMENT for the current session , if the app is started using dotnet run , the following commands are used 
 이 명령 은 현재 창 에 대해서 만 적용 됩니다 . These commands take effect only for the current window . 창 이 닫히 면 ASPNETCORE _ ENVIRONMENT 설정 을 기본 설정 또는 컴퓨터 값 되돌 아 갑니다 . When the window is closed , the ASPNETCORE _ ENVIRONMENT setting reverts to the default setting or machine value . Windows 열 값 을 전역 으로 설정 된 제어판 > 시스템 > 고급 시스템 설정 추가 하 거나 는 편집 ASPNETCORE _ ENVIRONMENT 값 입니다 . In order to set the value globally on Windows open the Control Panel > System > Advanced system settings and add or edit the ASPNETCORE _ ENVIRONMENT value . 
 참조 는 환경 변수 설정 의 섹션 은 ASP . NET Core 모듈 구성 참조 항목 입니다 . See the Setting environment variables section of the ASP . NET Core Module configuration reference topic . 
 IIS 응용 프로그램 풀 당 Per IIS Application Pool 
 격리 된 응용 프로그램 풀 ( IIS 10 . 0 이상 에서 지원 됨 ) 에서 실행 되 는 개별 응용 프로그램 에 대한 환경 변수 를 설정 해야 하 는 경우 < environmentVariables > 환경 변수 항목 의 AppCmd . exe 명령 섹션 을 참조 하 세요 . If you need to set environment variables for individual apps running in isolated Application Pools ( supported on IIS 10 . 0 +), see the AppCmd . exe command section of the Environment Variables < environmentVariables > topic in the IIS reference documentation . 
 사용 하 여 또는 export 응용 프로그램 을 실행 하 기 전 에 설정 할 수 있 습니다 . or using export to set it prior to running the app . 
 시스템 수준 환경 변수 설정 는 . bashrc 또는 . bash _ profile 파일 입니다 . Machine level environment variables are set in the . bashrc or . bash _ profile file . 임의 의 텍스트 편집기 를 사용 하 여 파일 을 편집 하 고 다음 문 을 추가 합니다 . Edit the file using any text editor and add the following statment . 
 사용 하 여 Linux 배포판 는 export 세션 변수 설정 을 기반 으로 하 는 명령 줄 에서 명령 및 bash _ profile 시스템 수준 환경 설정 에 대 한 파일 입니다 . For Linux distros , use the export command at the command line for session based variable settings and bash _ profile file for machine level environment settings . 
 런타임 시 환경 확인 Determining the environment at runtime 
 IHostingEnvironment 서비스 환경 작업 에 대 한 핵심 추상화 를 제공 합니다 . The IHostingEnvironment service provides the core abstraction for working with environments . 이 서비스 제공 되 며 ASP . NET 에서 호스팅 계층 을 통해 시작 논리 에 삽입 할 수 종속 성 주입 합니다 . This service is provided by the ASP . NET hosting layer , and can be injected into your startup logic via Dependency Injection . Visual Studio 에서 ASP . NET Core 웹 사이트 템플 릿 을 사용 하 는 이 방식 ( 있 는 경우 ) 환경 관련 구성 파일 을 로드 하 고 응용 프로그램 의 오류 처리 설정 을 사용 자 지정 할 수 있 습니다 . The ASP . NET Core web site template in Visual Studio uses this approach to load environment - specific configuration files ( if present ) and to customize the app ' s error handling settings . 두 경우 모두 이 문제 를 호출 하 여 현재 지정 된 환경 참조 에 의해 이루어집니다 EnvironmentName 또는 IsEnvironment 인 스턴스 의 IHostingEnvironment 적절 한 메서 드 에 전달 합니다 . In both cases , this behavior is achieved by referring to the currently specified environment by calling EnvironmentName or IsEnvironment on the instance of IHostingEnvironment passed into the appropriate method . 
 예 를 들 어 Configure 메 서드 환경 특정 오류 처리 를 설정 하 려면 다음 코드 를 사용 할 수 있 습니다 . For example , you can use the following code in your Configure method to setup environment specific error handling : 
 응용 프로그램 에서 실행 중 인 경우 는 Development 이 면 환경 사용 하 면 Visual Studio , 개발 특정 오류 페이지 ( 일반 적 으로 실행 해서 는 안 프로덕션 환경 에서 ) 및 특별 한 데이터베이스 오류 " BrowserLink " 기능 을 사용 하 는 데 필요 한 런타임 지원 페이지 ( 마이 그레이 션 을 적용 하 는 방법 을 제공 하 고 개발 에 만 사용 하 므로 해야 ) 합니다 . If the app is running in a Development environment , then it enables the runtime support necessary to use the " BrowserLink " feature in Visual Studio , development - specific error pages ( which typically should not be run in production ) and special database error pages ( which provide a way to apply migrations and should therefore only be used in development ) . 그렇 지 않 으면 응용 프로그램 개발 환경 에서 실행 되 지 않 는 경우 처리 되 지 않 은 예외 에 대 한 응답 에 표시 되 는 표준 오류 처리 페이지 구성 됩니다 . Otherwise , if the app is not running in a development environment , a standard error handling page is configured to be displayed in response to any unhandled exceptions . 
 현재 환경 에 따라 런타임 에 클라이언트 에 보내 도록 내용 을 결정 해야 합니다 . You may need to determine which content to send to the client at runtime , depending on the current environment . 예 를 들 어 개발 환경 에서 하 면 일반 적 으로 사용 할 최소 화 하 지 않 은 스크립트 및 스타일 시트 를 디버깅 을 보다 쉽 게 해줍니다 . For example , in a development environment you generally serve non - minimized scripts and style sheets , which makes debugging easier . 프로덕션 환경 과 테스트 환경 축소 된 버전 을 제공 해야 하 고 CDN 에서 일반 적 으로 합니다 . Production and test environments should serve the minified versions and generally from a CDN . 환경 을 사용 하 여 수행 할 수 있 습니다 태그 도우미 합니다 . You can do this using the Environment tag helper . 환경 태그 도우미 됩니다 현재 환경 을 사용 하 여 지정 하 는 환경 중 하 나 와 일치 하 는 경우 에 해당 콘텐츠 를 렌더링 된 names 특성 입니다 . The Environment tag helper will only render its contents if the current environment matches one of the environments specified using the names attribute . 
 태그 도우미 를 사용 하 여 응용 프로그램 보고 를 시작 하 려면 태그 도우미 소개 합니다 . To get started with using tag helpers in your application see Introduction to Tag Helpers . 
 시작 규칙 Startup conventions 
 ASP . NET Core 응용 프로그램 의 시작 을 현재 환경 에 따라 구성 하 는 규칙 기반 방식 을 지원 합니다 . ASP . NET Core supports a convention - based approach to configuring an application ' s startup based on the current environment . 또한 프로그래밍 방식 으로 환경 의 을 만들 고 사용 자 지정 규칙 을 관리 할 수 에 따라 응용 프로그램 의 동작 을 제어 할 수 있 습니다 . You can also programmatically control how your application behaves according to which environment it is in , allowing you to create and manage your own conventions . 
 호출 WebHostBuilder . UseStartup < TStartup >() 구성 섹션 을 재정 의 합니다 . Calling WebHostBuilder . UseStartup < TStartup >() overrides configuration sections . 
 ASP . NET Core 다양 한 기능 및 다양 한 환경 에서 응용 프로그램 의 동작 방식 을 쉽 게 제어 할 수 있 는 규칙 을 제공 합니다 . ASP . NET Core provides a number of features and conventions that allow developers to easily control how their applications behave in different environments . 프로덕션 환경 에 스테이 징 개발 에서 응용 프로그램 을 게시 할 때 환경 변수 설정 적절 하 게 환경 에 대 한 허용 적절 하 게 디버깅 , 테스트 또는 프로덕션 용도 로 응용 프로그램 의 최적화 를 위해 합니다 . When publishing an application from development to staging to production , environment variables set appropriately for the environment allow for optimization of the application for debugging , testing , or production use , as appropriate . 
 태그 도우미 소개 Introduction to Tag Helpers