본문 바로가기
스프링/스프링

[Spring] 스프링 Model 1 아키텍처와 Model 2 아키텍처

by 책 읽는 개발자_테드 2021. 1. 12.
반응형

스프링 Model 1 아키텍처와 Model 2 아키텍처

 

✏️ Model 1 아키텍처

 

아키텍처는 90년대 말부터 2000년대 초까지 자바 기반의 웹 애플리케이션 개발에 사용됐던 아키텍처로, JSP와 JavaBeans만 사용하여 웹을 개발하는 구조입니다.

 



Model 1 아키텍처에서 Model의 기능은 JavaBeans에 의해 이루어집니다. Model은 데이터베이스 연동 로직을 제공하면서 DB에 검색한 데이터가 저장되는 자바 객체를 말합니다.

 

JavaBeans의 Bean는 자바에서 객체를 의미하는 용어입니다. 즉, JavaBeans데이터베이스 연동에 사용되는 자바 객체들입니다.

 

Model 1 아키텍처에서는 JSP 파일이 가장 중요한 역할을 수행합니다. JSP가 Controller와 View 기능을 모두 처리하기 때문입니다. Controller는 JSP에서 사용자의 요청 처리와 관련된 코드를 의미합니다. View는 JSP 파일에서 Model을 사용하여 검색한 데이터를 사용자가 원하는 화면으로 제공하는 기능입니다. JSP에서는 HTML과 CSS가  이것을 담당합니다.

 

💣단점: Model1 구조는 JSP 파일에서 Cotroller, View 기능을 모두 처리하므로 결과적으로 JSP 파일에 자바 코드와 마크업 관련 코드(HTML, CSS)가 뒤섞여 있습니다. 따라서 역할 구분이 명확하지 않고, 디버깅과 유지보수가 어렵습니다. 이러한 이유로 Model 1의 문제점을 보완한 Model 2, MVC(Model view Controller) 아키텍처가 등장했습니다.



✏️  Model 2 아키텍처

 

Model 1 의 문제점을 극복하기 위해 고안된 Model 2 아키텍처에는 Controller가 도입되었습니다. 기존에 JSP가 담당했던 Controller 로직이 별도의 Controller 기능의 서블릿으로 옮겨진것 입니다.

 



결과적으로 Controller 로직이 사라진 JSP에는 View와 관련된 디자인만 남게 되어 디자이너는 JSP 파일을 관리하고, 자바 개발자는 Controller와 Model만 관리할 수 있습니다.

 

위에서 설명한 MVC 아키텍처의 각 요소의 기능과 개발 주체는 다음과 같습니다.

기능

구성 요소

개발 주체

Model

VO,DAO 클래스

자바 개발자

View

JSP 페이지

웹 디자이너

Controller

Servlet 클래스

자바 개발자 또는 MVC 프레임워크



다음 글에서는 지금까지 설명한 Model 2(MVC 아키텍처)를 직접 구현해보겠습니다.

 

출처: 스프링 퀵 스타트

반응형

댓글