포트폴리오
home
😮

엠브이픽이 알려드림: 기능정의서

기능정의서가 뭐죠? 그냥 개발해주면 안되는 건가요?

기능정의: 무엇을, 어떻게, 얼마나 구현 할 지
수천 만원에 달하는 차량`을 구매할 때, 고민 없이 구매 하는 경우는 거의 없을 겁니다. 차량의 상세 정보, 동급 차량과의 비교, 옵션, 가격, 구매 방식 등을 끊임없이 고민하며 합리적인 구매를 결정하게 되죠.
평균 4,000만원의 개발 비용을 투입해야 하는 외주 개발은 어떨까요? 개발하고자 하는 서비스의 내용, 유사 서비스와의 비교, 반드시 필요한 기능, 예산 등을 고민할 수 밖에 없겠죠.
10년 동안 탈 차를 구매하기 위해 많은 것을 고민하는 것처럼, 내 사업과 직결되는 서비스 개발을 위해 고민하는 시간은 반드시 필요합니다. 그 결과물이 바로, 기능정의서 입니다.
이렇게 기능정의서의 중요성이 큰 만큼 엠브이픽은 아이디어 단계의 서비스를 개발하고자 하는 클라이언트에게 기능정의서 작성을 요청 드리고 있지만, 작성을 어려워하는 경우가 많습니다.
이러한 분들을 위해, 이번 콘텐츠에서는
1.
기능정의서가 필요한 이유
2.
기능정의서 작성 방법
3.
기능정의를 도와주는 기능 리스트 소개
위 3가지를 설명하려 합니다.

똑똑한 클라이언트에게 기능정의서가 필수인 이유 3가지

첫째, 견적의 투명성

모호한 내용 = 모호한 견적
당근마켓을 레퍼런스로 하되, 기능정의서 제공 여부를 차이점으로 두고 저희가 직접 타 개발사에게 견적 문의를 받아보았습니다.
추상적 견적 문의
“당근마켓과 유사하게 개발하고 싶습니다” 라는 내용으로 추상적인 견적 요청
기능 정의서 첨부 문의
당근마켓을 참고하여 구체적인 기능정의서를 첨부하여 견적 요청
비교
추상적 견적 문의
기능 정의서 첨부 문의
A 개발사
6700만원
5800만원
B 개발사
5300만원
6800만원
C 개발사
4700만원
5900만원
D 개발사
1억
7800만원
같은 개발사에 같은 프로젝트를 문의했지만, 기능 정의서 유무에 따라 개발 견적은 최대 2200만원으로 큰 차이를 보였습니다. 개발사는 기능정의서를 기준으로 견적서를 작성하게 되기 때문에 명확한 근거를 가지고 견적을 낼 수 있었고, 클라이언트는 합리적인 견적을 받아 볼 수 있었네요.

둘째, 말이 통하는 소통

클라이언트와 개발사는 서비스에 대한 시선이 다릅니다.
클라이언트는 어떤 방법으로 사업을 진행해 수익을 낼 것 인지 사업 모델에 집중하지만, 개발사는 어떻게 서비스를 구현할 것 인지에 대해 집중합니다.
배너 광고 기능 설명을 예를 들어 보면,
클라이언트
“중고 마켓에서 고객 유입과 거래가 증가하고 MAU가 5000명 쯤 되면 광고 수요가 발생할 수 있으니 배너 광고 기능 개발이 필요합니다.”
개발사
배너 광고의 위치와 종류는?, 광고 신청과 승인 프로세스는 ?, 카드 등록 결제인가?, PG사는 어디로?, 광고주 광고 대시보드도 필요한가? ······.
같은 배너 광고 기능을 이야기하지만 클라이언트와 개발사가 전혀 다른 내용을 이야기하고 있는 것에서 볼 수 있듯이, 관점의 차이를 해소하고 양자 간 원활한 의사소통을 위해 기능정의서가 필요하다고 할 수 있습니다.

셋째, 기획 의도에 맞는 결과물 산출

생각과 다른 결과물을 마주하는 것 만큼 당황스러운 건 없죠.
기능정의서 없이 아이디어 단계의 프로젝트를 개발사에게 모두 넘겨버리는 경우 구상했던 서비스와 다른 결과물이 산출될 가능성이 상당히 높습니다.
단적인 예를 들어 클라이언트가 결제 취소가 되어야 한다고 전달 한 경우,
1.
유저가 직접 결제를 취소
2.
관리자에서 결제를 취소
위의 두 가지 옵션이 있을 수 있는데, 이를 명확히 하지 않으면 개발사에서 익숙한 방식으로 결제 취소 기능이 개발 될 가능성이 높습니다.
이런 상황이 하나 둘 늘어나면, 일부 기능은 운 좋게 클라이언트의 의도와 맞아 떨어지고 일부 기능은 의도를 벗어난 형태로 개발 되면서 결과물에서 큰 차이를 마주하게 되는 겁니다.
즉, 기능 정의서를 통한 세부 기능 구현 수준과 방식에 대한 구체적인 합의를 통해 이를 미연에 방지할 필요가 있는 겁니다.
예산이 초과해 개발 범위 조율이 필요한 경우에도 기능정의서를 기준으로 조율 합니다.

기능정의서, 이렇게 씁니다. 대표적인 방법 3가지를 알아봅시다.

구분, 메뉴, 필요 기능, 기능 설명, 레퍼런스로 구성

가장 기본적인 기능 정의서 작성법으로 사용자, 관리자 등으로 구분을 나눈 후, 메뉴별로 필요한 기능을 작성합니다. 기능 별로 어떤 항목을 입력 하거나 노출해야 하는지 혹은 어떤 프로세스와 연동되어야 하는지 등 어떻게 구현되어야 하는지를 상세하게 작성합니다. 필요한 경우 레퍼런스 서비스를 언급합니다.
더블 클릭해서 자세히보기

메뉴 구조도를 포함하는 기능 정의서 작성법

구분, 메뉴, 하위 메뉴, 세부 기능으로 구성되어있으며, 해당 기능이 어디서 구현되는 지 경로를 표현하는 방식입니다.
구분을 나눈 후, 메뉴(카테고리) 별 하위 메뉴를 구성하고, 각 하위 메뉴에서 어떤 기능이 구현되어야 하는지를 상세하게 작성합니다.
더블 클릭해서 자세히보기
* 하위 메뉴를 뎁스(depth)라고 표현 합니다.

공적 입찰 서류에 쓰이는 전문적인 기능정의서 작성법

요구사항 분류와 관련 설명, 요구사항 번호, 요구사항 명칭, 상세 설명(정의, 세부 내용) 으로 구성되어 있습니다.
요청 사항을 분류하고 개별 ID 부여 규칙을 임의로 설정합니다. 각 분류 내에서 요구 사항을 분류하여 각 하위 명칭을 정한 후 이의 정의, 세부 구현 내용을 작성합니다.
더블 클릭해서 자세히보기
자세한 공적 입찰용 기능 정의서 작성법은 나라장터 홈페이지에 정리되어있습니다.
여기 를 클릭하면 나라장터 홈페이지로 연결되니, 클릭 후 [제안요청서작성가이드(2021)] 파일을 다운 받아 참고해주시면 됩니다.
[참고할 파일]
기능 정의서 큰 틀 관련 설명: [01_공공정보화사업 유형별 제안요청서 작성 가이드]인 PDF 파일 pp. 86-91
기능 정의서 내 항목 별 세부 예시: [02_표준요구사항(FULL)_상세요구사항작성표]인 한글 파일

기능정의서 작성을 위한 기능정의 리스트를 공유합니다.

기능정의서를 작성할 때, 세부 기능 종류와 명칭을 참고할 수 있도록 기능정의 리스트를 정리했습니다.
내용을 참고 및 복사하셔서 기능정의서를 작성 후 개발을 문의해보세요!
플랫폼 및 개발 언어
모바일 앱(하이브리드앱)
반응형웹
구현할 UI 페이지 분량
10페이지 이하
10단위로 60페이지 이하까지
관리자/업체 기능 구현
데이터 조회/수정/삭제
재고 관리
상품 관리
주문 관리
배송 관리
정산 관리
광고 관리
예약 관리
휴일 관리
모임 관리
일간/주간/월간 통계
다중 항목에 대한 통계
선택한 날짜에 대한 기간 통계
데이터의 변경 내역 기록
네이티브 기능 관련
블루투스 연동
주소록 연동
QR 바코드 인식
보상형 광고 설치 추적
네이티브 비디오 플레이어
기타 네이티브 SDK 연동
앱 내에서 외부 웹 표시
백그라운드 위치 추적
백그라운드 음성 재생
네이티브 카메라 촬영
네이티브 이미지 편집
광고 SDK 연동
결제 관련
결제 취소
부분 결제취소
정기/구매시자동결제
적립금/포인트 제도
쿠폰 결제
장바구니 기능
아임포트 없이 결제 구축
인앱결제
국내카드 결제
가상계좌 결제
페이팔/해외카드 결제
실시간 계좌/휴대폰 결제
판매자 지급대행
기타
코드 주석 작업
기존 데이터 이전
테스트 코드 작성
개발자의 중간 검수 강화
반응형 웹 SEO 기초
반응형 웹 SEO 응용
반응형 웹 SEO 심화
구글 애널리틱스 기초
구글 애널리틱스 응용
편집/업로드 기능
사용자 멘션(@)
단순한 그래프
복잡한 그래프
300메가 이상의 파일 업로드
이미지/파일첨부
여러 이미지 한 번에 첨부
유튜브/비메오 영상 임베드
음성/영상 업로드 재생
태그 자동완성
사진에 상품 정보 태그
위지윅 에디터
마크 다운 에디터
레이아웃 프레임에 이미지 배치
O2O/커뮤니티 기능 관련
견적 산출
구인/구직
단계별 입력
설문
투표
게시물 피드
질문/답변
게이미피케이션 뱃지
컨텐츠 열람 권한
초대
경매/역경매
커뮤니티
그룹 웨어
아이템 목록/상세 관련
아이템 목록/상세
좋아요
북마크
찜/북마크 폴더관리
리뷰 별점
상품 옵션
댓글
대댓글
검색
통합검색
최근 검색어
인기검색어
예약하기
신고하기
추천 유사한 아이템
상세조건 필터링
거리순 필터링 정렬
랭킹
차단하기
검색어 자동 완성
디자인
디자인 템플릿 이용
자체 템플릿을 이용해 개발하고 후반부에 약간만 커스터마이징
고객디자인 간략히 반영
고객사 쪽의 디자인을 구현 효율적인 방식으로 변형해 적용
고객 디자인 세밀히 반영
고객사 쪽의 디자인을 디테일하게 적용
디자인 시안 제작 및 반영
디자인 시안 작업 후 서비스에 반영
외부 API 및 크롤링 관련
단순한 API 연동
복잡한 API 연동
주기적인 데이터 처리/알림
백그라운드 처리
서버크롤링
브라우져 스크래핑
고급 기능
캘린더 UI 기능
지도 위에 팝업 표시
지도와 목록의 연동
앱 실행시에 현 위치 파악
드래그/드롭 위치 저장
리캡차
전자 서명
실시간 음성 채팅
실시간 화상 채팅
회원가입/로그인
이메일 가입/로그인
휴대폰 인증
실명 인증
SNS 웹로그인
sns로그인 별로 비용 추가
sns 모바일 로그인
네이티브 sdk 연동
비로그인 구매
알림 기능 관련
개별 푸시 알림
국내 SMS 알림
국제 SMS 알림
이메일 알림
카카오톡 알림
050 가상번호
내 알림 내역
소셜 기능 관련
문의 하기
1:1 단순 채팅
복잡한 채팅
팔로잉
웹 공유 기능
앱 공유 기능
권한 및 등급 관리
딥링크
국제화 관련
메뉴명 다국어 처리
게시물 데이터 다국어 처리
사용자 국가별 타임존 적용
문서 추출관련
pdf 자동출력
간단한 엑셀 임포트/익스포트
복잡한 엑셀 임포트/익스포트

기능정의서 작성이 끝났어요! 이제 남은 건 뭔가요?

엠브이픽 채널톡으로 문의를 남길 때, 작성한 기능정의서를 첨부해주시면 끝.
이제 명확한 기능정의서로 투명한 견적 받고, 성공적인 외주 개발을 경험하세요.
MVPick의 다른 컨텐츠도 보고싶다면?
(주)엠브이픽|대표이사 안진범
사업자등록번호 622-86-01351
(48316)부산광역시 수영구 황령산로 13, 2층
MVPick 대표 고객센터
대표번호 070-4287-2051
이메일 help@mvpick.net