개발인생/etc

웹 서버, 웹 컨테이너, 애플리케이션 서버, WAS 차이점 정리

forri 2025. 2. 19. 14:22

웹 개발을 하다 보면 웹 서버(Web Server), 웹 컨테이너(Web Container), 애플리케이션 서버(Application Server), 웹 애플리케이션 서버(WAS, Web Application Server) 등 비슷한 개념들이 혼용되어 사용된다. 헷갈려서 정리해보려고 한다.

 

웹서버와 WAS란?

클라이언트와 서버가 인터넷을 통해 정보를 상호작용(정보 공유, 검색 등)을 할 수 있게 하는 서비스웹의 3요소:HTML(응답)HTTP(통신 방법)URL(요청하는 주소)💡 잠깐!먼저 생각해보면 좋은 것(면접

velog.io

 

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

웹 애플리케이션은 사용자가 브라우저를 통해 접근하여 실행하는 프로그램을 의미한다.

  • 반대 개념은 데스크톱 애플리케이션으로, 이는 사용자의 PC에 직접 설치되며, 인터넷 연결 없이도 실행될 수 있다.

 

2. 웹 서버(Web Server)

웹 서버는 정적인 콘텐츠(HTML, CSS, 이미지, 오디오 파일 등)를 클라이언트(브라우저)에 전송하는 역할을 수행하는 서버이다.

  • 사용자가 특정 URL을 요청하면, 미리 매핑된 정적 리소스를 클라이언트에 제공한다.
  • 대표적인 웹 서버: Apache HTTP Server, Nginx

 

3. 웹 컨테이너(Web Container)

웹 컨테이너는 동적 페이지를 처리할 수 있는 환경을 제공한다. 즉, 클라이언트의 요청을 받아 내부 로직을 수행하고 데이터를 가공·처리하는 기능을 담당한다.

 

3-1. 서블릿 컨테이너(Servlet Container)

Java 기반의 웹 컨테이너는 서블릿 컨테이너라고도 불린다. 이는 서블릿(Servlet)과 JSP(Java Server Pages)를 실행할 수 있는 환경을 제공하기 때문이다.

3-2. 서블릿 컨테이너의 주요 기능

  • 클라이언트 요청을 받아 서블릿 객체를 생성 및 실행
  • 서블릿의 생명주기 관리 (init, service, destroy)
  • 서블릿과 JSP 간의 요청·응답 처리
  • 멀티스레드 환경에서 요청을 효과적으로 분배

대표적인 서블릿 컨테이너: Apache Tomcat

 

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

애플리케이션 서버는 웹 컨테이너에서 확장된 개념으로, 보다 다양한 기능을 제공하는 통합 실행 환경이다.

 

4-1. 서블릿 컨테이너 vs 애플리케이션 서버

구분 서블릿 컨테이너 애플리케이션 서버
주요 기능 서블릿/JSP 실행 트랜잭션, 보안, 메시징, 데이터베이스 연동 등 포함
대표 서버 Tomcat WebLogic, JBoss, WildFly

 

4-2. 애플리케이션 서버의 주요 기능

Java 기반 애플리케이션 서버는 다음과 같은 추가 기능을 제공한다.

  • JDBC(Java Database Connectivity): 데이터베이스 연결 및 관리
  • EJB(Enterprise JavaBeans): 분산 컴퓨팅 및 트랜잭션 관리
  • JNDI(Java Naming and Directory Interface): 네이밍 서비스 및 리소스 조회
  • JTA(Java Transaction API): 트랜잭션 처리 기능

 

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

웹 기술을 기반으로 동작하는 애플리케이션 서버를 웹 애플리케이션 서버(WAS)라고 한다. 일반적으로 WAS는 Java EE(Jakarta EE) 표준을 준수하는 서버를 의미하며, 단순한 웹 컨테이너보다 더 확장된 기능을 제공한다.

WAS는 웹 컨테이너보다 애플리케이션 서버에 더 가까운 개념이다.

 

대표적인 WAS: Tomcat (서블릿 컨테이너이지만 WAS로 사용되기도 함), JBoss, WebSphere, WebLogic

 

6. 추가 정리: 자바 웹 애플리케이션 개발

Java 기반의 웹 애플리케이션을 개발한다는 것은 서블릿과 JSP 기술을 활용하여 웹 애플리케이션을 구축한다는 것을 의미한다.

 

📌 정리

  • 웹 서버: 정적 리소스를 제공
  • 웹 컨테이너: 동적 웹 애플리케이션 실행 환경 제공
  • 서블릿 컨테이너: Java 기반 웹 애플리케이션 실행 환경 (Tomcat 등)
  • 애플리케이션 서버: 트랜잭션, 보안, 데이터베이스 연동 등 포함한 통합 실행 환경
  • 웹 애플리케이션 서버(WAS): 웹 기반 애플리케이션을 실행하는 애플리케이션 서버 (Java EE 준수)
사용자 (Client: 브라우저, 모바일)  
    ↓  
[웹 서버 (Web Server)]  - 정적 리소스 (HTML, CSS, JS, 이미지) 제공  
    ↓ (동적 요청 전달)  
[웹 컨테이너 (Web Container)]  - 서블릿(Servlet), JSP 실행  
    ↓  
[애플리케이션 서버 (Application Server)] - 비즈니스 로직 실행 (EJB, 트랜잭션 관리)  
    ↓  
데이터베이스 (DB)