MVC (Model-View-Controller)

김기호·2024년 2월 1일

Design Pattern

목록 보기
1/1

MVC?

디자인패턴의 일종이다. MVC 모델1 과 모델2가 있다. 주로 사용되는 것은 모델2 다.
참고) 디자인 패턴이란? : 프로그래밍 중 특정 상황에 맞는 해결 방법을 정형화 해 둔 것.

쉽게말해서, 소프트웨어를 세 부분으로 나누어 관리하는 방식이다.
유지보수성 코드 재사용성을 높이는 것이 주 목적이다.

Model

  • 비즈니스 로직데이터 처리를 담당한다.
  • 데이터를 가지고 있으며, 그 데이터를 조작하고 업데이트 한다.
  • DB와 상호작용하며, 데이터를 검색, 생성, 수정, 삭제하는 등의 작업을 처리한다.

View

  • UI (사용자 인터페이스)를 담당한다.
  • 클라이언트에게 정보를 표시하고, 사용자와의 상호작용을 처리하는 부분이다.
  • 일반적으로 Html, Css, JS 등으로 구현되며, 사용자에게 데이터를 시각적으로 보여준다.

Controller

  • Model과 View를 조정, 사용자의 입력을 처리, 비즈니스 로직의 흐름을 제어한다.
  • 클라이언트의 요청을 받아들여 모델을 업데이트 하며, 결과를 적절한 View로 전달한다.
  • View에서 발생한 이벤트로 처리하며, Model과 View 사이의 상호작용을 조정해준다.

요약

  1. 사용자는 자신이 얻고자 하는 정보나 기능을 Controller에게 요청한다.
  2. Controller는 요청을 수신하고, 이에 맞는 비즈니스 로직을 수행한다.
  3. 이 과정에서 Controller는 필요에 따라 Model을 호출하여 데이터를 요청한다.
  4. 요청을 전부 처리한 후, View를 통해 사용자가 원하는 정보를 시각적으로 구현한다. (화면 출력)

참고) 비즈니스 로직이란?
-앱에서 실제로 일어나는 일에 대한 규칙이나 동작을 정의하는 것.
-앱의 핵심 로직이며, 비즈니스 요구사항을 처리해주는 역할이다.
-이 규칙이나 동작은 업무 프로세스나 비즈니스 규칙에 따라 다양하다.

MVC 모델 1과 모델 2의 차이?

모델 1 : View와 Controller가 합쳐진 형태.

  • MVC 모델에서는 보통 JSP가 View 역할을 수행하는데, 모델 1에서는 View와 Controller의 역할을 모두 수행한다.
  • JSP 파일 내에 Java, Html, Css등의 코드가 모두 다 섞이게 되며, 이로 인해 소스를 이해하기 어렵고 유지보수가 어려워지는 단점이 있다.
  • 상대적으로 설계가 간단하여 개발속도가 빠르며, 이로인해 프로젝트 규모가 작은 경우에는 알맞은 방법일 수 있다.

MVC 모델 1
(사진 출처 : https://onejuny.tistory.com/entry/JavaJsp-MVC-1-MVC-2-%EC%B0%A8%EC%9D%B4-%EB%B0%8F-%EC%9E%A5%EB%8B%A8%EC%A0%90)

모델 2 : View와 Controller를 분리한 형태.

  • 모델 1의 단점 (유지보수의 어려움)을 보완하는 모델이다.
  • JSP 는 View 역할만 수행하고, Controller로써 Servlet을 사용한다.
  • Html과 Java 코드가 분리되어 확장에도 용이하고, 유지보수도 수월해진다.
  • JSP에는 Java 코드 대신 JSTL을 사용하여 결과 화면을 보여준다.
  • 초기 설계 단계에 비용이 많이 들 수 있으며, 개발 시간이 비교적 오래걸린다는 단점이 있다.


(사진 출처 : https://onejuny.tistory.com/entry/JavaJsp-MVC-1-MVC-2-%EC%B0%A8%EC%9D%B4-%EB%B0%8F-%EC%9E%A5%EB%8B%A8%EC%A0%90)

profile
개발자 시켜주세요...

0개의 댓글