본문 바로가기

참고자료

서블릿(servlet) 이란?

서블릿이란 무엇일까?

웹을 만들기 위한 기술이다.

서블릿은 요청과 응답을 메서드로 다룰 수 있게 해주는 기술이다.

출처: https://coding-factory.tistory.com/742

자바기반의 기술로 HTTP 서비스를 지원하는 javax.servlet.http.Httpservlet 클래스를 상속받아 구현한다.

때문에 서블릿은 웹 요청과 응답을 관리하는 클래스 

라고 생각해도 괜찮을 거 같다.

 

1. 서블릿의 특징은?

   - html을 사용하여 요청에 응답한다.

   - Java Thread를 이용하여 동작한다.

   - UDP보다 처리 속도가 느리다.

   - HTML 변경 시 Servlet을 재컴파일해야 하는 단점이 있다.

 

2. 서블릿 컨테이너 

   서블릿을 관리하는 건 서블릿 컨테이너다. 

   서블릿 컨테이너는 HttpsServletRequest와 HttpServletResponse 두 객체를 생성한다.

   그리고 요청방식에 따라 동적인 페이지를 생성하여 응답한다. 

 

   - 서블릿 컨테이너의 주로 어떤 걸 관리할까

      -- 생명주기 관리 

         서블릿을 클래스라고 생각해보자고 했었다. 

         그러면 서블릿 역시 클래스 로딩과 인스턴스화를 거쳐야 한다. 

         또 동작역시 메서드를 통해 해야한다. 

         가비지 컬렉션을 통해 메모리에서 제거되는 과정도 거쳐야 될 것이다. 

         이런 서블릿 클래스의 생성과 동작, 삭제를 서블릿 컨테이너가 관리한다. 

 

      -- 통신 지원

         요청과 응답을 하기 위해서는 클라이언트와 통신을 해야한다. 

         여기서 말하는 통신이란,

         소켓을 만들고, 특정 포트를 리스닝하고, 연결 요청이 들어오면 스트림을 생성하는 과정들이다. 

         그런데 이런 과정들을 서블릿 컨테이너가 대신 해준다. 

         서블릿 컨테이너는 API 를 제공하여 개발자들이 이런 통신에 필요한 과정들을 생략할 수 있도록 해준다.

 

      -- 멀티스레딩 관리

         서블릿 컨테이너는 해당 서블릿의 요청이 들어오면 스레드를 작성한다. 

         그래서 동시에 여러 요청이 들어올 수 있는 웹 환경에서도 

         멀티스레딩 환경으로 동시다발적인 작업 관리를 할 수 있게 해준다. 

         한번 메모리에 올라간 스레드는 다시 생성할 필요가 없기에 메모리에도 효율적이라 한다.   

    

      -- 보안 관리

         서블릿 컨테이가 보안에 관련된 기능을 지원한다. 

         그래서 자바 클래스 안에 혹은 서블릿에 보안에 대해선 신경 쓰지 않아도 된다. 

         보안관리는 대체로 xml 로 기록한다고 한다.

         xml로 하면 수정할 일이 생겨도 다시 컴파일 할 필요가 없다는 장점도 있다.

 

 

참고

https://coding-factory.tistory.com/742

'참고자료' 카테고리의 다른 글

aws  (0) 2021.03.22
동기와 비동기 통신  (0) 2021.02.18
WAS = Web Application Server  (0) 2020.12.01
자바스크립트의 위치는?  (0) 2020.12.01
객체 지향(OOP)과 절차 지향  (0) 2020.11.30