[1차 Project]영양제 추천해드립니다.coreof

HYEYOON·2021년 3월 1일
9
post-thumbnail

1.Introduction

클론사이트 : care/of
사이트 소개 : 소비자의 설문응답에 따른 영양제를 추천해주는 서비스를 제공하며, 추천받은 것 뿐 아니라 여러 카테고리 별, 건강 목적 별로 영양제들을 세분화 시켜서 소비자의 선택을 도와주고 구독서비스까지 제공해줍니다.

이 사이트를 고르길 천번만번 잘했다고 생각한다. UI가 이뻐서 고른 것도 있지만 기본적인 commerce의 기능과 속성을 갖고 있기 때문에 첫 프로젝트로 아주 적합하다고 생각했다.
프로젝트 사이트와 팀이 발표되고 나서 너무 기뻤다. 하지만 나의 미흡한 실력이 팀의 목표나 진행에 피해가 되진 않을까 하는 불안감과 민폐는 절대 안 된다!!!라는 마음으로 프로젝트가 시작되었다!

2.Overview

✔프로젝트 기간

2021.02. 15 ~ 2021.02.26 (12일)

✔팀구성

(프)유샘솔, 박지연, 이지은
(백)양한아, 김치오, 강현수, 조혜윤

✔ 백엔드 기술 스택

  • Python
  • Django
  • Bcrypt/JWT
  • Git
  • MYsql
  • AQuery Tool
  • Corsheader
  • RESTful API

✔커뮤니케이션

  • Stand-Up meeting (Mouth)
    가장 중요한 시간이자 가장 재밌는 시간
    매일 11시에 진행되었고 어제는 무슨일이 진행되었고 오늘은 어떤 기능을 구현할 것인지 서로 얘기하는 시간이였다. 특히 프론트와 백엔드의 진행사항을 서로 공유하고 맞춰나가는 아주 중요한 시간이었다. 우리팀은 백엔드 4, 프론트 3으로 수적으로 프론트가 한명 부족한 상황이라 되도록이면 백엔드가 프론트쪽 상황에 맞추려고 했다. 하지만 프론트분들이 너무 열심히 많은 것을 해주셔서 속도의 차이가 거의 없었다... 멋쟁이 프론트 샘솔, 지연, 지은님...⭐️

  • Slack
    slack에 Git을 연동시켜 merge나 리뷰가 올때마다 알람이 울리게 했다!
    그리고 팀원들과의 소중한 소통공간이다💓

  • Notion
    정말 중요했고 우리팀이 제일 잘한 일!!
    프론트와 백의 키값과 API주소 공유
    사전에 노션으로 통신할 때의 키값을 공유하지 않고 각자 만들고 나중에 맞추려고 했다면 정말 시간이 2배는 걸렸을 것 같다. 백과 프론트가 통신을 할 때면 오류 파티인데 키값도 안맞추고 통신했으면 진짜 오류 대환장파티가 될 것이 분명하다. 정말정말 잘한 일 중 하나인 것 같다!!

  • Trello
    ➀ Backlog-앞으로 할 일
    ➁ This Week-이번주에 할 일
    ➂ In Progress-현재 진행중인 일
    ➃ Done- 완료된 일

    Done이 짱 많잖아~~~ 뿌듯해 ~~😊
    Backlog에 남아있는 건 추가 구현할 것들이다! 벌써 재밌겠잖아~!~!

  • Google spreadsheet
    초기데이터 공유

3.백엔드 workflow

➀ 모델링

모델링.. 프로젝트에서 가장 중요한 부분이다.
모델링에서 잘못되면 다 갈아엎어야 하기 때문에 파워풀 집중을 해야 한다!!!!
모델링에서 한 3일을 썼다. 나중을 위해 확장성까지 고려해가면서 모델링을 짜려니까 굉장히 복잡하고 어려웠지만 재밌었다. 넷이서 밥 먹을 시간 빼고 계속 붙어서 모델링 짜는 게 너무 재밌었다!!!그리고 DB를 잘 아시는 한아님도 계셔서 더 수월했던 것 같기도 하다. 이 정도면 나중에 view 짜다가 모델 고칠 일 없을 거라고 거의 확신하고 모델링을 끝냈는데 역싀나,, 추가해야 할 부분이 나중에 생기더라.. 역시 확신은 함부로 하는 게 아니다ㅎㅎ 그래도 갈아엎어야 할 부분은 없어서 다행이었다.
한아님이 손수 그려주신 ERD💕

➁ models.py 작성


열심히 짠 aquerytool을 보면서 각 앱에 맞는 models.py를 작성해줬다!

➂ Database

Google Spreadsheet로 작성한 초기데이터를 한아님이 손쉽게 착착착 db에 넣어주셨다..
갓한아... 덕분에 CSV파일을 직접 넣지 않아도 되는 쉬운 방법을 알게되었다. CSV를 넣으려면 view도 따로 짜줘야하고 시간이 오래걸리는 작업인데 sql을 사용하여 작성한 데이터를 DB에 순식간에 샤샤샥 넣어버렸다.
진짜 아는게 힘이다.

➃ 기능별로 맡을 부분 정하기

우리는 기능 하나당 한명씩으로 배치하기 보다는 코드카타식으로 2:2로 나눠서 진행을 해봤다. 한명은 Navigator가 되고 한명은 Driver가 되어 함께 하는 방법이다. 기능 하나당 한명씩 맡으면 속도는 빠르겠지만 각자가 맡은 기능빼고는 flow를 이해하기 쉽지않을 것 같고, 팀 내에서 실력 편차가 있더라도 배울점이 확실히 있을거라 생각했기 때문에 이 방법을 선택했다. 또 모두가 해결하지 못하고 있는 부분은 다같이 달려들어 고민했다.
백엔드 네명 중에 내가 가장 코린이라서 걱정이 많이 되었는데 짝을 지어하니까 더 열심히 노력하게 되었고 배운점도 정말 많았다. 이 방법이 아니었더라면 나는 내가 맡은 기능을 해내기바빠 다른 기능의 코드는 보지도 흐름도 잘 몰랐을 것이다. 내가 조금 느려도 이해해주고 기다려주는 팀원들한테 진짜 고맙다😇
덕분에 우리 팀 분위기도 정말 좋았고 결과물도 아주 만족스럽게 나왔다⭐️

API

➄ 프론트와 기능별 통신

일단 프론트와 통신하는거 너무 재밌다!
통신전에 짠 로직이 맞는지 Django shell에서 두들겨보고 http통신으로도 해봤다. 이번 프로젝트를 하면서 왜 그동안 shell을 많이 쳐보라고 한지 한방에 이해가 되었다. shell과 http통신으로 문제없다고 해도 에러는 뜬다.. 왜냐하면 프론트와의 키값을 맞춰야하기 때문이다!
백엔드는 단어사이는 _로 연결을 하는데 프론트는 camelCase를 주로 사용하고 있었다.
위에서 보여줬듯이 notion을 파서 키값을 맞추길 너무너무 잘했다고 생각했다.
에러뜨면 다들 동공이 마구마구 흔들리고 👀 막 바빠지는데 200이 뜨면 프백모두 싱글벙글 하이파이브하고 난리가 난다! 이 맛에 자꾸 통신이 하고싶어졌다..

4. 기능 구현

➀회원가입 & 로그인

  • bcrypt로 비밀번호 암호화

  • 로그인 JWT 토큰 발급
  • login decorator

➁상품보기

  • 카테고리별 상품보기
  • 상품 디테일 보기

➂장바구니

  • 장바구니 페이지 보기
  • 카테고리별 상품보기 페이지, 상품 디테일에서 장바구니로 상품 담기
  • 상품 수량, 사이즈 변경
  • 상품 삭제

➃결제

  • 결제페이지 보기
  • 주문상태 변경 및 재고 변경

➄설문조사 & 추천

➅리뷰

4. 잘한 점

➀ 목표 설정

처음부터 무리한 목표를 짜지 않았다. 우리 팀은 누구보다 빠르고 모든기능을 구현하는 것이 아니라 늦어지더라도 이 프로젝트의 흐름을 읽고 이해해나가면서 한 기능이라도 탄탄하게 구현하자는 것이 목표였다. 그랬기때문에 한 코드를 짜더라도 시간에 쫓겨 어디서 긁어오지않고 고민하고 구글링해가며 로직을 짰기때문에 공부도 많이 되었고 결과도 좋고 그만큼 성취감도 컸던 것 같다.

➁ 팀원간의 소통

우리팀은 그 어느 팀보다 소통이 잘 되었다고 자부할 수 있다. 누구하나 자기주장을 고집하는 사람이 없었다. 회의를 할 때, 다른 사람 의견을 경청할 줄 알고 서로를 배려할 줄 아는 팀이었다.

➂ 노력..?

나는 내 실력이 조금 부족한 걸 알기에 팀원들한테 절대 피해를 줘선 안되겠다고 생각했다. 그래서 진짜 늦게까지 공부를 했던 것 같다. 우리 팀원들도 다 늦게까지 열심히하긴했지만 ㅎㅎ💕 늦게까지 해도 딱히 이렇다 할 결과물과 문제가 해결되지 않는 슬픈날도 있었지만,, 하루하루 성장해 나가고 있는 나를 느낄 수 있었다. 팀원분들도 칭찬해줄때마다 너무 기쁘고 날라갈 것 같았다. 진짜 날라가고싶었다😇

5. 아쉬운 점

➀ 프론트에 대한 지식 부족

그동안 fetch가 뭔지 Mock data가 뭔지 프론트에 대한 개념이 너무 부족했다. 통신을 하면서 프론트가 하는 일에 대해서 무조건 공부해야겠다고 생각을 했다. 프로젝트를 통해서 많이 배우긴 했지만 조금 더 알면 서로 소통하기 편하지 않을까 생각이 든다.

➁ Git, Github

처음에는 Git에 익숙지 못해서 db를 여러 번 날렸다. migrate 하고 push를 할 때마다 충돌이 났기 때문이다. 그래서 branch를 많이 나누지 않았다. 한 브랜치에서 하면 충돌이 안 나기 때문에... 하지만 git이 협업에서 얼마나 중요한지 깨달았기 때문에 2차 때는 git을 조금 더 적극적으로 공부하고 활용해봐야겠다.

6. 마치며...

일단 우리 팀 최고💙💛💚
태어나서 시간이 이렇게 빨리 흐른적은 처음이다. 프로젝트를 하는 2주가 정말 핫도그 하나 순삭하는 속도처럼 빠르게 지나갔다. 일단 팀원들이 너~~무 너무 좋았다. 다들 너무 재밌고 착하고 열심히 하는 사람들이다. 나는 착하고 순한 사람들이기 때문에 잘 맞고 재밌고 무탈히 프로젝트가 잘 진행되어간다고 생각했다. 그런데 러브면담을 할 때 퍼포먼스 코치님께서 착한 사람들이기도 하면서 분명 다들 알게모르게 배려하고 있는 중 일거라고 하셨다. 그 말을 들으니 더욱더 팀원들한테 고맙고 더 열심히 해야겠다는 마음이 들었다. 끝까지 한 명도 빠짐없이 모두 열심히 해줘서 좋은 과정과 결과를 얻게 되어서 너무너무 기쁘다!!!

개발자 세션에서나 멘토님들이 항상 실력보다는 협업할 수 있는개발자가 되어라!라고 말씀하셨다. 더 열심히 공부해서 실력을 짱짱하게 키우고 우리 팀원들과 함께 성장해나가는 개발자가 되어야겠다고 생각했다.

내 맘속 프론트 1등, community를 사랑하는 우리 최고의 PM 샘솔님,
하루에 2-3시간밖에 못 자면서도 절대 포기하지 않는 멋진 지연님,
하루하루 밝아지고 실력도 늘어가는 재밌는 자칭 깍두기 지은님,
우리의 피지컬 코치님,본받고 싶은 사람, 나폴레옹 수면하시는 치오님,
와다다다 친절하게 설명해주시는 인간 장고 현수님,
DB전문가,내 기준 백엔두 1등, 물음표 살인마인 나를 다 받아주는 착한 한아님
너무 즐거웠어요ㅠㅠㅠㅠ 너무 좋은 팀을 만나서 지금 당장 헤어짐이 너무너무 아쉽지만 저희는 리팩토링도 해야되고 추가구현도 해야되니까 또 만나요💕

profile
Back-End Developer🌱

4개의 댓글

comment-user-thumbnail
2021년 3월 2일

와웅... 그 어려운 설문조사 해내시느라 정말 고생했어요 혜윤님 ❣️❣️❣️
1차때 파이썬이랑 장고 쑥쑥 감 잡으셨으니까 2차도 열심히 잘 달려봐요 ! :)

답글 달기
comment-user-thumbnail
2021년 3월 4일

와우 혜윤님~! 멋집니다 정리 잘하셨네요 이 글만으로도 프로젝트를 어떻게 하셨는지 잘 알 수 있었어요!

답글 달기
comment-user-thumbnail
2021년 3월 4일

혜윤님~~ 너무 재밌었어요ㅠㅠ 저도 혜윤님한테 많이 배우고 에너지도 얻어간 것 같아요!
다시 만나서 추가구현 할 생각만 하면 너무 즐거워요ㅎㅎ 2차도 빠이팅이에요😄

답글 달기
comment-user-thumbnail
2021년 3월 6일

엑셀마스터 혜윤님! 잘 봤습니다ㅎㅎ 우리.. 화이팅이에요!!ㅋㅋ

답글 달기