서블릿 컨테이너

이강민·2024년 9월 3일
1

커널360

목록 보기
44/56

서블릿 컨테이너

서블릿 컨테이너란?

  • 서블릿의 생성부터 소멸까지의 라이프 사이클을 관리하는 역할
  • 서블릿 컨테이너는 웹 서버와 소켓을 만들고 통신하는 과정을 대신 처리해주고 개발자는 비즈니스 로직에만 집중하면 된다.
  • 서블릿 객체를 싱글톤으로 관리(인스턴스 하나만 생성하여 공유하는 방식)
    • 상태를 유지(stateful)하게 설계하면 안됨
    • 스레드 세이프하지 않음

상태를 유지하게 설계하면 안되는 이유

스레드가 여러개 실행되면서 하나의 공유 자원인 counter 객체에 접근하면서 레이스 컨디션이 발생함

따라서 객체를 싱글톤으로 관리하기 때문에 상태를 유지하게 설계하면 예상치 못한 결과가 나올 수 있기 때문이다.

해결?

synchronized를 통해서 경쟁상태를 해결 할 수 있음

WAS vs 서블릿컨테이너

  • WAS는 서블릿 컨테이너를 포함하는 개념
  • WAS는 매 요청마다 스레드 풀에서 기존 스레드를 사용
  • WAS의 주요 튜닝 포인트는 max thread 수
  • 대표적인 WAS로는 톰캣

profile
AllTimeDevelop

0개의 댓글

관련 채용 정보