웹 개발을 하다 보면 웹 서버(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)
'개발인생 > etc' 카테고리의 다른 글
| 개발 초보자를 위한 필수 기술 스택 정리 v2025 (0) | 2025.02.27 |
|---|---|
| 개발자 종류 이렇게 많다고? 공부하면서 정리해봄 (2) | 2025.02.27 |
| Docker 없이 배포 vs Docker로 배포 (0) | 2025.02.27 |
| [eclipse] xml파일의 "Downloading external resources is disabled." 오류 해결 (0) | 2025.02.19 |
| Trouble Shooting 트러블 슈팅이란? (3) | 2025.02.11 |