ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [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입력 후 다음 버튼 클릭 입력 값에 따라 에러 메시지 출력
    혹은
    메인화면 Redirect
    Home Tab 구성 (Hm-00)
    ID 구분 서비스 기능 상세기능 사용 시기 개발 형태 사전 조건 사용 조건 사후조건
    Hm-01 사용자 Home
    페이지
    프로젝트 생성하기 프로젝트 생성하기버튼 클릭 시, 프로젝트 생성(Pm-00) 화면으로 redirect한다. Home프로젝트 생성하기버튼 클릭 시 FE 로그인 토큰
    존재
    없음 프로젝트 생성 페이지
    redirect
    Hm-02 사용자 Home
    페이지
    프로젝트 리스트 필터링 .
    프로젝트 주제별 버튼 클릭 시, 주제에 맞는 현재 모집 중 프로젝트 출력


    프로젝트 목록은 세로 스크롤을 통해 탐색 가능하며, 정렬 기준은 마감일 오름차순


    주제 분류는 인기’,‘찜 한 프로젝트’,‘작곡’,‘틱톡’,‘그래픽’,‘애니메이션’,‘게임’,‘기타로 한정


    주제별 정렬 버튼 중 인기버튼 클릭 시 즐겨찾기가 많은 순으로 30개 출력


    토큰을 가진 유저(로그인)찜 한 프로젝트클릭 시, 즐겨찾기한 프로젝트 목록이 나오며, 토큰이 없는 유저(비로그인)찜 한 프로젝트클릭 시, ‘찜 한 프로젝트가 없습니다.’ 메시지 출력
    로그인 UI 노출 후 FE + BE 없음 없음 필터링된 프로젝트 리스트 출력
    Hm-03 사용자 Home
    페이지
    프로젝트 검색 프로젝트 리스트 최상단의 검색칸에 문자열 입력 시, 같은 string을 포함한 프로젝트 제목을 출력.


    검색 기능 사용 시 주제 필터링은 사용하지 않으며 string이 가장 많이 포함된 제목 순으로 정렬
    검색 칸에 문자열 입력 시 FE+BE 없음 없음 입력 값에 따라 에러 메시지 출력
    혹은
    메인화면 redirect
    프로젝트 상세(Pd-00)
    ID 구분 서비스 기능 상세기능 사용 시기 개발 형태 사전 조건 사용 조건 사후조건
    Pd-01 사용자 프로젝트 상세보기 프로젝트 상세보기 UI노출 Home화면에서 프로젝트 클릭 시 상세 정보가 담긴 UI를 출력한다. 프로젝트 리스트의 객체 클릭 시 FE 프로젝트 관련 정보 DB 존재 없음 프로젝트 상세보기 페이지
    redirect
    Pd-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’
    페이지
    redirect
    Pp-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

    댓글

Designed by Tistory.
티스토리 친구하기