2차 프로젝트 회고록

hwibaski·2021년 12월 18일
0

개발일지

목록 보기
8/10

📌 들어가기 전에

바쁘다는 핑계로 2차 프로젝트 회고록을 작성하지 못했다. 벌써 한 달 전의 프로젝트이지만 문서로 기록을 잘 해놓아서 어렵지 않게 그때의 기록과 생생함을 떠올릴 수 있었다. 처음으로 2주동안 백엔드만 집중해서 개발할 수 있는 좋은 기회였다. 어려운 점도 있었고, 뿌듯하고 즐거운 기억도 많았다.


📌 1. 프로젝트 소개

프립이라는 서비스를 모티브로하여 호스트와 고객을 이어주는 e-commerce 서비스를 만들어보는 프로젝트이다.

팀원기간
백엔드: 2명, 프론트 : 5명2021년 10월 25일 ~ 2021년 11월 5일(12일)

1.1 구현 기능

[Front-end]

  • 메인 페이지, nav, footer
  • 리스트 페이지
  • 상세 페이지
  • 구매후기
  • 일반로그인, 소셜 로그인

[Back-end]

  • 카테고리 API
  • 메인 페이지를 위한 API
  • 상세 페이지 API
  • 상품 리스트 API(정렬)
  • 구매후기 API
  • 로그인, 소셜 로그인 API

1.2 배포 링크

ADLIP


📌 2. 회고

✅ 매운맛 DB 모델링

개인적으로 DB 모델링에 대한 두려움 아닌 두려움이 있었다. DB 및 백엔드에 대한 경험이 적다보니 스스로 자신감이 없었던 것 같다. 그래서 이번 프로젝트에서는 의도적으로 모델링을 주도적이고 적극적으로 하려고 했다. 그리고 백엔드가 2명이다보니 운 좋게도 내가 직접 모델링을 할 수 있는 기회가 많았다. 프로젝트 초기에는 모티브로 하는 FRIP의 전체적인 그림을 그리지를 못하니 어려운 점이 있었다. 하지만 프로젝트를 진행하는 팀원과 상의도 하고, 피드백도 받고, 구글링도 하면서 많은 부분을 배울 수 있었다. 특히, e-commerce의 전반적인 구조를 파악할 수 있는 좋은 기회를 얻을 수 있었다. 좋아요 기능과 주문 기능, 그리고 여러 테이블을 조인해서 DB에서 데이터를 가지고 오는 것에 많이 익숙해질 수 있었다. 데이터베이스는 개인적으로 관심이 많다. 그리고 공부할만한 주제도 다양하고, 안정성과 관련해서 배워야할 것도 많다는 것을 알게 됐다. 백엔드 개발자로서 데이터베이스는 중요한 요소인만큼 꾸준히 공부하고 실험해야겠다.

✅ 불필요한 반복을 줄이기 위한 노력 feat.CSV

1차 프로젝트에 비해 규모가 커지고 구현하려는 사항들이 많아지다보니 '데이터를 어떻게 넣을 것인가'라는 문제가 정말 크게 다가왔다. DB에 가지고 있는 데이터가 많을수록 구현하고 있는 기능들이 잘 작동하는지 테스트하기 좋다고 생각했다. mysql workbench 같은 툴을 사용하더라도 약 500줄의 데이터를 하나하나 넣는 것은 어려움이 있었다. 그래서 이번 프로젝트에서는 CSV를 이용해서 데이터를 넣는 코드를 짜고 데이터를 넣는 과정을 수월하게 하려고 했다. 다른 팀원분들에게도 CSV 파일 및 data uploader 코드를 공유했다. 1차 프로젝트 때는 쿼리문을 서로 공유해서 데이터를 주고 받았다. 하지만 테이블만 20개 정도이고, 데이터도 커지다 보니 2차 때는 쿼리문을 공유하는 방식은 상상도 되지 않았다. 결과적으로 CSV 파일을 공유한 것은 많은 도움이 되었다. 하지만 지금와서 생각해보니 내가 내 로컬 DB에 데이터를 넣을 때만 CSV를 이용하고, 다른 팀원들에게는 sql 덤프 파일을 공유했으면 훨씬 더 효율적이였을 것이다. 내가 작성한 CSV 및 data uploader 코드이다보니 추가적인 설명이 필요했고 그로인해 몇 시간의 리소스는 더 소모되었다. 다음에도 이런 기회가 있다면 덤프파일을 공유하거나 더 좋은 방향을 찾아볼 것이다.

✅ 커뮤니케이션 그리고 문서

본격적으로 프론트와 백엔드가 나뉘어서 프로젝트를 진행했다. 진영이 갈린 것이다. 그렇다보니 확실히 입장차이가 생기는 것이 느껴졌다. 프론트는 프론트 중심으로 생각하게 되고, 백엔드 역시 백엔드 중심적으로 생각하게 되는 것이 느껴졌다. 단적으로 프론트는 UI가 잘 렌더링이 되고, 예쁘고 그럴듯한 이미지 데이터들이 렌더링 되기를 더 중요시 생각하고, 백엔드는 프론트와의 안정적인 통신 및 API 위주로 생각하게 되었던 것 같다. 그래도 이 간극을 미팅과 많은 대화들로 서로를 이해시키고 간극을 좁힐 수 있었다. 최대한 만나서 프로젝트를 진행하려고 노력했고, 팀원들 모두가 팀의 분위기에 협조를 잘 했다. 최대한 회의 사항들을 노션을 이용해서 정리하려고 했다. 그래도 급할 때는 문서를 놓치는 경우도 종종 생겼다. 우리의 2주짜리 프로젝트에서는 별로 문제가 될 것 같지 않지만, 기간이 긴 프로젝트에서는 개발문서가 정말 중요하겠다라는 생각을 했다. 개인적으로는 개발할 API 설계서를 미리 만들어서 프론트 분들과 공유했던 것이 기억에 남는다. 이 문서를 기반으로 프론트와 대화했고, 수정사항이 필요하거나 서로의 생각이 다른 부분만 논의를 하면 되기 때문에, 개발 시간을 더 확보할 수 있었다. 문서의 중요성을 또 체감할 수 있었고, 특히 API 명세서의 중요성을 프론트와 백의 연동 부분에서 느낄 수 있었다.

✅ 역시, 커뮤니케이션

커뮤니케이션, 소통, 몇 번을 강조해도 부족하지 않은 키워드이다. 많지는 않지만 프로젝트를 진행하면서 말, 대화의 중요성을 많이 느낀다. 같은 곳에서 같은 주제로 공부를 해도 각자의 생각이 이렇게나 다르고 방향이 다르다. 하물며 실무에 나가면 더 많은 사람들, 더 다양한 환경의 사람들과 일을 하게 될텐데 대화 및 정보 공유가 끼칠 영향은 정말 중요할 것이다. 그리고 그것들을 체계적으로 기록하고 문서화하면 그 효과는 배가 될 것이다.

0개의 댓글

관련 채용 정보