공부해봅시당
[쉽게 배우자! WEB] WEB Server와 WAS에 대해 알아보자 본문
저번 시간까지 서버에 대해 알아보는 시간을 가졌다
이번 시간에는 Web Server와 WAS에 대해 알아보고자 한다.
이 두가지 개념은 헷갈리기 쉬운 개념이니 이번 기회에 정리하고 넘어가면 좋을 것이다.
Static Pages와 Dynamic Pages
위 사진은 Static Pages와 Dynamic Pages를 가장 잘 설명한 그림이다.
Web Server와 WAS를 알아보기로 했는데 Static Pages와 Dynamic Pages가 갑자기 등장한 것이 의외일 수도 있을 것이다.
하지만 Web Server와 WAS를 알아보는 데 있어서 가장 중요한 개념이기 때문에 꼭 알아야 한다.
Web Server가 Static Pages이고, WAS가 Dynamic Pages이기 때문이다.
쉽게 말해, Web Server가 정적으로 정해진 페이지를 보여주는 역할만 했다면, WAS는 동적으로 결과값을 바꿔서 각 사용자에 어울리는 동적 페이지를 보여준다는 것이다.
다음은 그 예시이다.
위에서 정적 페이지는 Web Server를, 동적 페이지는 WAS를 가르킨다고 생각해도 된다.
그런데 정적 페이지가 Web Server이고, 동적 페이지가 WAS이면 왜 용어를 다르게 부르는 걸까?
다른 차이는 없는걸까?
물론 존재한다.
우리가 처음 이해할 때 쉽게 이해하기 위해 정적 페이지가 Web Server이고, 동적 페이지가 WAS라고는 했지만 사실 완전히 같은 의미는 아니다.
여기서 더 나아가서 Web Server와 WAS에 대해 알아볼 필요가 있는 것이다.
더 나아가기
(더 나아가기의 내용은 https://gmlwjd9405.github.io/2018/10/27/webserver-vs-was.html 가 원문임을 명시함)
여기서 Web Server와 WAS의 차이를 개념, 기능, 예시를 통해 자세히 알아보도록 하자.
Web Server
- Web Server의 개념
- 소프트웨어와 하드웨어로 구분됨
- 하드웨어
- Web Server가 설치되어 있는 컴퓨터
- 소프트웨어
- 웹 브라우저 클라이언트로부터 HTTP 요청을 받아 정적인 컨텐츠(.html, .jpeg, .css 등)를 제공하는 컴퓨터 프로그램
- 하드웨어
- 소프트웨어와 하드웨어로 구분됨
- Web Server의 기능
- Http 프로토콜을 기반으로 하여 클라이언트(웹 브라우저 또는 웹크롤러)의 요청을 서비스하는 기능을 담당
- 요청에 따라 아래의 두 가지 기능 중 적절하게 선택하여 수행함
- 기능 1
- 정적인 컨텐츠 제공
- WAS를 거치지 않고 바로 자원 제공
- 기능 2
- 동적인 컨텐츠 제공을 위한 요청 전달
- 클라이언트의 요청을 WAS에 보내고, WAS가 처리한 결과를 클라이언트에게 전달
- 클라이언트는 일반적으로 웹 브라우저를 의미함
- 기능 1
- Web Server의 예
- Apache Server, NginX, IIS 등
WAS(Web Application Server)
- WAS의 개념
- DB 조회나 다양한 로직 처리를 요구하는 동적인 컨텐츠를 제공하기 위해 만들어진 Application Server
- HTTP를 통해 컴퓨터나 장치에 애플리케이션을 수행해주는 미들웨어(소프트웨어 엔진)
- 웹 컨테이너(Web Container) 혹은 서블릿 컨테이너라고도 불림
- Container란 JSP, Servlet을 실행시킬 수 있는 소프트웨어를 말함
- WAS는 JSP, Servlet 구동 환경을 제공한다는 의미
- WAS의 역할
- WAS = Web Server + Web Container
- Web Server 기능들을 구조적으로 분리하여 처리하고자하는 목적으로 제시됨
- 분산 트랜잭션, 보안, 메시징, 쓰레드 처리 등의 기능을 처리하는 분산 환경에서 사용됨
- 주로 DB 서버와 같이 수행됨
- 현재는 WAS가 가지고 있는 Web Server도 정적인 컨텐츠를 처리하는 데 있어서 성능상 큰 차이가 없음
- WAS의 주요 기능
- 프로그램 실행 환경과 DB 접속 기능 제공
- 여러 개의 트랜잭션 관리 기능
- 업무를 처리하는 비즈니스 로직 수행
- WAS의 예
- Apache Tomcat, JBoss, Jeus, Web Sphere 등
여기서 우리가 눈여겨 볼만한 부분은 이 부분이다.
WAS가 가지고 있는 Web Server도 정적인 컨텐츠를 처리하는 데 있어서 성능상 큰 차이가 없음
WAS는 위에서 이미 Web Server + Web Container라고 설명한 바 있다.
그렇다는 것은 WAS에서도 Web Server에서 제공하는 가장 중요한 기능은 '정적 컨텐츠 제공'을 할 수 있다는 이야기이다.
더해, WAS가 가지고 있는 Web Server도 정적인 컨텐츠를 처리하는 데 있어서 성능상 큰 차이가 없다고 하였다.
그런데 우리는 아직 Web Server와 WAS를 구분하여 사용하고 있다.
왜 그럴까?
WAS가 Web Server의 기능도 모두 수행하면 되지 않을까?
WAS와 Web Server를 분리하는 이유
- 기능을 분리하여 서버 부하 방지
- 기능 분리
- WAS : DB 조회나 다양한 로직을 처리
- Web Server : 단순한 정적 컨텐츠를 빠르게 클라이언트에 제공
- 왜?
- 만약 정적 컨텐츠 요청까지 WAS가 처리한다면 정적 데이터 처리로 인해 부하가 커지게 되고, 동적 컨텐츠의 처리가 지연됨에 따라 수행 속도가 느려짐
- 기능 분리
- 물리적으로 분리하여 보안 강화
- SSL에 대한 암복호화 처리에 Web Server를 사용
- 여러 대의 WAS를 연결 가능
- Load Balancing을 위해 Web Server를 사용
- fail over(장애 극복), fail back 처리에 유리
- 특히 대용량 웹 어플리케이션의 경우(여러 개의 서버 사용) Web Server와 WAS를 분리하여 무중단 운영을 위한 장애 극복에 쉽게 대응할 수 있다.
- 예를 들어, 앞 단의 Web Server에서 오류가 발생한 WAS를 이용하지 못하도록 한 후 WAS를 재시작함으로써 사용자는 오류를 느끼지 못하고 이용할 수 있다.
- 여러 웹 어플리케이션 서비스 가능
- 예를 들어, 하나의 서버에서 PHP Application과 Java Application을 함께 사용하는 경우
- 기타
- 접근 허용 IP 관리, 2대 이상의 서버에서의 세션 관리 등도 Web Server에서 처리하면 효율적임
즉, 자원 이용의 효율성 및 장애 극복, 배포 및 유지보수의 편의성 을 위해 Web Server와 WAS를 분리한다는 것이다.
Web Server를 WAS 앞에 두고 필요한 WAS들을 Web Server에 플러그인 형태로 설정하면 더욱 효율적인 분산 처리가 가능하다고 한다.
더 자세한 이야기는 아래 참고자료를 읽어보길 바란다.
참고자료
https://www.youtube.com/watch?v=NyhbNtOq0Bc
https://www.youtube.com/watch?v=F_vBAbjj4Pk
https://www.youtube.com/watch?v=mcnJcjbfjrs
https://gmlwjd9405.github.io/2018/10/27/webserver-vs-was.html
[Web] Web Server와 WAS의 차이와 웹 서비스 구조 - Heee's Development Blog
Step by step goes a long way.
gmlwjd9405.github.io
https://codechasseur.tistory.com/25
[Web] 웹 서버와 WAS의 차이를 쉽게 알아보자
서버 개발에 있어서 가장 기초적인 개념인 '웹 서버'와 'WAS(Web Application Servier)'의 차이점을 다뤄보려고 한다. 💡 웹 서버 사전적 정의 "웹 브라우저 클라이언트로부터 HTTP 요청을 받아들이고 HTML
codechasseur.tistory.com
https://victorydntmd.tistory.com/121
웹 서버와 WAS( Web Application Server ) 차이
1. 웹 서버와 WAS( Web Application Server ) 웹 서버는 정적인 컨텐츠( html, css, js )를 제공하는 서버입니다. ex) Apache, Nginx WAS는 DB 조회나, 어떤 로직을 처리해야 하는 동적인 컨텐츠를 제공하는 서..
victorydntmd.tistory.com
https://jeong-pro.tistory.com/84
WAS 와 웹 서버 차이 (WAS,Web Server) 그리고 아파치, 톰캣
WAS와 웹 서버 - 웹 서버 (Web Server) 클라이언트가 서버에 페이지 요청을 하면 요청을 받아 정적 컨텐츠(.html, .png, .css등)를 제공하는 서버 클라이언트에서 요청이 올 때 가장 앞에서 요청에 대한
jeong-pro.tistory.com
gyoogle/tech-interview-for-developer
👶🏻 신입 개발자 전공 지식 & 기술 면접 백과사전 📖. Contribute to gyoogle/tech-interview-for-developer development by creating an account on GitHub.
github.com
https://pyoungt.tistory.com/71
웹서버와 WAS의 차이 ?
" 상황에 따라 변하는 정보를 제공할 수 있는가 ? " 웹서버 정적인 파일(html,이미지 파일 등)을 제공하기 위한 서버로 HTTP프로토콜에 의해 제공 WAS Web Application Server의 줄임말 JSP나 PHP등을 사용해
pyoungt.tistory.com
웹서버 Web Server 와 WAS의 차이
[web server ] [Was] *정적데이타는 직접처리 // web container 클라이언트요청을 컨테이너로 전송---> // 동적데이타 처리 클라이언트에 전달 // 웹 서버 (Web Server) 클라이언트의 요청을 받아 정..
mo-world.tistory.com
https://helloworld-88.tistory.com/71
[기본] WEB 과 WAS 차이
WEB, WAS 란? ■ 웹서버(WEB)란? 웹서버는 말그래도 작성된 html페이지 등을 네트워크망에 종속되지 않고, 웹서비스를 할 수 있도록 어플리케이션 - 웹 서버(소프트웨어): 웹 브라우저 클라이언트로
helloworld-88.tistory.com
'STUDY > WEB' 카테고리의 다른 글
[쉽게 배우자! WEB] 서버(Server)에 대해 알아보자 1탄 (2) | 2021.07.19 |
---|---|
[쉽게 배우자! WEB] 서버(Server)에 대해 알아보자 2탄 (0) | 2021.07.19 |