TIL - 2/18

헨도·2025년 2월 18일
0

TIL

목록 보기
5/21
post-thumbnail

튜터님과 면담을 하면서 스프링 개념에 대해 여쭤보셨다.
여쭤보는 질문에 대해 뭔가 알랑말랑하게 이미지가 그려졌는데..그냥 얘기를 못했다.

말씀을....못드렸다. 뭐지 뭔가 뇌에 이미지가 있었는데 하.. 그게 모르는거지 뭐

정확히 알아요? 아니요.
알고있었는데? 아니 없어요.
뭔가 알아요? 아니 없어요 그냥.

그동안 너무 기능을 개발해야된다는 생각에 사로잡혀 살았던거 같다.
돌아가는 원리도 좀 챙겨서 공부할걸이라는 생각이 들면서 바로 알아보았다.

Dispatcher Servlet

  • Spring MVC 에서 모든 HTTP 요청을 처리하는 중앙 서블릿

역할

  • 요청을 중앙에서 받아서 적절한 처리로 넘겨주는 역할

입구 역할

  • 모든 HTTP 요청은 Dispatcher Servlet 으로 전달

요청 분배

  • 요청을 처리할 적절한 핸들러로 분배
    즉, 어떤 핸들러가 요청을 처리할지 결정

응답 생성

  • 요청을 처리한 후 해당 응답을 클라이언트에게 반환하는 역할

Handler Mapping

  • Dispatcher Servlet 요청을 받은 후, 해당 요청을 처리할 핸들러를 찾아주는 역할

역할

요청 URL과 핸들러 찾기

  • 요청 URL을 기반으로 어떤 컨트롤러 메소드가 그 요청을 처리할지 결정

핸들러 반환

  • 매핑이 이루어지면 해당 핸들러(컨트롤러 메소드) 반환

예시

GET "/api/users" 에 요청 시, Handler Mapping 은 UserController 의 getUsers() 메소드가 처리할건지 결정 후 해당 핸들러를 반환

Handler Adapter

  • Handler Adapter 는 Handler Mapping 에서 반환된 핸들러를 실제로 실행하는 역할

핸들러 실행

  • Handler Mapping 에서 받은 핸들러(컨트롤러 메소드)를 실행하여 결과를 반환

결과 반환

  • 핸들러가 처리한 결과는 "ModelAndView" 형태로 반환되며, 이 결과는 다시 Dispatcher Servlet 으로 반환되어 클라이언트에게 응답

간단 흐름

  1. Client 요청 -> Dispatcher Servlet 전달
  2. Dispatcher Servlet -> Handler Mapping 에 요청을 전달하여 적절한 핸들러(컨트롤러 메소드) 찾기
  3. Handler Mapping -> 적절한 핸들러(컨트롤러 메소드)를 Handler Adapter 에 전달
  4. Handler Adapter -> 핸들러(컨트롤러 메소드) 실행 후 결과 반환
  5. Dispatcher Servlet -> 결과를 클라이언트에게 응답

역할 간단 정리

Dispatcher Servlet

  • 모든 요청을 받아 적절한 처리로 분배하는 중앙 관리자의 역할

Handler Mapping

  • 요청에 맞는 핸들러(컨트롤러 메소드)를 찾아주는 역할

Handler Adapter

  • 핸들러(컨트롤러 메소드)를 실제로 실행하는 역할
profile
Junior Backend Developer

0개의 댓글