▸JSP & Servlet/기본 상식

JSP / Servlet(서블릿)의 MVC 패턴

코데방 2020. 2. 13.
728x90

[ MVC 패턴 ]

  • M (Model, 모델) : 로직(연산) 수행(데이터 작업 포함)을 담당함
  • V (View, 뷰) : 사용자 화면 출력을 담당함
  • C (Controller, 컨트롤러) : 중앙에서 Model과 View의 제어를 담당함

 

MVC 패턴이란, WAS 안에서의 역할을 3가지로 나눠서 구성하는 디자인 패턴을 말합니다. 일반 자바 프로그램을 작성할 때 기능별로 모듈화를 하는 것과 다르지 않습니다. 웹 어플리케이션도 자바에서 확장되어 나온 기능이기 때문에 결국 기본적인 원리는 언제나 같습니다.

 

 


 

[ Controller (컨트롤러) ]

 

모든 요청은 컨트롤러로 모입니다. 사용자가 직접 URL/IP를 입력해서 접근하건 뷰(View)에서 다른 뷰(View)를 호출하건 모델(Model)에서 다른 모델을 호출하건 모두 컨트롤러를 거치게 됩니다. 일종의 작업 분배기입니다.

 

톰캣 서버에서 구동되는 가장 핵심적인 역할이기 때문에 서블릿(HttpServlet) 클래스를 상속받아 서블릿이 됩니다. 서블릿은 톰캣 서버와 정보를 주고 받을 수 있는 기능이 있고, 특히 사용자의 요청 내용과 커넥션 정보 등을 내장 객체 형태로 가지고 있어 이를 적절히 처리할 수 있는 기능을 가지고 있습니다. 이 정보를 모델에게 넘겨서 로직을 수행하게 하고 다시 결과를 받아 뷰에게 전달해 최종 화면을 사용자에게 넘겨줍니다. 또는 바로 뷰를 호출해 사용자에게 화면을 보여줄 수도 있습니다. 

 

 


 

[ Model (모델) ]

 

실제 로직을 수행하는 역할을 하는 자바 클래스입니다. Command는 로직을 수행하는 기능을 가진 클래스를 의미하고 DAO/DTO는 DB와 연동되어 데이터 작업을 담당하는 기능의 클래스입니다. 둘을 나눠둔 것도 역시 기능별로 모듈화를 하는 객체지향적 방식을 지향하기 때문입니다. DAO는 데이터 작업 로직을 가진 클래스이고 DTO는 데이터를 저장해 운반하기 위한 클래스입니다. 일반적인 자바 프로그래밍과 동일한 구조입니다.

 

 


 

 

[ View (뷰) ]

 

최종 작업 결과물을 가지고 적절한 화면을 구성해서 사용자에게 전달하는 기능을 말합니다. 화면 구성은 JSP가 편리하기 때문에 대부분 JSP를 사용해 뷰를 구성합니다. 톰캣서버는 컨트롤러가 최종적으로 실행시킨 JSP 파일을 서블릿으로 변환해서 컴파일한 뒤 실행해줍니다. 결과적으로 사용자에게 도달하는 데이터는 html 형태의 코드가 됩니다. 브라우저는 이 코드를 받아 화면 구성을 해 사용자에게 보여줍니다.

 

 


 

 

개발자가 필수적으로 MVC 패턴을 지켜야하는 것은 아닙니다. 하지만 많은 프레임워크들이 이 MVC 패턴을 사용하고 있고 운영과 유지보수, 그리고 협업이라는 측면에서 가장 효율적인 패턴 중 하나이기 때문에 항상 이 구조를 염두해두고 개발하는 것이 좋습니다.

728x90

댓글

💲 추천 글