프로젝트 요구사항 정리

홍승민·2024년 8월 12일
0
post-thumbnail

제 프로젝트 주제는 개인의 취향과 필요에 맞는 레시피를 추천받을 수 있는 웹사이트입니다. 이 웹사이트를 성공적으로 구현하기 위해서는 개발을 시작하기 전에 기능적 요구사항과 비기능적 요구사항을 명확히 정의하는 것이 중요하다고 생각하여 이 글에서는 이 두 가지 요구사항의 개념을 정리하고, 제가 만들고자 하는 웹사이트의 구체적인 요구사항들을 적어보고자 합니다.

기능적 요구사항과 비기능적 요구사항

시스템 개발 과정에서 요구사항은 시스템의 성공적인 구현을 위해 반드시 정의되어야 합니다. 이 요구사항은 크게 기능적 요구사항비기능적 요구사항으로 나뉩니다. 이 두 가지 요구사항은 시스템의 서로 다른 측면을 다루며, 각각의 역할과 중요성은 명확하게 구분됩니다.


기능적 요구사항

기능적 요구사항은 시스템이 수행해야 하는 특정 기능이나 서비스에 대한 요구사항을 정의합니다. 이 요구사항은 사용자가 시스템을 통해 얻을 수 있는 직접적인 결과를 나타내며, 시스템이 제공해야 하는 기능적 동작을 명시합니다.

예를 들어, 은행의 온라인 뱅킹 시스템을 개발한다고 가정할 때, 기능적 요구사항에는 다음과 같은 내용이 포함될 수 있습니다:

  • 사용자는 자신의 계좌 잔액을 조회할 수 있어야 한다.
  • 사용자는 다른 계좌로 이체를 할 수 있어야 한다.
  • 사용자는 거래 내역을 확인할 수 있어야 한다.

구체적 예시:
"사용자는 로그인 페이지에서 ID와 비밀번호를 입력하여 시스템에 로그인할 수 있어야 한다."
이 요구사항은 사용자가 시스템에 접근하기 위해 수행해야 하는 구체적인 기능을 명시하고 있습니다.

비기능적 요구사항

비기능적 요구사항은 시스템의 품질 속성, 성능, 보안, 확장성 등 기능적 요구사항 이외의 요소를 다룹니다. 이 요구사항은 시스템이 어떻게 작동해야 하는지를 정의하며, 시스템의 사용자 경험과 성능에 큰 영향을 미칩니다.

비기능적 요구사항의 예로는 다음과 같은 것들이 있습니다:

  • 시스템은 1초 이내에 사용자 요청에 응답해야 한다.
  • 시스템은 하루에 최소 10만 명의 사용자를 처리할 수 있어야 한다.
  • 시스템은 사용자의 개인정보를 암호화하여 저장해야 한다.

구체적 예시:
"시스템은 99.9%의 가용성을 유지해야 한다."
이 요구사항은 시스템이 높은 신뢰성을 유지해야 함을 강조하며, 다운타임을 최소화하기 위한 비기능적 요구사항입니다.


기능적 요구사항과 비기능적 요구사항의 차이점

기능적 요구사항과 비기능적 요구사항의 주요 차이점은 다음과 같습니다:

  • 기능적 요구사항은 시스템이 무엇을 해야 하는지에 초점을 맞추며, 비기능적 요구사항은 시스템이 어떻게 작동해야 하는지에 초점을 맞춥니다.
  • 기능적 요구사항은 구체적이고 측정 가능하며, 비기능적 요구사항은 일반적으로 성능, 보안, 확장성 등의 품질 속성에 관련됩니다.

레시피 추천 웹의 요구사항

제가 개발하고자 하는 레시피 추천 웹의 기능적 요구사항과 비기능적 요구사항을 정리하면 다음과 같습니다:

기능적 요구사항

카테고리기능설명
1. 사용자 관리 기능
회원가입/로그인사용자는 이메일, 소셜 미디어 계정(Google, Facebook 등)을 사용해 가입 및 로그인할 수 있어야 합니다.
비밀번호 재설정사용자는 비밀번호를 재설정할 수 있는 기능이 있어야 합니다.
프로필 관리사용자는 자신의 프로필 정보를 편집하고 저장할 수 있어야 합니다 (예: 이름, 프로필 사진, 선호 요리 스타일 등).
식단 관리사용자는 자신의 선호 식단 (채식, 글루텐 프리 등)을 설정할 수 있어야 합니다.
2. 레시피 탐색 및 검색 기능
카테고리별 탐색사용자는 카테고리(예: 아침, 점심, 저녁, 디저트 등)별로 레시피를 탐색할 수 있어야 합니다.
재료별 검색사용자는 특정 재료를 기반으로 레시피를 검색할 수 있어야 합니다.
키워드 검색사용자는 제목, 설명, 태그 등의 키워드를 사용해 레시피를 검색할 수 있어야 합니다.
필터 기능사용자는 조리 시간, 난이도, 칼로리, 리뷰 평점 등 다양한 기준으로 레시피를 필터링할 수 있어야 합니다.
3. 레시피 추천 기능
개인화된 추천사용자의 선호도, 이전 검색 및 사용 기록을 바탕으로 맞춤형 레시피를 추천합니다.
인기 레시피전체 사용자 사이에서 인기 있는 레시피를 추천합니다.
계절/행사 추천계절, 명절, 특별 행사에 맞는 레시피를 추천합니다.
식단 기반 추천사용자의 식단 설정(채식주의, 저탄수화물 등)에 맞는 레시피를 추천합니다.
4. 레시피 상세 페이지 기능
레시피 정보레시피명, 요리 시간, 난이도, 필요한 재료, 조리 방법, 영양 정보, 레시피 작성자 정보 등을 포함합니다.
이미지/비디오조리 과정을 보여주는 이미지 및 동영상을 제공합니다.
리뷰 및 평점사용자가 레시피에 대한 리뷰를 작성하고 평점을 부여할 수 있습니다.
즐겨찾기사용자가 레시피를 즐겨찾기(북마크)할 수 있습니다.
공유 기능소셜 미디어나 이메일을 통해 레시피를 공유할 수 있습니다.
5. 사용자 상호작용 기능
댓글 및 피드백사용자가 레시피에 대해 댓글을 남기고 질문을 할 수 있는 기능이 있습니다.
사용자 간 메시징사용자가 서로 메시지를 주고받을 수 있는 기능이 포함될 수 있습니다.
팔로우 시스템사용자가 좋아하는 레시피 작성자를 팔로우하고, 해당 작성자의 새로운 레시피 업데이트를 받을 수 있습니다.
커뮤니티 기능사용자가 요리 팁을 공유하고 토론할 수 있는 포럼이나 그룹 기능을 제공합니다.
6. 관리자 기능
레시피 검토 및 승인제출된 레시피를 검토하고 승인하는 기능이 있어야 합니다.
사용자 관리사용자 계정을 관리하고, 필요 시 사용자를 차단하거나 경고를 부여할 수 있습니다.
콘텐츠 관리레시피, 댓글, 리뷰 등을 관리하고, 부적절한 콘텐츠를 삭제할 수 있는 기능이 필요합니다.
통계 및 분석사용자 활동, 레시피 인기, 검색 패턴 등을 분석할 수 있는 대시보드가 필요합니다.
7. 부가 기능
다국어 지원웹사이트를 여러 언어로 사용할 수 있는 기능이 필요합니다.
레시피 인쇄 및 다운로드사용자가 레시피를 인쇄하거나 PDF로 다운로드할 수 있는 기능이 제공됩니다.
캘린더/식단 계획사용자가 주간/월간 식단을 계획하고 저장할 수 있는 기능이 필요합니다.

비기능적 요구사항

번호요구사항
1시스템은 1초 이내에 레시피 검색 결과를 반환해야 한다.
2시스템은 1천 명 이상의 동시 접속자를 처리할 수 있어야 한다.
3사용자의 개인 정보는 반드시 암호화되어 저장되어야 한다.
4시스템은 월 99.9% 이상의 가용성을 유지해야 한다.

마치며

이번에는 기능적 요구사항과 비기능적 요구사항이 무엇인지 정리해보았고 제 프로젝트 주제인 레시피 추천 웹에 대한 기능적 요구사항과 비기능적 요구사항을 정리해보았습니다. 다음에는 프로젝트 환경설정과 기초설정들, 백 프론트 연결에 대해서 적어보겠습니다. 글 읽어주셔서 감사합니다~!

profile
열심히 배워가는 중..

0개의 댓글