-
[7] 개발외- 기능명세서는 진짜 중요했다.4학년/Project-itda 2025. 5. 8. 12:21
중간보고서에 기능 명세서 쓰는게 있었어요.
처음엔 아 이런거 왜 써 ~~~ 그냥 처음에 기능회의 빡세게 하고 UI따라서 개발하다가 적당히 회의하면되지 ~~~했는데
아진짜 중요했어요
진짜 중요하다니까요????????
이유는
1. 화면 디자인 쫌 하다가 기능 명세서 작성 했으면 훨씬 더 쉬웠음
- 화면 디자인을 하다 생각한게 , " 아니 이러면 걍 기능 디자인 만드는 사람이 다 정하게되는 구조아닌가? 난 이 기능이 필요하다 생각해서 넣었는데 실제로 이 기능 개발을 맡은 사람은 안되거나, 더 추가하고 싶으면 어쩌지 ? 계속 물어봐야하네? " 가 됐습니다. 그냥 기능 명세서 진짜 자세하게 정했으면 디자인 하는 사람이 하나하나 물어 볼 필요도 없고, 디자인 하면서도 이 기능이 필요한가? 뺄까? 고민하는 시간이 줄어들었을 것 같네요
2. 모델 구축 전에 무조건 기능 명세서가 필요함
- 이것도 model 개발?도 아님. 모델 다 짜고 실제 로직 구현할 때 든 생각인데, 구현하다보면 model에 헛점이 꽤 있어요. 이건 어떤 feature가 필요한데 없고, 쓸모없는 feature가 있어서 object추가할 때 좀 난감한 경우가 있습니다.
저희가 디자인 - 모델 기획 - 모델 개발 - 주요 로직 구현 - 기능 명세서 작성 순으로 진행했는데, 마지막 기능 명세서 작성하고 나니 어떤 모델엔 어떤 feature가 필요하고, 어떻게 pk, fk를 연결할지가 눈에 보였습니다.
3. 개발 전에 방향성을 확실히 할 수 있음
- 이게 개발 전에 어떤 기능이 필요하고 어떻게 개발을 하면 된다를 정해야하는데, 저희는 개발을 하다가 작성해버리니까 자꾸 임의적으로 빼거나 추가하고 유동성이 좀 있었습니다. 개발을 유동성 있게 주관대로 한다? 좋지 않은 것 같아서요.
아무튼... 이러한 이유로 순서를
기능 큰 틀 회의 - 기능 명세서 작성 - 디자인 - 모델 - 모델 구축 - 로직 구현
순으로 해야겠다는 생각을 ... 합니다.
아래는 itda의 기능 명세서 입니다. 아직 영문 한글 일관성, 오타 수정, 어체통일도 안 했고, 재확인도 안 한
초안이긴한데... 올려봅니다. 제대로 작성한 것이 맞는가? 도 의문이 들어요.
저번에 배제대학교 RFP분석할 때, 이런식으로 기능명세가 작성된 것 같아서 비슷하게는 하는데 이것도 2년전이라 가물가물해서;;
회원가입(Rg-00) ID 구분 서비스 기능 상세기능 사용 시기 개발 형태 사전 조건 사용 조건 사후조건 Rg-00 사용자 회원가입 회원가입 UI 노출 회원가입 화면 UI 노출 메인 Nav 영역의 ‘회원가입’ 버튼 클릭 시 FE 로그인 토큰이 존재하지 않음 없음 없음 Rg-01 사용자 회원가입 이메일 인증 인증 메일 발송 및 검증.
입력 코드와 인증코드 일치 시, 인증 완료 후 가입 완료 단계 활성화
불일치 시 ‘인증코드가 틀렸습니다.’라는 알림 메시지를 출력이메일, 비밀번호 등 모든 정보를 입력한 후 ‘다음’ 버튼 클릭 시 FE+BE+google SMTP 정보 입력 단계 완료 인증코드 5자리 입력 후 다음 버튼 클릭 입력값에 따라 에러 메시지 출력 혹은 가입 완료 단계 UI 출력 Rg-02 사용자 회원가입 정보입력 – ID 유효성 검사 ID입력란의 문자열 중복 여부 확인.
ID 중복 시 빨간 테두리와 ‘중복된 ID입니다.’ 표시
영문 숫자만 입력되며 한글 입력 불가.ID 입력 후 FE+BE ID 입력란 문자열 입력 입력 후 엔터 입력 값에 따라 에러 메시지 출력 혹은 변화 없음 Rg-03 사용자 회원가입 정보입력 – PW 유효성 검사 최소 10자 이상이며, 최대 비밀번호 길이 제한 없음.
영문, 숫자 포함 여부 확인.
PW재확인과 PW입력 값 동일 여부 확인.
PW 조건에 맞지 않은 경우, ‘영문/숫자가 포함되어야 합니다’ 혹은 ‘최소 10글자 이상 설정해주세요.’ 문구와 함께 붉은색 테두리 변경PW 입력, PW 재확인 입력 후 FE PW, PW 재확인 입력란 문자열 입력 입력 후 엔터 입력 값에 따라 에러 메시지 출력 혹은 변화 없음 Rg-04 사용자 회원가입 정보 입력 – Email 유효성 검사 Email 입력란의 문자열은
ooo@xxxx.yyy 형태로 입력되어야 함. Email 형식과 맞지 않는 경우 ‘이메일 형식이 올바르지 않습니다.’ 출력Email 입력 후 FE Email 입력란 문자열 입력 입력 후 엔터 입력 값에 따라 에러 메시지 출력 혹은 변화 없음 Rg-05 사용자 회원가입 정보입력 – 필수 정보 입력 검사 아이디, 닉네임, 비밀번호, 비밀번호 재확인, 이메일 입력 여부 확인. 회원 가입 정보 입력 단계 중 FE 입력란 UI 노출 모든 필수 입력란 입력 다음(이메일 인증) 버튼 활성화 Rg-06 사용자 회원가입 약관 동의 필수 및 선택 약관 확인 및 동의.
‘->’버튼 클릭 시 약관 텍스트 출력‘.
회색 radio 버튼 클릭 시 약관 동의회원 가입 약관 동의 단계 중 FE 약관 텍스트 및 체크 버튼 노출 필수 약관 체크 버튼 클릭시 다음(정보 입력) 버튼 활성화 로그인(Lg-00) ID 구분 서비스 기능 상세기능 사용 시기 개발 형태 사전 조건 사용 조건 사후조건 Lg-01 사용자 로그인 로그인 UI 노출 로그인 메인 Nav 영역의 로그인 버튼 클릭 시 FE 로그인 토큰
존재하지 않음없음 없음 Lg-02 사용자 로그인 ID/PW 입력 ‘아이디’입력란에 사용자 ID입력.
‘비밀번호’입력란에 사용자 PW입력로그인 UI 노출 후 FE 로그인 토큰
존재하지 않음입력 후 엔터 없음 Lg-03 사용자 로그인 ID/PW 유효성 검사 ID와 PW를 입력하면 ‘다음’버튼 활성화
‘다음’버튼 클릭 시‘ DB에 저장된 ID인지 검사 후 PW 일치 여부 확인.
성공 시 토큰 발급 후 메인화면 Redirect
실패 시 ‘아이디 혹은 비밀번호가 틀렸습니다. 비밀번호는 8자리 이상 숫자와 영문 조합입니다.’ 출력ID/PW입력 후 다음 버튼 클릭 시 FE+BE 로그인 토큰 존재하지 않음 ID/PW입력 후 다음 버튼 클릭 입력 값에 따라 에러 메시지 출력
혹은
메인화면 RedirectHome Tab 구성 (Hm-00) ID 구분 서비스 기능 상세기능 사용 시기 개발 형태 사전 조건 사용 조건 사후조건 Hm-01 사용자 Home
페이지프로젝트 생성하기 ‘프로젝트 생성하기’ 버튼 클릭 시, 프로젝트 생성(Pm-00) 화면으로 redirect한다. Home의 ‘프로젝트 생성하기’버튼 클릭 시 FE 로그인 토큰
존재없음 프로젝트 생성 페이지
redirectHm-02 사용자 Home
페이지프로젝트 리스트 필터링 .
프로젝트 주제별 버튼 클릭 시, 주제에 맞는 현재 모집 중 프로젝트 출력
프로젝트 목록은 세로 스크롤을 통해 탐색 가능하며, 정렬 기준은 마감일 오름차순
주제 분류는 ‘인기’,‘찜 한 프로젝트’,‘작곡’,‘틱톡’,‘그래픽’,‘애니메이션’,‘게임’,‘기타’로 한정
주제별 정렬 버튼 중 ‘인기’ 버튼 클릭 시 즐겨찾기가 많은 순으로 30개 출력
토큰을 가진 유저(로그인)가 ‘찜 한 프로젝트’클릭 시, 즐겨찾기한 프로젝트 목록이 나오며, 토큰이 없는 유저(비로그인)가 ‘찜 한 프로젝트’클릭 시, ‘찜 한 프로젝트가 없습니다.’ 메시지 출력로그인 UI 노출 후 FE + BE 없음 없음 필터링된 프로젝트 리스트 출력 Hm-03 사용자 Home
페이지프로젝트 검색 프로젝트 리스트 최상단의 검색칸에 문자열 입력 시, 같은 string을 포함한 프로젝트 제목을 출력.
검색 기능 사용 시 주제 필터링은 사용하지 않으며 string이 가장 많이 포함된 제목 순으로 정렬검색 칸에 문자열 입력 시 FE+BE 없음 없음 입력 값에 따라 에러 메시지 출력
혹은
메인화면 redirect프로젝트 상세(Pd-00) ID 구분 서비스 기능 상세기능 사용 시기 개발 형태 사전 조건 사용 조건 사후조건 Pd-01 사용자 프로젝트 상세보기 프로젝트 상세보기 UI노출 Home화면에서 프로젝트 클릭 시 상세 정보가 담긴 UI를 출력한다. 프로젝트 리스트의 객체 클릭 시 FE 프로젝트 관련 정보 DB 존재 없음 프로젝트 상세보기 페이지
redirectPd-02 사용자 프로젝트 상세보기 지원하기 ‘지원하기’버튼 클릭 시
로그인 유저라면 해당 프로젝트의 ‘proposer’ 리스트에 추가되며 승인대기 상태가 된다.
로그인을 하지 않은 유저라면 로그인 화면으로 redirect된다.‘지원하기’버튼 클릭 시 FE + BE 로그인 토큰 존재 없음 ‘proposer’ 리스트 추가 후 승인 대기 상태 혹은 로그인 페이지 redirect Pd-03 사용자 프로젝트 상세보기 즐겨찾기 별모양의 버튼을 클릭하면 즐겨찾기 상태가 된다.
로그인 유저라면 ‘찜 한 프로젝트‘에 추가된다.
로그인을 하지 않은 유저라면 로그인 화면으로 redirect된다.별 버튼 클릭시 FE+BE 로그인 토큰 존재 없음 ‘찜 한 프로젝트’ 리스트 추가 혹은 로그인 페이지 redirect Projects Tab 구성 (Pp-00) ID 구분 서비스 기능 상세기능 사용 시기 개발 형태 사전 조건 사용 조건 사후조건 Pp-01 사용자 프로젝트 Tab 프로젝트 Tab UI노출 로그인 후 Nav의 ‘Projects’ Tab클릭 시 Projects UI 출력
로그인 전 Nav의 ‘Projects’ Tab 클릭 시 ‘로그인이 필요합니다 출력‘Projects’ Tab 클릭 시 FE 로그인 토큰 존재 없음 ‘Projects’
페이지
redirectPp-02 사용자 프로젝트 Tab 메뉴바 좌측 메뉴바 UI 출력
메뉴 목록은 ‘대시보드’,‘프로젝트’,‘개인채팅’,‘캘린더’로 구성
‘대시보드’클릭 시 현재 로그인 된 계정이 프로젝트의 ‘worker’리스트에 포함된 프로젝트들을 출력
‘프로젝트’ 메뉴는 클릭 불가능하며, ‘대시보드’의 참여 중인 프로젝트 리스트 객체 클릭 시 프로젝트 정보를 가지고 redirect좌측 메뉴 바 클릭 시 FE+BE 로그인 토큰 존재 없음 각 메뉴 설명에 맞는 UI출력 Nav (Nv-00) ID 구분 서비스 기능 상세기능 사용 시기 개발 형태 사전 조건 사용 조건 사후조건 Nv-01 사용자 Nav Nav UI노출 로고, Home Projects Profile Tab 노출
로그인 시 username과 정보,알람 버튼 출력
비로그인 시 ‘로그인’과 ‘회원가입’버튼 출력항상 FE+BE 없음 없음 없음 Nv-02 사용자 Nav 유저 정보 버튼 로그인 시 웃는 아이콘 버튼으로 노출
이름, 이메일, 참여 중인 프로젝트 바로가기, 로그아웃으로 구성웃는 아이콘 클릭 시 FE+BE 로그인 토큰 존재 없음 없음 Nv-03 사용자 Nav 알람 버튼 로그인 시 알람 아이콘 버튼으로 노출
알람 조건은 크게 5가지로 구성
내가 포함된 프로젝트의 새로운 팀원 입장 - ‘~~프로젝트에 누군가 참여하였습니다’
실시간 채팅 알람 - ‘~~ 프로젝트에 새로운 채팅이 있습니다.’, 최소 10분마다 알람 리젠
할 일 마감 기간 알림 - ‘~~~프로젝트의 xx마감기한이 10일 남았습니다’, 3일 전부터 하루 단위 리젠
새로운 코멘트 알림 - ‘~~프로젝트에서 새로운 코멘트가 있습니다’
즐겨찾기 마감 기한 알림 - ‘즐겨찾기 목록에 있는 ~~~프로젝트의 모집 마감 기한이 하루 남았습니다!’알림 아이콘 클릭 시 FE+BE 로그인 토큰 존재 없음 없음 Projects – 대시보드 탭 (Db-00) ID 구분 서비스 기능 상세기능 사용 시기 개발 형태 사전 조건 사용 조건 사후조건 Db-01 사용자 대시보드 탭 검색 검색창에 문자열 입력 시, 프로젝트 제목에 문자열이 포함된 리스트를 출력
검색 문자열 입력 후 엔터 시, 검색 칸 아래에 검색 기록으로 추가
검색 기록 클릭 시, 프로젝트 제목에 문자열이 포함된 리스트를 출력
모두 삭제 버튼 클릭 시, 검색 기록 삭제검색 칸에 문자열 입력 시 FE 로그인 토큰 존재 없음 검색된 문자열이 제목에 포함된 프로젝트 출력 Db-02 사용자 대시보드 탭 프로젝트 리스트 출력 사용자가 프로젝트의 worker리스트에 포함된 프로젝트들을 출력.
검색 사용시 검색에 조건에 맞는 리스트 출력없음 FE+BE 로그인 토큰 존재 없음 없음 Db-03 사용자 대시보드 탭 프로젝트 항목 객체 하나의 프로젝트는 분류 아이콘, 제목, 설명, 게시자, 사용자 역할, 프로젝트 마감일, 고정버튼, 마지막 접속일로 구성된다.
고정 아이콘을 제외한 객체의 모든 곳 클릭 시 정보를 가지고 프로젝트 탭으로 redirect
고정 아이콘 클릭 시, 최상단에 고정프로젝트 항목 객체 클릭 시 FE+BE 로그인 토큰 존재 없음 프로젝트 탭 redirect Projects – 프로젝트 탭 (Pt-00) ID 구분 서비스 기능 상세기능 사용 시기 개발 형태 사전 조건 사용 조건 사후조건 Pt-01 사용자 프로젝트 탭 공지 우측 연필 아이콘 클릭 시 공지 수정 가능
좌측 이모지 아이콘 클릭 시 이모지 변경 가능없음 FE 로그인 토큰 존재, 해당 프로젝트의 worker리스트에 포함된 유저 없음 없음 Pt-02 사용자 프로젝트 탭 작업 현황 요약 진행 중, 완료, 피드백 대기 중, 전체 할 일의 개수를 출력한다.
진행 중 은 ‘할 일 목록’의 진행중 탭 할 일 개수
완료는 ‘할 일 목록’의 완료 탭 할 일 개수
피드백 대기 중은 ‘할 일 목록’의 피드백 대기 중 탭 할 일 개수
전체 할 일은 진행 중, 완료, 피드백 대기 중의 개수를 합친다.없음 FE+BE 로그인 토큰 존재, 해당 프로젝트의 worker리스트에 포함된 유저 없음 없음 Pt-03 사용자 프로젝트 탭 달력 주간 달력을 제공한다.
오늘 날짜는 #FF7676으로 변경되며 숫자 아래 . 존재
왼쪽 오른쪽 버튼 클릭 시 이전 주 혹은 다음 주 날짜 출력없음 FE 로그인 토큰 존재, 해당 프로젝트의 worker리스트에 포함된 유저 없음 없음 Pt-04 사용자 프로젝트 탭 타임 라인 할 일에 대한 시각적 자료로 타임라인을 제공한다.
제일 좌측에는 사용자 이름이 있고, 우측으로 할 일 타임라인이 출력 된다.
색상은 사용자마다 다르지만 랜덤 배정된다.
타임라인 한 칸 단위는 기본 주 단위 이며, ctrl + scroll 시 일 단위, 월 단위로 확장 가능없음 FE+Be 로그인 토큰 존재, 해당 프로젝트의 worker리스트에 포함된 유저 없음 없음 Pt-05 사용자 프로젝트 탭 할 일 목록 진행 중, 완료, 피드백 대기 중으로 구분
각 분류 안에 할 일 항목 객체가 있으며, 좌클릭 후 당겨서 분류 변경 가능
각 항목은 내용 수정, 삭제, 체크가 가능하며 마감 기한을 D-day와 날짜로 표시없음 FE+BE 로그인 토큰 존재, 해당 프로젝트의 worker리스트에 포함된 유저 없음 없음 Pt-06 사용자 프로젝트 탭 작업물 피드백 미리보기에서 현재 업로드 된 파일과 폴더 확인 가능
더보기 클릭 시, 파일과 폴더 확인 및 삭제, 작업물 업로드 가능
폴더 클릭 시, 폴더 내부 진입
파일 클릭 시, 피드백 화면 출력
피드백 화면에선 채팅 형식을 통해 피드백 및 타임라인화, 작업물 재업로드, 삭제 가능
게시자, 파일 크기, 업로드 날짜 제공없음 FE+BE 로그인 토큰 존재, 해당 프로젝트의 worker리스트에 포함된 유저 없음 없음 Pt-07 사용자 프로젝트 탭 실시간 채팅 프로젝트에 포함된 모든 유저들이 확인할 수 있는 실시간 채팅 기능 제공
이름, 채팅 내용, 전송 시간 출력없음 FE+BE 로그인 토큰 존재, 해당 프로젝트의 worker리스트에 포함된 유저 없음 없음 Projects – 개인 채팅 탭 (Cp-00) ID 구분 서비스 기능 상세기능 사용 시기 개발 형태 사전 조건 사용 조건 사후조건 Cp-01 사용자 개인채팅 탭 검색 검색 칸에 문자열 입력 시, 유저 이름에 문자열이 포함된 리스트 출력 검색 칸 문자열 입력 시 FE+BE 로그인 토큰 존재 없음 필터링 리스트 출력 Cp-02 사용자 개인채팅 탭 개인 채팅 방 좌측 리스트에서 항목 클릭 시, 우측에 채팅방 출력 채팅 항목 클릭 시 FE+BE 로그인 토큰 존재 없음 채팅 내역 출력 Projects – 캘린더 탭(Ct-00) ID 구분 서비스 기능 상세기능 사용 시기 개발 형태 사전 조건 사용 조건 사후조건 Ct-01 사용자 캘린더
탭캘린더 UI 출력 오늘 날자가 포함된 월간 캘린더 출력
왼쪽 오른쪽 버튼 클릭 시, 이전 달 혹은 다음 달 캘린더 출력
각 요일별 일정 존재 시 일정 내용 출력.
일정 클릭 시 수정 삭제 가능없음 FE+BE 로그인 토큰 존재 없음 없음 Ct-02 사용자 캘린더 탭 일정 추가 우측 아래 + 버튼 클릭 시, 일정 추가 기능 제공
시작 날짜, 종료 날짜, 내용, 표시 색 선택 가능+ 버튼 클릭 시 FE+BE 로그인 토큰 존재 없음 없음 Profile– 프로필 탭(Pf-00) ID 구분 서비스 기능 상세기능 사용 시기 개발 형태 사전 조건 사용 조건 사후조건 Pf-01 사용자 프로필
탭프로필 UI 출력 로그인 시 유저 이름, 역할, 이메일, 졸업 현황, 소개, 참여 프로젝트, 개인 작업물, 기술 스택으로 구성된 UI출력
비로그인 시 프로필 탭 비활성화 및 검색 탭 활성화Profile 탭 클릭 시 FE+BE 로그인 토큰 존재 없음 로그인 조건에 맞는 UI 출력 Pf-02 사용자 프로필 탭 프로필 수정 로그인 시, 사용자 프로필 수정 가능
우측 수정 아이콘 클릭 시 텍스트 및 사진 수정 가능
개인 작업물의 경우 pdf, ppt, jpg, mp4확장자 파일 업로드 가능
기술 스택의 경우 주요 기술 스택(Python,PremiumPro, GitHub, C, C++, Photoshop, Figma, Framer ...) 목록 선택 가능, 목록에 없는 스택일 경우 직접 추가 가능
참여 프로젝트의 경우 itda에서 참여한 프로젝트 리스트 출력수정 버튼 클릭 시 FE+BE 로그인 토큰 존재 없음 수정, 추가된 정보 업데이트 Profile– 검색 탭(Ps-00) ID 구분 서비스 기능 상세기능 사용 시기 개발 형태 사전 조건 사용 조건 사후조건 Ps-01 사용자 검색 탭 검색 UI 출력 다른 유저 프로필 검색 가능한 검색 UI 출력
로그인 시, 최상단에 유저 정보 개요 출력
비로그인 시, 유저 정보 개요 미출력Profile 탭 – 검색 메뉴 클릭 시 FE+BE 없음 없음 로그인 조건에 맞는 ,UI 출력 Ps-02 사용자 검색 탭 검색 검색 칸에 문자열 입력 시, 이름에 문자열이 포함된 유저 리스트 출력
검색 문자열 입력 후 엔터 시, 검색 칸 아래에 검색 기록으로 추가
검색 기록 클릭 시, 이름에 문자열이 포함된 리스트를 출력
모두 삭제 버튼 클릭 시, 검색 기록 삭제검색 칸 문자열 입력 시 FE+BE 없음 없음 필터링 유저 리스트 출력 Ps-03 사용자 검색 탭 프로필 보기 검색 후 우측 프로필 보기 버튼 클릭 시, 해당 유저 정보의 profile tab redirect 프로필 보기 버튼 클릭 시 FE+BE 없음 없음 해당 유저 프로필 출력 하...열심히는 했는데 제대로가 맞는지는 모르겠으니 갈피를 못잡겠습니다.
728x90'4학년 > Project-itda' 카테고리의 다른 글
[9] 개발 - 프로젝트 입장하기(like 마이페이지)&공지구현&Redis추가 (0) 2025.05.12 [8] 개발 외 - 비기능 명세( 테스트 더 하고 추가 작성 ) (0) 2025.05.08 [6]개발4 - 실제 모델 구축 (1) 2025.05.08 [5] 개발 3 - 모델에 대한 고민 (0) 2025.04.15 [4] 개발 2 - Front 초안 완성 (1) 2025.04.15