Django의 MTV 패턴 시스템은 무엇입니까?
장고의 MTV 패턴은 장고의 디자인 패턴으로, 모델, 템플릿, 뷰를 말합니다(Model - Template - View)
각각을 설명하자면, model은 하나의 클래스가 하나의 DB 테이블을 담당하여 DB에 데이터를 저장할 수 있게 합니다.
template는 Django Template Engine을 제공하여 쉽게 사용자 인터페이스, 즉 동적인 html을 작성할 수 있게 해줍니다.
view에서는 데이터를 처리하는 로직을 작성하여 사용자의 요청에 적절하게 반응하고, 결과를 template로 전달합니다.
** 디자인 패턴 : 효율적으로 코드를 작성하기 위한 코딩 규칙 or 프로젝트 구조
보통은 MVC 패턴을 따른다. Model - View - Controller
- Model(모델) : 데이터와 데이터를 처리하는 로직을 가짐
- View(뷰) : 화면에 요청에 대한 결과물을 보여주는 역할
- Controller(컨트롤러) : 모델과 뷰를 이어주는 역할
👍 장점 : 유연성이 높고 유지보수가 용이하며 개발자와 디자이너의 작업 영역을 분리할 수 있다
👎 단점 : 프로젝트의 규모가 커질수록 컨트롤러가 비대화, 모델과 뷰의 의존성을 완벽히 분리할 수 없어 유지보수가 점점 어려워진다
https://tibetsandfox.tistory.com/16
Django의 프로세스는 어떤 순서로 동작합니까?
MTV와 정의한 UrlConf를 통해 프로세스가 동작하게됩니다. (UrlConf : URL 패턴을 정의하여 해당 URL과 뷰를 매핑하는 단계)
- 유저가 특정 url로 요청을 보냅니다.
- UrlConf를 통해 해당 url과 매핑된 뷰를 호출합니다.
- 호출된 뷰는 요청에 따라 적절한 로직을 수행하며 그 과정에서 모델에게 CRUD를 지시합니다.
- 모델은 ORM을 통해 DB와 소통하며 CRUD를 수행합니다.
- 그 후 뷰는 지정된 템플릿을 렌더링,
- 최종 결과를 반환합니다.
'취대넓얕' 카테고리의 다른 글
[기술면접] 16일차 문답 | JWT, 쿠키 세션 토큰 (0) | 2023.08.09 |
---|---|
[기술면접] 15일차 문답 | WSGI ASGI CGI, Gunicorn Nginx (0) | 2023.08.08 |
[기술면접] 13일차 문답 | 배포 시 주의점 (0) | 2023.08.04 |
[기술면접] 12일차 문답 | sqlite, django DB스택 (0) | 2023.08.03 |
[기술면접] 11일차 문답 | ORM (0) | 2023.08.02 |