개인프로젝트

1. 요구사항 정의서와 기능 명세서

자바걸 2024. 3. 20. 21:35

개인프로젝트를 시작하려고 한다. 

프로젝트를 개발하면서 개발 과정을 블로그에 기록하고자 한다!

먼저, 실제 코드를 짜기에 앞서서 내가 개발할 프로젝트의 목표, 기능 등을 정리하고자 한다.


📍 프로젝트 주제 선정

모여서 운동을 할 수 있는 서비스를 제공해주는 웹 어플리케이션을 개발하고자 한다.

관심있는 운동종목에 대한 클럽을 만들고, 모임이 정해지면 참여할 수 있도록 하는 기능이 중점이다.

모.운.완 (모여서 운동 완료)라고 정했다.

프로젝트 로고


📍 기술스택 결정

  1. IDE : 인텔리제이 얼티메이트
  2. 빌드 : Maven
  3. 라이브러리 :
    • 스프링 부트
    • 스프링 웹 MVC
    • 타임리프
    • 스프링 시큐리티
    • 스프링 데이터 JPA
    • PostgreSQL
    • 롬복
    • 스프링 mail
    • QueryDSL
    • 스프링 부트 devtools

 


📍요구사항 정의

요구사항 정의서
: 프로젝트의 목적, 범위, 기능 등을 명확하게 정리한 문서이다. 프로젝트의 기본적인 요구사항들을 분석하고 정의하는데 중점을 둔다.

1. 요구사항 ID : 요구사항을 하나의 큰 틀로 정의할 필요가 있다. ex)로그인 및 회원가입 등을 MEM 으로 통칭 - 요구사항 ID는 MEM-01이 될 수 있다.
2. 메뉴 : 이 요구사항이 화면에서 처리되는 부분인지, 기능적인 부분에서 처리되는 부분인지 구분할 필요가 있다.
3. 요구사항명 : 요구사항 ID가 대분류의 키워드라면, 이 부분은 로그인인지 회원가입인지를 명시하는 부분이다. 중분류라고 생각하면 될 듯 하다.
4. 기능명 : 요구사항명에서 조금 더 자세히 들어간다. 어떤 기능을 구현해야할지, 기능의 이름을 적는 부분이다.
5. 상세 기능 : 기능명에 대한 자세한 설명이다.
6. 필수 데이터 : 기능을 구현할 때 꼭 필요한 데이터들

 

요구사항ID 요구사항명 기능ID 기능명 상세기능 필수데이터 선택데이터 권한
CLUB_01
클럽 생성
CLUB01_CREATE01 운동클럽 모임 생성 운동클럽을 생성한다 클럽 이름, 클럽 운동 종목, 인원   클럽 관리자만 가능
CLUB01_CREATE02 운동종목 등록 클럽의 운동 종목을 선택한다 클럽 운동 종목   클럽 관리자만 가능
클럽 공개
CLUB02_OPEN01 클럽 공개 생성된 클럽을 공개로 돌린다.(비공개가 디폴트)     클럽 관리자만 가능
CLUB02_OPEN02 클럽 비공개 클럽을 드래프트로 전환한다.     클럽 관리자만 가능
클럽 종료 CLUB03_CLOSE01 클럽 종료 클럽을 종료한다.     클럽 관리자만 가능
클럽 인원모집 CLUB04_ADDMEMBER01 클럽 인원모집 생성된 클럽에 인원모집을 시작한다.     클럽 관리자만 가능
클럽 경로변경 CLUB05_PATH01 클럽 접속 경로 변경 클럽이 기존 접속 경로를 변경한다. 경로주소   클럽 관리자만 가능
클럽 삭제 CLUB06_DELETE01 클럽 삭제 종료된 클럽을 삭제한다.     클럽 관리자만 가능
클럽 가입
CLUB07_JOIN01 클럽 가입 신청 인원 모집을 하는 클럽에 참여를 신청한다.      
CLUB07_JOIN02 클럽 가입 수락 가입 신청한 멤버를 클럽 가입에 수락한다.     클럽 관리자만 가능
CLUB07_JOIN03 클럽 가입 거절 가입 신청한 멤버를 클럽 가입에 거절한다.     클럽 관리자만 가능
클럽 탈퇴 CLUB08_DROP01 클럽 탈퇴 가입한 클럽에서 탈퇴한다.      
MEM_01
로그인
MEM01_LOGIN01 로그인 기능 우리 기능을 사용하기 위해 로그인 필수 ID, 비밀번호    
MEM01_LOGIN02 아이디 찾기 이메일 주소와 이름을 입력하면 해당 아이디를 보여준다. 아이디, 이메일주소    
MEM01_LOGIN03 비밀번호 재설정 받은 이메일로 비밀번호를 재설정할 수 있다. 아이디, 이메일주소    
MEM_02
회원가입
MEM02_SIGNUP01 회원가입 회원가입을 한다. 이름, 비밀번호, 이메일 주소    
MEM02_SIGNUP02 이메일 인증 이메일 인증 확인으로 회원가입을 완료한다. 이메일주소    
MEM_03 로그아웃 MEM03_LOGOUT01 로그아웃 로그아웃 한다.      
MEM_04
프로필
MEM04_PROFILE01 프로필 이미지 등록 계정의 프로필 이미지를 등록한다 프로필 이미지    
MEM04_PROFILE02 프로필 이미지 삭제 계정의 프로필 이미지를 삭제한다      
MEM04_PROFILE03 프로필 정보 입력 계정의 프로필 정보를 입력한다      
NOTICE_01
알림설정 NOTICE01_SET01 알림 방법 설정 웹알림으로 받을지 이메일알림으로 받을지 알림 방법을 선택한다      
알림 목록조회 NOTICE02_LIST01 알림 목록 조회 알림 목록을 조회한다.      
알림 구분 NOTICE03_SORT01 알림 구분 읽은 알림과 읽지 않은 알림을 구분한다.      
클럽 관련 알림
NOTICE03_CLUB01 클럽 변경사항 알림 설정 참여중인 클럽의 변경사항의 알림을 설정한다      
NOTICE03_CLUB02 클럽 가입신청 알림 설정 가입신청한 클럽의 신청 여부 확인 알림을 설정한다      
GATHER_01
모임
GATHER01_LIST01 모임 조회 개설된 모임 목록을 조회한다      
GATHER02_OPEN01 모임 개설 모임을 개설한다     클럽 관리자만 가능
GATHER03_MODIFIY01 모임 내용 수정 개설한 모임 내용을 수정한다     클럽 관리자만 가능
GATHER04_CANCEL01 개설한 모임 취소 개설한 모임을 취소한다     클럽 관리자만 가능
GATHER_02
모임참여
GATHER05_JOIN01 모임 참여신청 모임에 참여 신청을 한다      
GATHER05_JOIN02 모임 참여취소 참여신청한 모임에 참여를 취소한다      
GATHER05_JOIN03 모임 참여신청 수락 참여신청 멤버를 참여에 수락한다     클럽 관리자만 가능
GATHER05_JOIN04 모임 참여신청 거절 참여신청 멤버를 참여에 수락한다     클럽 관리자만 가능
GATHER05_JOIN05 모임 참여 여부 체크 모임 참여여부를 체크한다     클럽 관리자만 가능
CATEGORY_01
관심운동
CATEGORY01_REGIST01 관심운동 종목을 등록한다 관심운동 종목을 등록한다      
CATEGORY02_DELETE01 관심운동 종목을 삭제한다 관심운동 종목을 삭제한다      

📍기능 명세

기능 명세서
: 프로젝트나 제품에서, 구현될 구체적인 기능들을 상세하게 기술한 문서 -> 최종 아웃풋에 대한 기능들을 중심으로 설명한 자료
우선순위에 따라 반영된 기능들이 최종적으로 담긴 문서

  1. 요구사항 ID : 위와 동일 및 요구사항 정의서와 연결이 되는 부분
  2. 대분류 (요구사항 명) : 요구사항 명과 연결이 되는 부
  3. 주 기능 : 구현할(한) 기능에 대한 부분
  4. 필요 기술 : 이 기능을 구현하는데 필요한 기술 스택을 서술한다.
  5. API 명세 : 이 기능을 구현할 때, Test해볼 때 필요한 API 명세가 있다면 서술한다.
  6. FE/BE 구분 : 어떤 영역의 작업인지 구분할 수도 있다

📌 (운동)클럽 기능
      요구사항

○ 클럽 생성
○ 클럽 공개 및 종료
클럽 인원 모집
클럽 설정 (배너 이미지/ 클럽 운동 종목/
                     클럽 관리( 공개여부, 경로 변경, 클럽 이름 변경, 클럽 삭제)
  
클럽 참여 신청, 클럽 탈퇴

📌 계정관리 기능
      요구사항

 회원가입
 로그인/ 로그아웃
○ 프로필 작성( 프로필 이미지 등록, 프로필 정보 입력)
알림 설정
이메일 인증 
패스워드 수정
패스워드 잊어버렸을 때
관심 운동종목 등록 

📌 알림 기능 요구사항

○ 알림 목록 조회
○ 읽은 알림과 읽지 않은 알림 구분
이메일 혹은 웹으로 알림 설정
참여중인 클럽 변경 사항 알림받기 설정
클럽 참여 신청에 대한 알림 받기 설

📌 모임 기능 요구사항

모임 조회
모임 개설
모임 수정 및 취소
모임 참여신청 및 취소
모임 참여신청 수락 / 거절 / 참여 체크

📌 관심 운동 종목
       요구사항

관심 운동종목 등록
관심 운동종목 삭제