본문 바로가기

SeverSideTemplateEngine/JSP

JSP의 한계, MVC 등장

 

※ JSP의 한계

 

JSP를 공부하면서 Java code 안에서 html 코드를 구현하는 Servlet 방식의 불편함을 개선하기 위해 등장했다. html 페이지 안에서 Java code를 구현하는 방법으로 개선할 수 있었다. 이렇게 해서 JSP만 잘 사용했다면

나는 이 포스팅을 하지 않았을 것이다.

 

결국 JSP 사용하면서도 한계가 발생하는데 html 페이지에서 Java를 사용하면 Java코드를 작성함으로써 데이터도 관리하고, 클라이언트에게 데이터 내용들을 보여주기 위해 뷰 렌더링 역할도 맡는다는 점이다. 즉, 비즈니스 로직, 뷰 렌더링을 모두 맡으면서 코드가 방대해지고, 유지보수가 굉장히 어려워진다는 단점은 그대로 존재하는 셈이다.

 

이렇게 생기는 한계점을 개선하고자 도입한 방법이 로직을 각각 분리시키는 MVC 디자인 패턴이다.

 

 

※ MVC의 등장

 

MVC 디자인 패턴이란 로직을 각각 Model, View, Controller로 분리 시켜서 작업 하는 패턴을 의미한다. 

 

* Model :  Controller를 통해서 View로 전달할 백엔드 데이터를 담아둔다.

 

* View : Model에 담겨있는 데이터를 통해 화면에 렌더링을 한다. 

cf) 렌더링 : 쉽게 말해서 서버로부터 HTML 파일을 받아 브라우저에 뿌려주는 과정이다.

 

 

↓ 더 자세한 내용을 공부하고자 한다면 아래 포스팅에 잘 나와 있다.

 

https://velog.io/@ru_bryunak/%EB%A0%8C%EB%8D%94%EB%A7%81%EC%9D%B4%EB%9E%80

 

HTML 기초 - 3 (렌더링이란?)

렌더링이란 서버로부터 HTML 파일을 받아 브라우저에 뿌려주는 과정이다.브라우저는 서버로부터 HTML 문서를 다운을 받는다.렌더링 엔진은 HTML 문서를 파싱해서 DOM 트리를 만든다.그 다음, 외부 cs

velog.io

 

 

* Controller : 데이터 매핑, 검증, 비지니스 로직 수행 등등 작업을 한 뒤 결과 데이터를 Model에 담아 클라이언트 혹은 서버측에 전달한다.

cf) 이때 , Controller에서도 비지니스 로직을 수행 할 수는 있지만, 너무 많은 일을 Controller에서만 하게 될 수 있기 때문에 보통은 비지니스 로직을 수행하는 Service 계층을 만들어서 관리한다.

 

 

 

이해를 쉽게 하기 위한 설명 사진

 

 

 

※ 참고 사이트 

 

https://kth990303.tistory.com/89

 

[Spring] 스프링이 태어난 이유_서블릿, JSP로 만든 MVC의 한계

김영한님의 스프링 입문과 기본편을 듣고, 스프링 mvc편을 들으며 Servlet, JSP를 하면서 느낀 점은 요즘은 스프링 프레임워크가 도입돼서 정말 다행이라는 점이다. 이렇게 느낀 이유를 아래에 포스

kth990303.tistory.com

 

 

https://yadon079.github.io/2022/spring/spring-mvc-03

 

서블릿, JSP, MVC 패턴 :: 개발자 한선우

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술을 공부하고 정리하는 포스트입니다.

yadon079.github.io

 

 

'SeverSideTemplateEngine > JSP' 카테고리의 다른 글

JSTL  (0) 2022.09.30
JSP Expression Language  (0) 2022.09.29
JSP 액션 태그  (0) 2022.09.28
JSP Cookie & Session  (0) 2022.09.27
JSP 내장객체  (2) 2022.09.26