빠른 시작: .NET Framework 앱에 기능 플래그 추가Quickstart: Add feature flags to a .NET Framework app

이 빠른 시작에서는 Azure App Configuration을 .NET Framework 앱에 통합하여 엔드투엔드 기능 관리를 구현하는 방법을 보여 줍니다.In this quickstart, you incorporate Azure App Configuration into a .NET Framework app to create an end-to-end implementation of feature management. App Configuration 서비스를 사용하여 중앙에서 모든 기능 플래그를 저장하고 상태를 제어할 수 있습니다.You can use the App Configuration service to centrally store all your feature flags and control their states.

.NET 기능 관리 라이브러리는 기능 플래그 지원을 통해 프레임워크를 확장합니다.The .NET Feature Management libraries extend the framework with feature flag support. 이 라이브러리는 .NET 구성 시스템을 기반으로 빌드됩니다.These libraries are built on top of the .NET configuration system. 해당 .NET 구성 공급자를 통해 App Configuration과 통합됩니다.They integrate with App Configuration through its .NET configuration provider.

사전 요구 사항Prerequisites

App Configuration 저장소 만들기Create an App Configuration store

  1. 새 App Configuration 저장소를 만들려면 Azure Portal에 로그인합니다.To create a new App Configuration store, sign in to the Azure portal. 홈 페이지의 왼쪽 위 모서리에서 리소스 만들기 를 선택합니다.In the upper-left corner of the home page, select Create a resource. Marketplace 검색 상자에서 App Configuration 을 입력하고 Enter 키를 선택합니다.In the Search the Marketplace box, enter App Configuration and select Enter.

    App Configuration 검색

  2. 검색 결과에서 App Configuration, 만들기 를 차례로 선택합니다.Select App Configuration from the search results, and then select Create.

    만들기 선택

  3. App Configuration 만들기 창에서 다음 설정을 입력합니다.On the Create App Configuration pane, enter the following settings:

    설정Setting 제안 값Suggested value 설명Description
    구독Subscription 사용자의 구독Your subscription App Configuration을 테스트하는 데 사용할 Azure 구독을 선택합니다.Select the Azure subscription that you want to use to test App Configuration. 계정에 구독이 하나만 있으면 해당 구독이 자동으로 선택되며 구독 목록은 표시되지 않습니다.If your account has only one subscription, it's automatically selected and the Subscription list isn't displayed.
    리소스 그룹Resource group AppConfigTestResourcesAppConfigTestResources App Configuration 저장소 리소스에 대한 리소스 그룹을 선택하거나 만듭니다.Select or create a resource group for your App Configuration store resource. 이 그룹은 리소스 그룹을 삭제하여 여러 리소스를 동시에 삭제할 수 있도록 구성하는 데 유용합니다.This group is useful for organizing multiple resources that you might want to delete at the same time by deleting the resource group. 자세한 내용은 리소스 그룹을 사용하여 Azure 리소스 관리를 참조하세요.For more information, see Use resource groups to manage your Azure resources.
    리소스 이름Resource name 전역적으로 고유한 이름Globally unique name App Configuration 저장소 리소스에 사용할 고유한 리소스 이름을 입력합니다.Enter a unique resource name to use for the App Configuration store resource. 이름은 5~50자의 문자열로, 숫자, 영문자 및 - 문자만 포함할 수 있습니다.The name must be a string between 5 and 50 characters and contain only numbers, letters, and the - character. 이름은 - 문자로 시작하거나 끝날 수 없습니다.The name can't start or end with the - character.
    위치Location 미국 중부Central US 위치 를 사용하여 앱 구성 저장소를 호스트할 지리적 위치를 지정합니다.Use Location to specify the geographic location in which your app configuration store is hosted. 최상의 성능을 얻으려면 애플리케이션의 다른 구성 요소와 동일한 지역에 리소스를 만듭니다.For the best performance, create the resource in the same region as other components of your application.
    가격 책정 계층Pricing tier FreeFree 원하는 가격 책정 계층을 선택합니다.Select the desired pricing tier. 자세한 내용은 App Configuration 가격 페이지를 참조하세요.For more information, see the App Configuration pricing page.
  4. 검토 + 만들기 를 선택하여 설정의 유효성을 검사합니다.Select Review + create to validate your settings.

  5. 만들기 를 선택합니다.Select Create. 배포에 몇 분 정도 걸릴 수 있습니다.The deployment might take a few minutes.

  6. 배포가 완료되면 App Configuration 리소스로 이동합니다.After the deployment finishes, navigate to the App Configuration resource. 설정 > 선택키 를 선택합니다.Select Settings > Access keys. 기본 읽기 전용 키 연결 문자열을 기록해 둡니다.Make a note of the primary read-only key connection string. 이 연결 문자열은 나중에 사용자가 만든 App Configuration 저장소와 통신하도록 애플리케이션을 구성하는 데 사용합니다.You'll use this connection string later to configure your application to communicate with the App Configuration store that you created.

  1. 기능 관리자 > +추가 를 선택하여 Beta라는 기능 플래그를 추가합니다.Select Feature Manager > +Add to add a feature flag called Beta.

    Beta라는 기능 플래그 사용Enable feature flag named Beta

    지금은 label을 정의하지 않은 상태로 둡니다.Leave label undefined for now.

.NET 콘솔 앱 만들기Create a .NET console app

  1. Visual Studio를 시작하고 파일 > 새로 만들기 > 프로젝트 를 차례로 선택합니다.Start Visual Studio, and select File > New > Project.

  2. 새 프로젝트 만들기 에서 콘솔 프로젝트 형식을 필터링하고 콘솔 앱(.NET Framework) 을 클릭합니다.In Create a new project, filter on the Console project type and click on Console App (.NET Framework). 다음 을 클릭합니다.Click Next.

  3. 새 프로젝트 구성 에서 프로젝트 이름을 입력합니다.In Configure your new project, enter a project name. 프레임워크 아래에서 .NET Framework 4.8 이상을 선택합니다.Under Framework, select .NET Framework 4.8 or higher. 만들기 를 클릭합니다.Click Create.

App Configuration 저장소에 연결Connect to an App Configuration store

  1. 마우스 오른쪽 단추로 프로젝트를 클릭하고, NuGet 패키지 관리 를 선택합니다.Right-click your project, and select Manage NuGet Packages. 찾아보기 탭에서 다음 NuGet 패키지를 검색하여 프로젝트에 추가합니다.On the Browse tab, search and add the following NuGet packages to your project. 찾을 수 없으면 시험판 포함 확인란을 선택합니다.If you can't find them, select the Include prerelease check box.

    Microsoft.Extensions.DependencyInjection
    Microsoft.Extensions.Configuration.AzureAppConfiguration
    Microsoft.FeatureManagement
    
  2. Program.cs 를 열고, 다음 명령문을 추가합니다.Open Program.cs and add the following statements:

    using Microsoft.Extensions.DependencyInjection;
    using Microsoft.Extensions.Configuration;
    using Microsoft.Extensions.Configuration.AzureAppConfiguration;
    using Microsoft.FeatureManagement;
    using System.Threading.Tasks;
    
  3. 기능 플래그가 검색되도록 UseFeatureFlags 옵션을 지정하여 App Configuration에 연결하도록 Main 메서드를 업데이트합니다.Update the Main method to connect to App Configuration, specifying the UseFeatureFlags option so that feature flags are retrieved. 그런 다음, Beta 기능 플래그가 설정된 경우 메시지를 표시합니다.Then display a message if the Beta feature flag is enabled.

        public static async Task Main(string[] args)
        {         
            IConfigurationRoot configuration = new ConfigurationBuilder()
                .AddAzureAppConfiguration(options =>
                {
                    options.Connect(Environment.GetEnvironmentVariable("ConnectionString"))
                           .UseFeatureFlags();
                }).Build();
    
            IServiceCollection services = new ServiceCollection();
    
            services.AddSingleton<IConfiguration>(configuration).AddFeatureManagement();
    
            using (ServiceProvider serviceProvider = services.BuildServiceProvider())
            {
                IFeatureManager featureManager = serviceProvider.GetRequiredService<IFeatureManager>();
    
                if (await featureManager.IsEnabledAsync("Beta"))
                {
                    Console.WriteLine("Welcome to the beta!");
                }
            }
    
            Console.WriteLine("Hello World!");
            Console.WriteLine("Press any key to continue ...");
            Console.Read();
        }
    

로컬로 앱 빌드 및 실행Build and run the app locally

  1. ConnectionString 이라는 환경 변수를 App Configuration 저장소의 연결 문자열로 설정합니다.Set an environment variable named ConnectionString to the connection string of your App Configuration store. Windows 명령 프롬프트를 사용하는 경우 다음 명령을 실행합니다.If you use the Windows command prompt, run the following command:

        setx ConnectionString "connection-string-of-your-app-configuration-store"
    

    Windows PowerShell을 사용하는 경우 다음 명령을 실행합니다.If you use Windows PowerShell, run the following command:

        $Env:ConnectionString = "connection-string-of-your-app-configuration-store"
    
  2. Visual Studio를 다시 시작하여 변경 내용을 적용합니다.Restart Visual Studio to allow the change to take effect.

  3. Ctrl+F5를 눌러 콘솔 앱을 빌드하고 실행합니다.Press Ctrl + F5 to build and run the console app.

    기능 플래그가 설정된 앱

리소스 정리Clean up resources

이 문서에서 만든 리소스를 계속 사용하지 않으려면 여기에서 만든 리소스 그룹을 삭제하여 요금이 부과되지 않도록 하세요.If you do not want to continue using the resources created in this article, delete the resource group you created here to avoid charges.

중요

리소스 그룹을 삭제하면 다시 되돌릴 수 없습니다.Deleting a resource group is irreversible. 리소스 그룹 및 포함된 모든 리소스가 영구적으로 삭제됩니다.The resource group and all the resources in it are permanently deleted. 잘못된 리소스 그룹 또는 리소스를 자동으로 삭제하지 않도록 해야 합니다.Make sure that you don't accidentally delete the wrong resource group or resources. 유지하려는 다른 리소스가 포함된 리소스 그룹 내에서 이 문서에 대한 리소스를 만든 경우 리소스 그룹을 삭제하는 대신 해당 창에서 각 리소스를 개별적으로 삭제합니다.If you created the resources for this article inside a resource group that contains other resources you want to keep, delete each resource individually from its respective pane instead of deleting the resource group.

  1. Azure Portal에 로그인하고 리소스 그룹 을 선택합니다.Sign in to the Azure portal, and select Resource groups.
  2. 이름으로 필터링 상자에서 리소스 그룹의 이름을 입력합니다.In the Filter by name box, enter the name of your resource group.
  3. 결과 목록에서 리소스 그룹 이름을 선택하여 개요를 확인합니다.In the result list, select the resource group name to see an overview.
  4. 리소스 그룹 삭제 를 선택합니다.Select Delete resource group.
  5. 리소스 그룹 삭제를 확인하는 메시지가 표시됩니다.You're asked to confirm the deletion of the resource group. 리소스 그룹의 이름을 입력하여 확인하고 삭제 를 선택합니다.Enter the name of your resource group to confirm, and select Delete.

잠시 후, 리소스 그룹 및 모든 해당 리소스가 삭제됩니다.After a few moments, the resource group and all its resources are deleted.

다음 단계Next steps

이 빠른 시작에서는 App Configuration에 기능 플래그를 만들고, .NET Framework 콘솔 앱에 사용했습니다.In this quickstart, you created a feature flag in App Configuration and used it with a .NET Framework console app. 애플리케이션을 다시 시작하지 않고 기능 플래그 및 기타 구성 값을 동적으로 업데이트하는 방법을 알아보려면 다음 자습서를 계속 진행합니다.To learn how to dynamically update feature flags and other configuration values without restarting the application, continue to the next tutorial.