WAS란 무엇인가?
WAS(Web Application Server)는 웹 애플리케이션을 실행시키고 그 결과를 웹 서버에 전달하는 미들웨어로, 클라이언트의 요청을 받아 비즈니스 로직을 처리하고 데이터베이스와 상호작용하여 결과를 반환합니다.
- Web Server: HTTP 요청을 처리하고, 정적인 콘텐츠를 클라이언트에게 전달.
- Web Container: 동적 콘텐츠(서블릿, JSP 등)를 생성하는 환경 제공.
따라서, WAS = Web Server + Web Container로 이해할 수 있습니다.
WAS와 Web Server의 구조
WAS와 Web Server는 아래와 같은 구조로 동작합니다.
Web Server는 HTTP 요청 처리를 담당하며, WAS는 애플리케이션 실행 환경을 제공
- Web Server
- 클라이언트의 HTTP 요청을 처리합니다.
- HTML, CSS, 이미지 등 정적 콘텐츠를 클라이언트에 전달합니다.
- WAS
- 동적 콘텐츠(서블릿, JSP 등)를 처리하고, 비즈니스 로직을 실행하며 데이터베이스와 연동합니다.
- Web Server와 Web Container를 모두 포함하여 정적인 데이터 처리와 동적인 데이터 처리 모두 가능합니다.
WAS와 Web Server의 협업 동작 방식
WAS와 Web Server는 서로 협력하여 클라이언트의 요청을 처리합니다. 동작 과정은 다음과 같습니다:
- 클라이언트 요청
- 클라이언트가 브라우저를 통해 Web Server로 요청을 보냅니다.
- Web Server가 콘텐츠 유형 확인
- Web Server는 요청된 콘텐츠가 정적인 콘텐츠인지 동적인 콘텐츠인지 확인합니다.
- 정적 콘텐츠(HTML, CSS, JS, 이미지 등):
Web Server가 직접 클라이언트에게 응답을 보냅니다. - 동적 콘텐츠(데이터 처리, 비즈니스 로직 필요):
Web Server는 요청을 Web Container로 전달합니다.
- 정적 콘텐츠(HTML, CSS, JS, 이미지 등):
- Web Server는 요청된 콘텐츠가 정적인 콘텐츠인지 동적인 콘텐츠인지 확인합니다.
- Web Container에서 동적 콘텐츠 생성
- Web Container는 서블릿(Servlet) 또는 JSP(Java Server Pages)를 실행하여 클라이언트 요청에 맞는 동적 데이터를 생성합니다.
- Web Server를 통한 응답 반환
- Web Container에서 생성된 동적 데이터를 Web Server가 받아 클라이언트에게 전달합니다.
Web Server와 WAS의 차이점
구분 | Web Server | WAS |
주요 역할 | HTTP 요청 처리 및 정적 콘텐츠 제공 | 동적 콘텐츠 처리 및 비즈니스 로직 실행 |
정적 콘텐츠 처리 | 직접 처리 | 처리하지 않음, Web Server가 담당 |
동적 콘텐츠 처리 | 처리하지 않음, WAS에 전달 | Web Container를 통해 직접 처리 |
처리 대상 | HTML, CSS, JS, 이미지 등 | 서블릿, JSP 등 동적 콘텐츠 |
DB 연동 여부 | 연동하지 않음 | DB와 연동하여 데이터를 처리 |
WAS의 주요 기능
더보기
- 동적 요청 처리
- 클라이언트 요청에 따라 데이터를 생성하거나 변경하며, 사용자 맞춤형 정보를 제공합니다.
- 비즈니스 로직 실행
- WAS는 애플리케이션의 핵심 로직을 수행하여 클라이언트 요청에 적합한 데이터를 처리합니다.
- DB 연동
- 데이터베이스와 통신하여 데이터를 읽거나 저장하며, 필요한 정보를 클라이언트에게 전달합니다.
WAS의 장점
더보기
- 통합 처리
- Web Server와 Web Container의 역할을 모두 수행 가능.
- 비즈니스 로직 처리
- 사용자 요청에 따라 데이터 생성, 변경, 삭제가 가능.
- 확장 가능성
- 다양한 동적 애플리케이션과 연동하여 복잡한 요구사항도 처리 가능.
왜 WAS가 중요한가?
더보기
- 동적 처리 능력
- 사용자 요청에 따라 맞춤형 데이터를 제공하여 클라이언트 요구를 충족시킴.
- 확장성 및 유연성
- 다양한 비즈니스 로직과 데이터베이스 연동으로 복잡한 작업 수행 가능.
- 효율적인 리소스 관리
- 정적 요청은 Web Server가, 동적 요청은 WAS가 처리하여 서버 리소스를 효율적으로 분배.
왜 WAS와 Web Server의 협업이 필요한가?
더보기
- 리소스 효율성
- 정적 콘텐츠는 Web Server가 처리하고, 동적 콘텐츠는 WAS가 처리하여 서버 리소스를 최적화.
- 유연한 확장성
- 요청 유형에 따라 역할을 분리하여 애플리케이션의 확장과 유지보수가 용이.
- 전문화된 역할 분담
- Web Server는 정적인 요청 처리에, WAS는 동적 요청 처리와 비즈니스 로직 실행에 최적화.
마무리: WAS의 역할 정리
WAS는 Web Server와 Web Container를 결합하여 클라이언트 요청에 맞는 응답을 생성하는 핵심 역할을 합니다.
- 정적 콘텐츠는 Web Server에서 직접 처리하며,
- 동적 콘텐츠는 Web Container를 통해 데이터를 생성합니다.
'기타 > 취준 기록' 카테고리의 다른 글
[기술 면접 준비] 데이터베이스 인덱스(Index) 개념과 활용 (0) | 2024.11.21 |
---|---|
[기술 면접 준비] WAS의 구조와 개념: Web Server와의 협업 및 요청 처리 과정 (0) | 2024.11.20 |
[기술 면접 준비] HTTP와 HTTPS의 차이점 (0) | 2024.11.18 |
[기술 면접 준비] HTTP(웹 서비스 프로토콜)에 대해 알아보자 (1) | 2024.11.17 |
[2024 하반기] 농협정보시스템 서류 합격 (1) | 2024.11.16 |