| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |
- 일급 컬렉션
- Google OAuth
- Volatile
- builder
- lombok
- 일급 객체
- OAuth 2.0
- java
- Dependency Injection
- spring security
- Spring
- factory
- synchronized
- Today
- Total
HJW's IT Blog
Web Server vs WAS 본문
정적 컨텐츠
정적 콘텐츠는 모든 사용자에게 동일한 정보를 제공하는 콘텐츠로, 주로 서버에 미리 저장된 HTML, CSS, JavaScript, 이미지 파일 등을 포함한다. 이러한 콘텐츠는 웹 서버에서 직접 제공되며, 캐싱이 용이하여 사용자에게 빠르게 전달될 수 있다는 특징이 있다.
정적 콘텐츠의 장점은 빠른 로딩 속도, 높은 안정성, 그리고 보안에 유리하다는 점이다. 서버에서 미리 준비된 파일을 제공하므로 데이터 처리에 필요한 부하가 적고, 성능이 일정하게 유지된다. 또한, 캐싱을 통해 동일한 요청에 대해 더 빠르게 응답할 수 있어 사용자 경험이 향상된다.
하지만 정적 콘텐츠는 유연성이 부족하다는 단점이 있다. 콘텐츠가 고정되어 있어 사용자의 요구에 따라 동적으로 변하지 않으며, 콘텐츠 업데이트 시 번거로움이 발생할 수 있다. 따라서 콘텐츠 수정이 자주 필요한 사이트에서는 관리의 어려움이 있을 수 있다.
대표적인 정적 콘텐츠 예시로는 회사 소개 페이지, 블로그 글, 제품 이미지 등이 있다.
동적 컨텐츠
동적 콘텐츠는 사용자, 시간, 위치 등의 변수에 따라 다른 내용을 제공하는 콘텐츠이다. 사용자의 요청에 따라 서버에서 실시간으로 생성되며, 이를 위해 애플리케이션 서버에서 데이터를 처리한 후 사용자에게 제공된다.
동적 콘텐츠는 DB 조회나 사용자 정보 처리와 같은 작업이 필요하기 때문에, 서버가 실시간으로 데이터를 생성 및 조작하여 개별 사용자의 요구에 맞는 정보를 제공할 수 있다.
동적 콘텐츠의 장점으로는 개인화된 경험을 제공할 수 있다는 점과 사용자와의 상호작용이 용이하다는 점이 있다. 이러한 개인화 기능은 사용자의 만족도를 높이고, 사용자와의 지속적인 상호작용을 가능하게 한다.
그러나 동적 콘텐츠는 상대적으로 로딩 속도가 느릴 수 있으며, 실시간으로 데이터를 처리하는 과정에서 보안 취약점이 발생할 가능성이 있다. 서버와 데이터베이스에 대한 의존도가 높기 때문에 보안 관리와 성능 최적화가 중요하다.
동적 콘텐츠의 예시로는 소셜 미디어 피드, 개인화된 추천 시스템, 실시간 채팅 등이 있다.
Web Server vs WAS

| web server | WAS |
| 정적 컨텐츠를 처리한다 | 동적 컨텐츠를 처리한다 |
| HTML, CSS, JS, image 등 즉시 응답 가능한 컨텐츠를 제공 | DB 조회, 다양한 로직 처리 등 복잡한 작업을 수행한다 |
| HTTP 프로토콜 기반으로 클라이언트의 요청을 처리한다 | 웹 서버의 기능을 포함하며 추가로 에플리케이션 서버와 DB 연동 기능을 제공한다 |
| 요청된 파일을 찾아 클라이언트에게 전송 | JSP, Servlet 등의 서버 사이드 프로그래밍 환경을 제공 |
| 일반적으로 멀티스레딩을 사용하지 않는다 | 멀티스레딩을 사용하여 요청을 동시에 처리 |
Web Server
Web Server의 개념
- 하드웨어: Web 서버가 설치된 컴퓨터를 의미한다.
- 소프트웨어: 웹 브라우저 클라이언트로부터 HTTP 요청을 받아, 정적 콘텐츠(HTML, CSS, JS, 이미지 등)를 제공하는 프로그램이다.
Web Server의 기능
- HTTP 프로토콜을 기반으로 클라이언트 요청에 따라 두 가지 기능을 수행한다:
- 정적 콘텐츠 제공: 이미지, HTML 등과 같은 정적 자원을 WAS를 거치지 않고 바로 제공한다.
- 동적 콘텐츠 제공을 위한 요청 전달: 동적 콘텐츠 요청을 WAS로 전달하고, 처리된 결과를 클라이언트에게 응답한다.
Web Server의 예
- Apache Server, Nginx, IIS(Windows 전용)
WAS (Web Application Server)
WAS의 개념
- 동적 콘텐츠 제공을 위해 만들어진 서버로, DB 조회나 다양한 로직 처리를 수행한다.
- 웹 컨테이너 또는 서블릿 컨테이너라고 불리며, JSP, Servlet 등 동적 웹 애플리케이션을 실행할 수 있는 환경을 제공한다.
WAS의 역할
- Web Server 기능과 Web Container 기능을 모두 수행하며, 동적 콘텐츠를 처리하는 데 중점을 둔다.
- DB 조회, 트랜잭션 관리, 비즈니스 로직 수행 등 다양한 업무를 처리한다.
WAS의 예
- Tomcat, JBoss, Jeus, WebSphere
Web Server와 WAS를 구분하는 이유
- 서버 부하 방지: Web Server는 정적 콘텐츠를, WAS는 동적 콘텐츠를 처리하여 효율성을 높인다.
- 보안 및 성능 향상: SSL 암복호화 처리나 로드 밸런싱을 Web Server에서 처리하여 성능과 보안을 강화한다.
- 장애 복구: 대용량 웹 애플리케이션에서 Web Server와 WAS를 분리해 무중단 운영과 장애 극복에 유리하다.
- 다중 애플리케이션 처리: PHP와 Java 애플리케이션을 하나의 서버에서 함께 운영할 때 Web Server와 WAS를 분리하면 효율적이다.
WAS가 Web Server의 기능까지 수행할 수 있지만, 서버 부하를 방지하고 효율적인 자원 관리를 위해 역할을 분리하여 사용하는 것이 일반적이다.