'Thin View, Fat Model/Form, Stupid Template' 출처에 대하여
강사님 안녕하세요~
알찬 장고 강의를 만들어 주셔서 감사합니다!
강사님의 강의를 발판 삼아서 제 역량이 한 단계 도약할 수 있기를 기대하고 있습니다.
'Thin View, Fat Model/Form, Stupid Template'이라는 문장에 대한 출처 또는 상세 내용을 알고 싶습니다.
강의를 본격적으로 수강하기에 앞서 본 강의 질문에 대한 강사님의 답변을 훑어보다가 위와 같이 인상적인 문장을 발견했습니다.
이 문장 안에 장고의 핵심철학이 담긴 것 같아서 관련 내용을 웹에서 검색했지만 상세한 내용을 찾지 못했습니다. django 공식문서에도 관련 내용을 찾을 수 없었습니다.
혹시 위 문장에 대한 출처를 알려주실 수 있나요? 혹은 저 문장에 함의된 내용에 대해 부가적인 설명을 들을 수 있을까요?
참고로 위의 문장에 대해 혼동되는 부분을 아래와 같이 정리해보았습니다.
1. Thin View: Django 기반으로 API 개발 시 View에서 QuerySet을 조작합니다. QuerySet 조작에 따라 view에는 비지니스 로직이 포함되므로 Fat해지는 것이 자연스럽다고 생각하고 있습니다.
2. Fact Model: model에는 모델 필드와 제약사항 외에는 추가할 부분이 없어 보이는데 Fat하게 조작한다는 말이 이해되지 않습니다.
강사님의 답변을 기다리겠습니다!
감사합니다 :)
답변 2
1
출처는 도서 <Two Scoops of django>의 서문입니다. 해당 책은 장고 1.8 버전으로 인사이트에 번역판도 있습니다. 현재 원서로 장고 3.x버전 집필 작업이 한창인 것으로 알고 있습니다.
모델은 클래스 이기 때문에 다양한 인스턴스 함수를 추가하실 수 있습니다. 모델 필드와 관련된 비즈니스 로직들을 모델에 적용하기 좋습니다.
View 단에서 비즈니스 로직이 포함될 수도 있지만, View 단에 구현하면 여러 View에 걸쳐서 동일한 로직이 반복될 수 있으니, CBV 상속으로 중복을 제거하실 수도 있으실 테고, 모델에 모아서 관리하시는 것이 나으실 수 있습니다. View는 요청을 받아서 중개의 역할을 하는 거죠.
안녕하세요.
0
48
1
[OneToOne Field Demo] get_user_model() 메서드를 활용해야 하는 이유?
0
271
1
useEffect 훅에서 else 유무에 따른 결과
0
211
1
useAxios 훅의 dependency array 설정
0
245
1
useEffect에서 변수 업데이트 관련 질문
0
381
1
rest_framework.generics.CreateAPIView의 model 속성 유무
0
266
1
bootstrap4
0
469
4
리뉴얼 강의가 오픈이 되면 기존 강의는 더이상 못보는걸까요
1
361
1
admin form에서 앞선 필드 선택 후 다른 필드 select widget 구성하는 방법
0
572
3
useState는 필수일까요?
0
261
1
python manage.py makemigrations instagram 시 created_at default 오류가 발생합니다.
0
595
4
Django allauth를 사용한 소셜 로그인 시 에러
0
652
1
프로젝트명 변경 뒤, 디버그툴바+디버그모드 사용 시 에러
0
551
2
useLocalStorage() 함수 사용여부
0
228
1
django에 LOGIN_URL = '/accounts/login/'의 의미?
0
447
1
리듀서의 의미 재확인
0
428
1
simple-jwt Refresh Token 사용 노하우
0
897
2
docker compose 를 통한 배포 관련 오류 문의
0
669
1
파이썬 속도 장고 관련 궁금한게 있습니다.
0
364
1
is_like_user
0
233
1
related_name 오류
0
272
1
re_path 오류
0
258
1
re_path url
0
249
1
No post matches the given query
0
659
2





