서버
웹서버
정적 리소스 제공 (HTML 파일 전송)
웹 어플리케이션 서버 (WAS)
프로그램 코드 실행 가능
정적 처리, 동적 처리 분리
클라이언트 - 웹서버(HTML, CSS, JS, 이미지) - WAS(애플리케이션 로직) - DB
서블릿
기능
개발자가 비즈니스 로직에만 집중할 수 있도록 HTTP 메시지 (REQUEST, RESPONSE)를 만드는 로직을 개발자 대신 처리
(HttpServletRequest, HttpServletResponse 객체를 이용해 요청정보, 응답정보 작성)
서블릿 컨테이너 (서블릿을 지원하는 WAS)
싱글톤으로 객체 관리 (고객 요청은 싱글톤으로 생성된 객체의 인스턴스들에 접근)
멀티 쓰레드 기능 제공
쓰레드
쓰레드
애플리케이션 코드를 한 줄 한 줄 실행하는 주체
* 자바 main 메서드를 실행하면 main이라는 이름의 쓰레드가 생성되서 코드를 한줄 한줄 실행
멀티쓰레드
고객 요청 하나에 쓰레드 하나 생성해 대응
고객 요청이 너무 많으면 응답 속도가 지연되고 서버가 다운될 수 있는 가능성이 있어 WAS는 쓰레드 풀을 활용한다.
쓰레드 풀
쓰레드를 미리 일정 수를 생성해두고 필요할 때 꺼내서 쓰고 다 사용하면 반납하는 방식
개발자는 최대 쓰레드를 몇 개로 할 지 지정할 수 있고 이를 넘는 요청들을 거부 또는 대기하게 할 수 있다.
이를 통해 쓰레드 관리가 용이
'Java > Spring' 카테고리의 다른 글
MVC 패턴 (ModelView) (0) | 2021.10.02 |
---|---|
서블릿 진행 구조 (0) | 2021.09.15 |
초기화 콜백, 소멸 콜백 (0) | 2021.09.13 |
조회되는 bean이 두개 이상일 때 (0) | 2021.09.12 |
롬복 (0) | 2021.09.12 |