Web Framework중 Javascript Framework와 UI Framework를 조사 및 정리하라는 과제를 받았다.
수 많은 JF를 알기 전에 MVC패턴에 대한 이해를 하고 있어야 한다고 하니, 정리해보았다.
먼저 왜 등장했나? 부터 알아야 좋을 것 같다.
Traditionally used for desktop graphical user interfaces (GUIs) / 즉, GUI가 등장하고, 사용함으로써 이 개념이 나왔다고 한다.
MVC구조의 이해
사용자 인터페이스로부터 비즈니스 로직을 분리하여 애플리케이션의 시각적 요소나 그 이면에서 실행되는 비즈니스 로직을 서로 영향 없이 쉽게 고칠 수 있는 애플리케이션을 만들 수 있다.
Model : 애플리케이션의 정보(데이터)
모델의 상태에 변화가 있을 때 컨트롤러와 뷰에 이를 통보한다. 이와 같은 통보를 통해서 뷰는 최신의 결과를 보여줄 수 있고, 컨트롤러는 모델의 변화에 따른 적용 가능한 명령을 추가, 제거, 수정할 수 있다.View : 사용자 인터페이스
사용자가 볼 결과물을 생성하기 위해 모델로부터 정보를 얻어온다.Controller : 데이터와 비즈니스 로직 사이의 상호동작을 관리
모델에 명령을 보냄으로써 모델의 상태를 변경할 수 있다. 또, 컨트롤러가 관련된 뷰에 명령을 보냄으로써 모델의 표시 방법을 바꿀 수 있다.(출처 : https://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller)
MVC 시퀀스 다이어그램
사용자가 A라는 이미지를 눌러 관련 정보를 얻고 싶다.
A라는 이미지를 누르면 컨트롤러가 모델에게 이미지에 관련된 데이터를 요청한다.
A의 이미지에 관련된 정보를 갖고 있었던 모델이 데이터를 찾아 유저에게 보여주기 위해 View로 보여주기 위해 업데이트 한다.
- View(JSP, HTML)로 사용자가 원했던 데이터를 보여주고, 사용자는 자신이 선택한 이미지의 정보를 볼 수 있다.
MVC를 쓰는 이유
Brief Description
Several problems can arise when applications contain a mixture of data access code, business logic code, and presentation code. Such applications are difficult to maintain, because interdependencies between all of the components cause strong ripple effects whenever a change is made anywhere. High coupling makes classes difficult or impossible to reuse because they depend on so many other classes. Adding new data views often requires reimplementing or cutting and pasting business logic code, which then requires maintenance in multiple places. Data access code suffers from the same problem, being cut and pasted among business logic methods. (출처 : oracle.com/)
이 영어로 된 내용이 가장 잘 설명되어 있는 것 같다.
아래는 내가 생각하는 이유이다.
(물론 MVC패턴이 아닌 패턴에 대한 장점이라고 보면 된다.)
각 컴포넌트 끼리 독립적으로, 코드 결합도를 낮추기 위해 사용함.
코드의 재사용성을 위해 사용함.
- 구현자들 간의 커뮤니케이션의 효율성을 높이기 위해.
'Web Framework' 카테고리의 다른 글
Cannot read property 'extend' of undefined(Backbone) (0) | 2016.10.05 |
---|---|
UI Framework (0) | 2016.09.21 |
Backbone.js (0) | 2016.09.20 |
Web Framework (0) | 2016.09.20 |