[Project] 온라인 쇼핑몰 사이트 프로젝트 후기

김영환·2021년 3월 10일
1
post-thumbnail

✅ Team : 2.9cm

✅ Introduction

  • 진행기간 : 2020.11.30 ~ 2020.12.12 (13일)

  • 목적 : 의류를 기반으로 한 온라인 종합쇼핑몰 29CM를 클론하면서 개발과 협업의 역량을 향상시킨다.

  • 29cm 사이트 특징 : 의류를 기반으로 한 온라인 종합쇼핑몰 입니다. 하지만, 옷만 판매하는 일반 쇼핑몰과는 달리 사용자의 라이프스타일과 취향을 분석하고 셀렉팅하여 차별성을 두었습니다. 일상과 설렘의 간격을 표현한 브랜드 네임처럼 여행, 문화, 쇼핑 등 다양한 테마를 중심으로 이용자와 소통을 시도하며, 우리나라 대표적인 미디어 커머스 입니다. SNS 느낌의 29TV나 블로그 형식의 Welove라는 자체 콘텐츠들도 발행하고 있어 매거진 기능도 겸하고 있습니다, 디자인도 직관적이고 깔끔하며 사용자 편의에 맞춘 UI가 인상적입니다.

  • Scrum 방식으로 진행 : 일주일 단위로 Sprint를 나누고, 주간 미팅과 데일리 스탠딩 미팅을 통해 각 팀원의 진행사항 및 계획에 대해 공유하며 진행하였습니다.

✅ Team Members

🐶 Front-end (github repo)

🐼 Back-end (github repo)

✅ 적용 기술

  • Front-end
    • React.js(Hooks)
    • Styled Component
    • React-router
    • React-slick
  • Back-end
    • Python
    • Django
    • MySQL
    • JWT, Bcrypt
    • Django Test, Mock
    • Git & GitHub (Rebase 활용)
    • AWS EC2, AWS RDS
    • Docker

✅ 브랜치 관리 전략

Git Flow 사용하여 브랜치를 관리합니다.


진행 기간동안 모든 브랜치는 Pull Request에 리뷰를 진행한 후 merge를 진행합니다.

Master : 배포시 사용합니다.

Develop : 완전히 개발이 끝난 부분에 대해서만 Merge를 진행합니다.

Feature/feacture1 : 기능 개발을 진행할 때 사용합니다.

✅ Modelling

✅ What We Did

  • 모델링 [Aquery Tool]
  • 회원가입 [bcrypt (DB에 암호화된 비밀번호 저장)]
  • 로그인 [bcrpyt (비밀번호 대조), JWT(토큰 생성)]
  • 소셜로그인 [NAVER, KAKAO, GOOGLE Open API]
  • 로그인 확인 데코레이터 [JWT (토큰 복호화)]
  • 상품 리스트 엔드포인트 구현 (필터링 포함)
  • 핸드폰 문자인증 기능 추가 [NAVER CLOUD PLATFORM API]
  • 장바구니 ✔️
  • 상품 리스트 검색, 페이지네이션 ✔️
  • 상품 상세페이지 ✔️
  • 상품 리뷰 ✔️
  • Unit Test 작성 및 테스트 완료 ✔️
  • AWS RDS 구축 및 EC2 & Docker 사용하여 배포 ✔️
    ✔️ 된 부분이 제가 구현한 파트입니다.

✅ API문서

구글 docs API Documentation

프로젝트 후기

🥺 '코로나의 습격'

" 코로나 확진자가 800명을 돌파였습니다 "
" 오늘 총 확진자는 1천명을 넘어설 것으로 보입니다 "
" 정부 2.5단계 격상 여부 결정 토의 "
우리가 프로젝트를 진행할 때 실제 기사 메인 토픽이였습니다. 우리는 코로나 속에서 프로젝트를 진행하였습니다. 2.5단계 격상으로 위코드도 못나가는 상황이 였고, 위코드 역대급 기수 14기, 프로젝트가장 최악의 시나리오 였습니다.

💪 😃 🧐 💛 🏰 코로나도 우리의 코딩열정은 막을순 없었고, 방법을 찾고있는 중 에어비앤비를 잡아서 거기서 코딩을 같이 진행하기로합니다. 그래서 팀원들은 다시 모이게 되였고, 10일간 우리는 '의문의 코딩 공장'에서 프로젝트를 위한 작당모의를 꾀하고 있었습니다.

💡 1차와는 다르다! 우리 모두 2차프로젝트!

다들 각자의 팀에서 1차 프로젝트를 진행하고 와서 인지 다들 각자의 소중한 경험을 토대로 진행하고 싶은 파트와 하고싶은 사항들이 1차프로젝트보단 분명해보였다. 그사이 우리는 조금 성장한 거 일수도(?)

일단 git으로 나는 저번프로젝트에서 고생을 좀 한편이라서 git에 대한 철저한 관리를 원했다. 실무에서는 최종 merge 단계 아래 Develop 단계를 두어서 좀 더 체계적인 브랜치 관리로 프로젝트를 진행하였습니다.

  • Master : 배포시 사용합니다.
  • Develop : 완전히 개발이 끝난 부분에 대해서만 Merge를 진행합니다.
  • Feature/feacture1 : 기능 개발을 진행할 때 사용합니다.

Unit Test 진행

각자 구현한 파트에 대한 유니테스트를 진행하였습니다. 처음해본 유니테스라서 어색하고 구현하는데 시간이 걸렸지만, 미리 에러를 예상할 수 있었고, 유니테스트를 진행하다가 잘못된 점을 발견하고 고치는 코드도 발생하여서 유니테스트에 대한 참기능 약간 맛보는 경험이 되었습니다.

기억에 남는 코드

1차 프로젝트때 진행하지 못했던 문자인증를 한번 진행해보고싶었다. 생각보다 view.py에서 모다 model.py에서 설정해주는일이 많았고, 나는 naver SMS API를 사용하여 진행하였고, 실제로 나한테 문자가 날라오는게 너무 신기하였다. signature 를 구현하는데 조금 애를 먹었지만 공식 naver sms api 문서를 참고하면서 진행하면 누구나다 구현 할 수 있을것같다. 로직자체를 다하고 나면 그냥 우리 회원가입,로그인에서 비밀번호를 암호화하고 인코딩하고 하는 방식과 크게 다른게 없단느 것을 느꼈다. 하지만 구현하고 있는 당시에는 엄청나게 어렵게 느껴졌다는 사실 ...
그리고 나는 from: 전화번호 에서 번호를 다른것으로 저장해두었다가 하루종일 애먹은 바보같은 기억이 있는데 한줄 한줄 코드를 잘 확인하자고 다시한번 다짐하였다.

프로젝트를 마치며

이번 프로젝트에서 사실 가장 기억에 남는 것은 유닛테스트를 진행했다는 점같다. 유닛테스트를 작성해야만 merge가 가능했기.. 때문에 정말 하면서 느끼는게 '아니 지금 view 짜기도 바빠죽겟는데 유닛테스트도 진행하라니!!' 라는 생각도 해봤지만 현업에서는 유닛테스트를 안하는 경우가 거의 없다는 소리도 듣고해서 진행해보았다. 그래도 하면 할수록 감을 잡았고, 어느정도 반복되는 부분이 많았기 때문에 속도도 났던거 같다. 또한 error handling에 대한 중요도 역시 체감할 수 있었다.

힘든 시기속에서 같이 포기하지않고 같이 열심히한 동기 모두에게 박수를 보내고싶다. 분명한건 여러분들이 안했다면, 나도 못했을 것이다. 시간이 지날수록 이상하게 해석하지도 못하는 공식문서에 대한 출입이 늘어난거같다. 구글링도 좋지만 공식문서를 먼저 확인하는 습관이 늘어나고 있다. 멘토님들도 좋은 성장이라고 말씀하셨고, 그나마 이제 개발자 스럽게 해결하려고 하는것 같다. 수고했어 .. ohwani...💛

0개의 댓글