Spring
(Spring)클라이언트와 서버<Tomcat 내부구조>
odong2
2022. 8. 31. 01:54

클라이언트와 서버
- 클라이언트 : 서비스를 요청하는 애플리케이션(or 컴퓨터)
- 서버 : 서비스를 제공하는 애플리케이션(or 컴퓨터)
HttpServletRequest
@Controller
public class RequestInfo{
@RequestMapping("/requestInfo")
public void main(HttpServletRequest request){
Syste.out.println("request.getMethod()=" + request.getMethod());
}
}
위와 같이 서블릿에서 메서드의 매개변수에는 request 및 response를 필수적으로 적어줘야 했지만 스프링에서는 필요한 매개변수만 넣을 수 있다.
필요한 매개변수만 적으면 스프링이 알아서 메서드의 매개변수에 해당하는 객체나 값을 넘겨준다.
⭐Tomcat의 내부 구조⭐
1. 요청이 오면 Thread Pool이 기다렸다가 한가한 Thread가 요청을 받는다.
2. 톰캣서버 안의 Service가 요청을 처리하는데 그 안에 Connector라는 부분이 있다.
3. 요청이 왔을 때 어떤 프로토콜로 왔느냐에 따라 처리할 Connector가 달라진다.
4. Connector에서 받아서 프로세서가 처리하여 Engine(Catalina)에게 전달한다.
5. Engine안에는 Host가 있고 보통은 Host가 하나이지만 여러 개일 수 도 있다.
6. Host안에는 Context가 여러개 있을 수 있고 Context하나가 하나의 WebApplication이다.(Context -> 프로젝트)
7. 위의 과정을 거쳐 해당 서블릿을 호출하는데 스프링에서는 이 서블릿을 DispatcherServlet이라 한다.
8. DispatcherServlet이 받아서 Controller의 main() 메서드를 호출하는 것이 전반적인 동작 과정이다.

Reference
'스프링의 정석 : 남궁성과 끝까지 간다' 수강 후 복습한 내용입니다.