TIL

spring servlet 정리.

하얀잔디 2025. 3. 17. 22:15

면접때 서블릿을 물어봤는데 어정쩡.... ㅜㅜㅜ 정리좀하자

 

정리해보자.

 

1. 서블릿(Servlet)이란?

서블릿은 Java EE기반의 웹 애플리케이션에서 클라이언트 요청을 처리하고 응답을 생성하는 서버측 컴포넌트임.
즉, HTTP 요청을 받고, 비즈니스 로직을 수행하고, HTTP 응답을 반환하는 역할을 하지.

 

🌟 서블릿의 주요 특징

  1. 클라이언트 요청을 처리하고 응답을 생성
  2. HTTP 프로토콜을 기반으로 동작 (HttpServlet을 상속받음)
  3. 싱글톤 패턴으로 관리 (기본적으로 하나의 인스턴스가 여러 요청을 처리)

 

2. Spring에서 서블릿의 역할

Spring 프레임워크에서 서블릿을 직접 다루지는 않지만, 내부적으로 DispatcherServlet이 핵심 역할을 함!

🔥 DispatcherServlet이란?

Spring MVC에서는 **DispatcherServlet**이 서블릿을 확장한 형태로 동작해.
DispatcherServlet은 Spring 컨트롤러로 HTTP 요청을 위임하는 역할을 해.

🛠 DispatcherServlet의 동작 과정

  1. 클라이언트가 HTTP 요청을 보냄
  2. DispatcherServlet이 요청을 받음
  3. HandlerMapping을 통해 어떤 컨트롤러가 요청을 처리할지 찾음
  4. 해당 컨트롤러를 실행하고 결과를 반환
  5. ViewResolver를 통해 적절한 뷰(HTML, JSON 등)를 찾아서 응답 생성

 

🎯 DispatcherServlet과 서블릿의 관계

Spring에서는 모든 요청을 DispatcherServlet이 받도록 서블릿 설정을 해둠.
Spring Boot를 사용하면 @SpringBootApplication이 자동으로 설정을 해주지만,
수동으로 설정하면 보통 web.xml 또는 ServletInitializer에서 등록하게 됨!!

 

 

-> 이를 통해서 굳이 복잡하게 http 요청을 직접 관리 안해도 됨!!!

 

 

정리

  • 서블릿은 Java 기반의 웹 애플리케이션에서 HTTP 요청/응답을 처리하는 컴포넌트.
  • Spring MVC에서는 DispatcherServlet이 서블릿을 대신하여 요청을 처리하고 컨트롤러로 전달.
  • Spring은 DI와 싱글톤 패턴을 활용하여 객체를 관리하지만, 서블릿과는 별개 개념.
  • Spring MVC를 사용하면 직접 서블릿을 구현할 필요 없이 간결한 코드로 웹 애플리케이션을 개발할 수 있음.

즉, Spring에서 서블릿은 DispatcherServlet을 통해 내부적으로 동작하고, 개발자는 주로 컨트롤러와 서비스 계층에 집중하면 됨!

'TIL' 카테고리의 다른 글

CSRF 해결책  (0) 2025.03.19
sql injection / XSS 예방법  (0) 2025.03.19
DB 비관적 Lock vs 낙관적 Lock  (0) 2025.03.17
ec2 내 서버 무중단으로 실행시키기  (0) 2025.03.16
GitHub action SSH key 발급  (0) 2025.03.15