MVC 패턴이란?!
오늘은 개발을 하면서 사용되는 MVC 패턴에 대해서 알아보겠습니다.
MVC 패턴은 웹, 앱 개발을 진행하면서 사용되는 디자인 패턴으로
M : Model
V : View
C : Controller
의 약어로 해당 패턴을 간단하게 설명드리면
사용자가 Controller로 Model에서 데이터를 가지고 오면 View에 출력해서 사용자에게 보여준다.
즉, 사용자가 어떤 요청을 했을 경우(ex. 클릭, 입력, 버튼 등 등)에 Controller에서
Model에서 주로 DB에서 데이터를 쿼리를 통해 처리하고 처리한 부분을 View인 화면에서 보여줌으로써
사용자에게 다시 전달합니다.
MVC 패턴은 모델 1, 모델 2가 있는데
차이점은 모델 1은 View와 Controller의 역할이 합쳐져 있는데 즉, Controller에서 View 부분까지 처리한다는 것입니다.
두 모델을 작성자는 JSP를 통해서 설명드리겠습니다.
# JSP는 Java를 HTML에서 즉, 화면 부분에서 사용해서 동적인 웹, 앱을 개발할 수 있는 스크립트 언어입니다.
- 설명이 어려울 수 있는데 그냥 HTML에 Java를 사용할 수 있는 언어라고 이해하시면 됩니다.
모델 1의 장점은 설계가 간단해서 개발 속도가 빠르다는 점이고 단점은 유지보수가 어렵고 한 번에 처리하기 때문에
소스 코드가 복잡해질 수 있고 가독성이 떨어질 수 있다는 것입니다. 주로 JSP에서 Controller와 View를 한 번에 처리합니다.
흐름을 보여드리면 사용자 -> JSP(Controller)에 요청 -> Model이 DB(데이터베이스)에 요청
-> Model에 응답-> Jsp(View)에 응답 -> 사용자에게 응답으로 진행됩니다.
모델 2는 기존에 모델 1의 단점을 보안하기 위해서 만들어졌으며 View와 Controller를 분리해서 진행됩니다.
진행 방식은 모델 1과 같은데 차이는 Controller를 서블릿이라는 부분에서 수행하고 Jsp는 HTML처럼 화면만 구성합니다.
# 서블릿이란 Dynamic Web Page 즉, 동적인 웹 페이지를 만들 때 사용되는 자바 기반의 웹 애플리케이션 프로그래밍 기술로 웹을 만들 때는 다양한 요청, 응답이 있는데 서블릿을 통해 요청, 흐름을 Method의 호출만으로 간단하게 처리할 수 있기 때문에 사용합니다.
모데 2의 장점은 HTML, Java를 분리해서 유지보수에 용이하고 가독성이 좋다는 점이고 단점은 초반에 설계하기 오래 걸리기 때문에 비용과 시간이 많이 들어간다는 점이 있습니다.
흐름을 보여드리면 사용자 -> 서블릿(Controller)에 요청 -> Model이 DB(데이터베이스)에 요청
-> Model에 응답 -> JSP(View)에 응답 -> 사용자에게 응답으로 진행됩니다.
보시면 모델 1과 모델 2의 흐름은 같지만 가독성, 구체적인 데이터 처리에 차이가 있습니다.
============================================================================
오늘은 MVC 패턴에 대해서 알아보았는데 웹, 앱을 개발하면서 필요한 디자인 패턴으로 추후에
다룰 스프링부트에서도 해당 패턴을 사용하고 많은 개발자들이 과거에서부터 사용하는 디자인 패턴입니다.
사용자와 웹 페이지의 상호작용에 대해서 눈에 보이는 패턴 형식으로 저장한 부분이기 때문에
흐름을 이해하고 공부하신다면 정말 많은 도움이 되실 것 같습니다.
'백엔드 > JAVA' 카테고리의 다른 글
Java - VO, DTO, DAO란? (0) | 2023.09.05 |
---|---|
Java - Thread란? (0) | 2023.09.04 |
Java - Class, Method란 (1) | 2023.06.14 |
JAVA란? (1) | 2023.06.14 |
댓글