MVC pattern이란 ?
django를 하다가 갑자기 MVC를 알아보는 이유는 MVC pattern이라는 것을 어렴풋이 알고 있었는데,
django project의 디렉토리 구조에 models.py와 views.py가 있는것을 보고 MVC패턴이 사용된다는 것을 알게되었다.
그래서 MVC 패턴을 짚고 가야할 것 같다.
MVC는 Model-View-Controller 의 약자이다.
web에서만 사용하는 것이 아니라 다른 소프트웨어의 개발에서도 사용되는 개발방법론이다.
model, view, controller라는 세가지의 역할군으로 나누어 구현하는 방법이다.
MODEL : 무엇을 할지 정의한다. 데이터, 변수 등을 모두 포함한다. 화면에서 어떤 글자를 표시한다면, 글자의 위치, 크기 색상의 정보를 정의하고 있는 것이다. veiw에 이 데이터를 전달할 때에는 controller를 통해 전달하도록 한다.
CONTROLLER : 어떻게 처리할지 정의한다. model과 view사이에서 이들의 역할을 통제한다.
사용자가 view를 통해 데이터를 입력하고 버튼을 눌렀을 때 이 버튼이벤트를 통해 model에 데이터를 전달하는 역할을 한다.
VIEW : 보여주기 역할을 한다. django에서는 view의 역할을 template이 한다고 한다.
사용자가 화면을 통해 어떠한 데이터를 입력할 수 있도록 인터페이스를 제공한다.
사용자가 view를 통해 입력한 데이터는 model에 전달을 한다.
또한 화면에 보여주기 위해 model에서 참조해 온 데이터를 가지고 있지 않고, 화면에 보여준 뒤 삭제한다.
이렇게 역할이 나뉘는 것이고, 다음으로 MVC 패턴의 장단점을 알아보고자 한다.
장점 :
- 역할을 나눔으로써 유지보수에 용이하다.
- 코드를 깔끔하게 구현할 수 있다.
단점 :
- 복잡한 대규모 어플리케이션에서는 controller로 역할이 집중되면서 문제가 발생한다.
어느정도 이해했으니 다시 django를 공부해야겠다.
'개발Study > web' 카테고리의 다른 글
Python shell in django (0) | 2020.10.18 |
---|---|
Django url? view? HTTP? (0) | 2020.10.18 |
database in django (0) | 2020.09.13 |
django project (0) | 2020.09.09 |
django + apache + mysql 을 이용한 web server (0) | 2020.08.23 |
댓글