MVC 패턴을 공부하며
JSP/Servlet을 학원에서 봤던 단어들이라, 그때 제대로 공부하지 못한 것 같아 자세히 알아보려고 합니다. 찾아보니 MVC 패턴이 서블릿을 기반으로 동작한다고 해서, '이거 완전 럭키비키잖아?'가 떠올랐습니다... 그러므로 원영적 사고를 활용하여 배워보겠습니다.
JSP란?
JSP(JavaServer Pages)는 HTML 문서 내에 자바 코드를 포함할 수 있는 기술로, 동적인 웹 페이지를 쉽게 작성할 수 있도록 도와주는 도구입니다. 서버에서 실행될 때 JSP는 Servlet으로 변환되어 실행됩니다.
Servlet이란?
서블릿은 서버에서 실행되는 자바 클래스로, 사용자로부터의 요청을 처리하고 적절한 응답을 생성하는 서버 측 컴포넌트입니다. HTTP 요청을 처리하는 데 사용됩니다.
Servlet의 생명주기
위 사진은 Servlet의 처리 과정을 그림으로 나타낸 것입니다.
- 사용자가 웹 서버에 요청을 보낸다.
- 요청을 받고, 응답을 하기 위해 Servlet을 호출한다.
- 요청을 담는 HttpServletRequest와 응답을 담는 HttpServletResponse 객체를 생성한다.
- init() 메서드가 호출되어 Servlet을 초기화한다.
- service() 메서드가 호출되어 비즈니스 로직을 처리한다.
- 처리된 결과를 HTTP 응답으로 생성하여 클라이언트에게 전송한다.
- Servlet을 더 이상 사용하지 않게 될 때 destroy() 메서드가 호출되어 Servlet의 자원을 해제하고 소멸한다.
이 순서로 진행이 됩니다.
MVC 패턴과의 대입
MVC 패턴 이전의 진행 방식에 따라, 다음과 같이 대입할 수 있습니다:
- View -> JSP
- Controller -> Servlet
이렇게 대입이 됩니다.
역할의 차이점
JSP와 View
JSP와 View는 모두 화면에 렌더링하는 역할을 하지만, 비즈니스 로직을 처리하느냐의 차이점이 있습니다. JSP는 HTML 문서 내에 자바 코드가 포함되어 있기 때문에 비즈니스 로직을 처리할 수 있지만, View는 Controller가 처리한 비즈니스 로직의 결과를 받습니다.
Servlet과 Controller
Servlet과 Controller 역시 비즈니스 로직 처리 여부에 따라 차이점이 있습니다. Servlet은 요청을 처리하면서 비즈니스 로직을 포함할 수 있지만, Controller는 비즈니스 로직을 포함하지 않고 요청을 조율하며 모델에 위임하는 역할을 합니다.
사진 출처:
https://velog.io/@falling_star3/Tomcat-%EC%84%9C%EB%B8%94%EB%A6%BFServlet%EC%9D%B4%EB%9E%80%80
'Spring' 카테고리의 다른 글
[Spring] MVC패턴 (0) | 2024.10.01 |
---|---|
[Spring] (1) | 2024.09.30 |