기획 및 요구사항 분석 단계는 "무엇을 만들지 명확히 하여, 팀원 모두가 같은 그림을 그리게 만드는 과정"입니다. 이 과정이 구체적이지 않으면 개발자가 서로 다른 기능을 만들거나, 나중에 코드를 전부 뜯어고쳐야 하는 참사가 발생합니다.
여행 일정 관리 웹을 주제로, 팀이 당장 실행할 수 있는 4단계 구체적 방법을 알려드립니다.
1. 아이디어 구체화 및 페르소나 설정 (Brainstorming)
단순히 "여행 앱"이라고 하면 범위가 너무 넓습니다. '누가', '왜' 우리 서비스를 쓰는지 좁혀야 합니다.
- 타겟 사용자(Persona) 정의: 가상의 인물을 설정해 보세요.
- 예시: "김철수(24세, 대학생) - 차가 없고 대중교통을 이용하며, 친구 3명과 함께 최저가로 부산 여행을 계획 중이다. 엑셀로 정리하는 걸 귀찮아한다."
- 핵심 가치 선정: 우리 서비스의 '한 줄 요약'을 만듭니다.
- 나쁜 예: 여행의 모든 것을 담은 앱
- 좋은 예: 친구들과 실시간으로 동시에 지도 위에 동선을 그릴 수 있는 웹
2. 요구사항 명세서 작성 (Functional Specification)
팀원들과 회의하며 필요한 기능들을 나열하고, 우선순위를 정하는 가장 중요한 문서입니다. 엑셀이나 노션(Notion)을 켜고 아래와 같은 표를 채워보세요.
- MoSCoW 방법론을 사용하여 우선순위를 정하세요.
- Must: 없으면 서비스가 안 돌아가는 기능 (로그인, 지도 연동, 날짜 선택, 장소 저장)
- Should: 있으면 좋은 핵심 기능 (경로 최적화, 비용 계산기)
- Could: 나중에 시간 남으면 할 기능 (여행지 추천 AI, 날씨 정보)
- Won't: 이번 프로젝트에선 버릴 기능 (항공권 예약 결제)
[작성 예시]
| ID | 카테고리 | 기능명 | 상세 설명 | 우선순위 | 담당자 |
|---|
| U-01 | 회원 | 소셜 로그인 | 카카오톡 아이디로 로그인할 수 있다. | Must | 팀원A |
| P-01 | 일정 | 일정 생성 | 여행 제목, 날짜(Start~End)를 입력하여 방을 만든다. | Must | 팀원B |
| M-01 | 지도 | 장소 검색 | 키워드로 장소를 검색하고 마커를 표시한다. | Must | 팀원A |
3. 유저 플로우 (User Flow) 그리기
사용자가 웹에 들어와서 목표를 달성하고 나갈 때까지의 흐름을 도식화합니다. 이 과정에서 "어? 로그인 실패하면 어디로 가지?", "날짜를 잘못 입력하면 어떻게 수정하지?" 같은 예외 상황을 발견하게 됩니다.
- 작성 방법: 도형과 화살표를 이용해 순서대로 그립니다. (FigJam, Miro, 또는 종이에 그려도 됩니다.)
- 여행 앱 예시 흐름:
- 메인 페이지 접속
- '일정 만들기' 버튼 클릭 -> (로그인 안 됨) -> 로그인 모달 팝업
- 로그인 완료 -> 여행 날짜/도시 선택 페이지
- 지도 화면 진입 -> 장소 검색 -> '추가' 버튼 클릭
- 일정표에 장소 등록됨 -> '저장' 클릭 -> 마이페이지로 이동
4. 와이어프레임 (Wireframe) 제작
디자인(색상, 폰트)을 입히기 전, 화면의 뼈대를 잡는 과정입니다. 개발자는 이 그림을 보고 "아, 여기에 버튼이 있고, 여기에 지도가 들어가는구나"를 이해하고 코드를 짭니다.
- 도구: Figma(피그마), Kakao Oven, 또는 종이와 펜
- 포함해야 할 내용:
- 헤더/네비게이션 바 위치
- 지도가 들어갈 영역 크기
- 일정 리스트가 표시될 영역 (왼쪽 사이드바인지, 하단인지)
- 버튼의 위치 ('저장', '초대', '수정')
Tip: 너무 예쁘게 그리려 하지 마세요. 박스와 글씨만 있어도 됩니다. '배치'가 중요합니다.
✅ 1단계 완료 체크리스트 (팀원들과 확인하세요)
이 단계가 끝났을 때 팀원들의 손에 다음 3가지 문서(산출물)가 쥐어져 있어야 합니다.
- 기능 명세서 (엑셀/노션): 우리가 개발해야 할 기능 리스트와 우선순위가 확정되었는가?
- 유저 플로우 (다이어그램): 사용자의 이동 경로가 끊김 없이 연결되었는가?
- 와이어프레임 (스케치): 주요 페이지(메인, 지도화면, 마이페이지)의 레이아웃이 결정되었는가?