[모델링] 프로젝트 모델링

고준영·2021년 9월 4일
0

MySQL🐬

목록 보기
2/2
post-thumbnail

1. 술담화 페이지

1) end-point 목표

  • 상품의 리스트
  • 상품 리스트 랜덤하게 응답
  • 상품 디테일 정보
  • 장바구니
  • 주문
  • 사용자 정보
  • 로그인
  • 회원가입

2) 목표 설정 이유

언뜻 보면 많은 기능을 담고있는것 처럼 보이나 실질적인 주문의 기능이 없기에 생각보다 많은 기능을 추가하지 못했고,
하나의 기능을 최적화 하여 내가 실제로 기업에서 일하는 것 처럼 어떻게 하면 최적의 서비스를 제공 할 수 있을까의 고민을 하면서
end-point를 구상하기 위해 목표를 조금은 보수적으로 잡았다.

2. 모델링

1) 모델링 결과

  • 모델링의 리뷰를 받르면서 가장 기억에 남는 부분은 왜 Product모델과 상세 설명을 나누었냐는 질문이었다.

    사실 나는 위의 질문에 대하여 위코드 1주차에 있었던 데이터 모델링에서 했던 고민들에 대해서 다시 한번 고민하였고, 그때 생각했던 많은 방법을 바탕으로 팀원들을 설득 할 수 있는 근거를 찾기위해 노력했다.
    이러한 고민중 하나로 Product와 상세설명을 나눈것이 있는데, 이에 대한 나의 생각은 우리가 만들어야 할 페이지에서 상세 정보를 불러오는 경우는 많이 없으나, 기본적인 정보는 불러와야 할 경우가 많다고 생각하여 분리하였고, 이는 지금 프로젝트를 진행하면서도 잘 구상한 부분이라고 생각하고 있다.

2) 해당 모델링을 기반으로 프로젝트를 하면서 느낀점

  • DB hit?
    병민 멘토님의 백엔드적으로 조금 더 생각해보자? 라는 말씀에 내가 작성한 코드가 얼마나 많은 DB요청을 하고있는지 확인을 해보고 나는 엄청난 좌절을 경험했다.
    나는 지금까지 기능이 잘 되는것에 만족하고 API를 빨리 찍어내기에 바빴다...
    하지만 내가 작성한 코드의 DB요청을 확인해보니 정말 상상이상의 DB요청을 하고 있었고, 이를 어떻게 하면 최적화 할 수 있을지 고민하였다.(나는 정말 기본적인 Django ORM과 SQL문법만을 사용하고 있었던 것이다.)
  • select_related, prefetch_related 공부하기!!

3. Conclusion

지금까지는 백엔드 개발자로써 기능이 된다! 원하는 기능을 만든다! 이것으로 만족했었다.
하지만 조금 더 나아가 내가 실제 서비스를 제공한다고 생각하고, DB에 주는 부하를 최소화 하기 위해 노력해야 한다는 것을 깨달았고, 이제서야 진짜 백엔드 개발자가 된 것 같다. 또한 백엔드 개발자로써 성잘 할 길이 열린것 같은 기분이 들었다.
위코드 5주차 토요일 21.09.04

profile
코드짜는귤🍊 풀스택을 지향하는 주니어 개발자 입니다🧡

0개의 댓글