1. 정의
M: Model (Data)
V: View (User Interface)
C: Control (Business)
Story Of Dosic이라는 프로젝트에서 설계 문서에 포함된
Layered Architecture를 공개한다
User에게 보이는 웹 페이지 화면 (View) << Presentation Layer
유저의 request에 대한 응답, Interaction이 이뤄질 수 있게하는 부분(Control) << Business (Service) Layer
서비스에 필요한 Data를 요청하는(Model) Database Layer로 나뉘어 질 수 있다.
2. 목적
Layered Architecture, MVC 패턴으로 모델을 나누는 이유는
흔히 프론트앤드 , 백앤드로 나뉘는 것처럼
'분업'을 통한 작업의 효율성, 명확한 역할분담
추후 유지&보수 면에서도 유리하기 때문이다.
Agile 방식의 개발을 하게되면
Model 1로 Presentation Layer와 Business Layer간 경계가 없게 개발 될 수도 있는데
규모가 작은 프로그램이나 프로토타입을 만드는데에는 좋지만
많은 인력이 필요한 대규모 프로젝트, 추후 재사용성이 높은 프로젝트에는
Model 2 (MVC Pattern Development)가 권장된다.
3. 예시
JavaScript Library중
Express.js , AngularJS, Backbone.js는 소프트웨어 패턴의 적용을 쉽게해주는 대표적인 라이브러리다.
Express.js는 Single, Multi Page, Hybird Web Application을 위한 강력한 기능을 제공한다.
(특히 Router 기능)
'Web' 카테고리의 다른 글
스타일 적용 우선순위 & n-th selector (0) | 2020.02.20 |
---|---|
[CSS] position 설정시 유의점 (0) | 2020.02.19 |
Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client (0) | 2020.01.21 |
atom display automatically documentation(reference) (0) | 2020.01.16 |
Postman Post -> Get Redirection Error (0) | 2020.01.09 |