# 기능명세서 (Features)

기능명세서는 PRD에서 정의된 요구사항과 제품의 목표를 실제 구현 가능한 기능 단위로 구체화하는 단계입니다. PRD가 '무엇을, 왜 만드는가'에 집중한다면, 기능명세서는 '어떻게 작동하는가'를 설계하는 문서입니다.

이곳에서 정의된 기능 데이터는 이후 유저 플로우(User Flow) 등 모든 후속 기획 산출물의 기준이 됩니다. 두 가지 뷰를 제공하며 트리 뷰에서는 전체 구조를, 디렉토리 뷰에서는 세부 정책과 설명을 관리할 수 있습니다.

## 1. 구조 이해하기

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

<table><thead><tr><th width="234.5546875">요구사항 (Requirement)</th><th width="213.375">기능 (Feature)</th><th>상세 기능 (Specification)</th></tr></thead><tbody><tr><td>회원 관리</td><td>회원가입</td><td>이메일/비밀번호 기반 회원가입</td></tr><tr><td></td><td></td><td>소셜 로그인 (카카오, 네이버, 구글 등)</td></tr><tr><td></td><td></td><td>닉네임 설정</td></tr><tr><td></td><td></td><td>이용약관 및 개인정보처리방침 동의</td></tr><tr><td></td><td>로그인/로그아웃</td><td>자동 로그인 / 로그아웃 처리</td></tr><tr><td></td><td></td><td>비밀번호 찾기 및 재설정</td></tr><tr><td>예약 관리</td><td>예약 생성</td><td>회의실 및 시간대 선택</td></tr><tr><td></td><td></td><td>참석자 추가 및 인원 제한 설정</td></tr><tr><td></td><td></td><td>예약 확인 및 확정 알림 발송</td></tr></tbody></table>

### 요구사항 (Requirement)

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

* 설명: 기획의 큰 줄기를 잡는 단위입니다. (예: "회원 관리", "결제 및 요금제")
* 수용 기준 (Acceptance Criteria): 해당 요구사항이 최종적으로 충족해야 하는 조건이나 정책을 체크리스트 형태로 정의합니다.
  * *예: "이메일로 회원가입 가능", "권한별로 메뉴 전환이 다르게 보임"*

### 기능 (Feature)

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

* 설명: 요구사항을 달성하기 위해 필요한 구체적인 기능을 정의합니다. (예: "회원가입", "문서 공유", "결제 관리")
* 사용자 역할: 각 기능의 수행 주체를 지정합니다. PRD에서 설정한 역할을 불러와 매칭할 수 있습니다.
  * *예: "기획자", "관리자", "게스트"*

### 상세 기능 (Specification)

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

* 설명: 개발 및 디자인의 직접적인 기준이 되는 상세 명세입니다. (예: "이메일 가입 유효성 검사", "비밀번호 재설정 로직", "로그인 세션 만료 정책")

<details>

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

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

* **중요도 :** 기능의 **우선순위** 또는 중요도를 설정합니다. (낮음 / 중간 / 높음)&#x20;
* **상태 :** 기획 또는 개발의 진척도를 설정합니다. (시작 전 / 진행중 / 완료 / 중단)
  * 사용자의 의도에 따라 기획 진척도나 개발 현황판으로 유연하게 활용할 수 있습니다.

</details>

## **2. 뷰 전환**

작업 성격에 맞춰 트리 뷰와 디렉토리 뷰를 자유롭게 넘나들며 기획의 완성도를 높여보세요.

* 상단 탭 토글 (Toggle) 활용: 화면 상단의 \[기능명세서] 탭을 클릭할 때마다 트리 뷰와 디렉토리 뷰가 순차적으로 전환됩니다.
* 좌측 버튼 활용: 화면 왼쪽의 아이콘 버튼을 클릭하여 원하는 보기 방식으로 즉시 이동할 수 있습니다.

<figure><img src="/files/qTX0ixRaUUoc8nNzJCIo" alt=""><figcaption></figcaption></figure>

<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="/files/G8aujsPuIvMrYB7vOw5O">/files/G8aujsPuIvMrYB7vOw5O</a></td><td><a href="/pages/paA480hfSeBtsbsMkY2P">/pages/paA480hfSeBtsbsMkY2P</a></td></tr><tr><td>디렉토리 뷰 (Directory View)</td><td><a href="/files/stvKrCKAq5mcbPTTHwJr">/files/stvKrCKAq5mcbPTTHwJr</a></td><td><a href="/pages/kvfRctJX2HZuIxVP24q4">/pages/kvfRctJX2HZuIxVP24q4</a></td></tr></tbody></table>


---

# 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.manyfast.io/plan/features.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.
