차담화 프로젝트 회고

SungjoonAn·2022년 3월 13일
0

Django

목록 보기
11/12

[술담화 클론 프로젝트]


프로젝트 소개: 차담화


술담화내에 있는 담화마켓(스토어)을 참고해서 전통차(茶)🍵를 판매하는 e-commerce 웹사이트을 만드는 프로젝트입니다. 전통차의 카테고리로 구분하여 사용자가 원하는 filter를 적용시킬 수 있으며 장바구니에 담거나 바로 구매를 할 수 있습니다.

차담화 Demo 영상

개발 인원 및 기간

개발 기간: 2022.02.28 - 2022.03.11
개발 인원:

  • 프론트팀: 박별, 신윤지, 박철진
  • 백엔드팀: 박영서, 안성준, 임정찬

Tech Stack

Backend: Python MySQL Django Bcrypt JWT AWS EC2 RDS Git Linux

Tool: Slack Github Trello

구현기능 [Backend]

(🟩: 팀원 구현, ✅: 직접 구현)
✅DB ERD
🟩로그인 API
✅회원가입 API
🟩메인페이지 API
🟩상품페이지 API
🟩상세페이지 API
✅장바구니 API
🟩DBuploader
✅상품 DB (CSV 및 이미지)
🟩로그인 데코레이터
✅AWS 배포

차담화 Model


프로젝트의 시작

처음 안내에 따라서 팀이 배정되고 어떠한 프로젝트를 할지 선정이 되었습니다. 팀이 배정되고 난 뒤에는 팀끼리 인사를 나누고 바로 Planning Meeting을 시작해 프로젝트 기획에 대해서 어떻게 할지에 대해서 의논을 했습니다. 여러 의견들이 제시가 되었고 최종적으로는 전통차를 판매하는 사이트로 결정이 되었습니다.

프로젝트의 기획이 결정된 이후로는 Backend와 Frontend팀이 나누어져서 서로 개발환경 초기 세팅을 하였습니다.


Agile과 Scrum

  1. 스프린트의 시작🏃‍♂️
    총 두번의 스프린트가 이번 프로젝트 기간에 주어졌고 매일 아침에 Standup Meeting을 통해서 어제와 오늘의 진행 상황, 무엇을 할지, 그리고 어떠한 Blocker가 있는지 팀원과 공유를 하며 프로젝트를 진행하였습니다.

여기서 아쉬웠던 점이라면 Frontend과 Backend팀간의 교류가 생각보다는 쉽지가 않았다는 점이였습니다. 서로 다른 용어를 써서 어디까지 진행되었는지 알기 어려웠고 처음에 시각 자료나 예시를 적절하게 사용하지 못해서 misleading되어 전 단계로 수정해야되는 상황이 발생하였습니다. 여기서 배울 점은 용어를 공유하고 프로젝트 초기에 팀원간의 청사진을 일치시키는 게 중요하다고 깨달았습니다.

  1. Agile하게 프로젝트 진행하기
    일단 Backend팀에서는 프로젝트 필수 기능을 일단 구현시켜서 Frontend팀과 맞춰보는게 중요하게 여겼습니다. 최대한 ERD를 너무 확장시키지 않고 간결하게 만들고 싶었습니다. 모델링 작업을 끝맞추고 난뒤에는 팀원들 한명씩 API를 하나씩 맡아서 진행하였고 프로젝트 기간에 맞춰 충분히 끝낼 수 있었습니다. 생각보다 많은 Blocker들은 만나지 않아서 프로젝트를 무난히 끝냈다고 볼 수 있지만 역시 아쉬운 점들은 존재했습니다.

모델링을 만들때 Frontend팀을 배려해서 쉽게 알려줄 수 있는 모델을 하나 공유를 했으면 나중에 모델링을 고쳐야 하는 상황이 덜 오게 할 수 있을거 같았습니다. 또한 Backend팀이 이번에는 각자 맡은 바를 무난하게 처리하였지만 서로 맡은 일에 대해서 크게 관여를 못하다 보니 만약 팀원 중 한명이 문제가 생겼을 경우 이를 도와주기 위해서는 시간이 많이 걸릴거 같았습니다. 그래서 서로 코드를 상시로 공유해서 어떠한 부분을 어떻게 하였는지 알려주면 추후 문제가 생겨도 이를 해결 해줄 수 있다고 생각하였습니다.


1차 스프린트🏃‍♂️

3일간은 팀원들과 차담화 Model을 만드는데 모든 힘을 다 했습니다. 그 이후 팀원들과 흩어져서 회원가입 API를 만들었습니다. 회원가입 API는 이전에 했던 프로젝트에서 다른 점이 많이 없어 크게 힘든 점이 없이 만들기가 가능했습니다. 이후 장바구니 API를 시작했는데 처음 만들어보는 기능이라 코드를 치기까지 많은 시간이 소요가 되었습니다. 그렇게 장바구니 API를 만들기 시작하려고 했을때 1차 스프린트기간이 끝이 났습니다.

2차 스프린트🏃‍♂️🏃‍♂️

2차 스프린트 첫째날 아침부터 Daily Standup Meeting에서 Frontend팀에서 Model 수정요청이 들어왔습니다. Backend팀에서는 하던 일을 멈추고 모델링 수정을 먼저 시작하였습니다. 이 과정에서 migration과정이 상당히 꼬이게 되었습니다. 결국 3명 중 저를 포함한 2명은 늦은 오후 시간까지 migrate를 할 수 없는 상황이 되었습니다. 이 과정을 통해서 모델링을 수정할 때 신중히 해야한다는 점을 깨달았습니다.

장바구니 API를 끝마치고 난 뒤에는 실제로 프로젝트에 넣을 DB작업을 시작했습니다. 생각보다 많은 Product들이 DB에 필요를 했고 이를 위해서 이미지들 또한 많이 필요했습니다. 이후에 들어간 리뷰 DB는 Product의 몇배가 되는 양이 들어갔지만 CSV를 통한 DB작업은 생각 이상으로 만들기가 쉬웠기 때문에 금방 가능했습니다.

프로젝트 Dday 전날에는 AWS의 RDS와 EC2를 사용한 배포 작업에 들어갔습니다. 처음 세팅이 이해하기가 힘들어서 여러번 작업을 했지만 결국 배포까지 가능했기 때문에 뿌듯함이 컸습니다. Backend팀에서는 원하는 필수 기능까지 가능했기 때문에 목표를 이루었다는 생각이 있었지만 반면에 좀더 refactoring이나 추가기능에 대한 아쉬움은 남아 있었습니다. 추가로 장바구니 API는 만들고 난 뒤 Frontend팀과 한번도 맞추어 보지 못한 아쉬움이 있었습니다.


끝으로

프로젝트를 만드는 건 수많은 코드가 아닌 사람들이라는 것을 이번 프로젝트를 통해서 깨닫게 되었습니다. 여러 변수가 작용을 하고 끝임없는 미팅과 오류들을 통해서 프로젝트는 변화를 거듭하게 되었습니다.

또한 이번에 좋은 팀원들과 멘토님들의 조언을 통해서 좋은 방향으로 가는 힌트들을 얻게 되었고 다음에 더 발전할 수 있는 길을 발견한 것 같습니다.

0개의 댓글