BACKEND [Kamranahmedse Roadmap]

웹서버(Apache)와 WAS(Tomcat)의 개념과 차이점

Alex Han 2025. 1. 31. 01:14
반응형

웹 애플리케이션을 실행할 때 웹 서버(Apache)WAS(Web Application Server, Tomcat)을 함께 사용하는 경우가 많다.

이 둘은 비슷해 보이지만 역할과 기능이 다르며, 함께 사용하면 성능을 더욱 최적화할 수 있다.

 

 

 


1. 웹 서버(Apache)란?

1) 개념

웹 서버(Web Server)는 클라이언트(웹 브라우저)의 요청을 받아 정적인 HTML, CSS, JavaScript 파일을 제공하는 역할을 한다.

대표적인 웹 서버로 Apache(아파치), Nginx(엔진엑스), IIS(마이크로소프트 IIS) 등이 있다.

 

2) 주요 기능

정적인 콘텐츠(HTML, CSS, JS, 이미지) 제공

HTTP 요청을 처리하고 응답 반환

SSL/TLS(HTTPS) 처리

로드 밸런싱(Load Balancing) 지원

리버스 프록시(Reverse Proxy) 역할 수행 가능

 

3) 아파치(Apache HTTP Server)

가장 많이 사용되는 오픈 소스 웹 서버

멀티 프로세스(MPM, Multi-Processing Modules) 기반으로 동작

모듈(Modular) 구조로 확장 기능을 쉽게 추가 가능

PHP, Python 등 스크립트 언어 실행 가능 (CGI 방식)

Tomcat(WAS)과 연동하여 동적인 웹 애플리케이션 실행 가능

 

📌 Apache가 처리하는 요청 예시

1. 사용자가 브라우저에서 https://example.com/index.html 요청

2. Apache 웹 서버가 index.html 파일을 찾아 클라이언트에게 반환

3. 클라이언트가 HTML 페이지를 렌더링

 

 

정적인 리소스(HTML, CSS, JS, 이미지)를 빠르게 제공하는 것이 웹 서버의 주요 역할이다.

 

 


2. WAS(Web Application Server, 톰캣)란?

 

 

1) 개념

WAS(Web Application Server)는 사용자의 요청을 처리하고, 동적으로 데이터를 생성하여 응답을 반환하는 서버이다.

웹 서버가 정적인 파일을 처리하는 반면, WAS는 비즈니스 로직을 수행하고 동적인 응답을 생성한다.

대표적인 WAS로는 Apache Tomcat, JBoss, WebLogic, WebSphere 등이 있다.

 

2) 주요 기능

JSP/Servlet 실행 (Java 기반 웹 애플리케이션 실행)

동적 웹 페이지 처리 (데이터베이스 연동)

비즈니스 로직 수행

세션 관리 및 트랜잭션 처리

멀티쓰레드 환경 제공

 

3) 톰캣(Apache Tomcat)

Java 웹 애플리케이션을 실행하는 WAS

Servlet, JSP(Java Server Pages)를 실행하는 기능 포함

Spring Boot와 같은 Java 웹 프레임워크의 기본 서버로 사용

Apache 웹 서버와 연동 가능 (Reverse Proxy 방식으로 함께 사용)

 

📌 Tomcat이 처리하는 요청 예시

1. 사용자가 브라우저에서 https://example.com/login 요청

2. Tomcat이 LoginServlet.java 실행 → DB에서 사용자 정보 조회

3. 조회된 데이터를 기반으로 동적인 HTML 페이지 생성 후 반환

4. 클라이언트가 로그인 페이지를 받아 렌더링

 

 

WAS는 웹 서버가 할 수 없는 동적 처리를 담당한다.

 

 

 


3. 웹 서버(Apache)와 WAS(Tomcat)의 차이점

구분 웹 서버(Apache) WAS(Tomcat)
역할 정적 콘텐츠(HTML, CSS, JS) 제공 동적 콘텐츠(비즈니스 로직, 데이터 처리) 수행
처리 방식 HTTP 요청을 받아 파일 제공 Servlet, JSP 실행 및 데이터베이스 연동
실행 가능한 언어 HTML, CSS, JavaScript, PHP, Python (CGI) Java (Servlet, JSP)
대표적인 서버 Apache, Nginx, IIS Tomcat, JBoss, WebLogic, WebSphere
성능 최적화 정적 파일 캐싱 가능 동적 처리를 위해 추가적인 CPU, 메모리 필요
트랜잭션 처리 X O (세션, DB 연동 등)
로드 밸런싱 가능 (Reverse Proxy 기능 지원) 보통 웹 서버와 함께 사용

 

웹 서버(Apache)는 정적 파일을 처리하고, WAS(Tomcat)는 동적 웹 애플리케이션을 처리하는 역할을 한다.

대규모 시스템에서는 웹 서버와 WAS를 함께 사용하여 성능을 최적화한다.

 

 

 


4. 웹 서버(Apache)와 WAS(Tomcat) 연동 방식

웹 서버와 WAS를 함께 사용하는 가장 대표적인 방식은 Reverse Proxy(리버스 프록시) 방식이다.

 

 

1) 왜 웹 서버와 WAS를 함께 사용할까?

웹 서버(Apache)

정적 콘텐츠를 빠르게 제공하여 성능 최적화

클라이언트 요청을 분산(Load Balancing)하여 부하를 줄임

 

WAS(Tomcat)

동적 요청(데이터베이스 연동, 비즈니스 로직)만 처리하여 리소스 절약

트랜잭션, 세션 관리 등 중요한 역할 수행

 

2) Reverse Proxy 방식으로 연동

📌 Reverse Proxy란?

클라이언트는 Apache 웹 서버에 요청을 보내고, Apache는 필요한 경우 Tomcat(WAS)으로 요청을 전달하는 방식이다.

 

연동 구조 ❘ 클라이언트 (브라우저) → Apache (웹 서버) → Tomcat (WAS) → 데이터베이스

 

 

장점

정적 리소스(HTML, CSS, JS, 이미지)는 Apache에서 처리하여 속도 향상

비즈니스 로직(Servlet, JSP 등)은 Tomcat에서 처리하여 성능 최적화

보안 강화: WAS를 외부에서 직접 접근할 수 없도록 보호

 

📌 언제 Apache + Tomcat을 함께 사용할까?

정적 파일과 동적 웹 애플리케이션을 분리하여 처리할 때

대량의 요청을 효과적으로 처리하려고 할 때 (로드 밸런싱)

보안 및 성능 최적화가 필요할 때

 

웹 서버(Apache)는 정적 리소스를 제공하고, WAS(Tomcat)는 동적 웹 애플리케이션을 실행하는 역할을 한다.

둘을 함께 사용하면 성능을 극대화할 수 있다.

반응형