서블릿 컨테이너
- Client가 Tomcat이라 불리는 서블릿 컨테이너에 요청
- Tomcat이 요청을 받은 후
- 최초 요청이면 서블릿 객체를 생성.
- 아니면 이미 생성된 객체 재사용
요청할 때 html, css, png 파일 요청 시에는 Tomcat이 작동하지 않고 아파치만 실행이 된다. 자바 파일 요청 시에만 Tomcat 작동된다.
스프링에서도 마찬가지로 html, css, png 파일 요청시에는 Tomcat이 작동하지 않는다. 그러나 사실 스프링에서는 이런 파일들을 요청할 수가 없다. 왜냐하면 URL은 html, css, png 파일들을 직접 요청해서 자원을 접근할 때 사용하고 URI는 식별자를 통해 접근할 때 사용하는데 URL 방식을 스프링이 막아두었기 때문이다.
URL : http://naver.com/a.png
URI는 식별자를 통해 요청하니까 특정한 파일 요청을 할 수 없다. 요청 시에는 무조건 자바를 거쳐야 해서 무조건 자바 파일로 Tomcat을 통해 자바를 컴파일하는 과정을 거친다.
URI : http://naver.com/picture/a
실제로 위 URI는 a.png를 응답해주겠지만 접근 방식이 자원, 즉 a.png가 아닌 식별자를 통해 요청하기 때문에 Tomcat이 가로채서 컴파일한다.
서블릿 객체의 생명주기
요청이 들어올 때마다 최초 요청 시에만 서블릿 객체를 생성하고 그 이후의 요청부터는 기존에 만들어둔 객체를 재사용하는 방식이다.
톰켓 기본 설정이 스레드를 20개라면 20명의 request에만 스레드 20개를 만들어서 사용하다가 21번째 요청부터는 대기를 시킨다. 첫번째 스레드의 사용이 종료 (요청에 대한 응답) response이 끝나면 1번 스레드를 메모리에서 날리지 않고 21번째의 요청에 1번 스레드를 재사용한다. -> Pooling 기법
스레드 20개까지 만들 수 있으므로 동시에 20명이 요청하는 것 까지는 감당 가능한 것이다.
출처
[무료] 스프링부트 개념정리(이론) - 인프런 | 강의
스프링부트를 공부하며 헷갈리는 개념이 많았던 분 스프링부트에 대해 공부하고 싶었던 모든 분, - 강의 소개 | 인프런...
www.inflearn.com
'Spring > Spring 기초 이론' 카테고리의 다른 글
[Spring 기초 이론] 디스패처 서블릿 (0) | 2022.03.31 |
---|---|
[Spring 기초 이론] 웹 배포서술자 (web.xml) (0) | 2022.03.17 |
[Spring 기초 이론] Springboot - Apache Tomcat (0) | 2022.03.03 |
[Spring 기초 이론] JPA (0) | 2022.02.28 |
[Spring 기초 이론] Spring (0) | 2022.02.28 |