260331 _ TIL : 서블릿 컨테이너와 스레드

호두·2026년 3월 31일

✔️ Java / Spring

목록 보기
1/25

🌐 웹 요청 전체 과정

전체 과정을 한 눈에 정리해봤다.


웹에서 HTTP 메세지를 서버에 요청

⬇️

신호를 받은 WAS의 Connector는 CPU에 스레드 하나를 배정하라 요청함.

⬇️

CPU는 OS의 지침에 따라 스레드풀에서 하나를 꺼내 요청에 배정해줌.
(이때부터 모든 실행은 스레드)

⬇️

WAS의 Connector에서 HTTP 메세지를 파싱해 request, response 객체 생성

⬇️

스레드가 요청/응답 객체를 가지고 서블릿 컨테이너에 전달

⬇️

서블릿 컨테이너가 그 요청에 해당하는 서블릿 객체를 찾아 전달

⬇️

서블릿 객체의 service() 메서드가 실행

⬇️

비지니스 로직 실행





스레드 라는 개념이 실행 단위이기도 하면서 객체이기도 하다 라는 걸 이해하는데 시간이 좀 걸렸다.


java.lang.Thread 의 스레드 객체는 관리용 번호표

실행 흐름은 결국 전기 신호고 그냥 오는대로 다 받으면 서버가 다운될 수 있다. 그래서 입장권 역할의 스레드 객체를 만들어 이 객체를 배정 받아야만 실행을 할 수 있도록 제한을 걸어둔 것이다.

그리고 요청의 정보를 스레드가 저장할 수 있어야 하기 때문에 "객체" 라는 형태가 필요하다.

즉, 요청의 정보를 저장하고 입장제한기능도 수행하기 위해서 스레드는 "객체"라는 형태가 필요하다는 것이다.

0개의 댓글