1. MVC 패턴
MVC 패턴이란 Model-View-Controller의 약자로 소프트웨어 디자인 패턴 중 하나다. 해당 디자인 패턴은 model, view, controller 총 세 가지 구성요소를 가지는 데 이들은 아래와 같은 특징을 가진다.
- Model: 어플리케이션의 정보, 테이터를 나타낸다. 즉, 유저 정보 같은 것들이 이에 해당한다. 모델은 데이터의 상태가 변경되면 뷰 혹은 (가끔) 컨트롤러에게 알린다.
- View: 사용자가 볼 결과물을 생성한다. 즉, 사용자에게 받은 요청에 알맞는 결과물을 출력하는 역할을 담당한다. 뷰는 JSP, JSF, PDF, XML등으로 결과를 표현한다.
- Controller: 사용자의 요청에 응답하는 컴포넌트다. 모델 및 뷰를 업데이트하는 로직을 포함한다. 예를 들어, 어떤 정보를 입력하고 확인(전달)을 누르는 경우는 데이터를 업데이트해야 하므로 모델을 업데이트하는 로직에 포함된다. 또한 단순히 출력 방식을 오름차순에서 내림차순으로 바꾸는 경우는 뷰를 업데이트하는 로직에 포함된다.
MVC 패턴은 아래에서 설명하는 두 가지 모델이 존재한다. 우리는 이들의 장단점을 살펴보고 시스템에 따라 알맞게 구성하면 된다.
2. MVC-Model1
위 아키텍처는 먼저 사용자로부터 JSP 페이지를 요구 받는다. 그리고 JSP는 Java Bean을 얻어온다. 이때 Java Bean은 Databases에 연결되어 데이터를 가져오거나 저장하는 역할을 수행한다. 이후 JSP는 사용자에게 요청받은 결과를 출력한다. 즉, 위 모델은 완벽한 MVC 구조라고 볼 수는 없다. 정확히 말하면 JSP에서 View와 Controller 역할을 수행하며 Java Bean(+Servlet)은 주로 Model과 Controller 역할을 수행한다. 위 아키텍처는 쉽고 빠르게 웹 어플리케이션을 만들 수 있다는 장점을 가진다. 하지만 웹 어플리케이션이 복잡할수록 유지 보수가 힘들어 대형 프로젝트에는 적합하지 않다는 단점을 가진다.
3. MVC-Model2
위 아키텍처는 유저로부터 요청을 Controller가 받게 된다. 그리고 Model에 데이터 조회 및 비지니스 로직 처리를 요청한다. 그리고 Model로부터 정보를 받아 View에게 전달한다. 그리고 View는 받은 Model을 바탕으로 정적데이터를 구성해 사용자의 요청에 맞는 결과를 출력한다. 위와 같은 아키텍처는 MVC가 확실히 구분되어 유지 보수에 유리하는 장점을 가진다.
참고자료 및 사진 출처
'BackEnd' 카테고리의 다른 글
[Intellij] Tomcat 연결 (0) | 2023.04.23 |
---|---|
[Maven] Could not initialize class org.apache.maven.plugin.war.util.WebappStructureSerializer 에러 (0) | 2023.01.18 |
Maven이란? (0) | 2022.12.25 |
WAS(Web Application Server) (0) | 2022.12.19 |
웹 서버란? (0) | 2022.12.19 |