Notice
Recent Posts
Recent Comments
Link
enginner_s2eojeong
웹 서버(Web Server) vs 웹 애플리케이션 서버(WAS) 본문
1. 웹 서버 (Web Server)
- 클라이언트의 요청을 받아 정적인 웹 페이지(HTML, CSS, JavaScript, 이미지 등)를 제공하는 서버
- 정적 콘텐츠를 처리하는 역할
1. 주요 기능
- 정적 리소스 제공 (HTML, CSS, JavaScript, 이미지, 동영상 등)
- 클라이언트의 HTTP 요청을 받아 응답
- 리버스 프록시(Reverse Proxy) 역할 가능 (요청을 다른 서버로 전달)
- 부하 분산 수행 가능
2. 대표적인 웹 서버
- Apache HTTP Server
- Nginx
- IIS
3. 웹 서버 동작 방식
- 사용자가 브라우저에서 www.helloworld.com을 요청
- 웹 서버가 요청된 URL에 해당하는 HTML, CSS, JS 파일을 찾아 응답
- 사용자의 브라우저가 해당 파일을 해석하여 화면을 구성
📌 웹 서버는 보통 정적인 파일을 제공하고 동적 요청을 처리하지 못함.
→ 동적 요청을 처리하려면 웹 애플리케이션 서버(WAS) 필요.
2. 웹 애플리케이션 서버 (WAS, Web Application Server)
- JSP, Servlet, Spring 등의 웹 애플리케이션 로직을 실행하는 역할
- 동적 컨텐츠을 처리하는 서버
1. 주요 기능
- 클라이언트 요청을 받아 동적으로 HTML 생성
- DB와 연결하여 데이터를 조회 및 변경
- 트랜잭션 관리
- 비즈니스 로직 처리
2. 대표적인 WAS
- Tomcat
- JBoss
- WebLogic
- WebSphere
📌3. WAS 동작 방식
- 사용자가 브라우저에서 www.helloworld.com/login을 요청
- 웹 서버가 해당 요청을 WAS로 전달
- WAS가 Servlet 또는 Spring Controller를 실행하여 요청을 처리
- 데이터베이스에서 사용자 정보를 가져와 응답을 생성
- WAS가 동적으로 생성된 HTML을 웹 서버에 전달
- 웹 서버가 브라우저에 HTML을 응답
📌 WAS는 웹 서버가 할 수 없는 비즈니스 로직을 실행할 수 있음.
→ DB 연동, 세션 관리, 동적 페이지 생성 등의 기능 수행 가능 !
3. 웹 서버 vs. 웹 애플리케이션 서버
구분 | 웹 서버 (Web Server) | 웹 애플리케이션 서버 (WAS) |
주요 역할 | 정적 콘텐츠 제공 (HTML, CSS, JS, 이미지) | 동적 콘텐츠 처리 (비즈니스 로직 실행) |
주요 기능 | HTTP 요청 처리, 정적 리소스 | Servlet 실행, DB 연동 |
예제 | Apache, Nginx, IIS | Tomcat, JBoss, WebLogic, WebSphere |
처리 방식 | 요청된 리소스를 그대로 제공 | 클라이언트 요청을 처리하고 HTML을 동적으로 생성 |
4. 결론 : 웹 서버 + WAS를 함께 사용하자 !
- 웹 서버는 정적인 리소스 처리
- WAS는 동적인 로직 처리
- 웹 서버가 프록시 역할을 하여 부하를 분산
- 보안 강화를 위해 WAS를 직접 외부에 노출하지 않음
예시 조합)
Nginx + Tomcat
Apache HTTP Server + Tomcat
📌 웹 서버와 WAS를 함께 사용하면, 정적인 파일은 빠르게 제공하고 동적인 요청은 WAS가 처리하여 성능 최적화가 가능하다.
'Backend > SpringBoot' 카테고리의 다른 글
Jackson 매핑 오류: JSON 필드와 Java 필드 불일치 문제 해결하기 (feat. 모델 api 연결) (1) | 2025.02.21 |
---|---|
<실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발> 2편 (0) | 2025.02.10 |
<실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발> 1편 (0) | 2025.02.10 |