# 파라미터 설정

앱 개발자들은 새로운 기능을 만들고 출시할 때, 사용자들의 반응을 확인하고 또는 예상하지 못한 상황에 대비하여야 합니다.\
기능 플래그의 파라미터를 활용하면, 사용자에게 유동적인 결과를 점진적으로 적용시킬 수 있습니다.

예를 들어 특정 문구에 대한 사용자의 반응을 보거나 피드백을 받고 싶은 경우, 사용자 그룹의 10%에게 해당 기능을 적용시키고, 유동적으로 바꾸고자 하는 문구의 파라미터를 설정할 수 있습니다.\
설정한 파라미터 값을 변경하거나 트래픽을 조절하여 해당 기능의 성능과 반응을 확인하고, 전체 사용자에 대해 기능을 완전히 적용시킬 수 있습니다.

## 예시

#### 1. **공지 팝업, 프로모션 배너 정의**

기능 플래그의 파라미터를 활용하면 웹 페이지, 앱에서의 이벤트, 프로모션 배너 문구를 원하는 값을 설정하여 동적으로 노출시키고 변경시킬 수 있습니다.

일회성 팝업이나 추천 유도 텍스트를 날짜별, 언어 별로 재노출 또는 변경한다고 가정할 때 우리는 사용자 타겟팅 규칙에 언어별로 사용자 그룹을 설정하고, 파라미터에 노출시키고자 하는 문구의 파라미터 키 (banner\_text), 값("배너 문구") , 날짜의 파라미터 키 ("view\_date") , 값 ("2022-09-22") 쌍을 설정할 수 있습니다.

문구를 변경하고 싶다면 해당 파라미터의 값을 변경할 수 있으며, 특정 날짜가 지나 팝업을 더 이상 노출하고 싶지 않을때는 기능 플래그 상태를 꺼짐로 변경하여 설정한 기본 값(False)으로 되돌릴 수 있습니다.

<figure><img src="/files/3Ro52Bh23c6bixGYcrQT" alt=""><figcaption></figcaption></figure>

#### **2. 게임 내 제한된 유저 별 속성 적용 또는 기능 테스트**

게임 내에서 기능 플래그의 파라미터를 활용하면 불특정 다수에게 런타임시에 적용될 수 있는 콘텐츠들을 다양하게 컨트롤 할 수 있습니다. 일부 플레이어에게 특정 이벤트를 적용하거나, 아이템 획득률 변경, 게임 난이도 조절을 통해 게임 내 플레이어들에게 다양한 경험을 선사할 수 있습니다.

예를 들어 게임 내 '특정 퀘스트 클리어시 보석 지급 유무'를 컨트롤하는 기능 플래그를 적용했다고 합시다. 이때 보석을 지급 받는 유저의 반응을 봤을 때 보석량이 너무 크거나 적어 보석량을 조절해야 하는 상황이 발생할 수 있습니다.\
이 경우 보석량을 기능 플래그의 파라미터로 적용해둔 경우 앱 배포 없이 유동적으로 값을 변경하여 즉각적으로 게임에 반영할 수 있습니다.

이외에도 게임의 난이도, 아이템 획득률 등 게임 내 여러 속성, 설정 값에 대하여 기능을 테스트 하거나 수정 사항을 적용할 수 있습니다.

![2364](/files/e4XPqwhWs436CxVw5QXS)

## 정책

1. **설정 가능 시점**\
   언제든지 설정하거나 설정을 변경할 수 있습니다.\
   (단, 운영 환경의 기능 플래그가 켜짐 상태일 때는 파라미터를 삭제할 수 없습니다.)
2. **적용 시점**\
   기능 플래그 상태에 따라 저장시 변경 사항이 즉시 사용자에게 적용되는 점을 유의하세요.

* 기능 플래그가 꺼짐 상태일 때 **`False`** 값이 사용자에게 적용됩니다.
* 기능 플래그가 켜짐 상태일 때 전체 **`True`**, **`False`** 설정 사항이 사용자에게 적용됩니다.

3. **환경**\
   \&#xNAN;**`운영 환경`** 및 **`개발 환경`** 에서 각각 설정할 수 있습니다.

## 대시보드에서 파라미터 설정하기

기능 플래그 상세 화면의 파라미터 설정 탭에서 설정이 가능합니다.\
우측 상단의 **`저장하기`** 버튼을 클릭하여 변경사항을 저장하세요.

![파라미터 설정](/files/nXrUFKUfaLrvCERmwAOT)

<table><thead><tr><th width="119.91015625">항목</th><th width="251.02734375">조건</th><th>설명</th></tr></thead><tbody><tr><td><strong>파라미터 키</strong></td><td>필수</td><td>알파벳, 숫자, <code>_</code>, <code>-</code>, <code>.</code> 만 입력 가능<br>1~128자 길이 제한<br>동일 기능 플래그 내 중복 불가</td></tr><tr><td><strong>파라미터 유형</strong></td><td><code>String</code> <code>Number</code> <code>Boolean</code> <code>JSON</code></td><td>파라미터 유형을 선택하여 값을 설정할 수 있습니다.</td></tr><tr><td><strong>파라미터 값</strong></td><td>False / True</td><td>선택한 파라미터 유형에 따라 [False]와 [True]에 각각 원하는 값을 설정할 수 있습니다.<br>[False] 우측의 <strong><code>수정하기</code></strong> 버튼으로 값을 수정할 수 있으며, 수정 사항은 즉시 반영됩니다.</td></tr></tbody></table>

{% hint style="info" %}
코드상에서 설정한 파라미터 키를 사용하여 기능플래그를 호출하면, 파라미터 값을 얻을 수 있습니다.

\*\*`파라미터 추가하기`\*\*를 클릭하여 파라미터를 **최대 10개**까지 추가할 수 있습니다.
{% endhint %}

{% hint style="warning" %}
한번 저장된 파라미터 키와 유형은 수정할 수 없습니다.
{% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.hackle.io/feature-flag/create-and-configure/parameter-settings.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
