[Django] #1 MTV 패턴

chaerim·2022년 1월 27일
0

Django

목록 보기
1/2
post-custom-banner

MTV 패턴

웹 프로그램 개발 시 일반적으로 언급되는 MVC 패턴의 개념을 Django Framework에서 그대로 받아오는 대신 용어를 바꿔 사용하고 있는 개발 패턴이라고 할 수 있다.

MVC 패턴이란?
사용자 인터페이스, 데이터 및 논리 제어를 구현하는데 널리 사용되는 소프트웨어 디자인 패턴으로, 소프트웨어의 비즈니스 로직과 화면을 구분하느데 중점을 두고 있으며, MTV 패턴과 마찬가지로 MVVM, MVP 등 다른 디자인 패턴의 기반이 되기도 한다.

MVC 패턴은 크게 3가지 부분으로 설명할 수 있다.

  • 모델(Model) : 데이터와 비즈니스 로직을 관리
  • 뷰(View) : 레이아웃과 화면을 처리
  • 컨트롤러(Controller) : 명령을 모델과 뷰 부분으로 라우팅

Django Framework에선 크게 Model, Template, View, URLconf까지 4가지 부분으로 역할을 나눌 수 있다. 기본적으로 MVC와 크게 다를 것은 없지만, Django Framework의 경우 View와 URLconf가 Controller의 역할을, Template이 View의 역할을 한다는 점에서 차이가 있다.




웹 클라이언트의 요청을 받고, Django에서 MTV 패턴에 따라 처리하는 과정을 요약하자면 다음과 같다.

  • 클라이언트로부터 요청을 받은 후, URLconf를 이용해 URL을 분석
  • URL 분석을 통해 해당 URL에 대한 처리를 담당할 View를 지정
  • 지정된 View에서 로직 수행, 데이터가 필요할 경우 Model을 통해 처리 후 결과 반환
  • View의 로직 처리가 끝나면 Template을 통해 클라이언트에 전송할 HTML 파일을 생성
  • View는 최종 결과로 HTML 파일을 클라이언트에 보내 응답


Model

Django에서의 모델은 사용될 데이터에 대한 정의를 담은 클래스를 의미한다. 특히 Django는 ORM 기법을 사용해 SQL 없이 DB에 접근해 애플리케이션(단위 프로그램)에 사용할 데이터를 끌어올 수 있다.

ORM(Object-Relational Mapping)이란?
ORM은 객체과 관계형 데이터베이스를 연결하는 것을 의미한다. 따라서 SQL을 작성하여 DB에 접근하는 것이 아닌 객체를 통해 DB에 접근함으로써 코드의 가독성을 높이고 생산성을 증가시킬 수 있다 .



URLconf

클라이언트로부터 요청을 받으면 Django에선 제일 먼저 요청이 들어온 URL을 정의한 URL 패턴과 매칭되는지 분석한다.

Django에서 URL을 분석하는 과정은 다음과 같다.

  • setting.py의 ROOT_URLCONF 항목을 읽어 최상위 URLconf 위치를 알아낸다.
  • URLconf를 로딩해 urlpatterns에 지정된 URL리스트를 검사한다.
  • 위에서부터 차례대로 리스트의 내용을 검사하면서 URL 패턴이 매치되면 검사 종료한다.
  • 매치된 URL의 뷰를 호출해 파라미터값을 넘겨준다.
  • 매칭에 실패하면 에러 처리 뷰를 호출한다.


View

일반적으로 View는 웹 요청을 받아 DB에 접속하는 등 해당 애플리케이션의 로직에 맞는 처리를 하고, 그 결과를 HTML로 변환하기 위한 템플릿 처리를 한 뒤, 최종 HTML로 된 응답 데이터를 웹 클라이언트로 반환하는 역할을 한다.

Django에서는 함수 또는 클래스의 메소드 형식으로 작성된다.


Template

개발자가 응답에 사용할 HTML 파일을 작성하면, Django가 이를 해석해 최종 HTML 텍스트 응답을 생성하고, 이를 클라이언트는 응답으로 받은 HTML 텍스트를 해석하여 웹 브라우저에 UI를 보여준다.

profile
회사 다니면서 공부하기
post-custom-banner

0개의 댓글