외주 개발 전 필독, '요구사항 정의서' 쓰는 방법, 예시

외주 개발 가이드
2024-07-30

외주 개발을 맡기기 전에는 우선 클라이언트 내부에서 무엇을 왜, 어떻게 구현하고 싶은지에 대한 생각을 잘 정리해 두어야 합니다. 이를 문서화한 형태가 바로 ‘요구사항 정의서’인데요. 의외로 외주 개발 전 요구사항 정의서 없이 프로젝트를 의뢰하는 클라이언트가 많습니다. 이런 경우 향후 개발 과정에서 프로젝트가 중심없이 흔들릴 가능성이 높아지죠. ​

이런 문제를 미연에 방지하기 위해 위시켓에서 요구사항 정의서의 중요성과 작성 방법을 구체적으로 안내해 드립니다. IT 관련 프로젝트를 준비 중이라면 아래 내용을 참고해 머릿속 아이디어를 정갈한 문서로 정리해 보시기 바랍니다. ​

✍️ 이 글의 순서

• ’요구사항 정의서가 중요한 이유
• 그래서, 언제 어떻게 쓰나?
• 요구사항 정의서 실전 작성 가이드
• 그래도 어렵다면, ‘위시켓’하세요. ​

요구사항 정의서가 중요한 이유

웹이나 앱과 같은 소프트웨어는 의뢰인의 요구사항에 맞춰 개발 업체에서 맞춤 제작하는 방식입니다. 기성 제품을 구매하는 방식이 아니기 때문에, 작업 범위가 명확해야 업체 측에서도 일정과 비용을 어느 정도 예측하여 고객에게 안내할 수 있습니다. ​

사전에 요구사항 정의 작업이 되지 않으면, 프로젝트 진행 중 고려되지 않았던 기능이 후반에 갑자기 추가되는 경우도 많습니다. 이런 상황은 개발 회사와의 분쟁으로 이어질 수도 있기 때문에, 요구사항 정의서를 통해 필수적인 기능을 미리 구체화해두어야 합니다. ​

또 명확한 요구사항 정의서는 우리 프로젝트에 가장 적합한 개발 회사를 찾는 데에 좋은 구인공고 역할을 해줍니다. 원하는 바가 명확할수록 잘 맞는 개발자를 찾을 수 있고, 의뢰인이 필요한 외주 개발 업체의 강점을 찾을 수 있습니다. ​ ​

그래서, 언제 어떻게 쓰나? ​

먼저 개발 회사에 견적을 요청할 때 요구사항 정의서가 활용됩니다. 정리된 요구사항 정의서를 공유해 주면, 예상 금액과 일정을 정리한 견적서를 받아볼 수 있습니다. 각 회사마다 제공하는 견적이 다를 수 있지만, 명확한 기준을 가지고 비교한다면 금액을 비교해 보기도 좋겠죠. ​

요구사항 정의서는 외주 개발사에 프로젝트를 맡길 때, 외주 개발 업체가 진행해야 할 업무 범위를 정의하는 데에도 유용하게 활용됩니다. 웹으로만 만들 것인지, 앱도 함께 필요한지, 어떤 스펙일지 등 세부적인 작업 내용을 정할 수 있습니다.

요구사항 정의서 실전 작성 가이드 ​

STEP 1. 서비스에 대해 소개하기

이제부터 본격적인 요구사항 정의서를 작성 단계를 안내해 드립니다. 우선 아이디어의 기본 정보부터 정리해야 합니다. 이해를 돕기 위해, 건강식 배달 앱을 만드는 상황을 예시로 들어 정리합니다. ​

• 어떤 서비스를 만들고 싶나요?
• 어떤 사람들이 서비스를 이용하나요?
• 사용자들이 어떤 기기나 매개체를 통해 서비스를 이용하나요? ​

이 3가지는 어떤 프로덕트를 만들 것인지에 대한 가장 기본적인 시작점입니다. ‘어떤 서비스를 만들고 싶은가?’라는 질문은 서비스의 핵심 기능과 목적을 정의하는 역할을 합니다. 우리가 만들고 싶은 것은 건강식 배달 앱이므로, 사용자의 식단 요구사항에 맞춘 건강식 식단을 계획하고, 신선한 재료를 배달하는 것이 주 목적이겠죠. ​

우리의 목표 고객층에는 연령대, 직업, 생활 패턴, 관심사 등의 구체적인 특성이 포함되어야 합니다. 건강식 배달 앱이라면 일반적으로 구매력이 있는 25~45세의 직장인, 건강에 관심이 많지만 요리할 시간이 부족한 사람들, 다이어트 중이거나 특정 영양 목표를 가진 사람들이 타겟이 되겠죠. ​

서비스 제공 플랫폼과 사용자 인터페이스도 정의해야 하는데요. 사용자가 어떤 방식으로 서비스에 접근하고 이용할 수 있는지 명시해야 합니다. iOS 및 Android 앱으로 만들 수도 있고, 반응형 웹사이트 혹은 음성 명령 인터페이스처럼 사용자의 이용 방식을 정의한 내용으로도 이어질 수 있겠죠.

STEP 2. 서비스의 차별점과 비전 정의하기

다음으로는 프로덕트의 차별성과 비전을 정의할 수 있도록, 다음과 같은 질문에 답변해 보세요. ​

• 이 프로덕트의 수익 모델은 무엇인가요?
• 참고할 만한 유사 서비스가 있다면 무엇인가요?
• 유사 서비스와 비교했을 때, 이 프로덕트가 가지는 차별점은 무엇인가요? ​

먼저 서비스가 어떻게 수익을 창출할 것인지를 정의합니다. 프로덕트가 장기적으로 운영되기 위해서는 다양한 수익원을 고려하는 것이 중요합니다. 각각의 예상 비중도 함께 포함한다면 더 구체적으로 제품의 방향성을 예측할 수 있겠죠. ​

참고할 만한 유사 서비스는 시장 조사가 얼마나 잘 이루어졌는지 보여주는 자료입니다. 직접적인 경쟁사가 떠오르지 않더라도, 유사한 타겟을 대상으로 하고 있거나 서비스 측면에서 유사한 점이 있다면 경쟁사로 포함하여 예시를 들어주는 것이 좋습니다. 나아가 핵심 기능과 차별점도 정리하면 좋습니다. 서비스가 가진 독특한 가치를 명확하게 정의하는 과정이죠. 경쟁사와 비교하여 어떤 점에서 우위를 가지는지, 어떤 새로운 가치를 제공하는지 구체적으로 설명할 수 있어야 합니다. ​

이해를 돕기 위해 우리가 만들고자 한 건강식 배달 앱의 차별점을 예로 들자면, 사용자의 건강 데이터나 식습관, 선호도를 학습해 지속적으로 개선되는 맞춤형 식단을 제공합니다. 혹은 완전 조리된 음식이나 반조리 밀키트, 신선 식재료 등 기호에 따라 다양한 옵션을 선택해 주문할 수 있거나, 로컬 농가와의 직거래와 친환경 포장재를 사용하여 환경 친화적인 운영을 한다는 점도 차별점이 될 수 있겠죠. ​

STEP 3. 사용 설명서 만들어 보기 (기본 단계)

이제 희망하는 제품의 기본 프로필을 만들었으니, 보다 구체적인 내용으로 넘어가 보겠습니다. 개발이 성공적으로 완료되어 서비스를 운영하고 있다고 가정했을 때, 사용자들은 어떤 흐름으로 우리의 서비스를 이용하고 있을까요? 이 단계에서는 개발자가 우리 아이디어를 구체적으로 이해할 수 있도록 서비스 이용 시작부터 종료까지의 흐름을 작성해 봅니다. ​

실전 작성에 참고하실 수 있도록, 건강식품 배달 앱의 예시를 이어 들어보겠습니다. 먼저 사용자 타입을 정의하는 것인데요. 앞에서 정했던 ‘어떤 사람들이 서비스를 이용하나요?’ 항목을 참고하여 작성해 보시면 됩니다. ​

✔️ 사용자 타입(누가)

• 25세~45세의 바쁜 직장인
• 체중 감량이나 체형 관리를 목표로 하는 사용자
• 특별히 영양을 관리해야 하는 사람
• 식품 알레르기가 있어 특정 음식을 피해야 하는 사람 ​

다음으로 서비스 이용 흐름을 정의하는 과정이 필요합니다. 벤치마킹 서비스가 있다면 직접 서비스를 이용해 보며 한 단계씩 정리하면 됩니다. 이용 흐름을 작성하실 때는 사용자가 하는 액션이나 기능, 이 액션으로 사용자가 얻는 혜택이나 가치를 포함하도록 작성해야 합니다. 그러면 우리가 기능을 넣은 이유와 의도에 대해 개발 업체에서 더 쉽게 이해할 수 있겠죠. ​

✔️ 서비스 이용 흐름 (무엇을, 왜)

• 사용자가 자신의 건강 목표를 쉽게 달성할 수 있도록 돕기 위해서, AI 기반으로 사용자의 건강 목표, 식습관, 선호도에 맞는 맞춤형 식단을 제공합니다.
• 사용자가 건강식을 준비하는 데 필요한 시간과 노력을 줄이기 위해, 계획된 식단에 필요한 신선한 식재료를 사용자의 집으로 배달합니다.
• 사용자가 자신의 식습관을 이해하고 개선할 수 있도록 돕기 위해, 사용자의 식사를 기록하고 영양 섭취를 분석합니다.
• 요리 경험이 부족한 사용자도 쉽게 건강식을 만들 수 있도록 돕기 위해, 배달된 식재료로 요리하는 방법을 단계별로 안내합니다.

서비스 이용 흐름은 어렵게 생각하실 필요 없습니다. 만약 위의 예시가 어렵게 느껴지신다면, 자주 사용하시는 앱을 켜서 보통 무엇을 위해 사용하는지, 어떤 기능을 가장 잘 사용하고 있는지 살펴보세요. 그 내용을 우리 앱으로 치환하여 설명하면 됩니다. ​

STEP 4. 사용 설명서 만들어 보기 (심화 단계)

사용 설명서에 포함할 이용 흐름을 하나하나 나열하다 보면, 구체화해야 할 항목이 눈에 보이기 시작합니다. 소셜 로그인을 사용할 것인지, 상품 카테고리는 어떻게 구성할 것인지, 페이지뷰는 어떻게 구성할 것인지 생각나는 것들이 많을 텐데요. 이제 이것들을 하나하나 정리하는 시간을 갖습니다. ​

✔️ 회원가입 및 프로필 설정

• 앱을 다운로드하고 회원가입을 합니다.
• 키, 몸무게, 나이, 성별, 활동 수준 등의 기본 정보를 입력합니다.
• 건강 목표 (예: 체중 감량, 근육 증가)를 선택합니다.
• 식품 알레르기, 선호하는 음식, 기피하는 음식 등을 입력합니다. ​

✔️ 맞춤형 식단 계획 받기

• AI가 사용자의 프로필을 분석하여 맞춤형 주간 식단을 제안합니다.
• 사용자는 제안된 식단을 검토하고 필요시 수정할 수 있습니다. ​

✔️ 식재료 주문 및 배달

• 생성된 식재료 목록을 확인하고 원하는 배달 날짜와 시간을 선택합니다.
• 주문한 식재료가 선택한 시간에 집으로 배달됩니다. ​

✔️ 요리 및 식사

• 배달된 식재료로 앱의 요리 가이드를 따라 음식을 만듭니다.
• 완성된 음식의 사진을 찍어 앱에 기록할 수 있습니다. ​

✔️ 영양 분석 및 피드백

• 먹은 음식을 앱에 기록하면 자동으로 영양 분석이 이루어집니다.
• AI가 사용자의 진행 상황을 분석하고 개선점을 제안합니다. ​

✔️ 지속적인 최적화

• 사용자의 피드백과 데이터를 바탕으로 AI가 지속적으로 학습합니다. ​

지금은 아이디어를 정리하는 단계이므로 우선 생각나는 대로 작성하고, 칸을 비워두거나 개발 회사의 의견이 필요한 영역을 따로 정리해서 추후에 논의하는 것도 좋습니다. 만약 벤치마킹할 타 서비스가 있다면 ‘참고 자료’로 준비하시는 것도 좋습니다. 개발 업체 입장에서도 화면을 직접 확인할 수 있기 때문에, 글로만 설명하는 것보다 훨씬 이해도가 높아집니다. ​

STEP 5. 관리자 페이지 기획하기

요구사항 정의서를 작성할 때 조금 더 알찬 내용을 준비하고 싶다면, 관리자 페이지와 기능에 대해서 알아두시는 것도 좋습니다. 관리자 페이지는 서비스의 전반적인 운영과 관리뿐만 아니라 사용자 행동, 트래픽, 매출 등의 주요 지표를 실시간으로 모니터링하는 기능인데요. 보안과 계정 관리, 콘텐츠의 추가·삭제 측면에서도 중요한 역할을 합니다. ​

하지만 한 번도 관련 서비스를 제작해 보신 적이 없는 분들이라면 관리자 페이지에 대한 개념 자체가 명확하지 않습니다. 이 부분은 보통 개발 회사와 기획 단계에서 논의하는 경우가 많은데요. 만약 먼저 준비하고 싶으신 분들이라면 아래의 글을 참고해 먼저 생각해 보는 것을 권장합니다. ​

✅ 참고 : 어플제작 필수, ‘관리자 페이지’에 꼭 들어가야 할 6가지

그래도 어렵다면, ‘위시켓’하세요.

경험에 비추어 보자면, 사실 완벽한 요구사항 정의서란 존재하지 않습니다. 그래서 어느 정도 정리만 되었다면, 빠르게 공유해 피드백을 받고 개선/보완으로 다듬어 가는 방식이 오히려 나은 방식이라고 볼 수 있습니다. 그런데 문제는 누구에게 어떻게 피드백을 받을 수 있냐입니다. 정답은 바로 ‘위시켓’에 있죠. ​

위시켓은 프로젝트 내용을 간단히 공유하기만 하면, 1:1로 전담 매니저가 배정됩니다. 유선 상담을 통해 어떤 프로덕트를 구현하려고 하는지를 상세히 이야기 나누고, 그에 맞는 요구사항 정의서 작성을 가이드해 드립니다. 이어 진행되는 적합한 업체 찾기와 견적 비교, 미팅과 일정 조율, 계약서 작성과 법률 검토, 안전한 대금 지급까지 진행의 전 과정을 매니징합니다. ​

외주 개발이라는 생소한 경험이 부담된다면, 위시켓이 가장 안정적인 대안입니다. 지금 여러분이 만들고 싶은 프로덕트를 위시켓에 공유해 보세요.

🔖 함께 보면 도움되는 글

앱개발 비용 효율 높이는 클라이언트의 기술 2가지

앱개발 비용 줄이는 방법, ‘기간’ 다이어트

모바일 앱개발 외주, 진행 과정&순서 완벽 정리 (시간순)