스프링 제대로 이해하기

이진섭·2022년 10월 23일
0

Spring_boot

목록 보기
3/16
post-thumbnail

스프링 국비과정 수업을 들었지만 프레임워크 사용법만 배우고 정작 그 원리랑 구조에 대한 이해가 부족한거 같았다. jsp수업을 안듣고 바로 스프링 수업을 나간터라 이해가 부족한 상태로 따라치기 바쁜거 같았다. 좀 더 깊은 이해가 필요해 보인다...
아직 스프링, jsp, 서블릿에 대한 개념이 부족한거 같아서 정리한다!
서블릿은 자바를 사용하여 웹 페이지를 동적으로 생성하는 서버 측 프로그램이다.
즉, 웹 서버를 실행하기 위한 자바코드라고 한다.
서블릿은 httpServlet을 상속한다
톰캣으로 이러한 서블릿을 관리한다
WAS는 서블릿을 생성하고 요청과 응답관련 제어기능을 지원한다 이때 WAS에게 줄 정보가 필요한데 이때 쓰이는 파일이 web.xml(webapp)이다.

서블릿의 특징은 다음과 같다.

클라이언트의 요청에 대해 동적으로 작동하는 웹 어플리케이션 컴포넌트

html을 사용해서 요청에 응답한다

Java thread를 통해 동작한다

MVC패턴중 Controller로 이용된다

HTTP 프로토콜 서비스를 지원하는 javax.servlet.http.HttpServlet 클래스를 상속받는다.(UDP보다 속도가 느림)

HTML 변경시 Servlet을 재 컴파일 해야한다
서블릿의 동작은 다음과 같이 이루어진다

사용자가 URL을 클릭하면 HTTP Request를 서블릿 컨테이너로 전송한다

HTTP Request를 전달받은 서블릿 컨테이너는 HttpServletRequest, HttpServletResponse 두 객체를 생성한다.

web.xml은 사용자가 요청한 URL을 분석하여 어느 서블릿에 대해 요청을 한 것인지 찾는다

해당 서블릿에서 service 메소드를 호출한 후 클라이언트의 요청종류 (GET, POST)에 따라 doGet 혹은 doPost를 호출한다.

doGet, doPost 메소드는 동적 페이지를 생성한 후 HttpServletResponse 객체에 응답을 보낸다.

응답이 끝나면 HttpServletRequest, HttpServletResponse 두 객체를 소멸시킨다

JSP MVC

JSP MVC는 JSP 파일에 MVC 패턴을 적용해 java 코드 블록을 최소화할 수 있다.

MVC 패턴을 적용해 jsp 파일 내에서 입력과 출력 코드를 나누어 관리하는 것이다.

  • MVC 패턴에 각각 요소는 무엇을 담당하는가?

Controller :입력과 제어를 담당

Model : 출력 데이터

View : 출력 담당

DispatcherServlet

  • dispatcher는 관제사, 배차 담당자라는 뜻이다.
  • spring mvc패턴에서 요청을 받는 부분이다.
  • 컨테이너에서 받은 요청을 관제하는 역할을 한다

왜 웹 서버 프로그램을 Servlet이라고 부르는 걸까??

Server + let (작은 것) =>

웹 서버 프로그램 전체에서 작은 일부가 실행되는 것을 의미하기 때문이라고 생각한다.

예를 들어 회원가입, 회원 목록 가져오기 등 여러 API가 있는데

서버는 각각 API에 해당하는 서블릿만 실행하고 나머지 서블릿들은 실행될 필요가 없기 때문이다.

profile
하루하루성장하기

0개의 댓글