Inflearn 최주호 강사님의 스프링부트 개념정리(이론) 강의를 듣고 정리한 내용입니다.
URL: 자원 접근(ex. http://naver.com/a.png), URI: 식별자 접근(ex.http://naver.com/picture/a)
스프링은 URL을 통한 자원 요청을 막아놨다. -> 특정한 파일을 요청할 수 없다!
즉, 요청 시에는 무조건 JAVA를 거쳐야한다. -> 무조건 톰켓이 작동한다!
JAVA 자원 request가 오면 서블릿컨테이너(톰켓)에서
첫 번째 request 일 때,
서블릿 객체 생성(new)
- init() -> 스레드1 생성 -> service() - POST, GET, PUT, DELETE 등의 메소드 중 어떤 메소드로 요청으로 왔는지 식별, 해당하는 메소드(GET, POST 등) 호출 -> response 되면 그 스레드가 비게 됨. - 없어지는 건 아니고 대기하던 요청에 재사용됨.
두 번째 request 일 때,
서블릿 객체 생성 재사용
- init() 과정 X -> 스레드2 생성 -> service() 호출 -> ..
객체는 공유할 수 있지만, 메서드는 공유할 수 없다. - 서블릿 객체 하나여도 여러 스레드로 각각 메서드 사용 가능
톰켓 기본 설정: 스레드 20개
- 21번째 요청은 대기하다가 이전의 스레드가 response되어 종료되면 그 자리로 들어감(재사용) - Pooling 기법
많은 스레드를 생성할 수 있게 하려면:
1. Scale-Up : 컴퓨터의 성능 업그레이드, 2. Scale-Out : 컴퓨터의 개수 증가 - 분산처리
'인프런 - 스프링부트 개념 정리(이론) - 정리' 카테고리의 다른 글
12강 - 디스패처 서블릿이 무엇인가요? (0) | 2023.03.29 |
---|---|
11강 - 웹 배포서술자(web.xml)에 대해서 알려줘요! (0) | 2023.03.29 |
9강 - 톰켓이란 무엇인가요? (0) | 2023.03.22 |
8강 - HTTP가 무엇일까요? 정확히 알아야 해요 (0) | 2023.03.22 |
7강 - OOP 관점에서 모델링이란 무엇일까요? (0) | 2023.03.22 |