ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [CS] Servlet의 개념과 동작 과정
    Computer Science 2022. 3. 8. 22:23

    Servlet

    Servlet이란 서버 쪽에서 실행되며 클라이언트의 요청에 따라 동적으로 서비스를 제공하는 자바 클래스이다.

    Servlet 도식도

    Request가 오면 해당 요청을 자바를 활용하여 처리하는 것을 Servlet이라 한다.

     

    Spring framework에서는 기본적으로 data의 위치를 직접적으로 명시하는 방식의 URL의 접근을 막아놨으며, 식별자를 이용하여 접근을 요청하는 URI의 접근방법을 사용한다.

     

    따라서 어떠한 request가 들어오면 Tomcat이 이를 가져오며, Tomcat은 Servlet을 활용하여 Java를 거쳐 Request을 처리한다.

     

    Servlet의 생명 주기와 동작과정

    Servlet의 생명주기는 크게 세가지로 나눌 수 있다.

     

    Init : Servlet instance 생성

    Service : 실제 요청에 대한 기능 수행

    Destory : Servlet instance 삭제

     

    어떠한 Request가 들어오면, 기존에 생성되어있는 thread가 없거나, thread를 추가할 수 있으면 새로운 Servlet instance을 생성한다. 하나의 Request와 하나의 Servlet instance는 1:1로 매핑된다.

    Service에서는 해당 instance가 request에 대한 로직을 처리한다.

    Destroy는 instance가 삭제될 때 호출된다.

     

    A가 request을 보냈을 때에 생성되어있는 스레드가 없기 때문에 스레드를 생성하고 Servlet instance을 생성해준다.

    B, C의 request가 보내졌을 때에도 새로 스레드를 생성하고 Servlet instance을 생성한다.

     

    하지만 사전에 정의된 갯수만큼만 스레드는 생성되며, 그 수를 넘게되면 request가 대기열에 남게된다.

     

    즉 모든 request에 대해 스레드 생성과 init과정을 실행치 않고, 기존에 사용할 수 있는 스레드와 instance가 존재할 때에 리소스를 사용한다.

     

     

     

     

    출처 : Servlet의 개념과 동작 과정 (tistory.com)

    'Computer Science' 카테고리의 다른 글

    [CS] Dispatcher Servlet  (0) 2022.03.08
    [CS] Web server와 Was(web application server)  (0) 2022.03.08
    [CS] CQS - Command Query Separation  (0) 2021.12.30
    [CS] REST API란?  (0) 2021.11.16
    [CS] 객체지향(OOP)의 5원칙 (SOLID)  (0) 2021.11.05

    댓글

Designed by Tistory.