스프링 MVC 동작 원리(2) : 서블릿 소개

de_sj_awa·2021년 6월 26일
0
post-custom-banner

2. 서블릿 소개

서블릿 (Servlet)

  • 자바 엔터프라이즈 에디션은 웹 애플리케이션 개발용 스팩과 API 제공.
  • 요청 당 쓰레드 (만들거나, 풀에서 가져다가) 사용
  • 그 중에 가장 중요한 클래스중 하나가 HttpServlet.

서블릿 등장 이전에 사용하던 기술인 CGI (Common Gateway Interface)

  • 요청 당 프로세스를 만들어 사용

서블릿의 장점 (CGI에 비해)

  • 빠르다.
  • 플랫폼 독립적
  • 보안
  • 이식성

서블릿 엔진 또는 서블릿 컨테이너 (톰캣, 제티, 언더토, ...)

  • 세션 관리
  • 네트워크 서비스
  • MIME 기반 메시지 인코딩, 디코딩
  • 서블릿 생명주기 관리
  • ...

서블릿 생명주기

  • 서블릿 컨테이너가 서블릿 인스턴스의 init() 메소드를 호출하여 초기화 한다.
    - 최초 요청을 받았을 때 한번 초기화 하고 나면 그 다음 요청부터는 이 과정을 생략한다.
  • 서블릿이 초기화 된 다음부터 클라이언트의 요청을 처리할 수 있다. 각 요청은 별도의 쓰레드로 처리하고 이때 서블릿 인스턴스의 service() 메소드를 호출한다.
    - 이 안에서 HTTP 요청을 받고 클라이언트로 보낼 HTTP 응답을 만든다.
    - service()는 보통 HTTP Method에 따라 doGet(), doPost() 등으로 처리를 위임한다.
    • 따라서 보통 doGet() 또는 doPost()를 구현한다.
  • 서블릿 컨테이너 판단에 따라 해당 서블릿을 메모리에서 내려야 할 시점에 destroy()를 호출한다.

참고

  • 인프런 : 스프링 웹 MVC(백기선)
profile
이것저것 관심많은 개발자.
post-custom-banner

0개의 댓글