Develop/회고

Main project 개발 회고

IJY 2022. 10. 11. 16:52

Pre project가 마무리된 후 바로 이어서 Main project 개발을 진행하였다!

그렇다 보니 블로그에 정리를 할 시간이 부족해서 미루고 미루다가 Main project가 어느 정도 마무리된 이제서야 작성을 하게 되었다.

 

Main project 요약

프로젝트 주제 : 냥빌리지(Cat village) - SNS 및 정보 공유 게시판 웹앱

프로젝트 기간 : 약 1달, 2022년 09월 07일(수) ~ 2022년 10월 12일(수)

프로젝트 참여 인원 : 총 5명 (프론트엔드 개발자 2명, 백엔드 개발자 2명, 디자이너 1명)

배포 서버 : AWS (EC2, S3, EIP, ALB, Route53, ACM, CloudFront, ...)

배포 링크 : https://catvillage.shop (AWS 서비스 사용 중단으로 인해 접속 불가)

깃허브 : https://github.com/codestates-seb/seb39_main_059

 

Main project를 진행 과정

직전에 진행했던 Pre project를 한 경험을 바탕으로 Pre에 비하면 조금 더 수월하게 진행할 수 있었다.

일단 Pre에 비해 기간이 길었지만 Pre 때와는 다르게 주제 선정 및 설계부터 시작하는 Main이었기에 더 정신없이 진행을 한 것 같다.

첫 1.5 ~ 2주 정도는 주제 선정 후 설계를 진행하였고, 이때 프로젝트 기획서 및 소프트웨어 요구사항 정의서(SRS), API 설계, ERD, 와이어 프레임 등을 작성하여 문서화하였다.

그리고 기능 개발에 들어가기 전, Pre를 진행한 후 개선할 점으로 나왔던 개발 전 통신 확인을 하기 위해 AWS를 이용한 인프라 구축을 먼저 진행 후 프론트엔드와 백엔드 간의 통신이 정상적으로 되는지 확인을 진행하였다. (CORS 에러 등 확인)

그리고 인프라 구축도 했겠다, CI/CD도 구축을 하자! 하고서 github action 및 AWS CodeDeploy를 이용해 CI/CD도 구축하고 기능 개발에 들어갔다. (이 땐 몰랐지.. CI/CD가 괴롭힐 줄은...)

그렇게 프로젝트 기간 마지막까지 기능 개발에 밤낮, 주말 없이 시간을 투자하며 진행하였지만.. 설계 때 구상한 모든 기능을 구현하지는 못했다고...

그래도 Pre 때의 개선 사항으로 나왔던 API 명세서는 Swagger를 통해서 구현을 했다! 지만 테스트 코드는 작성을 못 했다.

 

Main project를 진행하며 겪은 문제들

해당 내용은 따로 자세하게 블로깅을 해야 할 것 같기에 리스트로 나열만 해보겠다.

  • CORS 에러 : 해결 후 진행을 했는데.. 왜 또 나온 거지?!
  • CI/CD 문제 : github action의 github secrets 동작이 이게 아닌가???
  • AWS CodeDeploy 1 : 아니 이게 왜 여기서 멈췄다가 실패를 하는 거야?
  • AWS CodeDeploy 2 : 배포 속도가 너무 느린데...
  • S3와 EC2의 보안 연결 : 이게 맞나? 아니 그런데 이건 왜 안되는 거야?
  • Swagger 에러 : 사용법에 맞춰서 잘 했는데.. 에러에 미적용?
  • OAuth2.0 로그인 : 유저 정보 오케이! 회원 체크 및 회원가입 오케이! 그런데 로그인은..?
  • JWT 로그아웃, 리프레시 토큰 : redis 사용이 대세라고? 시간 없는데!!
  • JPA N + 1 문제 : 아니 쿼리를 몇 개를 날리는 거야?

 

프로젝트 진행 과정의 산물

Pre 때와는 다르게 주제 선정, 설계를 포함한 과정이었다 보니 프로젝트 기획서가 포함되었다.

 

기획서

프로젝트 기획서 이미지
프로젝트 기획서 일부

 

소프트웨어 요구사항 정의서(SRS)

소프트웨어 요구사항 정의서 이미지
소프트웨어 요구사항 정의서 일부

 

API 설계

API 설계 이미지
API 설계 일부

 

ERD

ERD 이미지
ERD

 

와이어프레임

와이어프레임 이미지
와이어프레임 일부

 

프로토타입

프로토타입 GIF
프로토타입 GIF

 

완성된 페이지

(추가 필요)

 

진행 후 느낀 점

여러 문제점이 있긴 했지만.. 어느 정도 마무리된 후 실제로 동작하는 모습을 보면서 뿌듯하고, 재미있다고 느꼈습니다!

역시 뭔가를 만들고 난 후에 동작하는 것을 볼 때 더욱 재미를 느끼고 흥미가 생기는 것 같아요!

해당 프로젝트의 기간이 지나긴 했지만.. 아직 마무리가 덜 된 기능과 개발을 못 했던 기능들을 추가로 개발해서 마무리 할 예정입니다!

추가로 진행해서 마무리 된 내용은 나중에 추가로 블로깅을 하도록 하겠습니다 :D