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

# 기능명세서 (Features)

기능명세서는 **PRD에서 정의한 제품 목표와 요구사항**을 **실제 구현 가능한 기능 단위**로 구체화하는 단계입니다.

PRD가 ‘무엇을, 왜 만드는가’를 정의한다면, 기능명세서는 제품이 ‘어떻게 작동해야 하는가’를 설계합니다.

기능명세서에서 작성한 내용은 이후 유저플로우와 와이어프레임을 구성하는 기준으로 활용됩니다.

기능명세서는 **트리 뷰, 디렉토리 뷰, 도큐먼트 뷰**의 세 가지 보기 방식을 제공합니다. \
같은 기능명세서를 작업 목적에 맞는 형태로 확인하고 편집할 수 있으며, \
한 뷰에서 수정한 내용은 다른 뷰에도 동일하게 반영됩니다.

## 1. 구조 이해하기

기능명세서는 **요구사항 → 기능 → 상세 기능**의 3단계 계층 구조로 이루어집니다.

#### 요구사항 (Requirement)

프로젝트의 최상위 목표나 사용자의 핵심 니즈를 나타냅니다.

* **설명:** 기획의 큰 줄기를 정의합니다.
  * 예: ‘회원 관리’, ‘결제 및 요금제’
* **수용 기준:** 해당 요구사항이 충족되었다고 판단할 수 있는 조건이나 정책을 체크리스트 형태로 작성합니다.
  * 예: ‘이메일로 회원가입할 수 있음’, ‘권한에 따라 표시되는 메뉴가 다름’

#### 기능 (Feature)

요구사항을 구체적으로 실현하기 위한 논리적 기능 단위입니다.

* **설명:** 요구사항을 달성하는 데 필요한 구체적인 기능을 정의합니다.
  * 예: ‘회원가입’, ‘문서 공유’, ‘결제 관리’
* **사용자 역할:** 해당 기능을 사용하는 주체를 지정합니다. PRD에서 설정한 사용자 역할을 불러와 연결할 수 있습니다.
  * 예: ‘기획자’, ‘관리자’, ‘게스트’
* 기능의 근거와 성공 기준, 구현에 필요한 세부 정책을 함께 정리할 수 있습니다.

#### 상세 기능 (Specification)

각 기능에서 실제로 일어나는 세부 동작이나 비즈니스 정책을 정의하는 최하위 단계입니다.

* **설명:** 개발과 디자인의 직접적인 기준이 되는 상세 동작을 작성합니다.
  * 예: ‘이메일 가입 유효성 검사’, ‘비밀번호 재설정’, ‘로그인 세션 만료 정책’
* 구현 전에 추가로 결정해야 하는 정책이나 조건은 개발 준비 항목에서 보강할 수 있습니다.

<details>

<summary>아이템별 속성 관리하기</summary>

모든 단계(요구사항, 기능, 상세 기능)에서는 아래 속성들을 설정하여 기획의 우선순위와 진척도를 체계적으로 관리할 수 있습니다.

* **중요도 :** 기능의 **우선순위** 또는 중요도를 설정합니다. (낮음 / 중간 / 높음)&#x20;
* **상태:** 아이템의 진행 상태를 **기획 작성중, 기획 제안, 기획 확정, 개발 중, 개발 완료, 보류** 중 하나로 \
  설정합니다.

</details>

## 2. 개발 준비 슬롯 작성하기

**개발 준비 슬롯**은 기능과 상세 기능을 실제 구현 가능한 수준으로 구체화하는 공간입니다.

기능의 기본 설명만으로 결정하기 어려운 조건, 동작, 예외 상황, 권한, 데이터 정책 등을 슬롯별로 나누어 작성할 수 있습니다.

#### **개발 준비 슬롯 구성**

* **선행조건:** 기능이 실행되기 전에 충족되어야 하는 조건
* **트리거:** 기능의 동작을 시작시키는 사용자 행동이나 시스템 이벤트
* **동작:** 사용자와 시스템이 수행하는 핵심 동작
* **결과:** 동작이 완료된 뒤 변경되는 상태나 제공되는 결과
* **예외:** 오류, 실패, 중복 요청 등 별도로 처리해야 하는 상황
* **표시:** 화면에 보여줄 정보, 알림, 오류 메시지, 피드백 방식
* **권한 & 접근:** 기능을 사용할 수 있는 사용자와 필요한 권한
* **비즈니스 규칙:** 수량 제한, 상태 전환 조건 등 기능에 적용되는 정책
* **데이터:** 입력받거나 저장하고 반환해야 하는 데이터

#### **작성 상태 확인하기**

개발 준비 슬롯의 작성 상태는 **5/9**와 같은 형태로 표시됩니다.

앞의 숫자는 내용이 작성된 슬롯 수이며, 뒤의 숫자는 현재 표시 중인 슬롯 수입니다.

각 슬롯은 직접 작성하거나 **AI로 채우기**를 눌러 기능명세의 맥락을 바탕으로 초안을 만들 수 있습니다. \
현재 기능에 필요하지 않은 슬롯은 **숨기기**를 눌러 제외할 수 있습니다.

> **TIP:** 모든 슬롯을 반드시 작성할 필요는 없습니다. 기능을 구현하는 데 필요한 항목만 표시하고, 개발자가 추가 확인 없이 이해할 수 있을 정도로 구체적으로 작성하세요.

## 3. 보기 방식 선택하기

기능명세서 화면 **왼쪽 패널의 보기 전환 아이콘**을 누르면 **트리 뷰, 디렉토리 뷰, 도큐먼트 뷰**로 이동할 수 있습니다.

#### 트리 뷰 (Tree View)

요구사항부터 기능, 상세 기능까지 이어지는 **계층 구조와 연결 관계**를 한눈에 확인할 수 있습니다.

**전체 기능 구조를 파악**하거나 **누락된 하위 항목을 확인**할 때 적합합니다. **Shift를 누른 상태에서 항목을 선택**하거나 여러 항목을 드래그해 선택하면 **상태와 중요도를 한 번에 변경**할 수 있습니다.

#### 디렉토리 뷰 (Directory View)

**왼쪽 목록**에서 원하는 항목을 찾고, **오른쪽 상세 화면**에서 해당 항목의 내용을 집중적으로 관리할 수 있습니다.

**설명, 수용 기준, 상태, 중요도** 등을 확인하고 편집할 수 있으며, **코멘트와 항목별 작업 로그**도 함께 확인할 수 있습니다. 특정 기능을 검색하거나 개별 항목의 정책과 변경 이력을 관리할 때 적합합니다.

#### 도큐먼트 뷰 (Document View)

**선택한 요구사항과 그 아래에 연결된 기능·상세 기능**을 하나의 문서 흐름으로 펼쳐서 확인하고 편집할 수 있습니다.

관련된 여러 항목을 연속해서 검토하거나 하나의 요구사항에 포함된 기능을 **문서 형태로 읽고 수정할 때** 적합합니다. \
**요구사항 선택 메뉴**를 사용해 다른 요구사항으로 이동할 수 있으며, **현재 페이지 안에서 원하는 내용을 검색**할 수도 있습니다.

<table data-card-size="large" data-view="cards"><thead><tr><th></th><th data-hidden data-card-cover data-type="image">Cover image</th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td>트리 뷰 (Tree View)</td><td><a href="https://3323951709-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fv0nDmWkcH3Ia4zEb82Qz%2Fuploads%2FfXvjeQOQsfD0OXWCoSWD%2Ftree.png?alt=media&amp;token=0f6ea750-8e7b-4990-950d-3fa51b7de21f">tree.png</a></td><td><a href="/plan/features/tree-view.md">트리 뷰 (Tree View)</a></td></tr><tr><td>디렉토리 뷰 (Directory View)</td><td><a href="https://3323951709-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fv0nDmWkcH3Ia4zEb82Qz%2Fuploads%2FYNNtA6Bbn36vCtrZMOqq%2Fdirectory.png?alt=media&amp;token=2cba3de6-91aa-4af7-bc4b-8e4be4a4c26b">directory.png</a></td><td><a href="/plan/features/directory-view.md">디렉토리 뷰 (Directory View)</a></td></tr><tr><td>도큐먼트 뷰 (Document View)</td><td><a href="https://3323951709-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fv0nDmWkcH3Ia4zEb82Qz%2Fuploads%2FReVsMiqTj31moGsV6xwc%2Fdocument-view-card.svg?alt=media&amp;token=d9c19b3c-ce2c-46c9-839d-80d23a2a30a7">document-view-card.svg</a></td><td><a href="/plan/features.md#document-view">기능명세서 (Features)</a></td></tr></tbody></table>
