> For the complete documentation index, see [llms.txt](https://docs.hackle.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.hackle.io/feature-flag/ff-design.md).

# 기능 플래그 설계하기

기능 플래그로 안전하게 기능을 출시하기 위한 설계 과정을 알아봅니다.

기능 플래그를 사용하면 기능 출시 범위와 속도를 유연하게 제어할 수 있습니다.

출시 전 기능과 대상, 관찰 기준을 먼저 설계하세요. 이 문서에서는 웰컴 이미지 변경 사례로 과정을 설명합니다.

{% stepper %}
{% step %}

### 기능과 상태를 정의하기

켜짐과 꺼짐 상태에서 보여줄 경험을 명확히 정합니다. 일반적으로 꺼짐 상태에는 기존 기능을 둡니다. 켜짐 상태에는 새 기능을 둡니다.

개발 담당자는 새 기능을 구현합니다. 또한 핵클 SDK와 기능 플래그 평가 코드를 연동합니다.

{% hint style="info" %}
**작성 예시**

구기종목 커뮤니티를 운영하는 A사는 웰컴 이미지를 바꾸려고 합니다. 기존 사용자의 반응이 우려되어 일부 사용자에게 먼저 새 이미지를 제공합니다.

* **켜짐:** 다양한 스포츠를 포함한 새 웰컴 이미지
* **꺼짐:** 공을 전면에 내세운 기존 웰컴 이미지
  {% endhint %}
  {% endstep %}

{% step %}

### 출시 전략을 정하기

새 기능을 제공할 대상과 초기 트래픽을 정합니다. 반응을 관찰할 기간과 트래픽 조정 기준도 함께 정하세요.

{% hint style="info" %}
**작성 예시**

* **초기 트래픽:** 사용자 10%에게 새 이미지를 노출합니다.
* **관찰 기준:** 2\~3일 안에 관련 반응이 있으면 내용을 검토합니다.
* **확대 계획:** 특이 반응이 없다면 일주일마다 10%씩 늘립니다.
  {% endhint %}
  {% endstep %}

{% step %}

### 결과를 확인하고 정리하기

트래픽을 조절하며 사용자 반응과 시스템 상태를 확인합니다. 충분한 결과를 수집한 뒤 최종 적용할 경험을 결정합니다.

새 기능을 전체 사용자에게 적용하거나 기존 기능으로 되돌릴 수 있습니다. 결정 후 개발 담당자에게 기능 플래그 관련 코드를 정리해 달라고 요청하세요.

{% hint style="success" %}
기능 플래그 설정 방법은 [기능 플래그 생성 및 설정](/feature-flag/create-and-configure.md)에서 확인할 수 있습니다. 결과는 [기능 플래그 데이터 분석](/feature-flag/ff-analysis.md)에서 분석하세요.
{% endhint %}
{% endstep %}
{% endstepper %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://docs.hackle.io/feature-flag/ff-design.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
