MVC vs MVT (Spring vs Django) 차이점
앞서 알아야할것
-
비즈니스 로직 : 비지니스 로직을 프로그래밍으로 본다면 비지니스 규칙은 프로그래밍을 위한 클래스 또는 함수의 이름 부터 시작해 변수 이름, 알고리즘의 전반적인 틀을 문서화한 설계라고 보면 얼추 비슷할 것 같다. 흔히 알고리즘풀고 대학때배우는 그런 프로그래밍들
-
프레젠테이션 로직 : 비즈니스 로직으로 구성한것들을 사용자에게 어떤 것을 보여주고 숨길 것인지에 대한 등의 여부는 프레젠테이션 로직에서 결정하는것 비즈니스 로직에 강력히 종속되어있다고 볼수있음.
MVC
- model : 데이터의 처리, DB와 상호작용
- view : 웹 브라우저(크롬,파이어폭스)에서 실제 사용자에게 표시되는 프레젠테이션 로직을 처리하여 UI로 나타낸다.
- controller : View에서 핸들러의 흐름을 처리하거나 Model의 데이터를 업데이트 처리하는 로직을 제공
MVT
- Model(MVC) = Model(MVT)
- View(MVC) = Templates(MVT)
- Controller(MVC) = View(MVT)
차이점
- 큰틀에서는 비슷하다고 할수도있는데 장고의 철학? 때문에 MVC기준으로 MTV라고 생각해도될거같다.
- 첫번째로 MVT의 view가 비즈니스로직과 프레젠테이션 로직을 같이 가지고있는것이다. MVC의 controller는 비즈니스로직만 있다.
- 두번째로 MVT의 view에는 URLconf라는 강력한 기능을 제공하여 유저가 보낸 URL과 view의 연동을 간편하고 clean하게 만들어준다.
MVC를 사용해본적이 없어 어떻게 다를지는 모르겠다.
- 세번째로 Django MVT의 templates에는 forms를 제공하기때문에 유저입력을 간편하게 받을수 있다. 사용해보니 입력검증을 코드로 처리하는게아니라 구조적? 으로 만들어주니 간편했다.
Django MVT는 기능단위로 비즈니스로직과 프레젠테이션로직을 같이 작성하며, URLconf로 URL연결도쉽고, forms로 입력검증도쉽다.
Spring MVC는 비즈니스로직과 프레젠테이션로직을 명확히 분리하며, 뭐든 Django보다 커스텀이 자유롭다는게 여기서 나오는 말 같다.
참고사이트