파비의 매일매일 공부기록

Two Scoops of Django - #8장 본문

Study/Python

Two Scoops of Django - #8장

fabichoi 2021. 6. 9. 23:30

이번장은 함수 기반 뷰와 클래스 기반 뷰에 대한 내용이다.

나는 실무에서 REST 프레임워크도 사용하고, 일반 장고로 함수/클래스 기반 뷰도 사용하긴 하는데

요즘은 주로 REST 프레임워크만 사용해서 크게 집중할 만한 내용은 없긴 했다.

 

그럼에도 불구하고 이번장의 내용은 중요할 수 있으니 꼼꼼히 살펴봤다.

 

1. 함수 기반/클래스 기반 뷰를 어떤 상황에서 사용하는가 : 저자는 책에서 가이드라인을 제공하고 있다. 그런데 실무에서는 거의 클래스 기반 뷰만 사용한다. 보통은 subclass 형태로 상속받아 구현하는 경우가 많아서 그런 듯싶다.

2. URLConf로부터 뷰 로직 분리 : 보통 urls.py라는 모듈 내에서 URLConf를 통해 뷰로 라우팅 되는데 최대한 단순 명료하게 구성하는 게 좋다. 뷰 모듈은 뷰 로직을 포함, URL 모듈은 URL 로직을 포함하게만 구성할 것.

3. URLConf에서 느슨한 결합 유지 : 반복 작업 지양. 느슨한 결합 유지. URLConf는 한 번에 한 가지씩 업무 처리. 클래스 기반 뷰의 장점 살림. 무한한 유연성 유지

4. URL namespace 이용 : 확장성이 매우 좋으므로 활용하는 게 좋을 듯.

5. URLConf에서 뷰를 문자열로 지목하지 말 것 : 뷰를 문자열 대신 변수로 지정

6. 뷰에서 비즈니스 로직 분리 : 모델 메서드, 매니저 메서드 또는 일반적인 유틸리티 헬퍼 함수들을 활용해서 비즈니스 로직을 분리하는 게 용이하다. 물론 모든 프로젝트에서 초반부터 이렇게 하긴 어려울 수 있겠지만.

7. 장고의 뷰와 함수 : 기본적으로 장고에서 뷰는 HTTP를 요청하는 객체를 받아서 HTTP를 응답하는 객체로 변경하는 함수. 장고의 함수 기반 뷰는 HTTP 메서드에 중립적이지만 클래스 기반 뷰는 HTTP 메서드에 종속적.

8. locals()를 뷰 콘텍스트에 이용하지 말 것 : 뷰를 명시적인 콘텐츠로 이용하기를 추천.

반응형

'Study > Python' 카테고리의 다른 글

Two Scoops of Django - #10장  (0) 2021.06.11
Two Scoops of Django - #9장  (0) 2021.06.10
Two Scoops of Django - #7장  (0) 2021.06.08
Two Scoops of Django - #6장  (0) 2021.06.07
Two Scoops of Django - #5장  (0) 2021.06.06
Comments