[TIL] 2020.09.29 1차 프로젝트 후기

dev.soo·2020년 9월 29일
1

1차 프로젝트이자 인생 첫 그룹 프로젝트로, 컨버스 공식 사이트의 신발 카테고리의 백엔드 클론하는 프로젝트를 진행하였다.

1. 프로젝트 개요

  • 인원 : 프론트엔드 4명, 백엔드 2명
  • 기간 : 2020.09.14 ~ 2020.09.25 (12일간)
  • 클론한 사이트 : Converse korea

2. 구현한 기능

  • 회원가입 / 로그인

  • 메인 페이지

  • 제품 목록(신발만)

  • 제품 상세

  • 장바구니

  • 위시리스트

3. Stack & Tool

  • Python
  • Django
  • MySql
  • AWS (RDS, ECS2)
  • aquerytool, trello, Git & github

4. 내가 맡은 부분

  • Account 앱
    - 모델 : 사용자, 위시리스트
    - 로직 : 로그인/회원가입, 위시리스트 추가/삭제/보기
  • Product 앱
    - 로직 : 제품 상세페이지 조회
  • Order 앱
    - 모델 : 장바구니
    - 로직 : 장바구니 수정(수량변경), 장바구니 보기

5. 남기고 싶은 코드

  • 회원가입 validation 정규식 사용
  • Q 객체 사용
  • 제품 상세 보기 : prefetch_related, select_related 사용
  • 제품 상세 보기 : list comprehension 으로 코드를 줄였다!
  • wishlist 함수 (전체 상품조회, 장바구니 조회시에도 로그인 여부에 따라 해당 상품의 위시리스트 여부를 반환해줌)

    다른 파일에서 해당 함수 불러와서 사용

6. 만족하는 부분

프론트 엔드에서 구현하고자 하는 기능을 못 해줄까봐 걱정했는데 다행히 호흡을 맞춰 원하는 기능들을 구현해 낼 수 있었다. 처음으로 협업을 해 보았는데, 매일 아침마다 스탠딩 미팅으로 다른 사람들이 진행하고 있는 내용을 전달받아서, 나 혼자 하는 게 아니라, 큰 그림의 일부를 짜고 있다는 기분이 들어 좋았다.

단순히 페이지 중심이나 상품 중심이 아니라, 서비스를 제공하고 데이터를 관리하는 입장을 중심으로 모델링을 하면서 주문, 장바구니, 재고관리 등등 다양한 경우의 수를 생각하고 모델링 하는 것도 무척 재미있었다.

간만에 시간 아껴가면서 에너지를 쏟았다. 몸은 힘들었지만 마음은 그럭저럭 즐거웠다.
돌아가기만 하는 코드보다는 효율적인 코드에 대한 고민을 거의 처음으로 해 봤다. 최대한 db 에 쿼리를 적게 날리는 방향으로 하려고 노력했는데 갈 길이 참 멀지만 첫 발을 디뎠다는 점에 의의를 둔다.

7. 아쉬운 부분

크롤링을 한 사람이 하는 게 나을 것 같아, 다른 백엔드 동료가 진행했는데, 결과적으로 크롤링, db 에 업로딩 하는 파일, 크롤링 한 데이터 models.py 작성을 다 하게 만들어 버렸다. 복잡한 일을 다 떠넘긴 것도 미안하고, 다들 크롤링 할 때 혼자만 하지 않아 2차 프로젝트가 두렵다.
프론트엔드 부분도 하나도 몰라서, 어떤 것을 요청할 때 이게 어느 정도의 작업량을 요구하는 건지 감을 못 잡아 프론트엔드 팀원들을 난감하게 한 적도 왕왕 있어서 미안했다.
Prefetch_related, select_related 도 적용 해 보긴 했는데 더 깊은 공부가 필요할 것 같다.
서버에 배포하는 것도 사실상 짝꿍이 거의 진행해서 2차 프로젝트때는 조금 더 주도적으로 해 보고 싶다.

8. 더 공부하기

  • Json type 으로 Boolean value 를 프론트엔드로부터 전달 받을 때, str type 으로 바뀌어서 전달되었다. boolean type 그대로 받을 수는 없을까?
  • is_wishlist 함수에서 전역번수와 지역변수 때문에 함수를 몇 번 고쳤다. 일단 굴러가게는 해 두었는데 왜 저렇게 하는지는 아직 알지 못한다.
  • prefetch, select-related 좀 더 공부하기
  • 서버 배포하기

1개의 댓글

comment-user-thumbnail
2020년 9월 29일

잘보고갑니다

답글 달기