[Spring] DB -스프링 웹 MVC 개념
* 뉴렉쳐 SPRING 웹 MVC 강의 듣기
* Persistence : 컴퓨터 공학에서 별도의 기억 장치에 데이터를 보존하는 것을 목적으로 하는 것
* JPA 란? JAVA 진영에서 ORM(Object-Relational Mapping) 기술 표준으로 사용하는 인터페이스 모음으로 자바 어플리케이션에서 관계형 데이터베이스를 사용하는 방식을 정의한 인터ㅔ이스
* MyBatis는 객체 지향 언어인 자바의 관계형 데이터베이스 프로그래밍을 좀 더 쉽게 할 수 있게 도와 주는 개발 프레임 워크
1. MVC
- Model : 데이터 관리 모델 | - View : 보여지는 화면(UI) | - Controller : 중계자 역할
2. Model1 과 MVC Model2 차이
(1) Model 1 구조 : MVC Model1은 View와 Controller를 JSP에서 모두 구현하는 구조를 가지고 있습니다.
따라서 클라이언트의 요청을 받는것도 JSP, Model과 상호작용을 하여 변경된 Model을 사용하여 View를 다시 그려내는것도 JSP입니다.
즉, 사용자의 요청처리와 요청에 대한 응답처리를 JSP에서 모두 구현하는 구조입니다.
위의 특징때문에 MVC Model1구조는 흐름이 단순하기 때문에 개발이 쉽고 중소형 프로젝트에 적합하다는 장점이 있습니다. 하지만 MVC Model1보다 프로그램의 흐름이 복잡하기 때문에 개발 난이도가 높으며, 설계에서 어려움을 겪을 수 있다는 단점이 있습니다.
(2) MVC 패턴과 Model 2 구조 :
MVC Model2는 MVC Model1과는 다르게 View와 Controller가 분리된 구조를 가지고 있습니다.
클라이언트의 요청을 처리, 흐름제어를 하면서 필요시 Model과 상호작용을 하는 Controller는 Servlet에서 담당하고, 사용자 인터페이스를 보여주는 View는 JSP에서 담당하고 있습니다.
이렇게 Controller와 View를 분리함으로써 클라이언트의 요청처리 부분과 응답처리 부분을 분리하여 각 로직을 독립적으로 수행할 수 있습니다. 따라서 유지보수 측면에서 매우 좋고 디자이너와 개발자간의 협력이 수월하다는 장점이 있습니다.
하지만 MVC Model1보다 프로그램의 흐름이 복잡하기 때문에 개발 난이도가 높으며, 설계에서 어려움을 겪을 수 있다는 단점이 있습니다.
(3) 차이점 정리 :
- 클라이언트의 요청처리와 응답처리가 분리되어 있는가
- MVC Model1은 요청처리와 응답처리가 모두 하나의 JSP에서 이루어집니다.
- MVC Model2는 요청처리는 Servlet에서 담당하고 응답처리는 JSP에서 이루어지기 때문에 두 로직이 분리되어 있습니다.
- 접근방식
- MVC Model1은 View와 Controller가 하나의 JSP에 존재하기 때문에 클라이언트가 직접적으로 View에 접근할 수 있습니다.
- MVC Model2에서 클라이언트는 View에 직접적으로 접근할 수 없고 반드시 Controller를 통해서 접근해야 합니다.
출처 : https://velog.io/@ovan/MVC-Model1%EA%B3%BC-MVC-Model2