"인스타그램 같은 앱 만들어주세요."
개발자 입장에서 가장 난감한 요청이에요. 인스타그램의 어떤 기능이요? 피드? 스토리? 릴스? DM? 광고 시스템?
기획서가 명확하지 않으면 개발자는 추측해서 만들고, 결과물을 보고 "이게 아닌데..."라는 상황이 됩니다.
오늘은 개발자가 정확히 이해할 수 있는 기획서 작성법을 알려드릴게요.
왜 기획서가 중요한가요?
기획서는 단순한 문서가 아니에요. 클라이언트와 개발자 사이의 계약서에요.
기획서가 없으면 생기는 일
1. 견적이 부정확해져요
개발자는 기획서를 보고 공수를 산정해요. 기획이 모호하면 견적도 대충 나올 수밖에 없어요. 나중에 "이 기능은 추가 비용이에요"라는 말을 듣게 됩니다.
2. 개발 중 수정이 많아져요
"이게 아닌데" → 수정 → "아 이것도 아니네" → 또 수정
이 과정에서 시간과 비용이 눈덩이처럼 불어납니다.
3. 분쟁이 생겨요
"분명히 이렇게 해달라고 했잖아요" vs "그런 말 안 하셨는데요"
기록이 없으면 서로의 기억에 의존하게 되고, 분쟁으로 이어져요.
기획서에 꼭 들어가야 할 내용
완벽한 기획서가 필요한 게 아니에요. 핵심 내용만 정리되어 있으면 됩니다.
1. 서비스 개요
한 줄 요약
"이 서비스는 [타겟 사용자]가 [문제]를 해결하기 위한 [솔루션]이다."
예시:
- "직장인이 점심 메뉴 고민을 해결하기 위한 랜덤 추천 앱"
- "소상공인이 예약 관리를 쉽게 하기 위한 예약 시스템"
핵심 가치 3가지
이 서비스의 핵심 가치를 3가지로 정리하세요.
- 5초 만에 오늘의 점심 메뉴 결정
- 주변 맛집 기반 현실적인 추천
- 먹은 기록으로 중복 추천 방지
2. 타겟 사용자
누가 쓰나요?
- 연령대: 25~35세 직장인
- 특징: 점심시간에 매일 메뉴 고민
- 행동: 매번 "뭐 먹지?" 검색
사용 시나리오
"김대리(30세)는 점심시간이 되면 항상 고민이다. 오늘도 동료들과 '뭐 먹지?' 10분간 고민하다가 결국 항상 가던 곳을 간다. 이 앱을 열면 버튼 하나로 오늘의 메뉴가 결정되고, 주변 맛집 정보까지 바로 나온다."
3. 기능 목록
핵심 기능 vs 부가 기능
반드시 구분해서 작성하세요.
| 구분 | 기능 | 우선순위 |
|---|---|---|
| 핵심 | 랜덤 메뉴 추천 | 필수 |
| 핵심 | 주변 맛집 연결 | 필수 |
| 핵심 | 먹은 기록 저장 | 필수 |
| 부가 | 친구와 함께 결정 | 2순위 |
| 부가 | 메뉴 제외 설정 | 2순위 |
| 부가 | 리뷰 작성 | 3순위 |
4. 화면 흐름
사용자 플로우
사용자가 앱을 켜서 목표를 달성하기까지의 흐름이에요.
앱 실행 → 로그인 → 메인 화면 → 추천 버튼 클릭
→ 메뉴 결과 화면 → 맛집 선택 → 지도/길찾기
화면별 설명
각 화면에서 뭘 보여주고, 어떤 액션이 가능한지 정리하세요.
메인 화면
- 보여줄 것: 오늘 날짜, 추천 버튼, 최근 기록 3개
- 액션: 추천 버튼 클릭 → 결과 화면으로 이동
결과 화면
- 보여줄 것: 추천 메뉴, 주변 맛집 리스트
- 액션: 맛집 선택 → 상세 정보, 다시 추천 → 새로운 결과
와이어프레임 만들기
글로만 설명하면 서로 다른 그림을 상상하게 돼요. 간단한 와이어프레임을 그려보세요.
추천 도구
초보자용 (무료)
- 피그잼 (Figjam)
- 미로 (Miro)
- 노션 + 이모지
중급자용
- 피그마 (Figma)
- 어도비 XD
와이어프레임 팁
1. 예쁘게 그릴 필요 없어요
사각형과 텍스트만으로 충분해요. 중요한 건 **"어디에 뭐가 있고, 누르면 어디로 가는지"**예요.
2. 모든 상태를 그리세요
- 데이터가 없을 때
- 로딩 중일 때
- 에러가 났을 때
- 정상적으로 보일 때
개발자는 이런 예외 상황까지 다 만들어야 해요.
3. 인터랙션을 표시하세요
- 이 버튼 누르면 → 어디로 이동
- 스와이프하면 → 다음 항목
- 길게 누르면 → 삭제 옵션
실전 템플릿
아래 템플릿을 복사해서 사용하세요.
기획서 템플릿
# [프로젝트명] 기획서
## 1. 서비스 개요
- 한 줄 요약:
- 핵심 가치:
1.
2.
3.
## 2. 타겟 사용자
- 주 타겟:
- 사용 시나리오:
## 3. 기능 목록
| 기능 | 설명 | 우선순위 |
|------|------|----------|
| | | 필수/선택 |
## 4. 화면 목록
### 화면 1: [화면명]
- 목적:
- 구성 요소:
- 사용자 액션:
### 화면 2: [화면명]
...
## 5. 기타 요구사항
- 플랫폼: iOS / Android / 웹
- 로그인 방식:
- 결제 연동:
- 외부 API:
## 6. 참고 서비스
- [서비스명]: [URL] - 참고할 점
개발자가 추가로 알고 싶어하는 것들
기획서 외에 개발자가 자주 물어보는 것들이에요. 미리 정리해두면 좋습니다.
회원/인증 관련
- 로그인 방식: 이메일? 소셜(카카오, 구글, 애플)?
- 회원 등급: 일반/관리자? 더 세분화?
- 비회원 사용 가능 여부
데이터 관련
- 초기 데이터: 직접 입력? 크롤링? API 연동?
- 데이터 양: 예상 사용자 수, 게시물 수
- 보관 기간: 데이터 얼마나 오래 보관?
외부 연동
- 결제: 어떤 PG사? 어떤 결제 수단?
- 지도: 네이버? 카카오? 구글?
- 알림: 푸시 알림? 카카오톡? 문자?
관리자 기능
- 관리자 페이지 필요 여부
- 어떤 데이터를 관리해야 하는지
- 통계/대시보드 필요 여부
흔한 실수와 해결법
실수 1: 너무 추상적
❌ "사용자 친화적인 UI로 만들어주세요" ✅ "메인 버튼은 화면 중앙에 크게, 한 손으로 누를 수 있는 위치에"
실수 2: 기준이 없음
❌ "빠르게 로딩되어야 해요" ✅ "메인 화면 로딩 3초 이내"
실수 3: 예외 상황 누락
❌ "상품 목록을 보여주세요" ✅ "상품 목록을 보여주세요. 상품이 없으면 '등록된 상품이 없습니다' 메시지와 함께 등록 버튼 표시"
실수 4: 우선순위 없음
❌ "이 기능들 다 필요해요" ✅ "1순위: A, B / 2순위: C, D / 예산 남으면: E, F"
마치며
완벽한 기획서는 없어요. 하지만 "개발자가 이해할 수 있는" 기획서는 있습니다.
핵심 포인트:
- 한 줄로 설명 — 서비스가 뭔지 명확히
- 기능 우선순위 — 필수와 선택을 구분
- 화면 흐름 — 어디서 어디로 가는지
- 간단한 와이어프레임 — 말보다 그림이 정확
- 예외 상황 — 에러, 빈 데이터 등
기획 정리가 어려우시다면, 무료 상담을 통해 전문가의 도움을 받아보세요. 아이디어를 개발 가능한 형태로 정리해드립니다.
함께 읽으면 좋은 글
- 개발사 선정 체크리스트 - 기획서 준비 후 다음 단계
- 개발자와 효과적으로 소통하는 법 - 피드백 주는 방법
- 비개발자를 위한 개발 용어 사전 - 기획서에 쓰는 용어 이해
기획서 실제 예시
예시: 점심 메뉴 추천 앱
# 오늘 뭐 먹지? - 기획서
## 1. 서비스 개요
- 한 줄 요약: 직장인의 점심 메뉴 고민을 5초 만에 해결하는 앱
- 핵심 가치:
1. 원터치 메뉴 추천
2. 주변 맛집 연동
3. 중복 방지 (먹은 기록)
## 2. 타겟 사용자
- 25~40세 직장인
- 매일 점심 메뉴 고민
- 스마트폰 능숙
## 3. 기능 목록
### 필수 (P0)
| 기능 | 설명 |
|------|------|
| 랜덤 추천 | 버튼 누르면 메뉴 1개 추천 |
| 주변 맛집 | 추천 메뉴 기반 주변 식당 표시 |
| 먹은 기록 | 최근 먹은 메뉴 저장 |
### 높음 (P1)
| 기능 | 설명 |
|------|------|
| 카테고리 필터 | 한식/중식/양식 선택 |
| 제외 설정 | 싫어하는 메뉴 제외 |
### 나중에 (P2)
| 기능 | 설명 |
|------|------|
| 그룹 결정 | 친구들과 함께 투표 |
| 리뷰 작성 | 방문 후 평가 |
## 4. 화면 흐름
메인 → 추천 결과 → 맛집 상세 → 지도/길찾기
## 5. 참고 서비스
- 배민: 음식 카테고리 UI
- 카카오맵: 주변 검색 UX
기능 명세서 작성법
기능별 상세 스펙
기능명: 소셜 로그인
| 항목 | 내용 |
|---|---|
| 설명 | 카카오/구글 계정으로 로그인 |
| 입력 | 소셜 계정 정보 |
| 출력 | 로그인 완료 → 메인 화면 이동 |
| 예외 | 계정 없음 → 자동 회원가입 |
| 우선순위 | P0 (필수) |
기능명: 상품 검색
| 항목 | 내용 |
|---|---|
| 설명 | 키워드로 상품 검색 |
| 입력 | 검색어 (2자 이상) |
| 출력 | 검색 결과 리스트 (최대 50개) |
| 정렬 | 관련도순, 가격순, 최신순 |
| 예외 | 결과 없음 → "검색 결과가 없습니다" + 추천 상품 |
| 우선순위 | P0 (필수) |
화면 설계 상세
화면 상태 정의
[상품 목록 화면]
1. 로딩 상태
- 스켈레톤 UI 표시
- 3초 이상 시 "잠시만 기다려주세요"
2. 정상 상태
- 상품 카드 그리드 (2열)
- 무한 스크롤
3. 빈 상태
- "등록된 상품이 없습니다"
- 새로고침 버튼
4. 에러 상태
- "일시적인 오류입니다"
- 재시도 버튼
인터랙션 정의
[상품 카드 인터랙션]
- 탭: 상품 상세로 이동
- 길게 누르기: 빠른 장바구니 추가
- 우상단 하트: 위시리스트 토글
- 좌우 스와이프: 없음
데이터 요구사항
데이터 목록
| 데이터 | 출처 | 갱신 주기 | 예상 건수 |
|---|---|---|---|
| 상품 정보 | 관리자 입력 | 수시 | 1,000개 |
| 사용자 정보 | 회원가입 | 수시 | 10,000명 |
| 주문 정보 | 결제 시 | 실시간 | 일 500건 |
| 리뷰 | 사용자 작성 | 수시 | 5,000개 |
외부 연동
| 서비스 | 용도 | API |
|---|---|---|
| 카카오 | 로그인, 지도 | Kakao SDK |
| 토스페이먼츠 | 결제 | Toss API |
| Firebase | 푸시 알림 | FCM |
| AWS S3 | 이미지 저장 | S3 API |
비기능 요구사항
성능
| 항목 | 기준 |
|---|---|
| 페이지 로딩 | 3초 이내 |
| API 응답 | 1초 이내 |
| 이미지 로딩 | 2초 이내 |
| 동시 접속자 | 1,000명 |
보안
- HTTPS 필수
- 비밀번호 해싱 (bcrypt)
- SQL Injection 방지
- XSS 방지
- CORS 설정
호환성
| 플랫폼 | 최소 버전 |
|---|---|
| iOS | 14.0+ |
| Android | 10.0+ |
| Chrome | 최신 2버전 |
| Safari | 최신 2버전 |
기획 검토 체크리스트
제출 전 확인
[필수 항목]
□ 서비스 한 줄 요약
□ 타겟 사용자 정의
□ 기능 목록 (우선순위 포함)
□ 화면 흐름도
□ 로그인 방식
[권장 항목]
□ 와이어프레임
□ 참고 서비스
□ 예외 상황 정의
□ 데이터 요구사항
□ 외부 연동 목록
[있으면 좋은 것]
□ 디자인 시안
□ 성능 요구사항
□ 보안 요구사항
□ 런칭 일정
Photo by Unsplash