패잇 2024. 2. 2. 12:55

서블릿 등록 및 사용 방법
서블릿은 톰캣 같은 웹 애플리케이션 서버(WAS)를 직접 설치하고 그 위에 서블릿 코드를 클래스 파일로 빌드해서 올린다음 톰캣 서버를 실행하면 된다. 
스프링 부트를 사용하면 톰캣 서버를 내장하고 있어 톰캣 서버 설치 없이 편리하게 서블릿 코드를 실행할 수 있음. 

서버에서 처리해야 하는 업무

웹 애플리케이션 서버를 처음부터 끝까지 내가 다 만들어야 된다면 우선 HTTP 메시지를 쭉 다 풀어헤쳐야함.

  • 서버에서 TCP/IP 연결을 대기하도록 코드를 짜 놓는다, 소켓 연결
  • HTTP 메시지는 단순 텍스트. 파싱해서 읽기
  • Content-Type에 맞게 바디 내용 파싱
  • 비즈니스 로직 실행
  • HTTP 응답 메시지 생성
  • TCP/IP에 응답 전달, 소켓 종료

이렇게 하면 개발자가 해야되는 것이 너무 많고 비효율적. 개발자가 비즈니스 로직에만 집중할 수 있도록 서블릿이 나머지 작업을 다 해준다. HTTP  스펙을 편리하게 사용할 수 있도록 제공.
 

HTTP 요청, 응답 흐름

  • WAS는 Request, Response 객체를 새로 만들어서 서블릿 객체 호출
  • 개발자는 Request 객체에서 HTTP 요청 정보를 편리하게 꺼내서 사용
  • 개발자는 Response 객체에 HTTP 응답 편리하게 입력
  • WAS는 Response 객체에 담겨있는 내용으로 HTTP 응답 정보를 생성

서블릿 컨테이너

  • 서블릿을 지원하는 WAS를 서블릿 컨테이너라고 함. 예) 톰캣
  • 서블릿 컨테이너는 서블릿 객체를 생성, 초기화, 호출, 종료하는 생명주기를 관리.
  • 서블릿 객체는 싱글톤으로 관리. 서블릿 컨테이너 종료 시 함께 종료.
  • JSP도 서블릿으로 변환되어 사용
  • 동시 요청을 위한 멀티 쓰레드 처리 지원 (개발자는 멀티 쓰레드에 대해 크게 신경쓰지 않아도 WAS가 알아서 잘 처리해준다.)

 





출처
https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-mvc-1/dashboard