1차 프로젝트 일지 | 211006(수) 2일차(Backend)

김민호·2021년 10월 6일
0

WECODE TIL

목록 보기
8/24
post-thumbnail
post-custom-banner

시간은 너무 빨리 지나가는데 하루만 지나도 뭘 했는지 기억이 안 난다....
당연하긴 하다 1분전에 작성한 코드도 까먹는데 ㅎ 기억보단 기록을 믿자!

wecode 1차 프로젝트

1. Daily Standup Meeting

  • 백/프론트 진행 상황 공유
  • 트렐로 가입 및 기본 세팅
  • 점심식사 후에 있을 모델링 브리핑을 위해 팀원분의 모델링과 내 모델링을 합치고 수정

2. 데이터 모델링 리뷰

1) 리뷰 전

  • 백엔드는 나 포함 2명인 관계로 모델링을 나눠서 진행
  • ERD 모델링 툴은 AQueryTool이 10월부로 유료화가 되었기 때문에 dbdiagram으로 진행
  • 만들어야 할 테이블 : User, Product, Order, Shipment 추가
  • 반반씩 적절하게 분배를 했지만 처음 해보는 모델링 작업이었기 때문에 혼자 전체적으로 다 짜보고 고민해봤다(팀원분도 그러신 것 같음)
  • 아직도 많이 부족하지만 절~대 할 수 없을 것 같았던 모델링 작업도 맨 처음 스타벅스 모델링을 했을 보다 이해도가 정말 많이 올라간 것을 느꼈다
  • 팀원분과 적극적으로 소통하며 일방적으로 물어보며 열심히 작성

2) 리뷰

  • 우리 백엔드 팀이 작성한 모델링에 대해 간략하게 발표를 하고 리뷰를 받음
  • 발표 내용(수정중)

  • 발표는 막막했지만 내가 했고, 11시 방향의 테이블 묶음부터 시계 방향으로 흘러가면서 그룹별로 모인 테이블들을 설명하려고 했음. 하지만 팀원분이 리뷰 직전에 사용자가 실제 H&M 사이트를 이용하는 과정(로직)대로 발표하는게 좋을 것 같다고 제안해주셔서 User -> Product -> Order 순으로 설명함. 이렇게 해보니 이게 훨씬 깔끔한 플로우였다는 생각이 들었다
  • 테이블간의 관계를 최대한 이해하기 위해 노력했고 1:N, N:N 관계의 테이블들은 그런 테이블인 이유를 설명하고자 했음.
  • 또한 컬럼으로 관리하거나 테이블로 빼서 관리하는 데이터는 왜 그렇게 했는지 설명하려고 노력함. 이 부분이 정말 꼼꼼하고 깊게 생각을 해야하는 부분이었고 그 만큼 어려웠다
  • H&M 상품들이 color가 달라지면 상품 고유 번호가 달라지지만 size는 상품 고유 번호에 영향을 주지 않는 다는 점을 고려하여, color는 컬럼으로, size는 테이블로 관리하고자 한다
  • 수정할 부분(새로 알게 된 내용)
    • soft_delete 컬럼을 추가하여 상품 데이터를 실제로 삭제하는 하지 않고 관리할 수 있다는 것을 알게 되었다
    • created_at, updated_at 컬럼은 거의 대부분의 메인 테이블에 필요했는데 그때마다 만드는 것은 번거로웠고, 이럴 경우 TimeStamp 라는 추상화 class를 통해 모델을 생성하고 다른 model class import 하여 사용하면 자동으로 추가시킬 수 있다는 것을 알게 되었다. 해당 class의 위치는 core 라는 앱을 생성하고 이 앱의 models.py에 작성하고 import 하여 사용
    • 주문과 관계되는 배송 테이블 생성. 여기 참고!

3. Model 작성 후 Push 완료 Merge 대기중

  • core, users, products, orders -> 4개의 앱 생성 후 models.py 작성
  • core : TimeStamp
  • users: User, Like, Cart
  • products : GenderCategory, MainCategory, SubCategory, Collection, Product, Size, ProductSize, Image, Material ,ProductMaterial
  • orders : OrderStatus, Order, OrderItemStatus, OrderProduct, Shipment, ShipmentItem

4. 아쉬웠던 점

  • 내가 친 코드가 어떤 의미를 지니는지 정확하게 알고 넘어가는 습관을 들이자. 내가 하는 작업의 기능과 의미랄까
  • 내가 뭘 잘했고(성공했고), 뭘 실패했고, 뭘 모르는지 구분하여 기록하면 더 좋을 것 같다
profile
개발자로서의 삶은 https://velog.io/@maxminos 에서 기록하고 있습니다 😀
post-custom-banner

0개의 댓글