개발/Django

Pythonweb/Django - 디자인 패턴과 MTV, MVC

잇(IT) 2022. 4. 10. 01:50
728x90

- 이번 포스팅은 디자인 패턴과 MTV에 대해 알아볼 것이다.

 

- 객체 지향 프로그래밍 설계를 할 때 자주 발생하는 문제들을 피하기 위해 사용되는 패턴이다. 협업해서 개발할 때 다른 사람이 작성한 코드, 기존에 존재하는 코드를 이해하는 것은 어렵다. 디자인 패턴은 의사소통 수단의 일종으로서 이런 문제를 해결해준다. 장고에서이는 이를 MTV라고 부른다.

 

- MVC와 MTV

- 웹 프로그래밍에서 자주 사용되는 디자인 패턴은 MVC이다. Model-View-Controller의 약어다. 

 

  - Model : DB의 구조를 결정한다. 대부분의 경우 테이블을 작성할 때 사용하는데 테이블의 이름, 각 열의 이름과 타입 등을 설계할 때 사용한다. 

  - View : 사용자에게 보여지는 UI 부분이다. HTML 코드 등 실질적으로 클라이언트에게 보여질 부분이 들어간다.

  - Controller : 기능, 로직 부분이다. 넘겨받은 데이터를 어떻게 해석하고 가공할지 그리고 처리된 결과를 어떻게 클라이언트에게 돌려줄지 결정하는 부분이다.

 

- models.py : DB의 명세를 관리한다. 모델은 클래스로 만드는데 클래스의 이름이 테이블 이름이 되고 클래스의 속성들이 컬럼이 된다. 속성의 값이 컬럼의 데이터 타입과 제약 사항을 결정한다. 또 모델을 이용해 DB의 종류에 상관 없이 그리고 프로그래머가 SQL을 모르더라도 DB를 편하게 이용할 수 있도록 ORM이라는 기능을 사용한다. ORM은 객체를 이용해 관계형 DB를 이용할 수 있게 해주는 개념이다.

- admin.py : 테이블 생성 후 추가, 수정, 삭제, 확인이 가능해야 한다. CRUD​ (create-read-update-delete)라고 부른다.

- views.py : 페이지를 만들 때 프로그래밍 해주는 공간이다. 뷰는 클래스형 뷰와 함수형 뷰 두가지가 있다. 

- urls.py : views.py에 어떤 기능을 만들면 해당 기능을 동작시키는 방식은 URL을 통한 호출 방식이 주가 된다. 보통 프로젝트 urls.py와 각 앱에 해당하는 urls.py들로 구성한다.

- templates : 보통 HTML이 들어 있는 파일이다. 템플릿 파일들 앱 폴더 안에 temples 폴더에 위치 시키지만 프로젝트 루트에도 위치시킬 수 있다. 특정 폴더안에 템플릿 파일들을 모아두고 싶다면 파일의 위치를 settings.py에 설정해둬야 한다.

728x90