NIKE 프로젝트 3차 리팩토링 후기

finelinefe·2020년 11월 16일
0

프로젝트후기

목록 보기
3/3
post-thumbnail

나이키 리팩토링 소개 🎤

이번 3개월차 3차 프로젝트는 개인공부를 했습니다. 프로젝트 대상 사이트는 지난 1차 프로젝트때 클론했던 나이키 홈페이지를 토대로 모델링을 다시 작성, 완전히 다른 형태의 방식으로 제작했습니다. 1인 프로젝트인 관계로 데이터 송수신 확인은 httpie, postman을 통해서 확인했습니다.


프로젝트 기간

2020.10.19 ~ 2020.11.13
NAWEKI_REFACTOR 주소


기술스택

  • AQuery
  • Django
  • Python
  • Django
  • PyJWT
  • Bcrypt
  • MySQL

프로젝트 협업 툴

  • Git & Github
  • postman

구현사항

  • 회원가입(validation)
  • bcrypt, pyjwt 사용해서 비밀번호 암호화
  • 로그인(validation) 구현
  • JWT 사용해서 access token 발행
  • 로그인 데코레이터 구현
  • 상품 리스트 뷰
  • 상품 개별 상세페이지 뷰
  • 장바구니 구현(CRUD 구현)
  • 각 app마다 unit test 구현

모델링 ✍🏻

기존 프로젝트에서 시간상 구현하지 못했던 장바구니(cart) 부분과 좋아요(wish-list) 테이블을 추가했다. 뿐만 아니라 크롤링 정책이 손 크롤링(손으로 임의의 데이터 csv 파일 작성)으로 바뀌었기 때문에 이부분에 관해서 상품 데이터에 어떤 라인을 넣을것인지 바꾸기로 했다.(신발-옷 으로 바꿈)


크롤링

상품의 경우 신발 종류만 했던 것과 다르게 모든 신발의 카테고리를 하나로 통합해서 취급하였고, 의류 품목도 추가하여 각각 임의로 크롤링 했다. 이미지 사이트의 경우 무료 이미지 업로드시 이미지 주소를 생성해주는 사이트를 이용해서 출력할 수 있도록 했다.


기억나는 코드 👁

class WishListView(View):
    @login_decorator
    def post(self, request):
        data = json.loads(request.body)
        try:
            if WishList.objects.filter(product_id = data['product_id'], account_id = request.account).exists():
                return JsonResponse({"message" : "INVALID_REQUEST"}, status = 400)

상품 좋아요의 기능은 특정 회원이 특정 상품을 좋다고 표시하여 자기만의 페이지(마이페이지 등)에 저장하는 기능으로써, 이 기능이 실현되기 위해서는 그전에 로그인(회원임을 증명) 후 회원임을 증명해야만 가능한 것이다. 때문에 상단에 따로 util.py 로 빼놓은 데코레이터를 불러온 뒤에 회원임을 인증하게 되면 좋아요의 view.py 가 실행될 수 있도록 구현한 것이 기억에 남았다.


회고, 느낀점

이번 개인공부가 목적이었던 3차 리팩토링 프로젝트의 목표는 1,2차 프로젝트를 진행하면서 실력상, 시간상 구현하지 못했던 추가기능을 더해 진행하는 방식으로 이어졌다. 그래서 그런지 잊기 쉬운 간단한 초기세팅부터 시작해 처음부터 모든 기능을 혼자 하게 되면서 일반 1,2차 프로젝트보다 시간이 두 배 이상 걸리긴 했지만 그래서 그런지 모든 프로젝트의 과정을 전체적으로 리마인드 하는 느낌이라 새롭고 많은 공부가 되었다. 특히나 데코레이터 부분이 이해가 안됐는제 장바구니 기능을 추가하게 되면서 어떤식으로 작동하는지 많은 참고가 됐던 것 같다. 개인공부를 시작하기에 앞서 이렇게 선택한 것이 맞는것인지 혼란스러운 때가 있었는데 결과적으로 한번이라도 기초를 오롯이 혼자서 소화했다는 것에 대해서 만족한다. 😊

profile
Backend Developer

0개의 댓글