2차 프로젝트 회고 - CODEBNB

3

공통

목록 보기
9/9
post-thumbnail

💻 프로젝트 소개

  • 위코드 2차 프로젝트로 CODEBNB 홈페이지를 클론하게 되었다. 우리 팀은 백엔드 3명, 프론트 3명이었고, 나는 백엔드를 담당했다.
  • 개발기간 : 2020.12.28 ~ 2021.01.08 (약 2주)
  • CODEBNB 백엔드 Github

클론한 사이트

CODEBNB
  • 원본 사이트 링크 : 에어비엔비
  • 클론한 웹사이트 영상 👇
    Comming Soon

🖊️ Project Detail

적용기술

  • Python
  • DJANGO
  • MySQL
  • Bcrypt
  • JWT
  • AWS
  • GUNICORN
  • DOCKER

협업 툴

  • Github
  • Trello
  • Zoom & Google Meeting
  • Aquery Tool

프로젝트에서 수행한 역할

  • 프로젝트 필수 구현 사항 정리 (공통)
  • 데이터 모델링 (Aquery Tool)
  • Mysql DB 구축
  • Fake Data Generation
  • 숙소 리스트 정보 조회 API
  • 숙소 상세 정보 조회 API 구현
  • 숙소 리스트 필터링 & 페이지네이션 (요금/대여유형/건물유형/편의시설/지역 등)
  • 숙박 리뷰 CRUD API 구현

👏 개인적으로 생각한 잘한점

시간 준수! 계획 철저 !

1차 프로젝트때의 경험을 바탕으로 2차프로젝트 때 구현하고자 하는 범주를 대충 어렴풋이 예상할 수 있었다. 그 덕분에 전체적인 그림을 보면서 내가 언제까지는 무슨 기능을 구현해 놓아야지 프로젝트가 차질없이 진행될 지 예상이 되었고, 이걸 기반으로 계획을 보다 섬세하게 세웠다. 예를 들어서, DB모델링 같은 경우 "최소 프로젝트 시작 후 3일째 되는날 오후전까지는 완성해야지 붕뜨는 시간을 잡을수 있겠다..."라는 생각을 하고... 프론트와 데이터를 주고 받을때, json의 key값을 어떻게하고 value 값은 이런식으로 보낸다는 것을 미리 정해서 추후에 API가 나왔을때 발생할 수 있는 사소한 Conflict을 최소한으로 줄였다고 생각한다. 이와 더불어서, 나는 계획의 차질이 생길경우를 대비해서 프로젝트 마무리의 2틀전까지는 모든 API는 구현이 완료되도록 해야겠다고 생각했다. 왜냐하면, 프론트 개발자분들이 실제로 Integration Test를 해보시면서 발견하는 에러에 대한 가능성도 배제할 수 없기 때문이다. 그래서 실제로 우리가 프로젝트때 계획했던 백엔드 기능들은 순탄하게 발표 2일전에 구현이 되었고, 그 남은 2일동안 유지보수를 하면서, 따로 AWS + DOCKER 배포를 공부/실습하면서 무난하게 프로젝트를 마무리 할 수 있었다.

하루의 시작은 항상 스탠드업 미팅!

1차 프로젝트 때는 스탠드업 미팅을 간간히 하는 정도였지만, 이번 프로젝트때는 PM님의 강한 리더십으로 매일 오전 8시반에 스탠드업미팅을 하였다. 처음에는 "매일 할 필요가 있나?"라는 생각을 가지고 임했지만, 점차 프로젝트가 진행되면서 그나마 미팅을 했기 때문에 보다 프론트 분들의 진행 상황을 잘 파악할 수 있었고, 팀 단위에서 내가 하는 엄무가 빨리 구현되야되는 API라는 것을 인지하고, 속도를 더 내서 후딱처리해야겠다는 마인드를 가질 수 있었다. 덕분에 프론트분이 Mockdata를 쓰지않고 실제 제 API를 사용시면서 한번에 몰려오는 에러들을 막을 수 있었다고 생각합니다. (프론트엔드 분들이 제 API를 대신 Integration Test해줘서도 기뻤다... Unit Test로도 발견못한 에러가 있어서 당황을 했다.)

멘토님들에게 질문 !

1차 프로젝트때 내 모습은 무엇인가 혼자서 공부하고 고민하고 처리하고 ... 멘토님들에게 적극적으로 질문하지 않았다. 이번 프로젝트때는 그 점이 아쉬워서 공부하다가 2시간동안 못잡는 에러가 발생되면 이번에는 멘토님들에게 보다 더 적극적으로 질문할려고 노력했다. 질문을 할때도 항상 내가 무엇이 문제인지 ... 어디까지 했는지 ... 정리하고 질문하니 멘토님들도 적극적으로 내가 풀어갈 방향을 제시해주셔서 그 점이 참 감사했고, 개발을 차질없이 진행할 수 있었다. 그리고, 개발 외적으로 상담도 해주시고 (지훈님이 그렇게 스윗하신 분인지 몰랐다...) 다들 너무 잘하시는 분들이셔서 질문할때의 든든함이 정말 좋았다. 현업에서 사수님이 멘토같은 분이 계시면 참 좋을텐데 ... (아! 이거 내가 잘한점을 적는다는 걸 잠시 잊어버렸네요 ㅎ) 아무튼 이런식으로 내가 질문하는 순간과 기준을 세울 수 있게 되었다!

😭 아쉬웠던 점

DJNAGO ORM

1차 프로젝트때도 Django의 ORM을 사용하긴 했지만, 더 다양한 방식을 생각하기 힘들었다. 이 이부분이 아쉬워 django.db.models에서 사용할 수 있는 OuterRef나 Prefetch 등등.. 다양한 기술을 공부했지만, 내가 지금 만들고 있는 API에 적용할려고 하니 잘 안되어서 답답했다. 그리고, 이 기술을 사용해서 무엇이 이 점인지 ... 그 논리가 부족해서 결국 사용하지 못했는데, 아직 공부가 부족하다는 것이 지금 내 관점이다.

하드코어 모델링

추가적으로 Modelling을 할 때 너무 어렵게 짜버렸다. 쉽게하면 레벨업이 안된다는 생각으로 진짜 더 어렵게 짜서 테이블에서 다른 테이블의 데이터를 접근할 때 다른 백엔드 팀원들이 괴로워하는 걸보고 조금 더 쉽게 짜야됐어야 했는데 ... 라는 생각을 했다. 그리고, 너무 데이터의 관계만 생각해서 실제로 로직을 짤 때 데이터의 관계때문에 더 많은 SQL Query가 발생하는 구조였다는 것을 뒤늦게 깨달은 것이 많이 아쉬웠다. 이 경험을 바탕으로 데이터의 관계 + 로직을 복합적으로 생각하며 모델링을 해야겠다고 생각했다.

체력...(a.k.a 저질)

진짜 내 체력이 많이 부족하다는 것을 많이 느끼는 프로젝트였다. 팀원분들 중 한 분은 정말 존경스러울 정도로 열심히 하셨는데, 하루에 4시간정도만 주무시고 나머지 시간은 다 코딩 ㅎㄷㄷ (밥먹는 순간에도 간간히 코딩하시면서 식사) 그 분과 협업하면서 "내가 정말 열심히 하는건가?"라는 생각이 생겼고, 그 분을 본받아야겠다고 생각했다. 라이프 사이클자체가 아침부터 활성화되시는 모습이 나는 부러웠다. 나는 적어도 점심은 먹어야지 머리가 돌아가는데 ㅠㅠ 그래도 이번 프로젝트덕분에 아침 7시에 일어나는 습관을 가지게 되어서 좋았다.

마치며 ... 🌈

위코드에서 하는 마지막 2차 프로젝트가 끝났다. 정말 뿌듯한 결과여서 좋았지만, 동시에 부족함을 많이 느낄수 있었다. 다음 주부터는 기업협업이 시작되면서 내가 완전히 모르는 Flask를 다루게 될거같다. 하지만, 이 프로젝트때 했던 만큼만 한다면 잘 할 수 있다는 자신감이 생겼다. 우리 팀원들이 너무 수고가 많았고, 이 프로젝트는 우리 팀원 모두가 열심히 한 결과이기 때문에 더 값진 가치가 느껴진다. 🔥최강 CODEBNB🔥 (무적) 은진님 (너무 비싼거 시킬때 눈치봤던 총무) 채빈님 (항상 허리를피고 가슴을 여시는) 성훈님 (a.k.a 고뇌하는 남자) 기수님 (막내 딱대!) 수한님 ... 다들 너무 좋은 팀원들이였습니다. 성훈님의 말을 빌리자면, 정말 찬란했습니다... 다음에 꼭 코로나 끝나고 위워크에서 다시 뵈면 좋을거 같습니다! 꼭!
끝!🌈

profile
# 개발 # 컴퓨터공학

1개의 댓글

comment-user-thumbnail
2021년 1월 10일

그쵸. 정말이지 하루하루 열정으로 가득차지 않았던 날이 없었습니다. 🔥

항상 큰 그림을 바라보고 내가 지금 해야할 일이 무엇인지 정확하게 알면서 작업을 진행하시는 승재님을 보면서 항상 든든했습니다. 많이 배웠습니다!

기업협업도 간단하게 뿌시실 승재님임을 알기 때문에, 화이팅 하시라는 클리셰는 말하지 않겠습니다 ㅎ__ㅎ

저희 모두 개발자로써 멋지게 성장해서 다시 한번 만나, 기깔나는 서비스 뽑아내는 날 기대하고 있겠습니다.

답글 달기