Spring 공부, 개발 중 Dispatcher-Servlet이라는 용어를 자주 접해 궁금증이 생겨 학습해볼 기회를 가지게 되었습니다.

 

Servlet ?

한 줄 설명

서블릿 (Servlet)은 JAVA를 사용하여 서버에서 동적으로 웹 요청을 처리하고 응답을 생성하는 서버 측 컴포넌트이다.

  • JAVA기반의 Web application 개발에서 핵심 역할
  • JAVA EE(Enterprise Edition)에서 제공하는 웹 컴포넌트
  • 클라이언트로부터 받은 HTTP 요청을 처리한뒤 HTTP 응답을 생성하는 기능을 수행한다.
  • 썬마이크로 시스템에서 JAVA로 웹 개발 하기 위해 만든 기술
    • 요청을 받아 무언가를 처리해 응답하는 Controller역할 수행한다.

Servlet 동작 원리

  1. 클라이언트 요청
    • 클라이언트가 서버로 HTTP 요청을 보낸다.
  2. 서블릿 호출
    • 서버(서블릿 컨테이너 )는 클라이언트의 요청을 적절한 서블릿으로 전달 한다.
    • 이때 서블릿 컨테이너는 서블릿 인스턴스를 생성하거나 이미 생성된 인스턴스를 재사용 한다.
  3. 요청 처리 (Request Handling)
    • 서블릿의 service()메서드는 HTTP Method(GET, POST 등)에 따라 doGet() 또는 doPost()와 같은 메서드를 호출하여 요청을 처리한다.
  4. 응답 생성 (Response Generation)
    • 서블릿은 필요한 데이터를 생성하고
      이를 기반으로 HTML, JSON 등의 형식으로 HTTP 응답을 작성해 클라이언트로 전송한다.
  5. 클라이언트로 응답 전송
    • 서버는 최종적으로 처리 결과를 응답으로 클라이언트에게 전송하고 클라이언트는 웹 브라우저에 이 결과를 표시하게 된다.

Servlet 생명 주기

  • 생성 (Initialization)
    • 서블릿 인스턴스가 처음 요청될 때 init() 메서드가 호출되어 초기화 작업을 수행한다.
  • 요청 처리 (Request Processing)
    • 각 요청에 대해 service() 메서드가 호출되고, 이 메서드는 doGet(), doPost() 등으로 분기되어 요청을 처리한다.
  • 소멸 (Destruction)
    • 서블릿이 더 이상 필요 없을 때 destroy() 메서드가 호출되어 자원을 해제하고 소명한다.

장 * 단점

  • 장점
    • JAVA의 장점인 객체지향적 설계에 용이
    • 서버 측에서 요청을 처리하므로 클라이언트의 성능에 의존하지 않는다.
    • 다양한 라이브러리와 호환이 좋고, 안정성과 보안성도 높은 편이다.
  • 단점
    • 서블릿 단독으로 HTML과 같은 UI를 직접 작성해야 해서 코드가 복잡해질 수 있다.
    • 비즈니스 로직과 프레젠테이션 로직이 혼합되기 쉬워 유지보수가 어려워질 수 있다.

 

반응형

'WEB' 카테고리의 다른 글

[WEB] RESTful API  (0) 2024.11.11

+ Recent posts