본문 바로가기
Study/PM

[PM] 기능 정의서 작성

by JaeHoist 2026. 2. 10.

앞서 작성한 젝트 웹사이트 백오피스 기능의 요구사항 정의서에 뒤이어 기능 정의서를 작성해보려 합니다.

기능정의서를 제대로 처음 작성해보다 보니 자료수집을 하며 블로그에 그 내용을 정리해보고자 합니다.

 

<기능정의서란 무엇인가>

기능정의서는 고객의 요구사항을 구체적인 기능 단위로 정리하여 개발 가능 여부 판단과 일정 계획을 돕는 핵심 문서입니다.

 

<기능정의서의 중요성>

잘 작성된 기능정의서는 서비스의 방향성을 명확히 하고, 모든 이해관계자가 공통된 목표를 인식하며 원활하게 소통할 수 있도록 합니다.
반면 기능정의서가 부실할 경우 불필요한 기능 개발이나 요구사항 누락이 발생하고, 잦은 설계 변경으로 인해 프로젝트 효율이 저하될 수 있습니다.

 

<기능정의서 구성요소>

1. 기능 카테고리

 사용자 등록 - 회원가입  등과 같은 대분류로 전체 기능을 대표하고 직관적으로 알 수 있게 합니다.

 예시: 회원가입. 로그인

2. 기능 하위 카테고리

상위 기능을 구성하는 세부 기능들의 목록. 각 하위 기능은 상위 기능을 완성하기 위한 독립적인 단계나 요소를 나타냅니다

예시: 회원가입의 하위 카테고리

1. 이메일 입력 및 인증 2. 비밀번호 설정 3. 개인정보 입력 4. 이용약관 동의 5. 본인인증

 

3. 기능 ID

 기능을 고유하게 식별하기 위한 알파벳과 숫자의 조합 또는 단순 숫자도 상관 없으며 프로젝트 내에서 기능을 쉽게 참조할 수 있도록 합니다.

예시: REG_001 (회원가입), LOG_001 (로그인), PROF_001 (프로필 수정)

 

4. 화면 ID (선택사항)

기능이 구현되는 특정 UI 화면이나 페이지를 나타내는 고유 식별자입니다.

예시: SCR_REG_001 (회원가입 메인 화면), SCR_REG_002 (이메일 인증 화면)

 

5. 기능목적

해당 기능을 개발하고 구현하는 근본적인 이유나 의도. 기능이 해결하고자 하는 문제나 달성하고자 하는 목표를 명시합니다.

예시: 신규 사용자를 시스템에 등록하고 개인화된 서비스 제공을 위한 기본 정보 수집

 

6. 기능요약

기능의 핵심 내용을 간략하게 설명하는 1-2문장의 개요. 기능의 주요 특징과 동작을 압축적으로 표현합니다.

예시: “사용자가 이메일, 비밀번호, 개인정보를 입력하고 이용약관에 동의한 후 본인인증을 거쳐 회원으로 등록되는 프로세스”

 

7. 세부정책/기능설명

기능의 상세한 작동 방식, 규칙, 제약 조건 등을 구체적으로 설명. 개발자가 기능을 정확히 구현할 수 있도록 모든 세부사항을 포함합니다.

예시:1. 이메일 입력 및 인증

- 유효한 이메일 형식 검증 (정규 표현식 사용)

- 중복 이메일 체크 (데이터 베이스 조회)

- 인증 코드 생성 (6자리 난수)

8. 중요도 (선택사항)

프로젝트 내에서 해당 기능의 우선순위나 중요성을 나타내는 지표로 보통 숫자나 단계로 표현합니다.

 예시: 상(1), 중(2), 하(3)

 

9. 작성자 (선택사항)

기능 정의서를 작성한 담당자의 이름으로 작성합니다.

 예시: 김철수 (프로덕트 매니저), user_id: PM001

 

10. 비고 (선택사항)

주요 항목에 포함되지 않는 추가 정보, 특이사항, 또는 고려사항을 기록하여 참고할 수 있는 정보를 기록합니다.

예시:

- GDPR 및 개인정보보호법 준수 여부 법무팀 검토 필요

- 소셜 로그인(Google, Facebook) 연동 기능 2차 개발 예정

 

10. 사용자 시나리오 (선택사항)

사용자는 어떤 흐름으로 이 기능을 경험하나요? 이 기능은 어떤 화면에서, 어떤 액션을 유도하나요?

예시: 사용자가 "내 물건 팔기" 버튼을 클릭 → 제목, 가격을 입력 → "등록" 버튼 클릭 → 상품이 등록된다.

 

10. 수집 정보

사용자로부터 어떤 입력을 받아야 하나요? 개인정보나 기타 데이터가 포함되나요?

예시: 카카오 로그인 시 이메일, 닉네임

 

10. 유효성 처리

입력값이 유효한지 어떻게 판단하나요? 빈값, 숫자 제한, 문자수 제한 등

예시: 제목은 30자 이내 / 가격은 0원 이상 1억 이하

11. 예외 조건

특정 조건에서 이 기능은 어떻게 다르게 작동하나요?

일반적인 플로우를 벗어나는 경우를 정의해 주세요.

예시: 본인이 올린 게시글에는 "수정하기" 버튼이, 타인이면 "채팅하기" 버튼이 노출된다.

 

12. 에러 처리

API 요청 실패, 로딩 실패 등의 경우 어떻게 대응해야 하나요?

사용자에게 어떤 메시지를 보여줘야 하나요?

예시: 네트워크 오류 시 “채팅방 연결에 실패했습니다. 다시 시도해 주세요.” 토스트 메시지

 

참고 링크: https://www.elancer.co.kr/blog/detail/299

https://brunch.co.kr/@pro-jieun/13

 

'Study > PM' 카테고리의 다른 글

[PM] 요구사항 정의서 작성  (0) 2026.01.26