DYO 공부하는 블로그

D-WORK 팀 프로젝트(1) - 요구사항 분석 및 기술 선정 본문

Project/D-WORK : 구인구직 웹페이지

D-WORK 팀 프로젝트(1) - 요구사항 분석 및 기술 선정

DYODa 2025. 7. 1. 20:19

 

1. 기능 명세화 및 요구사항 분석

요구사항 분석 과정

요구사항 분석은 기능 단위로 분리해 아이디어에서 어떤 기능이 필요한가부터 시작해서 간략하게 작성했다. 원래 요구사항 분석은 어떤 조건에서 어떻게 작동하는지 작성하고 와이어프레임 등도 같이 뽑고 해야 하는데, 프로젝트 기간이 매우 부족했고, 그 과정이 익숙하지 않은 팀원들도 있었기 때문에 간략하게 작성했다. 팀 회의를 통해 기능을 큰 줄기부터 쭉 늘어놓고 필요한 기능을 정의했고, 요구사항별로 인원을 나눠 구현하도록 했다.

더보기
  1. 캘린더 구현 
    • 날짜별 렌더링
    • 메모, 마감일 표시
  2. HTML / CSS 구현 
    • 메모 화면
    • 렌더링될 item
    • 로그인 화면
  3. 애니메이션 
    • click시 인터렉션
    • 화면 전환 시 표시 방법
  4. 검색 기능
    • 기술스택 그룹화 검색
    • 연차별 데이터 가공
    • arr.filter(include)
  5. 필터링 기능
    • 항목별 필터링
  6. 목록 렌더링 기능
    • 관심공고 목록 관리 > 관심공고 추가/제거*
    • 확인한 페이지 관리
      • cache 클로저로 push
      • localStorage로 관리 
    • 페이지 넘김?
  7. 정렬 기능 
    • 정렬기준 선택 *
    • 오름차순, 내림차순 *
  8. 로그인 기능
    1. 회원가입
    2. 로그아웃
  9. 유저 상태 표출
    • 유저 상태 관리
  10. 메모 기능
    1. 메모 저장
    2. 메모 수정
    3. 메모 생성
    4. 메모 삭제

생각해보니까 문서에 과제 내용이 그대로 들어가있어서 제거했다.

2차로 필수 요구사항과 API를 받았는데, 분석해보니 기존 프로젝트에 적용하기에는 무리인 것 같아 계획을 회전하게 되었다. 그런데 기존에는 캘린더 메모를 계획했었기 때문에 구조화도 어려울 것 같아 노선을 틀게 되었다.

 

2. 기술 선정과 프로그램 흐름도

요구사항 분석을 마치고, 기능을 구현하는 데 사용할 기술을 선정하게 되었는데 선정한 기술들은 다음과 같다. 백엔드와 API 래퍼 구현은 내가 혼자 했어서 거의 나 혼자서 썼다.
1. AWS : 써 본 거라 환경이 익숙하기도 했고, 무료 버전이 남아서 선정. 인터페이스가 다른 곳과 비교했을 때 알아보기 쉬운 것도 선택한 이유.

2. Flask : 간단하게 서버를 구현하는 데 python flask를 사용하는 게 편할 것 같아서 사용하게 되었다.

3. MongoDB : 초보자 수준에서, 유연성 있는 db가 구현하기 쉬울 것 같았고, 배열을 데이터로 사용하려고 계획했었는데, mongodb도 배열 저장을 지원해서 사용하게 되었다.

4. fetch, promise : 개념에 대해서는 정말 많이 읽어봤지만, 실제로 작성해본 경험지 적어 배울 겸 사용하기를 원했었다.

 

선정한 기술에 기반해 나온 프로그램 흐름은 다음과 같다.

프로그램 흐름도

메모 서버가 따로 있는 이유는 프로그래머스에서 제공해준 API가 있었는데 그걸 그대로 이용하면 메모 관련 서버로 이용할 수 있을 것 같다는 생각이 들었다. 그래서 AWS와 메모 서버 양쪽에 요청을 보내 처리하는 CORS 구조를 채택하게 되었다.

 

내가 작성한 API를 사용할 때는 크게 상관 없었지만 프로그래머스 API를 사용하면서 느낀 점은 API 분석을 확실하게 해야 API wrapper 작성하면서 프론트단에서도 받는 방법을 정의하기 좋다는 걸 느꼈다.