본문 바로가기
취대넓얕

[기술면접] 14일차 문답 | Django MVT, 프로세스

by 째깍단 2023. 8. 7.

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과 뷰를 매핑하는 단계)

  1. 유저가 특정 url로 요청을 보냅니다.
  2. UrlConf를 통해 해당 url과 매핑된 뷰를 호출합니다.
  3. 호출된 뷰는 요청에 따라 적절한 로직을 수행하며 그 과정에서 모델에게 CRUD를 지시합니다.
  4. 모델은 ORM을 통해 DB와 소통하며 CRUD를 수행합니다.
  5. 그 후 뷰는 지정된 템플릿을 렌더링,
  6. 최종 결과를 반환합니다.