Spring 공부, 개발 중 Dispatcher-Servlet이라는 용어를 자주 접해 궁금증이 생겨 학습해볼 기회를 가지게 되었습니다.
Servlet ?
한 줄 설명
서블릿 (Servlet)은 JAVA를 사용하여 서버에서 동적으로 웹 요청을 처리하고 응답을 생성하는 서버 측 컴포넌트이다.
- JAVA기반의 Web application 개발에서 핵심 역할
- JAVA EE(Enterprise Edition)에서 제공하는 웹 컴포넌트
- 클라이언트로부터 받은 HTTP 요청을 처리한뒤 HTTP 응답을 생성하는 기능을 수행한다.
- 썬마이크로 시스템에서 JAVA로 웹 개발 하기 위해 만든 기술
- 요청을 받아 무언가를 처리해 응답하는 Controller역할 수행한다.
Servlet 동작 원리
- 클라이언트 요청
- 클라이언트가 서버로 HTTP 요청을 보낸다.
- 서블릿 호출
- 서버(서블릿 컨테이너 )는 클라이언트의 요청을 적절한 서블릿으로 전달 한다.
- 이때 서블릿 컨테이너는 서블릿 인스턴스를 생성하거나 이미 생성된 인스턴스를 재사용 한다.
- 요청 처리 (Request Handling)
- 서블릿의 service()메서드는 HTTP Method(GET, POST 등)에 따라 doGet() 또는 doPost()와 같은 메서드를 호출하여 요청을 처리한다.
- 응답 생성 (Response Generation)
- 서블릿은 필요한 데이터를 생성하고
이를 기반으로 HTML, JSON 등의 형식으로 HTTP 응답을 작성해 클라이언트로 전송한다.
- 서블릿은 필요한 데이터를 생성하고
- 클라이언트로 응답 전송
- 서버는 최종적으로 처리 결과를 응답으로 클라이언트에게 전송하고 클라이언트는 웹 브라우저에 이 결과를 표시하게 된다.
Servlet 생명 주기
- 생성 (Initialization)
- 서블릿 인스턴스가 처음 요청될 때 init() 메서드가 호출되어 초기화 작업을 수행한다.
- 요청 처리 (Request Processing)
- 각 요청에 대해 service() 메서드가 호출되고, 이 메서드는 doGet(), doPost() 등으로 분기되어 요청을 처리한다.
- 소멸 (Destruction)
- 서블릿이 더 이상 필요 없을 때 destroy() 메서드가 호출되어 자원을 해제하고 소명한다.
장 * 단점
- 장점
- JAVA의 장점인 객체지향적 설계에 용이
- 서버 측에서 요청을 처리하므로 클라이언트의 성능에 의존하지 않는다.
- 다양한 라이브러리와 호환이 좋고, 안정성과 보안성도 높은 편이다.
- 단점
- 서블릿 단독으로 HTML과 같은 UI를 직접 작성해야 해서 코드가 복잡해질 수 있다.
- 비즈니스 로직과 프레젠테이션 로직이 혼합되기 쉬워 유지보수가 어려워질 수 있다.
반응형
'WEB' 카테고리의 다른 글
[WEB] RESTful API (0) | 2024.11.11 |
---|