두숟갈 스터디 6회차
핵심 내용
Django의 함수 기반 뷰와 클래스 기반 뷰, 데코레이터 활용 원칙을 정리했다.
자세히 보기
Two Scoops of Django 8~9장을 바탕으로 **함수 기반 뷰(FBV)**와 **클래스 기반 뷰(CBV)**의 사용 기준을 살펴봤다. 둘 중 어느 쪽이든 가능하지만, 복잡도가 높아지는 경우나 커스텀 에러 뷰처럼 단순한 경우에는 FBV가 더 적합할 수 있다.
URLConf와 뷰 로직은 느슨하게 분리해야 재사용성과 확장성이 좋아진다. URL과 뷰가 강하게 결합되면 반복 작업이 늘고, 상속과 확장에 제약이 생기므로 이름공간을 적절히 활용하고 뷰를 문자열로 직접 지목하는 방식은 피해야 한다.
뷰 안에는 HTTP 처리에 필요한 최소한만 두고, 나머지 비즈니스 로직은 모델 메서드, 매니저 메서드, 유틸리티 함수로 옮기는 것이 좋다. Django 뷰의 본질은 HttpRequest를 받아 HttpResponse를 돌려주는 함수이며, CBV도 결국 View.as_view()를 통해 같은 역할을 수행한다.
또한 locals()를 컨텍스트로 쓰는 방식은 유지보수를 어렵게 만드는 안티패턴으로 정리했다. 변수명이 바뀌기만 해도 렌더링 결과가 달라질 수 있으므로, render()에는 필요한 값을 명시적으로 전달하는 편이 안전하다.
9장에서는 FBV의 장점을 살리는 방법으로 decorator 활용을 다뤘다. 데코레이터는 request를 가공하거나 HttpResponse를 후처리하는 데 유용하지만, 너무 많이 쌓으면 코드가 읽기 어려워지므로 개수를 제한해야 한다.
심화 내용에서는 현재 Django에서 쓰이는 뷰의 형태를 정리하고, URL / URI / URN 차이와 Explicit is better than implicit 원칙을 다시 짚었다. 이어서 데코레이터가 실제로 어떻게 적용되는지, 회사에서 어떤 방식으로 사용되는지까지 연결해 보며 실무 관점의 이해를 넓혔다.
이 한국어 요약은 AI가 자동으로 만들었습니다. 원문의 주장과 맥락은 원문에서 확인해 주세요. 저작권은 원저작자에게 있습니다.