main project retrospec

SangYu Lee·2023년 2월 13일
0

codestates backend

목록 보기
30/30

메인 프로젝트가 끝나고

메인 프로젝트가 끝났고 프리 프로젝트 때보다 성장한 것을 느낀다. 그렇지만 역시 배울 것이 더 많다. 생각나는 느낀 점을 간단히 적어본다.

사용자 요구사항 정의서 자세하게 작성하자

사진 명소를 소개하는 웹 사이트. 어떤 사이트인지 예상하기가 쉽다. 그런데 만드는 입장에서는 아무것도 정해진 것이 없다.

기능 구현을 하면서 프로젝트 중반쯤에 와서도 기능의 존재 여부를 모른 것도 있었고, 존재하지 않는 기능을 만든 적도 있었다. 애플리케이션 구상 단계에서 너무나 많은 아이디어가 있었고, 어떻게 결정이 되었는지 사용자 요구사항 정의서나 회의록에 알아보기 쉽게 작성하지 않았기 때문이었다.

API는 프로젝트 시작할 때 틀을 짜고 가는 것이 좋다

API 명세서가 몇 번이 바뀐건지 모르겠다 프론트 분들 죄송해요 ㅠㅠ

기능 구현에 나의 모든 힘을 쏟고 있었기 때문에 api 명세서는 크게 신경쓰지 않았다. 구글 docs에 api 명세서 시트를 만들어놓고, 하나의 도메인이 완성되고 나면 api를 작성하였는데 api 자체도 Restful하게 만들지 않았을 뿐더러 로그인/비로그인 구분, pathvariable 추가 등 여러가지 변경사항이 있을 때마다 api가 변경되었고 프론트분들께 알려드려야 했다. 다음 프로젝트에는 화면 정의서 위에 api를 작성하는 방식도 고려해볼 것이다.

참고

해 보겠다는 마음을 가지자

백엔드 팀원이 한 명 빠졌고 그 상황에서 나는 기본적인 구현에 집중해야 한다고 생각했다. 이미 마음을 이렇게 먹었기 때문에 기본적인 구현 이상으로는 선뜻 시간을 투자하기 쉽지 않았다. 다행히 다른 백엔드 팀원은 나처럼 쫄보가 아니었다. 그 분은 NginX, OAuth2.0 카카오 소셜 로그인 등 기본적인 기능 구현을 넘어서는 시도를 많이 하였고, 덕분에 더 나은 결과를 만들 수 있었다.

리팩토링 할만한 것

  1. 지역 테이블 만들기 (~23.02.16)
    => 현재 DB에서 문자열로 데이터를 조회하는데, 지역구 테이블을 만들고 id로 조회하기

  2. Dto 정리하기 (~23.02.16)
    => Dto의 종류가 많아서 가독성이 떨어진다 일반 Dto, responseDto 1개로 통일

시도할 기능 랭킹 기능

  1. 계층형 댓글
    => 셀프 참조 사용 혹은 그냥 구현
  2. 동영상 저장

더 공부할 내용

  1. CI/CD
    => github actions 혹은 Jenkins
  2. CI/CD를 사용한 스케쥴링 ex) batch 작업
profile
아이스커피

0개의 댓글