코딩하는 둥둥

[ Springboot ] Springboot 동작원리 : 서블릿 객체의 생명주기가 궁금해요! 본문

Backend/스프링부트 개념정리(이론)

[ Springboot ] Springboot 동작원리 : 서블릿 객체의 생명주기가 궁금해요!

둥둥 2022. 2. 18. 23:56
728x90
서블릿 컨테이너

출처 : https://parkyounghwan.github.io/2019/08/23/spring/java-servlet-container/

 

 

 정적인 파일(.html, .CSS, .png)을 돌리게되면 아파치가 돌게됨(톰켓이 일을 안함)

톰켓은 자바파일을 돌리게될때 일을 함

스프링시에도 정적인 파일을 요청하게되면 톰켓은 일을 하지 않음. 

but, 스프링은 정적인 파일을 요청할 수 없음(스프링에선 url접근 방식을 다 막아둠)

URL : 자원에 접근할때 사용하는 주소 방식 (Location) 
ex) http://naver.com/a.png => 자원에 파일이 있음
   URI : 식별자를 통해 접근하는 방식 (Identifier)
ex) http://naver.com/picture/a => 자원에 식별자(picture 등)이 있음

→ 식별자를 통해 접근해야 함

 특정한 파일 요청을 할 수없다 = 요청시에는 무조건 자바를 거친다.

=> 아파치는 무조권 제어권을 톰켓으로 넘겨줘야 한다.

 

메모리 영역에는 Static, heap, Stack이 있음

new를 해서 메서드를 만드는것은 한개만 사용되지만 메서드를 호출하는것은 독립적이기때문에 여러개 발생 가능

그래서 메소드는 다 따로따로 사용 가능(스레드마다 다르게 사용 가능)

* 톰켓 기본 설정
→ 스레드 Auto : 20개로 설정되었음 ( 몇개인지는 컴퓨터 성능마다 다름)
=> 스레드가 20개가 동시접근 되었을때 21번째 스레드는 대기해야 한다.(더이상 스레드를 만들지 못하기 때문에)
첫번째 스레드가 사용이 종료가 되면(요청에 대한 응답이 끝나면 = response시) 스레드 1을 날리지 않고 21번째 스레드가 스레드1을 재사용(pooling 기법)

728x90