[Java 웹개발] 웹 서버, 웹 컨테이너, 애플리케이션 서버, 웹 애플리케이션 서버(WAS)란

Kang Dong Hyun·2023년 2월 3일
0

웹 서버, 웹 컨테이너, 애플리케이션 서버, 웹 애플리케이션 서버(WAS)... 명칭들이 비슷하다.
이참에 확실하게 정리해본다.

1. 웹 애플리케이션 (Web Application)

사용자가 웹에 접속해 간접적으로 실행시키는 프로그램이다. 반대는 데스크톱 애플리케이션이다. 데스크톱 애플리케이션은 사용자 pc에 설치되어 인터넷 서비스가 필요한 게 아니라면 웹이 필요하지 않다.

2. 웹 서버 (Web Server)

웹 서버는 정적인 페이지를 클라이언트에게 전송하는 역할을 수행하는 서버이다. 클라이언트(사용자)가 특정 페이지(url)를 요청하면, 주소에 미리 매핑되어 있는 콘텐츠(html, jpg, mp3... )를 클라이언트 브라우저에 전송한다.

3. 웹 컨테이너 (Web Container)

웹 컨테이너는 웹 서버 보다 정교한 역할을 수행한다. 동적인 페이지를 클라이언트에게 전송하기 때문이다. 요청을 받으면

1) 내부 로직을 수행하고,
2) data를 가공, 처리, 보관하는 등의 기능을 수행할 수 있다.
3-1) 서블릿 컨테이너
java 기반 서버를 서블릿 컨테이너라고 부른다. 자바로 웹을 구현시 url 매핑과정에서 서블릿을 사용하기 때문이다. 서블릿 컨테이너는 웹 서버의 내부에서 서블릿(servlet) 클래스 또는 jsp파일을 실행하기 위한 환경을 제공한다.
3-2) 서블릿 컨테이너의 세부적인 역할
서블릿 객체를 생성(load)해 객체가 소멸(unload)할 때까지, 생명주기(init, service, destroy)동안 서블릿을 관리하는 역할을 한다. Apache Tomcat 이 대표적인 서블릿 컨테이너이다.

4. 애플리케이션 서버 (Application Server)

웹 컨테이너에서 확장된 것이 애플리케이션 서버이다. (웹 컨테이너 + α = 애플리케이션 서버)

Java 기준으로 보자면, 서블릿 컨테이너는 servlet, jsp, jstl 등에 집중된 환경을 제공한다. (자바로 웹 구현이 되도록 필요한 기능에 집중했다). 애플리케이션 서버는 서블릿, jsp, jstl에 더해 좀더 기능이 추가되어 통합적인 환경을 제공한다.

아래는 자바 애플리케이션 서버에서 제공되는 기능이다.

JDBC(Java Database Connectivity)
EJB(Enterprise JavaBean)
JNDI(Java Naming and Directory Interface)
JTA(Java Transaction Interface)

5. 웹 애플리케이션 서버 (Web Application Server)

웹 기술을 기반으로 동작하는 애플리케이션 서버를 웹 애플리케이션 서버라고 한다. 보통 줄여서 WAS라고 부른다. 특히, 자바에서의 WAS란 Java EE 사양을 준수하여 만든 서버를 의미한다. 웹 컨테이너보다는 애플리케이션 서버에 가깝다고 보면 되겠다.

p.s
자바로 웹 애플리케이션을 개발한다 = '서블릿, JSP 기술을 사용하여 애플리케이션을 개발한다' 라고 이해하면 된다.

profile
초보개발자의 스터디공간

0개의 댓글