MVC 패턴

CODEDRAGON Development/JSP

반응형

   

 

 

MVC 패턴

·         Layered Architecture 사용한 대표적인 패턴입니다.

·         MVC Model, View, Controller 뜻하는 용어로 개발 형태의 일종 입니다.

·         소프트웨어 공학에서 사용되는 아키텍쳐 패턴으로 MVC 패턴의 목적은 Business logic Presentation logic 분리하기 위해서 입니다. 이렇게 작업을 분할하면, 추후 유지보수에 좋습니다.

·         MVC 패턴으로 개발하면, 사용자 인터페이스로 부터 비즈니스 로직을 분리함으로써 애플리케이션의 시각적인 요소나 그 안에서 실행되는 비즈니스 로직에 대해 서로 영향을 주지 않게 애플리케이션을 구현할 수 있습니다.

·         UI 가지는 대부분의 어플리케이션들은 MVC 또는 변형된 MVC 패턴을 사용합니다.

·         Angular, Android, iOS, SpringMVC

 

모델

(Model)

·         비즈니스 영역의 상태 정보 처리합니다.

·         Model 데이터베이스와의 관계 담당합니다.

·         클라이언트의 요청에서 필요한 자료를 데이터베이스로부터 추출하거나, 수정하여 Controller 전달 합니다.

·         애플리케이션의 정보(데이터, Business Logic 포함)

·         데이터 저장소(데이터베이스 ) 연동하여 사용자가 입력한 데이터나 사용자에게 출력할 데이터를 다루는 일을 담당합니다.

·         여러 개의 데이터 변경 작업(추가, 변경, 삭제) 하나의 작업으로 묶는 트랜잭션을 다루는 관리작업도 수행합니다.

·         DAO 클래스, 비즈니스 로직을 가지고 있는 Service 클래스가(Command 클래스) 여기에 해당됩니다.

 

(View)

·         비즈니스 영역에 대한 프레젠테이션 뷰를 담당합니다.

·         View 사용자한테 보여지는 UI 화면 입니다.

·         사용자 요청(입력)을 처리합니다.

·         주로 .jsp파일로 작성 하며, Controller에서 어떤 View 컴포넌트를 보여줄지 결정 합니다.

·         사용자에게 제공할 화면(Presentation Logic)입니다.

·         Model 처리한 데이터나 작업 결과를 가지고 사용자에게 출력할 화면을 만드는 작업을 합니다.

·         생성된 화면은 브라우저가 출력하고, 컴포넌트는 HTML CSS, Java Script 사용하여 브라우저가 출력할 UI 만듭니다.

·         Html JSP 사용하여 작성할 있습니다.

 

컨트롤러

(Controller)

·         사용자의 입력 흐름 제어 담당합니다.

·         Controller 클라이언트의 요청을 받고, 적절한 Model 지시를 내리며, Model에서 전달된 데이터를 적절한  View 전달 합니다.

·         Model View 사이의 상호 작용 담당합니다.

·         클라이언트의 요청을 받았을 요청에 대해 실제 업무를 수행하는 모델 컴포넌트를 호출하는 역할을 합니다.

·         클라이언트가 보낸 데이터가 있다면, Model 호출할 전달하기 쉽게 데이터를 적절히 가공하는 역할도 수행합니다.

·         Model 업무 수행을 완료하면, 결과를 가지고 화면을 생성하도록 View에게 전달합니다. (클라이언트 요청에 대해 모델과 뷰를 결정하여 전달합니다.)

·         Servlet JSP 사용하여 작성할 있습니다.