본문 바로가기
SeSAC

[SeSAC] 웹 풀스택 과정_프로젝트_새싹 커뮤니티 웹사이트 만들기(2)

by hotdog7778 2023. 9. 24.

MVC 구조와 Sequelize 까지 학습 한 후에 진행한 팀프로젝트에 대한 회고록 입니다.

 

 

며칠 전 프로젝트 발표를 마친 후에 주말이 되어서야 회고록을 작성 합니다.

프로젝트는 대략 20일의 시간이 주어졌고 모든 팀은 그에 맞춰 기획,설계,개발,발표를 진행했습니다.

 

 

맡은 역할

백엔드 포지션에서 자유게시판 섹션 API 개발 및 개발일정 관리, 서버 배포

 

 

무슨 프로젝트 인가

 

청년취업 사관학교(새싹) 에서 교육을 받는 교육생들의 커뮤니티 게시판 프로젝트 입니다.

프로젝트 이름은 SesacIN 으로 질문과 답변으로 이루어진 지식인에서 따왔습니다.

 - 사이트 : https://sesacin.online

 - Github : https://github.com/SesacProjectTeamC/SesacIn

 

GitHub - SesacProjectTeamC/SesacIn: 새싹 프로젝트 팀프로젝트 TeamC

새싹 프로젝트 팀프로젝트 TeamC. Contribute to SesacProjectTeamC/SesacIn development by creating an account on GitHub.

github.com

 

무엇을 배웠나

 

가장 크게 느낀점은 프로젝트 설계의 완성도에 따라 개발 할 때 소모되는 시간이 크게 차이가 날 수 있다는것 입니다.

저희팀은 DB설계, API 문서들을 최소한으로 갖춘후에 바로 개발에 들어갔는데 이런것 때문에 프로젝트 중 생긴 대부분의 문제를 문서보다는 회의를 통해서 해결할 수 밖에 없었던것 같습니다. 첫 프로젝트이기 때문에 서툴러서 그랬다고 생각하고 덕분에 이번 프로젝트를 진행하면서 프로젝트의 요구사항을 명확히 하고 그에따라 DB 와 API를 명확히 설계하기위해 시간을 투자하는것이 이후에 실제 개발에서 굉장히 큰 이점을 줄 수 있다는걸 몸으로 깨닳은것 같습니다.

 

 

우리팀은 20일을 어떻게 사용했나

 

 

* 설계 이후 개발 작업 시작전에 모든 팀원들은 파트를 정해서 각각 담당하기로 했습니다.

 - FE(프론트) - 페이지별

 - BE(백엔드) - 유저 / 자유게시판 / 질문 게시판

 

* 개발 배포 통합테스트 반복 : 1~4 를 반복하며 총 4번의 배포와 4번의 통합테스트 이후 완성된 코드를 발표했습니다.

  1. 담당 파트의 개발 진행 

  2. 배포

  3. 통합테스트

  4. 해야할 일(Task) 리스트 뽑기

 

* Task 관리 : 1차배포 이후에 테스트 후 Task가 많을것을 예상했고, 짧은 시간내에 개발을 완료 하기 위해서 통합테스트의 결과 Task가 많을 경우와 적을 경우를 나누어 문서작업에 시간을 줄이고자 했습니다.

  1. 통합테스트의 결과 Task가 많을 경우 칸반보드를 활용했고 노션으로 공유 했습니다.

  2. 통합테스트의 결과 Task가 많지 않을 경우 슬랙 메세지-스레스를 활용했습니다.

 

 

 

어떤 기술들을 사용 했나

 

간단한 CRUD 게시판 프로젝트에서 sequelize ORM 을 사용하면 개발 편의성을 높일 수 있다고 생각하여 사용하기로 했습니다.

 

나는 어떤것에 중점을 두었나

 

저는 자유게시판 섹션을 담당했고 유저 로그인/로그아웃 부분에 신경을 썼습니다.

 

첫번째로, 코드에서 중점을 둔것은 다음과 같습니다.

 - 페이지 렌더링시 DB 콜수를 줄여서 렌더링 속도를 개선하자.

 - 로그인 처리 / 비속어 처리에 미들웨어와 시퀄라이저Hook을 사용해서 코드 중복을 줄이고 유지보수에 장점을 살리자.

 - 백엔드 에러 응답시 status 코드를 전달함으로써 프론트엔드에서 status 코드에 따라 동적으로 처리가 가능하도록 하자.

 

미들웨어에 대해서 상세히 알지 못한 상태로 프로젝트를 진행했는데 이번 기회에 코드를 개선하려고 하다보니 미들웨어에 대해서 좀더 공부하게 되었고 미들웨어를 사용하면서 중복코드를 줄이려 시도했던 것이 좋은 경험이 되었습니다.

 

그 외로는, 프로젝트 일정관리에 중점을 두었습니다.

 - 배포&테스트 사이클을 위해서 배포 일정에 맞춰 팀원들의 전체 코드를 병합 할 수 있도록 팀원들의 진행률을 체크 및 배포

 - 추가 해야할 기능들의 우선순위를 고려해서 기능추가 제안

 

 

마무리

 

간단한 프로젝트 이지만 처음으로 해보는 팀프로젝트여서 그런지 스스로 많이 부족함을 느꼈습니다. 하지만 팀원들과 다같이 기한내에 프로젝트를 마치기 위해서 부족한 부분을 보완해 나가는 과정에서 배운것 또한 많았습니다. 팀원 전부가 열심히 해준 덕분에 잘 마무리 하게 된것같아 뿌듯합니다.