MVC1과 MVC2 패턴의 차이를 설명해보세요.

  • MVC

Model, View, Controller의 줄임말로써, MVC는 사용자와 상호작용하는 S/W를 디자인함에 있어 세 가지 요소로 쪼개어 하는 것을 가리킨다.

1) Model — 프로그램의 내부 상태, 즉 프로그램의 정보(데이터)를 말하는 것이다.

2) View — 사용자 인터페이스 요소를 뜻하는데, 유저에게 보여지는 것을 말한다.

3) Controller — 데이터와 비즈니스 로직 간의 상호 작용을 뜻한다.

  • MVC1

JSP로 구현한 기존 웹 애플리케이션은 모델 1 구조로 웹 브라우저의 요청을 JSP 페이지가 받아서 처리하는 구조이다. JSP 페이지에 비즈니스 로직을 처리하기 위한 코드와 웹 브라우저에 결과를 보여주기 위한 출력 관리 코드가 뒤섞여 있는 구조로, 재사용이 힘들고 가독성이 떨어진다.

- 정의: 모든 클라이언트 요청과 응답을 JSP가 담당하는 구조

- 장점: 단순한 페이지 작성으로 쉽게 구현 가능하다. 중소형 프로젝트에 적합

- 단점: 웹 애플리케이션이 복잡해지면 유지보수 문제가 발생된다.

  • MVC2

MVC1 구조와 달리 웹 브라우저의 요청을 하나의 서블릿(Servlet)이 받게 된다. 서블릿은 웹 브라우저의 요청을 알맞게 처리한 후 그 결과를 JSP 페이지로 포워딩한다.

- 정의: 클라이언트의 요청처리와 응답처리, 비즈니스 로직 처리하는 부분을 모듈화 시킨 구조

- 장점: 처리 작업의 분리로 인해 유지보수와 확장이 용이하다.

- 단점: 구조 설계를 위한 시간이 많이 소요되므로 개발 기간이 증가한다.

현재 실무에서는 MVC2 패턴을 기반으로 한 Spring MVC가 가장 널리 사용되고 있다. Spring MVC는 DispatcherServlet이 프론트 컨트롤러(Front Controller) 역할을 수행하며, URL 매핑·요청 처리·뷰 렌더링을 체계적으로 관리한다. 최근에는 REST API 중심의 개발이 보편화되면서 @RestController 어노테이션을 이용해 JSON 응답을 직접 반환하는 방식이 주류를 이루고 있으며, 프론트엔드와 백엔드의 완전한 분리(Frontend-Backend Separation) 아키텍처로의 전환이 가속화되고 있다.

▲ MVC1

▲ MVC2

시스템설계

스프링 프레임워크의 특징에 관해 설명해보세요.

시스템설계

임베디드 시스템에 대해 설명해보세요.

커뮤니티 Q&A

이론과 관련된 게시글이에요.

이해가 안 되거나 궁금한 점이 있다면 커뮤니티에 질문해 보세요!

게시글 작성하기