Web Application
웹 서버는 HTTP 기반으로 동작하며 정적 리소스(HTML, CSS, JS, 이미지 등)를 제공한다,
WAS(Web Application Server)
HTTP 기반으로 동작하며 웹 서버의 기능을 포함한다. 추가적으로 코드를 실행해서 Application 로직을 수행하고 DB와 상호작용하여 동적 컨텐츠를 생성한다.
Web Server와 WAS(WEB Application Server)의 차이점
- 실제로는 Web Server도 Application 로직을 포함할 수 있다.
- WAS는 Application 코드를 실행하는 것에 더욱 특화되어 있다.
- Java에서는 Servlect Container 기능을 제공하면 WAS이다.
Servlet
Servlet은 HTTP 프로토콜 기반 요청(Request) 및 응답 (Response)을 처리하는데 사용된다.
Java에서 Sevlet은 HttpServlet클래스를 상속받아 구현되며, 웹 애플리케이션 개발의 핵심 기술중 하나이다.
Servlet Contaoner
Servlet을 지원하는 WAS 내부에는 서블릿 컨테이너가 있다. 서블릿 컨테이너는 서블릿을 초기화, 생성, 관리, 호출, 종료하는 역활을 수행한다.
Servlet의 생명주기
Servlet은 서블릿 컨테이너가 생성 및 관리한다.
WAS(서블릿 컨테이너 포함)가 종료될 때 Servlet도 함께 종료된다.
Servlet 객체 생성시점
개발자가 직접 인스턴스화 하여 사용하는것이 아닌, 코드만 작성하면 서블릿 컨테이너가 생성한다.
싱글톤
싱글톤은 객체 하나만 생성하여 생성된 인스턴스를 공유하여 사용하는것을 의미합니다. 특정
클래스의 인스턴스가 여러개 생성되지 않도록 하여 자원의 낭비를 방지하고, 인스턴스를 공유함으로써 상태를 일관되게 유지하기 위함입니다.
하지만, 공유 변수 사용을 주의해야 합니다.