코딩과로그

3차 프로젝트 (프리온보딩: 패스트파이브 실무 활용) 본문

회고록

3차 프로젝트 (프리온보딩: 패스트파이브 실무 활용)

피리음 2022. 12. 27. 23:06

1. 프로젝트 소개 (최종 결과물 링크)

패스트파이브라는 기업에서 계획서를 전달주셨으며 이에 상응하는 페이지를 구현하는 것이 목표였습니다.

개발기간 (2022.12.12 ~ 2022.12.22)

 

기획문서의 주요 사양은 다음과 같았습니다. 

 - 회사별로 파일첨부가 가능한 게시글을 작성할 수 있어야 한다. (임지저장 또한 가능해야 한다)

 - 게시글을 분류에 따라 필터링할 수 있어야 한다.

 - 회원은 회사등록과 임대 요청을 할 수 있어야 한다.

 - 회원은 회사에게 멤버 요청을 할 수 있어야 한다.

 - 회원은 임대 기간에 따라 권한이 구분되어야 한다.

 - 댓글을 작성할 수 있어야 한다.


2. 기업과제(패스트파이브) 선정 계기

실제 서비스를 위해 만들어진 기획문서를 토대로 구현해보고 싶었으며 패스트파이브에서 해당 기획문서가 있어 선정하게 되었습니다.

추가로, 파일 업로드 관련 기능이 존재하여 다뤄보고 싶었고 이외에도 게시물 필터링, 유저별 권한 등을 다룰 수 있었습니다.


3. 팀원 구성

- 프론트 (4명): 지원님, 설화님, 기민님, 정현님

- 백엔드 (3명): 우령님, 기현님, 나(상윤)


4. 사용 기술 스택

백엔드

 - typescript, express(Node.js), mysql

 - 그 외

   -  dbmate(DB scheme 버전관리)

   -  jsonwebtoken(토큰 발행)

   -  bcryptjs(비밀번호 암호화)

   -  multer (파일 업로드용)

 

백엔드 역할

이름 맡은 역할
나 (이상윤)  - 회사 게시글 API
 - 파일 업로드 관련 처리
우령이(님)   - 로그인/회원가입 API
  - 회사등록 및 멤버 요청 API
  - 회사등록 및 멤버 요청 리스트 API
  - 회원 등급 판별 API
기현이(님)   - 카테고리 API
  - 댓글 CRUD API

5. 업무 진행 방식

업무 티켓 관리 트렐로 (클릭 시 이동)
API 문서 포스트맨 (클릭 시 이동)
소통 디스코드
소스 버전 관리 깃허브
항시 코드 리뷰 진행함.
DB 모델링 dbdiagram.io (클릭 시 이동)

6. 최종 프로젝트 결과물 (결과물  링크)

기획 문서에서 요구한 내용들을 모두 구현하였습니다.

- 기획 요구사항:
 - 회사별로 파일첨부가 가능한 게시글을 작성할 수 있어야 한다. (임지저장 또한 가능해야 한다)

 - 게시글을 분류에 따라 필터링할 수 있어야 한다.

 - 회원은 회사등록과 임대 요청을 할 수 있어야 한다.

 - 회원은 회사에게 멤버 요청을 할 수 있어야 한다.

 - 회원은 임대 기간에 따라 권한이 구분되어야 한다.

 - 댓글을 작성할 수 있어야 한다.

카테고리별 필터링


7. 배운 점

 - 기능이 복잡해질수록 설계 복잡도를 낮추는 것이 중요하다고 느꼈습니다.  저는 이번에 파일 처리를 맡았고 파일 업로드 라이브러리로 multer를 사용하였습니다. 사용방법 자체는 간단했으나 기획 사양과 접목시키려하니 구현상 어려운 점이 속속이 드러났습니다. 게시물의 파일이 변경될 경우 이전 파일을 제거해줘야하고 게시물별로 파일이 구분되어야 했습니다. 이 두가지를 같이 고려하면서 파일 처리를 구현해야했었는데 설계를 신경쓰지 않고 구현하면 나중에 꼭 버그가 발생했습니다. 따라서 확실하게 코드 흐름을 설계를 한 뒤에 구현하여 사이드 이펙트를 최소화할 수 있었습니다. (해결방법은 게시물별로 각각 폴더를 두어 구분하게 하고 파일이 변경될 때마다 이전 폴더의 내용을 제거하는 방식으로 진행하였습니다.)


8. 프로젝트를 되돌아 보며

저 자신의 컨디션 관리가 쉽지 않아 더 열심히 하지 못한 점이 아쉽습니다. 그러나 저 뿐만 아니라 다른 팀원들도 이전 프로젝트들보다 어려운 부분이 많았을텐데 큰 무리없이 개발을 완료할 수 있었어서 좋았습니다.