요구사항을 정리해야 하는 이유
1. 수많은 요구사항 중 가장 긴급하고 중요도가 높은 사항이 무엇인지 우선순위 기반으로 알 수 있습니다.
2. 문서 기반으로 필요 기능등을 정리하면 보다 명확하게 필요 사항들을 협의할 수 있습니다.
요구사항 정리
•
ID : 요구사항 구분을 위한 ID (RQ는 ReQuest 줄임말)
•
•
•
요구사항 : 구현해야 할 내용 간략하게 명시
•
구현 내용 : 구현해야 하는 내용 구체적으로 명시 (감귤마켓 요구사항 명세에 있는 내용 정리)
•
필수or선택 : 필수 과제인지 선택 과제인지
•
•
ID | 기능 | 페이지명 | 요구사항 | 구현 내용 | 필수or선택 | 디자인시안 화면명 | 감귤마켓 명세 소제목 | 작성일 |
RQ-0001 | 1. 시작화면 | Splash 페이지 | 서비스 접속 초기 화면 | * 사용자가 로그인을 하지 않았다면 로그인 메인 페이지(RQ-0002)로 이동한다.
* 사용자 로그인이 되어 있다면 홈 피드 페이지(RQ-0006)로 이동한다. | 필수 | Splash Screen | 3.1.1 splash | 22/12/03 |
RQ-0002 | 2. 로그인 | 로그인 메인 페이지 | 로그인 종류를 선택할 수 있다.
- [SNS 로그인], [이메일 로그인] | * SNS(카카오톡, 구글, 페이스북) 로그인 기능은 구현하지 않는다.
* 이메일로 로그인을 클릭하면 이메일 로그인 페이지(RQ-0003)로 이동한다.
* 회원가입을 클릭하면 회원가입 페이지(RQ-0004)으로 이동한다. | 필수 | Login | 3.1.2 로그인 | 22/12/03 |
RQ-0003 | 2. 로그인 | 이메일 로그인 페이지 | 이메일 로그인을 진행한다. | * 입력창에 focus 될 경우에는 테두리의 색이 변한다.
* 이메일과 비밀번호를 모두 입력하면 다음 버튼이 활성화 된다. 입력되지 않은 입력창이 있다면 버튼은 활성화되지 않는다.
* 로그인 버튼을 클릭하면 이메일 주소와 로그인에 대한 유효성 검사를 진행한다. 이메일 주소 또는 비밀번호가 일치하지 않을 경우에는 경고 문구가 나타난다.
* 이메일로 회원가입을 클릭하면 회원가입 페이지(RQ-0004)으로 이동한다. | 필수 | Login - email | 3.1.2 로그인 | 22/12/03 |
RQ-0004 | 3. 회원가입 | 회원가입 페이지 | 회원 가입을 진행한다.
- [이메일(필수)], [비밀번호(필수)] 입력 | * 입력창에 focus 될 경우에는 테두리의 색이 변한다.
* 회원가입 페이지에서는 유효성 검사가 로그인 페이지와 조금 다르게 진행된다.
- 이메일 주소 또는 비밀번호를 입력하고 입력창에서 포커스를 잃으면 바로 유효성 검사가 된다.
* 유효성 검사를 통과하지 못한 경우 경고 문구가 각 입력창 하단에 표시된다.
- 이메일 주소의 형식이 유효하지 않은 경우, 이미 가입된 이메일일 경우, 비밀번호가 6자 미만일 경우
* 이메일, 비밀번호가 모두 유효성 검사를 통과한 경우 다음 버튼이 활성화된다.
* 다음 버튼을 클릭하면 프로필 설정 페이지(RQ-0005)로 이동한다. | 필수 | Join membership | 3.1.3 회원가입 | 22/12/03 |
RQ-0005 | 3. 회원가입 | 프로필 설정 페이지 | 사용자의 프로필을 설정한다.
- [프로필 사진(선택)], [사용자 이름(필수)], [계정 ID(필수)], [소개(선택)] 입력 | * 사용자는 프로필 설정에 필요한 프로필 사진, 사용자 이름(2~10자 이내), 계정 ID, 소개를 입력한다.
- 프로필 사진은 등록하지 않을 경우 기본 이미지가 등록된다.
- 사용자 이름과 소개는 다른 사용자와 중복될 수 있다.
- 계정 ID는 중복이 불가능하다.
- 프로필 설정에서도 회원 가입과 같은 방식으로 유효성 검사가 진행된다. 계정 ID에 대한 중복 유무와 형식을 검사한다.
* 감귤마켓 시작하기 버튼을 클릭하면 홈 피드 페이지(RQ-0006)로 이동한다.
[추가로 생각해 볼 내용]
* 사용자 이름 형식은 어떻게 할까?
- 2~10자 이내면 한글, 숫자, 영어, 특문 다 상관없나? 개발하면서 체크해봐도 될듯..
* 계정 ID 형식은 어떻게 할까?
- API명세 내용 : accountname은 영문자, 숫자, 점(.), 밑줄(_)만 포함해야 합니다. | 필수 | Join membership-2 | 3.1.3 회원가입 | 22/12/03 |
RQ-0006 | 4. 피드 | 홈 피드 페이지 | 사용자가 팔로우 하고 있는 사용자들이 올린 게시글들이 표시된다. | * 사용자는 자신이 팔로우한 사용자의 게시글만 감귤마켓 피드에서 확인할 수 있다.
* 팔로우한 사용자가 없거나 팔로우한 사용자가 올린 게시글이 없는 경우 "유저를 검색해 팔로우 해보세요!" 문구와 함께 검색하기 버튼이 표시된다.
* 검색하기 버튼을 클릭하거나 감귤마켓 피드 상단 검색 버튼을 클릭하면 검색 페이지(RQ-0007)로 이동한다. | 필수 | Home | 3.1.4 감귤마켓 피드(홈 화면) | 22/12/03 |
RQ-0007 | 5. 검색 | 검색 페이지 | 사용자 이름과 계정을 검색한다. | [필수 과제 / 선택 과제]
* 필수 과제 : 검색 기능은 구현하지 않고 마크업만 구현한다.
* 선택 과제
- 입력창에 텍스트를 입력하면 해당하는 사용자가 나오도록 한다.
- 검색어와 같은 단어에는 주황색 글씨가 표시된다.
- 검색한 사용자를 선택하면 해당 사용자의 프로필 페이지(RQ-0008)로 이동한다. | 부분 필수 | Search (필수 과제)
Search-2 (선택 과제) | 3.1.5 검색 | 22/12/03 |
RQ-0008 | 6. 프로필 | your profile 페이지,
my profile 페이지 | 사용자는 본인의 프로필, 다른 사용자의 프로필을 확인할 수 있다.
- 공통 : [사용자 이름], [계정 ID], [소개], [팔로워 및 팔로잉 수], [판매 상품], [사용자가 업로드한 게시글] 조회 가능
- 본인의 프로필인 경우 : [프로필 수정 버튼], [상품 등록 버튼] 추가 표시
사용자는 다른 사용자를 팔로우, 언팔로우 할 수 있다. | * 사용자 정보 하단에는 팔로우 버튼이 있다. 팔로우 버튼을 클릭하면 언팔로우 버튼으로 바뀌어야 한다. 단, 필수 과제에서는 팔로우 기능은 구현하지 않고 버튼의 변화만 구현한다.
* 팔로워 및 팔로잉 수를 클릭하면 팔로잉, 팔로워 목록 페이지(RQ-0009)로 이동한다.
* [판매 상품] 섹션은 등록한 상품이 없을 경우에는 표시되지 않는다.
* [사용자가 업로드한 게시글] 섹션은 사용자가 등록한 게시글이 없는 경우 표시되지 않는다.
* [사용자가 업로드한 게시글] 섹션에서는 목록형과 앨범형으로 게시글들을 확인할 수 있다. 기본형은 목록형이며, 이미지가 없는 게시글인 경우에는 앨범형에서는 표시되지 않는다.
* 사용자의 프로필인 경우 판매 중인 상품을 클릭하면 하단에 상품 삭제, 수정, 웹사이트에서 상품 보기 버튼이 포함된 메뉴가 나타난다.
* 다른 사용자의 프로필인 경우 판매 중인 상품을 클릭하면 바로 상품 판매 사이트로 이동한다.
* 나의 프로필 페이지에서 프로필 수정 버튼을 클릭하면 내 프로필 수정 페이지(RQ-0010)로 이동한다.
* 나의 프로필 페이지에서 상품 등록 버튼을 클릭하면 상품 등록 페이지(RQ-0011)로 이동한다.
* 사용자가 업로드한 게시글 하단 댓글 아이콘을 클릭하면 게시물 상세 페이지(RQ-0013)로 이동한다.
[디자인 시안에는 있으나 감귤마켓 명세에는 없는 내용]
* 다른 사용자와 채팅 기능 (채팅 기능 구현이 필수가 아니라 빠져있는 듯)
* 공유하기 기능 | 필수 | Your profile
My profile | 3.1.6 사용자 프로필 페이지 | 22/12/03 |
RQ-0009 | 7. 팔로잉 | 팔로잉 목록 페이지,
팔로워 목록 페이지 | 사용자는 본인 및 타인의 팔로워, 팔로잉 목록을 확인할 수 있다.
- [프로필 사진], [이름], [계정 ID], [팔로우 또는 언팔로우] 조회 가능 | * 팔로우 한 사용자일 경우 취소 버튼이, 팔로우 하지 않은 사용자일 경우에는 팔로우 버튼이 표시된다.
[필수 과제 / 선택 과제]
* 필수 과제 : 팔로우, 언팔로우 기능은 구현하지 않고 버튼의 변화만 구현한다.
* 선택 과제 : 팔로우, 언팔로우 기능 구현
- 팔로우 버튼을 클릭하면 팔로잉 목록에 해당 사용자가 추가된다.
- 취소 버튼을 클릭하면 팔로잉 목록에서 해당 사용자가 삭제되어야 한다.
- 팔로워 및 팔로잉 목록에 내가 표시될 경우 팔로우 버튼은 나타나지 않는다. | 부분 필수 | Your Profile(별도 넘버링 되어있진 않음. Your Profile 중 Followers 리스트 출력하는 시안 참고) | 3.1.7 팔로워, 팔로잉 목록 | 22/12/03 |
RQ-0010 | 8. 회원정보 수정 | 프로필 수정 페이지 | 사용자는 본인의 프로필 정보를 수정할 수 있다. | * 입력창에 대한 명세는 회원가입에서의 프로필 설정과 동일하다.
* 유효성 검사가 통과되지 않을 경우 저장 버튼이 활성화되지 않는다. | 필수 | Profile modification | 3.1.8 내 프로필 수정 | 22/12/03 |
RQ-0011 | 9. 상품 | 상품 등록 페이지 | 사용자는 판매할 상품을 등록할 수 있다.
- [상품 이미지(필수)], [상품명(필수)], [가격(필수)], [판매링크(필수)] 입력 | * 상품 이미지, 상품명, 가격, 판매링크의 입력이 모두 완료되면 저장 버튼이 활성화된다.
* 상품명은 2~15자 이내로 입력되어야 한다.
* 가격은 숫자를 입력하면 자동으로 원단위로 변환(콤마 추가)시킨다.
* 가격은 문자로(예: 만원) 입력할 수 없다.
* 가격은 1원 이상의 숫자여야 한다. | 필수 | Add product | 3.1.9 상품 등록 | 22/12/03 |
RQ-0012 | 9. 상품 | 상품 수정 페이지 | 사용자는 자신이 등록한 판매 상품 정보를 수정할 수 있다. | 필수 | product modification | 명세에 빠져있음 | 22/12/03 | |
RQ-0013 | 10. 게시물 | 게시물 상세 페이지 | 사용자는 본인 및 타인이 올린 게시글과 댓글을 조회할 수 있다. | 필수 | Post | 3.1.10 게시글 댓글 페이지 | 22/12/03 | |
RQ-0014 | 10. 게시물 | 게시물 상세 페이지 | 사용자는 본인 및 타인이 올린 게시글에 댓글을 작성할 수 있다. | [필수 과제 / 선택 과제]
* 필수 과제 : 댓글 입력창에 텍스트를 입력하면 게시 버튼이 활성화된다.
* 선택 과제
- 댓글 작성이 현재 시간으로 부터 몇 초, 분, 시간 전에 작성되었는지 표시한다.
- 댓글 개수는 카운트 되어 말풍선 아이콘 우측에 표시된다. | 부분 필수 | Post | 3.1.10 게시글 댓글 페이지 | 22/12/03 |
RQ-0015 | 10. 게시물 | 게시물 상세 페이지 | 사용자는 본인이 올린 댓글을 삭제할 수 있다. | [선택 과제]
* 선택 과제 : 댓글 삭제 기능을 구현한다. | 선택 | Post | 3.1.10 게시글 댓글 페이지 | 22/12/03 |
RQ-0016 | 10. 게시물 | 게시물 상세 페이지 | 사용자는 타인이 올린 댓글을 신고할 수 있다. | [선택 과제]
* 선택 과제 : 신고하기 기능을 구현한다. | 선택 | Post | 3.1.10 게시글 댓글 페이지 | 22/12/03 |
RQ-0017 | 10. 게시물 | 게시물 작성 페이지 | 사용자는 게시글을 작성할 수 있다.
- [내용], [사진] 입력
- 둘 중 하나는 입력되어야 게시글 작성 가능 | * 내용이 입력되거나 사진이 업로드 되면 업로드 버튼이 활성화된다.
* 업로드 버튼을 누르면 게시글이 업로드된다.
* 사진은 우측 하단 버튼을 클릭하면 업로드할 수 있다.
[필수 과제 / 선택 과제]
* 필수 과제 : 한 장만 업로드 가능하도록 구현
* 선택 과제 : 여러 이미지 업로드, 단 최대 3장까지만 업로드 가능하도록 구현 | 부분 필수 | Upload | 3.1.11 게시글 작성 페이지 | 22/12/03 |
RQ-0018 | 10. 게시물 | 게시물 수정 페이지 | 사용자는 자신이 작성한 게시글을 수정할 수 있다. | 필수 | Upload | 명세에 빠져있음 | 22/12/03 | |
RQ-0019 | 11. 채팅 | 채팅방 목록 페이지 | 사용자는 채팅중인 채팅방 목록을 확인할 수 있다.
- 읽지 않은 채팅방인 경우 프로필 사진 좌측 상단에 알림 표시 | * 채팅 목록 화면은 마크업 구현 및 스타일 적용만 진행한다.
* 채팅 목록에서 특정 채팅방을 클릭하면 해당 채팅방 페이지(RQ-0020)로 이동한다. | 필수(화면만 구현) | Chat list | 3.1.12 채팅 목록 | 22/12/03 |
RQ-0020 | 11. 채팅 | 채팅방 페이지 | 사용자는 특정 사용자와 채팅을 할 수 있다. | * 채팅방은 마크업 구현 및 스타일 적용만 진행한다. 기능은 구현하지 않는다.
* 채팅 입력창에서 텍스트가 입력되면 전송 버튼이 활성화된다.
* 이미지 버튼을 클릭하고 이미지를 선택하면 전송 버튼이 활성화된다. | 필수(화면만 구현) | Chat Room | 3.1.13 채팅방 | 22/12/03 |
RQ-0021 | 공통UI | 사용자는 하단 탭 메뉴를 이용해 홈, 채팅, 게시물 작성, 프로필 페이지로 빠르게 이동할 수 있다. | * 홈 메뉴 클릭 시 홈 피드 페이지(RQ-0006)로 이동한다.
* 채팅 메뉴 클릭 시 채팅방 목록 페이지(RQ-0019)로 이동한다.
* 게시물 작성 메뉴 클릭 시 게시물 작성 페이지(RQ-0017)로 이동한다.
* 프로필 메뉴 클릭 시 my profile 프로필 페이지(RQ-0008)로 이동한다. | 필수 | 공통
(맨 아래 ‘디자인 참고 > 하단 탭 메뉴’에 예시 이미지 있음) | 3.1.14 하단 탭 메뉴 | 22/12/03 | |
RQ-0022 | 공통UI | 사용자는 마음에 드는 게시글을 추천할 수 있다. | * 게시글 하단에는 하트 모양에 좋아요 버튼이 있다.
* 빈 하트를 클릭하면 색이 칠해진 하트로 변하고, 색이 칠해진 하트를 누르면 빈 하트로 변한다.
[필수 과제 / 선택 과제]
* 필수 과제 : 좋아요 기능은 구현하지 않고 하트 색의 변화만 구현한다.
* 선택 과제 : 좋아요 기능 구현
- 좋아요 개수는 카운트 되어 하트모양 우측에 표시된다. | 부분 필수 | 게시글 공통 | 3.1.15 좋아요 버튼 | 22/12/03 | |
RQ-0023 | 공통UI | 사용자는 헤더의 모달 버튼을 눌러 자신의 정보를 관리할 수 있다.
- [설정 및 개인정보], [로그아웃] | [디자인 시안&감귤마켓 명세에 없는 내용]
* [설정 및 개인정보]를 클릭하면 프로필 수정 페이지(RQ-0010)로 이동한다. (임의로 생각해봄) | 필수 | 헤더 공통
(Your profile 시안 아래 모달 시안 참고) | 3.1.16 모달 버튼 | 22/12/03 | |
RQ-0024 | 공통UI | 사용자는 자신이 작성한 게시글의 모달 버튼을 눌러 작성한 게시글을 관리할 수 있다.
- [삭제], [수정]
사용자는 타인이 작성한 게시글의 모달 버튼을 눌러 게시글을 신고할 수 있다.
- [신고] | * 사용자가 작성한 게시글인 경우 삭제, 수정 버튼이 나타난다.
* 다른 사용자가 작성한 게시글인 경우 신고 버튼이 나타난다. | 필수 | 게시글 공통
(My Profile 시안 아래 첫번째 모달 시안 참고) | 3.1.16 모달 버튼 | 22/12/03 | |
RQ-0025 | 공통UI | 사용자는 자신이 작성한 댓글의 모달 버튼을 눌러 댓글을 삭제할 수 있다.
- [삭제]
사용자는 타인이 작성한 댓글의 모달 버튼을 눌러 댓글을 신고할 수 있다.
- [신고하기] | * 사용자가 작성한 댓글인 경우 삭제 버튼이 나타난다.
* 다른 사용자가 작성한 댓글인 경우 신고하기 버튼이 나타난다. | 필수 | 댓글 공통
(Post 시안 아래 모달 시안 참고) | 3.1.16 모달 버튼 | 22/12/03 | |
RQ-0026 | 공통UI | 사용자는 채팅방 화면의 모달 버튼을 눌러 채팅방을 나갈 수 있다.
- [채팅방 나가기] | 필수 | Chat Room 시안 아래 모달 시안 참고 | 3.1.16 모달 버튼 | 22/12/03 | ||
RQ-0027 | 공통UI | 사용자는 자신이 등록한 상품을 클릭해 상품을 관리할 수 있다.
- [삭제], [수정], [웹사이트에서 상품 보기] | * 수정 클릭 시 게시물 수정 페이지(RQ-0018)로 이동한다. | 필수 | My Profile 시안 아래 두번째 모달 시안 참고 | 명세에 빠져있음 | 22/12/03 | |
RQ-0028 | 공통UI | 시스템은 사용자가 로그아웃, 게시글 삭제, 댓글 삭제, 댓글 신고, 판매 중인 상품 삭제, 채팅방 나가기 버튼을 누른 경우 사용자의 동작을 최종 확인한다. | * 로그아웃 경우 : 로그아웃하시겠어요? → 취소 / 로그아웃
- ‘로그아웃’ 클릭시 로그인 메인 페이지(RQ-0002)로 이동한다.
* 게시글 삭제 경우 : 게시글을 삭제할까요? → 취소 / 삭제
* 게시글 신고 경우 : 게시글을 신고하시겠어요? → 취소 / 신고
* 댓글 삭제 경우 : 댓글을 삭제할까요? → 취소 / 삭제
* 댓글 신고 경우 : 신고하시겠어요? → 취소 / 신고
* 상품 삭제 경우 : 상품을 삭제할까요? → 취소 / 삭제
* 채팅방 나가기 경우 : 채팅방을 나가시겠어요? → 취소 / 나가기 | 필수 | 사용자 동작 확인이 필요한 경우 공통 | 3.1.16 모달 버튼 | 22/12/03 | |
RQ-0029 | 12. 날씨 | 날씨별로 산책 여부를 알려준다. | * OpenAPI 사용 | 필수 | - | 22/12/03 | ||
RQ-0030 | 14. 에러화면 | 사용자가 입력한 URL을 찾을 수 없는 경우 404 페이지를 출력한다. | 필수 | page-404 | - | 22/12/03 | ||
RQ-0031 | 11. 집사생활 메인 | 집사생활 메인 페이지 | 필수 | 22/12/03 | ||||
RQ-0032 | 13. 동물병원 | 근처 동물병원을 알려준다. | 필수 | 22/12/03 |
디자인 참고
•
하단 탭 메뉴