면접때 서블릿을 물어봤는데 어정쩡.... ㅜㅜㅜ 정리좀하자
정리해보자.
1. 서블릿(Servlet)이란?
서블릿은 Java EE기반의 웹 애플리케이션에서 클라이언트 요청을 처리하고 응답을 생성하는 서버측 컴포넌트임.
즉, HTTP 요청을 받고, 비즈니스 로직을 수행하고, HTTP 응답을 반환하는 역할을 하지.
🌟 서블릿의 주요 특징
- 클라이언트 요청을 처리하고 응답을 생성
- HTTP 프로토콜을 기반으로 동작 (HttpServlet을 상속받음)
- 싱글톤 패턴으로 관리 (기본적으로 하나의 인스턴스가 여러 요청을 처리)
2. Spring에서 서블릿의 역할
Spring 프레임워크에서 서블릿을 직접 다루지는 않지만, 내부적으로 DispatcherServlet이 핵심 역할을 함!
🔥 DispatcherServlet이란?
Spring MVC에서는 **DispatcherServlet**이 서블릿을 확장한 형태로 동작해.
DispatcherServlet은 Spring 컨트롤러로 HTTP 요청을 위임하는 역할을 해.
🛠 DispatcherServlet의 동작 과정
- 클라이언트가 HTTP 요청을 보냄
- DispatcherServlet이 요청을 받음
- HandlerMapping을 통해 어떤 컨트롤러가 요청을 처리할지 찾음
- 해당 컨트롤러를 실행하고 결과를 반환
- 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 |