<aside>
<img src="https://noticon-static.tammolo.com/dgggcrkxq/image/upload/v1614818190/noticon/fyi6gsefstlee52h8hwb.png" alt="https://noticon-static.tammolo.com/dgggcrkxq/image/upload/v1614818190/noticon/fyi6gsefstlee52h8hwb.png" width="40px" /> 요구사항을 정리해야 하는 이유
1. 수많은 요구사항 중 가장 긴급하고 중요도가 높은 사항이 무엇인지 우선순위 기반으로 알 수 있습니다.
2. 문서 기반으로 필요 기능등을 정리하면 보다 명확하게 필요 사항들을 협의할 수 있습니다.
</aside>
요구사항 정리
- 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 |
디자인 참고
-
하단 탭 메뉴
