Azure App Configuration은 기능 플래그를 통해 기능 관리를 제공하여 팀이 코드를 다시 배포하지 않고도 애플리케이션 기능을 동적으로 제어할 수 있도록 합니다. 이를 통해 안전하고 대상으로 지정된 롤아웃, 더 빠른 실험 및 위험을 줄일 수 있으므로 개발자는 앱 동작을 유연하게 제어하고 변화하는 비즈니스 또는 고객의 요구에 신속하게 대응할 수 있습니다.
Azure Portal의 기능 관리자는 애플리케이션에서 사용하는 기능 플래그를 만들고 관리하기 위한 UI를 제공합니다.
필수 구성 요소
기능 플래그 만들기
아래 단계에 따라 Azure Portal에서 새 기능 플래그를 만듭니다.
Azure Portal에서 Azure App Configuration 저장소를 엽니다. 리소스 메뉴의 작업에서 기능 관리자>만들기를 선택합니다.
기능 플래그를 사용할 대상에서 다음 목적 중 하나를 선택합니다.
-
스위치 – 간단한 스위치를 사용하여 기능을 켜거나 끕니다. 단기간 작동 토글과 단일 켜기/끄기 제어로 충분한 시나리오에 사용합니다.
-
롤아웃 – 사용자 비율에 대해 점진적으로 기능을 사용하도록 설정합니다. 위험을 줄이기 위해 점진적 기능 릴리스를 사용하고, 환경 또는 사용자 세그먼트 전반에 걸친 카나리아 또는 단계별 롤아웃에 사용합니다.
-
실험 – 트래픽 할당을 사용하여 제어된 실험을 실행하여 가장 성능이 뛰어난 변형을 결정합니다. A/B 테스트, 다변량 실험 또는 메트릭 기반 기능 평가 및 통계 비교가 필요한 기타 시나리오에 사용합니다.
스위치를 사용하여 모든 사용자에 대해 즉시 기능을 사용하거나 사용하지 않도록 설정합니다.
기능 플래그의 핵심 속성을 설정하도록 기본 사항을 구성합니다.
| 설정 |
예제 값 |
설명 |
|
기능 플래그 사용 |
켜기 |
이 옵션은 만들 때 기능 플래그를 사용하도록 설정합니다. 이 기능을 해제하면 새 기능 플래그의 구성이 저장되지만 새 기능 플래그는 비활성화된 상태로 유지됩니다. |
|
기능 플래그 이름 |
베타 |
기능 플래그 이름은 코드에서 플래그를 참조하는 데 사용하는 이름입니다. 이는 애플리케이션 내에서 고유해야 합니다. |
|
키 |
베타 |
키를 사용하여 애플리케이션에 로드된 기능 플래그를 필터링할 수 있습니다. 키는 기본적으로 기능 플래그 이름에서 생성되지만 접두사 또는 네임스페이스를 추가하여 기능 플래그(예: .appconfig.featureflag/Beta)를 그룹화할 수도 있습니다. |
|
레이블 |
비워둠 |
레이블을 사용하여 동일한 키에 대해 서로 다른 기능 플래그를 만들고 레이블을 기반으로 애플리케이션에 로드된 플래그를 필터링할 수 있습니다. 기본적으로 기능 플래그에는 레이블이 없습니다. |
|
설명 |
비워둠 |
비워두거나 기능 플래그에 대한 설명을 입력합니다. |
이 기능 플래그에 대한 평가 이벤트를 수집하도록 원격 분석을 구성합니다. 사용하도록 설정하면 평가 이벤트가 애플리케이션에서 구성하는 원격 분석 게시자에 전송됩니다. 원격 분석을 사용하도록 설정하기 전에 원격 분석>App Insights의 App Configuration 저장소에 Application Insights 리소스를 연결합니다.
검토 + 만들기를 선택하여 새 기능 플래그의 요약을 확인하고 만들기를 선택하여 작업을 완료합니다. 알림은 새 기능 플래그가 성공적으로 만들어졌음을 나타냅니다.
롤아웃을 사용하여 사용자 비율에 기능을 점진적으로 노출합니다.
기능 플래그의 핵심 속성을 설정하도록 기본 사항을 구성합니다.
| 설정 |
예제 값 |
설명 |
|
기능 플래그 사용 |
켜기 |
이 옵션은 만들 때 기능 플래그를 사용하도록 설정합니다. 이 기능을 해제하면 새 기능 플래그의 구성이 저장되지만 새 기능 플래그는 비활성화된 상태로 유지됩니다. |
|
기능 플래그 이름 |
베타 |
기능 플래그 이름은 코드에서 플래그를 참조하는 데 사용하는 이름입니다. 이는 애플리케이션 내에서 고유해야 합니다. |
|
키 |
베타 |
키를 사용하여 애플리케이션에 로드된 기능 플래그를 필터링할 수 있습니다. 키는 기본적으로 기능 플래그 이름에서 생성되지만 접두사 또는 네임스페이스를 추가하여 기능 플래그를 그룹화할 수도 있습니다(예: .appconfig.featureflag/myapp/Beta). |
|
레이블 |
비워둠 |
레이블을 사용하여 동일한 키에 대해 서로 다른 기능 플래그를 만들고 레이블을 기반으로 애플리케이션에 로드된 플래그를 필터링할 수 있습니다. 기본적으로 기능 플래그에는 레이블이 없습니다. |
|
설명 |
비워둠 |
비워두거나 기능 플래그에 대한 설명을 입력합니다. |
대상 그룹 탭에서 지정된 백분율에 대한 기능 플래그를 켜거나 그룹 및 사용자를 명시적으로 포함하거나 제외합니다.
| 설정 |
예제 값 |
설명 |
|
기본 백분율 |
0–100 |
0에서 100 사이의 값을 입력하여 기본적으로 기능을 수신하는 사용자의 비율을 지정합니다. |
|
그룹별 덮어쓰기 |
해제(선택 되지 않음) |
그룹 기반 재정의를 사용하도록 설정하려면 선택하세요. 사용하도록 설정하면 다음을 수행할 수 있습니다. - 롤아웃에 명시적으로 포함할 그룹을 추가하고 기능을 받아야 하는 그룹 멤버의 비율을 설정합니다.
- 롤아웃에서 제외할 그룹을 추가합니다.
|
|
사용자에 의한 재정의 |
끄기(선택 해제됨) |
사용자 기반 대상 지정을 사용하도록 설정하려면 선택합니다. 사용하도록 설정하면 포함하거나 제외할 개별 사용자를 지정할 수 있습니다. |
구성 탭에서 기능 플래그에 대한 값을 구성합니다. 애플리케이션은 각 사용자에게 적용되는 값을 평가하여 적절한 구성을 검색할 수 있습니다.
| 설정 |
예제 값 |
설명 |
|
구성을 포함하다 |
확인란이 선택됨 |
키-값 설정을 기능 플래그에 연결하려면 선택합니다. 이러한 설정을 통해 애플리케이션은 코드를 다시 배포하지 않고도 동작을 동적으로 조정할 수 있습니다. |
|
이전 구성 |
{"color":"blue"} |
이 업데이트 전에 기능 플래그와 이전에 연결된 구성 값을 표시합니다. 이를 사용하여 변경 내용을 비교하고 버전을 추적합니다. |
|
새 구성 |
{"color":"green"} |
지금 적용 중인 업데이트된 구성 값을 표시합니다. 이러한 값은 이전 구성을 재정의하고 기능 플래그를 사용할 때 새 동작을 정의합니다. |
변경 내용을 예약하고 기능을 제공하기 위한 사용자 지정 제약 조건을 관리하도록 조건을 구성합니다.
| 설정 |
예제 값 |
설명 |
|
일정 추가 |
시작: 2025-11-01 끝: 2025-11-15 표준 시간대: (UTC-06:00) 중부 시간(미국 및 캐나다) 되풀이: 사용 안 함 |
시작 날짜와 종료 날짜를 지정하여 시간 기반 롤아웃을 정의합니다. 필요에 따라 제안된 표준 시간대를 업데이트하고 반복 활성화에 대해 되풀이를 사용하도록 설정합니다. |
|
사용자 지정 조건 추가 |
User.Subscription == "Premium" |
사용자 지정 특성(예: 지역, 디바이스 유형 또는 구독 수준)을 기반으로 조건을 만듭니다. 조건을 통해 기능을 수신하는 사용자를 정확하게 대상으로 지정할 수 있습니다. |
|
모든 기능 필터를 사용하도록 설정해야 함 |
켜기(선택됨) |
이 옵션은 사용자 지정 조건 추가 와 일정 추가를 모두 사용하도록 설정한 후에만 표시됩니다. 이 옵션을 선택하면 기능이 적용되려면 사용하도록 설정된 모든 기능 필터가 true로 평가되어야 합니다(논리적 AND). 선택을 취소하면 필터가 독립적으로 평가됩니다(논리적 OR). |
이 기능 플래그에 대한 평가 이벤트를 수집하도록 원격 분석을 구성합니다. 사용하도록 설정하면 평가 이벤트가 애플리케이션에서 구성하는 원격 분석 게시자에 전송됩니다. 원격 분석을 사용하도록 설정하기 전에 원격 분석>App Insights의 App Configuration 저장소에 Application Insights 리소스를 연결합니다.
검토 + 만들기를 선택하여 새 기능 플래그의 요약을 확인하고 만들기를 선택하여 작업을 완료합니다. 알림은 새 기능 플래그가 성공적으로 만들어졌음을 나타냅니다.
실험을 사용하여 A/B 테스트를 실행하고 변형을 비교합니다.
기능 플래그의 핵심 속성을 설정하도록 기본 사항을 구성합니다.
| 설정 |
예제 값 |
설명 |
|
기능 플래그 사용 |
켜기 |
이 옵션은 만들 때 기능 플래그를 사용하도록 설정합니다. 이 기능을 해제하면 새 기능 플래그의 구성이 저장되지만 새 기능 플래그는 비활성화된 상태로 유지됩니다. |
|
기능 플래그 이름 |
베타 |
기능 플래그 이름은 코드에서 플래그를 참조하는 데 사용하는 이름입니다. 이는 애플리케이션 내에서 고유해야 합니다. |
|
키 |
베타 |
키를 사용하여 애플리케이션에 로드된 기능 플래그를 필터링할 수 있습니다. 키는 기본적으로 기능 플래그 이름에서 생성되지만 접두사 또는 네임스페이스를 추가하여 기능 플래그를 그룹화할 수도 있습니다(예: .appconfig.featureflag/myapp/Beta). |
|
레이블 |
비워둠 |
레이블을 사용하여 동일한 키에 대해 서로 다른 기능 플래그를 만들고 레이블을 기반으로 애플리케이션에 로드된 플래그를 필터링할 수 있습니다. 기본적으로 기능 플래그에는 레이블이 없습니다. |
|
설명 |
비워둠 |
비워두거나 기능 플래그에 대한 설명을 입력합니다. |
동작을 비교하고, 트래픽을 할당하고, 대상 테스트를 실행하도록 Variants 를 구성합니다.
| 설정 |
예제 값 |
설명 |
|
변형 이름 |
변형 1 |
각 변형의 고유한 이름을 입력합니다. |
|
값 |
<your-variant-1-value> |
변형에 대해 반환된 값입니다. 문자열, 숫자, 부울 또는 JSON 개체일 수 있습니다. 플래그를 평가할 때 앱이 읽는 복잡한 JSON 구성에 대해 다중 줄의 편집 값을 사용합니다. |
|
기본 변형 |
Variant 1 (기본값) |
한 가지 변형을 안정적인 대체 및 기준선으로 선택합니다. 이 변형은 특정 할당이 적용되지 않거나 기능 플래그가 비활성화된 경우 반환됩니다. 대상 할당 및 제어된 테스트에 사용되는 기준이기도 합니다. |
변형 간에 트래픽을 분산하고 특정 그룹 또는 사용자에 대한 재정의를 적용하도록 할당 을 구성합니다.
| 설정 |
예제 값 |
설명 |
|
변형 간 트래픽 분포 |
기본값: 100% 변형 1: 0% 변형 2: 0% |
각 변형에 할당된 트래픽의 비율을 지정합니다. 모든 변형의 분포는 총 100%가 되어야 합니다. 이를 사용하여 대상 그룹을 다른 변형에 노출하는 방법을 제어할 수 있습니다. |
|
할당 재정의 |
그룹별 재정의 / 사용자별 재정의 |
백분율 기반 할당에 관계없이 선택한 그룹 또는 개별 사용자에게 특정 변형을 할당합니다. 그룹 및 사용자 재정의가 모두 적용되면 사용자 할당이 우선적으로 적용됩니다. |
|
분포(시드) |
사용자 지정 시드 사용: 12345 |
기본적으로 백분위수 분포는 임의로 지정됩니다. 동일한 시드 값을 공유하는 기능 플래그에서 결정적(반복 가능한) 할당을 생성하기 위해 고정 시드를 제공합니다. |
기능 제공을 위해 노출을 제한하고, 변경 내용을 예약하고, 사용자 지정 제약 조건을 관리하도록 조건을 구성합니다.
| 설정 |
예제 값 |
설명 |
|
노출 제한 |
확인란이 선택됨 |
이 옵션을 선택하면 백분율, 그룹 및 사용자별로 노출을 제어하는 추가 옵션이 표시됩니다. 선택하지 않으면 기능 플래그는 이러한 제약 조건 없이 전역적으로 적용됩니다. |
|
기본 백분율 |
100 |
노출 제한을 검사할 때만 볼 수 있습니다. 0에서 100 사이의 값을 입력하여 기본적으로 기능을 수신하는 전체 사용자 기반의 백분율을 지정합니다. |
|
그룹별 덮어쓰기 |
포함: MarketingTeam (100%) 제외: TestGroup |
노출 제한을 검사할 때만 볼 수 있습니다. 기본 백분율을 벗어나더라도 해당 기능을 사용하도록 설정하는 그룹을 포함합니다. 그룹을 제외하여 해당 기능을 사용하지 않도록 설정합니다. |
|
사용자에 의한 재정의 |
포함: john@example.com 제외하다: jane@example.com |
노출 제한을 검사할 때만 볼 수 있습니다. 사용자가 기본 백분율을 벗어나더라도 해당 기능을 사용하도록 설정하는 사용자를 포함합니다. 사용자를 제외하여 해당 기능을 사용하지 않도록 설정합니다. 긴 사용자 목록의 경우 기능 플래그에 10kb 제한이 있으므로 사용자 대신 그룹을 사용하는 것이 좋습니다. |
|
일정 추가 |
시작: 2025-11-01 끝: 2025-11-15 표준 시간대: (UTC-06:00) 중부 시간(미국 및 캐나다) 되풀이: 매주 |
시작 및 종료 시간을 지정하여 시간 기반 롤아웃을 정의합니다. 필요에 따라, 제안된 시간대를 업데이트하고 반복 활성화에 대해 반복 기능을 활성화합니다(예: 매주 또는 매월). |
|
사용자 지정 조건 추가 |
User.Region == "EU" |
사용자 지정 특성(예: 지역, 디바이스 유형 또는 구독 수준)을 기반으로 조건을 만듭니다. 조건은 정확한 대상 지정을 허용하므로 이러한 기준과 일치하는 사용자만 이 기능을 받습니다. |
|
모든 기능 필터를 사용하도록 설정해야 함 |
켜기 (선택됨) |
이 옵션은 여러 조건을 사용하도록 설정한 후에만 나타납니다. 이 옵션을 선택하면 기능 플래그를 적용하려면 사용하도록 설정된 모든 기능 필터가 true로 평가되어야 합니다(논리적 AND). 선택을 취소하면 필터가 독립적으로 평가됩니다(논리적 OR). |
이 기능 플래그에 대한 평가 이벤트를 수집하도록 원격 분석을 구성합니다. 사용하도록 설정하면 평가 이벤트가 애플리케이션에서 구성하는 원격 분석 게시자에 전송됩니다. 원격 분석을 사용하도록 설정하기 전에 원격 분석>App Insights의 App Configuration 저장소에 Application Insights 리소스를 연결합니다.
검토 + 만들기를 선택하여 새 기능 플래그의 요약을 확인하고 만들기를 선택하여 작업을 완료합니다. 알림은 새 기능 플래그가 성공적으로 만들어졌음을 나타냅니다.
편집 기능 플래그
기능 플래그를 업데이트하려면 다음 단계를 수행합니다.
리소스 메뉴에서 Operations>Feature Manager로 이동합니다.
수정하려는 기능 플래그의 오른쪽 끝으로 이동하고 추가 작업 줄임표(...)를 선택합니다. 이 메뉴에서 기능 플래그 세부 정보를 보거나, 플래그를 편집하거나, 잠금을 해제하거나, 레이블을 만들고, 태그를 업데이트하거나, 기록을 검토하거나, 플래그를 삭제할 수 있습니다.
편집을 선택하여 시각적 편집기를 사용하여 변경하거나 고급 편집을 선택하여 플래그의 원시 JSON을 직접 수정합니다.
필요에 따라 사용 토글을 켜거나 끄면 기능 플래그의 상태를 변경합니다.
뷰 관리
기능 관리자 메뉴에는 Azure App Configuration에 저장된 기능 플래그가 표시됩니다.
보기 관리를 선택하여 Azure Portal에서 기능 관리자 표시를 변경할 수 있습니다.
기능 관리자에서 만든 기능 플래그가 일반 키 값으로 저장됩니다. 특수 접두사 .appconfig.featureflag/ 및 콘텐츠 형식 application/vnd.microsoft.appconfig.ff+json;charset=utf-8로 유지됩니다.
구성 탐색기에서 기능 플래그의 기본 키-값을 보려면 아래 단계를 따릅니다.
리소스 메뉴에서 Operations>Configuration 탐색기를 선택한 다음 보기설정> 선택합니다.
구성 탐색기에 기능 플래그 포함 및 적용을 선택합니다.
관련 콘텐츠
Azure App Configuration에서 기능 플래그 사용을 시작하려면 애플리케이션의 언어 또는 플랫폼과 관련된 다음 빠른 시작을 계속 진행합니다.