Web Server와 WAS의 분리
왜 Web Server와 WAS를 분리해야 할까?
- 부하 분산
- Web Server가 여러 WAS에 요청을 분배하는 로드 밸런서 역할을 하여 성능을 향상시킵니다.
- 장애 처리 용이
- 한쪽에서 장애가 발생해도 다른 쪽에 영향을 최소화하여 안정성을 유지할 수 있습니다.
- 보안 강화
- Web Server는 외부에 노출되지만 WAS는 내부 네트워크에 위치하여 WAS에 대한 직접적인 공격을 방어합니다.
참고
더보기
로드밸런싱과 클러스터링
로드밸런싱
- 다수의 서버에 요청을 분산하여 서버 부하를 줄이는 방식입니다.
- 하지만 세션 공유 문제가 발생할 수 있습니다.
클라이언트가 이전 요청을 처리했던 서버와 다른 서버로 연결될 경우 세션이 끊길 수 있습니다.
클러스터링
- 하나의 서비스를 제공하는 여러 대의 서버를 하나로 묶는 방식입니다.
- 서버 간 데이터를 공유하여 로드밸런싱에서 발생하는 세션 공유 문제를 해결할 수 있습니다.
요청 처리 과정
WAS와 Web Server의 협업을 통한 요청 처리 과정은 다음과 같습니다:
- HTTP 요청 수신
- Web Server는 웹 브라우저나 클라이언트로부터 HTTP 요청을 받습니다.
- WAS로 요청 전달
- Web Server는 요청이 동적 콘텐츠 관련이라면 이를 WAS에 전달합니다.
- Thread 생성 및 Servlet 실행
- WAS는 web.xml을 참조하여 요청에 맞는 Servlet을 실행하기 위해 Thread를 생성합니다.
- Servlet의 주요 메서드:
- init(): 초기화 작업 수행.
- service(): 요청에 맞는 작업 처리.
- destroy(): 작업 종료 후 자원 정리.
- doGet()/doPost() 메서드 호출
- service() 메서드는 요청의 유형에 따라 doGet() 또는 doPost() 메서드를 호출합니다.
- Servlet은 적절한 동적 데이터를 생성하여 응답(Response)에 담습니다.
- 응답 반환
- WAS는 생성된 동적 데이터를 HttpResponse 형태로 변환하여 Web Server에 전달합니다.
- Web Server는 이를 클라이언트에 반환합니다.
- 자원 정리
- 생성된 Thread를 종료하고, HttpServletRequest와 HttpServletResponse 객체를 제거하여 메모리 자원을 정리합니다.
Servlet과 Servlet Container
- Servlet:
- 자바를 사용하여 웹페이지를 동적으로 생성하는 서버 측 프로그램입니다.
- 클라이언트의 요청에 따라 동적으로 데이터를 처리하고 반환합니다.
- Servlet Container:
- Servlet을 실행하는 컴포넌트로, 클라이언트의 HTTP 요청을 처리합니다.
- Tomcat이 대표적인 Servlet Container입니다.
WAS의 주요 기능과 장점
주요 기능
- 동적 요청 처리
- 클라이언트 요청에 따라 데이터를 생성하거나 변경하며, 사용자 맞춤형 정보를 제공합니다.
- 비즈니스 로직 실행
- 애플리케이션의 핵심 로직을 수행하여 요청에 맞는 데이터를 처리합니다.
- DB 연동
- 데이터베이스와 통신하여 데이터를 읽고 저장하며, 필요한 정보를 반환합니다.
장점
- 통합 처리
- Web Server와 Web Container의 역할을 모두 수행 가능.
- 비즈니스 로직 처리
- 사용자 요청에 따라 데이터 생성, 변경, 삭제가 가능합니다.
- 확장 가능성
- 다양한 동적 애플리케이션과 연동하여 복잡한 요구사항도 처리 가능합니다.
WAS의 중요성
WAS는 복잡한 웹 애플리케이션의 요구사항을 해결하고 다음과 같은 이유로 필수적입니다:
- 동적 처리 능력
- 사용자 요청에 따라 맞춤형 데이터를 생성 및 반환.
- 확장성과 유연성
- 다양한 비즈니스 로직과 데이터베이스 연동으로 복잡한 작업 처리 가능.
- 효율적인 리소스 관리
- Web Server와 WAS가 각자 최적화된 역할을 수행하여 서버 리소스를 효율적으로 사용.
정리하며
Web Server와 WAS는 각기 다른 역할을 통해 효율적이고 안정적인 웹 서비스를 제공합니다.
- Web Server는 정적 콘텐츠 처리와 부하 분산 역할을,
- WAS는 동적 콘텐츠 생성과 비즈니스 로직 처리 역할을 수행합니다.
'기타 > 취준 기록' 카테고리의 다른 글
[2024 하반기] 농협정보시스템 필기 합격 (0) | 2024.11.29 |
---|---|
[기술 면접 준비] 데이터베이스 인덱스(Index) 개념과 활용 (0) | 2024.11.21 |
[기술 면접 준비] WAS의 구조와 개념: 웹 서버와의 차이점 이해하기 (0) | 2024.11.19 |
[기술 면접 준비] HTTP와 HTTPS의 차이점 (0) | 2024.11.18 |
[기술 면접 준비] HTTP(웹 서비스 프로토콜)에 대해 알아보자 (1) | 2024.11.17 |