인프런 커뮤니티 질문&답변

작성자 없음

작성자 정보가 삭제된 글입니다.

Django REST Framework 핵심사항

ViewSet 으로 Refactoring

코드 최적화 과정

해결된 질문

작성

·

275

0

안녕하세요 선생님! 마지막 강의 까지 잘 들었습니다 매우 흥미로웠고 스스로 프로젝트 하며 삽질 했던 내용들이 많이 나왔던 것 같아서 꽤 재밌었네요. 근데 한가지 의문이 드는 점이 생겼어요. 저는 이 강의의 앞단을 듣고 나서 프로젝트에서 이러한 방향성으로 진행 해야겠다고 생각 했는데요.

  1. Model: 모델링

  2. Serializer: 모델을 기반으로 하여 메타 클래스 지정한 직렬화

  3. View: ViewSet을 활용하여 CRUD 기능이 짧은 코드로 모두 이루어지게 작성

  4. Url: url dispatcher를 통한 라우팅 과정

이후, 요구사항 분석을 통해 커스터마이징 하는 코드는 대개 Generic한 View(UpdateAPIView, CreateAPIView) 등 으로 사용을 하고, 이 상속 받는 뷰 에서 제공되지 않는 기능들이 필요한 부분은 API View를 상속 받아야된다고 생각을 하고 있었는데, 마지막 강의가 제너릭 뷰를 뷰셋으로 다시 리팩터링 하는 과정이었는데요.

그렇다면 순서를 어떻게 가져가야 효율적으로 DRF의 빠른 프로젝트 빌딩의 이점을 가져갔다고 할 수 있을까요?

-> 뷰셋을 먼저 코딩한 후, 제너릭 뷰를 통해 세분화

-> 제너릭 뷰를 통해 기능정의 우선, 뷰셋으로 코드의 간결화 유지

마지막에 애매모호한 점이 있어서 마지막 질문을 남깁니다 감사합니다!

답변 1

1

김석훈님의 프로필 이미지
김석훈
지식공유자

안녕하세요. 독자님.

저의 경우는 뷰셋으로 먼저 코딩 후, 커스터마이징 하는 경우가 많습니다. DRF 에 익숙한 상태라면 이 방법이 코드가 간결하고 이해가 쉬우리라 생각합니다.

다만 동영상에서 얘기한 순서는 실제 프로젝트 진행 순서가 아니라, 공부하는 순서를 얘기한 것입니다. 지네릭뷰를 먼저 공부하고 이를 발전시켜 뷰셋을 공부하는 것이, DRF 전반적인 흐름과 클래스 오버라이딩을 이해하는 데 용이할 것이라 판단하고 있습니다.

그리고 저는 장고의 CBV(클래스형 뷰) 를 강조하는 편입니다. (FBV 를 강조하는 사람도 있습니다.)

CBV 가 더 쉽고 간결하다고 생각하고 있으며, 특히 이를 통해 오버라이딩과 같은 클래스 특징들에 빨리 익숙해지는 것이 중요하다고 생각합니다. 저의 경우는 큰 규모의 SPA 프로젝트가 아니면, DRF가 아니라 CBV 의 JsonResponse 를 점점 더 많이 사용하게 되는군요.

호불호가 있을 의견입니다. 도움이 되었는지요 ?

작성자 없음

작성자 정보가 삭제된 글입니다.

질문하기