MVC (Model View Controller)
Model : 모든 데이터의 상태와 로직을 처리
View : 모델이 가진 데이터를 표현하는 방법을 제공 (화면단)
Controller : 사용자로부터 받은 정보를 모델에게 상태변경요청을 하고 필요에 따라 뷰의 상태변경을 요청
MVC 패턴
디자인 패턴중 하나인 MVC패턴
디자인패턴이란 프로그램이나 어떤 특정한 것을 개발하는 중에
발생했던 문제점들을 정리해서 상황에 따라 간단하게 적용해 쓸 수 있는 것을 정리하여
특정한 “ 규약”을 통해 쉽게 쓸 수 있는 형태로 만든 것
라이브러리, 프리임워크등을 예로 말할 수 있다.
MVC란?
MVC는 Model View Controller의 약자로 하나의 애플리케이션, 프로젝트를 세 가지 역할로 구분한 패턴으로
사용자(Client)가 Controller를 조작하면 Controller는 Model을 통해서 데이터를 가져오고
화면단(View)를 제어하여 사용자에게 전달한다.
MVC 장점
1. 유연하고 확장하기 쉽다 (컨트롤러가 뷰와 모델 간의 중간관리 역할을 하여 간접소통을 통해 좀 더
유연한 구조를 설계할 수 있다. 수신하는 데이터 양을 줄일 수 있다.
2. 디자이너와 개발자의 협업이 용이하다.
3. 유지보수 비용을 절감할 수 있다.
MVC 단점
1. 기본기능 설계를 위해 클래스들이 많이 필요하여 복잡해질 수 있다. 스크립트로 작성되므 로 디버깅이 용이하지 않다..
2. 설계시간이 오래 걸리고 숙련된 개발자가 필요하다.
3. 처음 설계시간이 오래 걸려서 속도가 중요한 프로그램에서는 권장되지 않을 수 있다.
4. Model과 View의 의존성때문에 완벽한 분리가 어려워서 패턴이 모호해질 수 있고 변형 이 올 수 있다.
MVC 순서
처음 User가 View에서 보여주는 화면에 접속
컨트롤러는 페이지를 보여주기 위해 모델을 호출
모델은 웹페이지의 결과값을 조합하여 결과물을 컨트롤러로 리턴
모델이 리턴한 결과를 View에 업데이트하여 사용자에게 보여줌
요청 Client > Controller > Service > ServiceImpl > Mapper > DB(xml)
응답 DB(xml) > Mapper > ServiceImpl > Service > Controller > Client
> Controller (컨트롤러)
- class
- 데이터를 주고받는 역할
- 터미너 역할
> Service (서비스)
- interface인터페이스이다.
- 구현부가 없다.
- ServiceImpl이 구현부 역할을 한다.
> ServiceImpl(서비스 임플)
- class
- 서비스의 구현부역할로 제일 중요한 로직들이 이 서비스임플에 있다.
> Mapper(맵퍼)
- interface 인터페이스
- Sql의 쿼리를 가리키는 역할을 한다.
'Backend > JAVA' 카테고리의 다른 글
[Egov] 프로젝트 생성 및 타일즈 설정 (0) | 2018.03.27 |
---|---|
[Egov]프로젝트구조(서버올린 후 메인이 뜨는 과정) (0) | 2018.03.27 |