본문 바로가기

#기본개념

Web Server와 Was의 차이는 (Feat. 정적 페이지와 동적 페이지)

반응형

Web Server와 Was의 차이는 (Feat. 정적 페이지와 동적 페이지)

 

 

 

 

 

 

[작성자의 다른 글 보러가기: '#객체지향 프로그래밍이란?']


 

Intro

웹 서버(Web Server)웹 어플리케이션 서버(Web Application Server)의 두가지 키워드만 놓고 보았을 때 두개의 차이점이 무엇일까 하는 질문을 받게 된다면, 정확하게 대답하기 어렵고 정리가 잘 되지 않아서 요약을 해보게 되었습니다.

 

두가지 차이점을 비교해보기에 앞서 정적 페이지(Static Pages)동적 페이지(Dynamic Pages)를 자세히 알아보는게

좋을 것 같아 먼저 이 두가지에 대해 정리해봅니다.

 

 

1. 정적 페이지(Static Pages)와 동적 페이지(Dynamic Pages)

 

2. Web Server와 WAS의 차이

 

 

 

 


 

 

 

1. 정적 페이지(Static Pages)와 동적 페이지(Dynamic Pages)

 

우리가 현재 사용하고 있는 웹페이지에서 웹서버 주소(url)를 가지고 통신 규칙(http)에 맞게 요청하고, 알맞은 내용(html)을 응답 받습니다. 그러나 이처럼 단순한 클라이언트(웹 브라우저)와 웹 서버로는 정적(static)인 페이지 밖에 처리하지 못한다는 한계점에 부딪치게 됩니다. 이러한 html의 태생적인 한계를 극복하기 위해 application을 활용한 것이 Web Application입니다. 따라서 정적인 html의 한계를 극복하고 동적인 페이지를 제공하고자 하는 목적, 더 나아가 보안 강화장애 극복을 가능하게 만드는 것이 WAS입니다.

 

정적 페이지와 동적 페이지는 말 그대로 페이지가 바뀌느냐 바뀌지 않느냐의 차이 입니다.

 

 

 

1) Static Pages

  • Web Server에 이미 저장된 html문서를 클라이언트에게 전송하는 웹페이지
  • 사용자는 서버에 저장된 데이터가 변경되지 않는 한 고정된 웹 페이지를 보게 됨
  • 모든 사용자는 같은 결과의 웹페이지를 서버에 요청하고 응답 받음.
  • html, css, js, image 파일과 같이 컴퓨터에 저장되어 있는 파일들입니다.
장점 단점
요청에 대한 파일만 전송하면 되기 때문에 속도가 빠름 저장된 정보만 보여주기 때문에 서비스가 한정적
단순한 문서들만 이루어져 있어서 어떤 호스팅 서버에서도 동작 가능하므로 구축하는데 드는 비용이 적음 추가,수정,삭제 등의 작업 시 다운받아 편집 후 업로드 해줘야 하기 때문에 관리가 힘듬 
백업, 복원이 쉬움  

 

 

2) Dynamic Pages

  • 요청 정보를 처리한 후에 제작된 HTML문서를 클라이언트에게 전송하는 웹 페이지
  • 사용자는 상황, 시간, 요청 등에 따라 달라지는 웹 페이지를 보게 됨
  • 같은 페이지라도 사용자마다 다른 결과의 웹 페이지를 서버에 요청하고 받을 수 있음
  • 우리가 보는 대부분의 웹 페이지는 동적 웹 페이지
  • EX> 네이버블로그, 티스토리, 홈페이지 게시판 등
장점 단점
다양한 정보를 조합하여 웹 페이지를 제공 하기 때문에 서비스가 다양하다. 사용자에게 웹 페이지를 전달하기 전에 처리하는 작업이 필요하기 때문에 상대적으로 느림
웹 사이트 구조에 따라 추가, 수정, 삭제를 사용자측에서 가능하기 때문에 관리가 쉽다 웹 서버외에 추가적으로 처리를 위한 어플리케이션 서버가 필요하기 때문에 추가 비용이 들 수 있음
관리가 쉽기 때문에, 전체적인 사이트 운영비용이 절감될 수 있음 백업, 복원이 상대적으로 어려움

 

 

 

요약

정적인 웹 페이지보다는 동적인 웹 페이지가 서비스가 다양하고 관리가 쉽기 때문에. 많은 웹 페이지가 동적인 웹페이지를 제공하고 있지만, 그렇다고 모두 동적 웹페이지를 구성하고 정적 웹 페이지를 전혀 사용하지 않는 것은 아닙니다.

 

자주 변경되지 않는 페이지(메뉴, 회사소개) 같은 경우는 굳이 동적 웹 페이지로 만들 필요는 없으며, 정적 웹 페이지 생성기를 통해서 정적 웹페이지로만 이루어진 개인적인 블로그나 제출용 포트폴리오 사이트는 구축 비용이 적게 드는 정적인 웹 페이지가 더 적합합니다.

 

웹 사이트를 만들어서 운영할 때는 자신의 웹 사이트 성격에 맞게, 각각 페이지 특성에 맞게 동적인 웹 페이지와 정적인 웹 페이지를 적절하게 섞어서 사용하는것이 바람직합니다.

 

 

 

 


 

 

 

2. Web Server와 WAS의 차이

 

 

 

1) Web Server

 

웹 서버는 클라이언트로부터 HTTP 요청을 받아 HTML 문서나 각종 리소스를 전달하는 컴퓨터 입니다.

요청에 따라 아래의 두 가지 기능 중 적절하게 선택하여 수행합니다.

기능 1 - 정적인 컨텐츠를 제공한다.
- WAS를 거치지 않고 바로 자원을 제공한다.
기능 2 - 동적인 컨텐츠 제공을 위한 요청을 전달한다.
- 클라이언트의 요청을 WAS에 보내고, WAS가 처리한 결과를 클라이언트에게 전달 한다.

Web Server에는 Apache Server와 NginX가 있는데 각각의 특성은 아래와 같습니다.

 

  • Apache Server: BSD, Linux 등 Unix 계열 뿐 아니라 Windows와 같은 기종에서도 운용 가능.
  • NhinX: 가벼움과 높은 성능을 목표로 함. 웹 서버, 리퍼스 프록시 및 메일 프록시 기능을 가짐.

 

* Apache Tomcat이라고 하는 이유

기존 웹 서버는 Apache, WAS는 Tomcat을 사용하였는데, 

2008년에 릴리즈된 Tomcat 5.5부터 정적 컨텐츠 처리기능 추가됨으로써, 순수 Apache를 사용하는것에 비해 성능차이가 없어짐. 

-> 결국 Tomcat이 Apache의 기능을 포함하므로 Apache Tomcat이라고 하게 됨.

 

 

 

 

 

2) Web Application Server, WAS

 

WAS는 웹 애플리케이션과 서버환경을 만들어 동작시키는 기능을 제공하는 미들웨어 프레임워크 입니다.

(*미들웨어: 서로 다른 애플리케이션이 서로 통신하는데 사용되는 소프트웨어) 

WASWeb ServerWeb Container(JSP, Servlet)으로 이루어져 있습니다. Web Server와의 차이점Web Container를 가진다는 점이며 Was는 HTML 같은 정적인 페이지에서 처리할 수 없는 비즈니스 로직이나 DB조회 같은 동적인 컨텐츠를 제공합니다.

 

그런데 대규모 프로젝트를 보면 아래와 같이 WAS와 Web Server를 분리한 형태를 볼 수 있습니다.

분리를 하면 생기는 장점이 무엇일까요?


Web Client        ->        Web Server      ->         WAS      ->        DB


 

 


 

 

1. 기능을 분리하여 서버 부하 방지 기능

  • WAS는 DB조회 등 페이지를 만들기 위한 다양한 로직을 처리하는데, 단순한 정적 콘텐츠를 WAS에서 제공한다면 다른 작업에 사용하는 리소스들로 인해 지연이 생겨날 수 있다.

 

2. 물리적으로 분리하여 보안 강화

  • SSL에 대한 암복호화 처리에 Web Server를 사용한다.
  • 공격에 대해 Web Server를 앞단에 두어 중요한 정보가 담긴 DB나 로직(WAS)까지 전파되지 못하게 한다.

 

3. 여러 대의 WAS를 연결이 가능하다.

  • Load Balancing(부하의 균등화) 가능 -> 한 서버가 다운되더라도 서비스를 이어갈 수 있다는 장점이 있다.
  • fail over(장애 극복), fail back(장애 복구) 가능
  • 대용량 웹 애플리케이션의 경우(여러 개의 서버 사용) Web Server와 WAS를 분리하여 무중단 운영을 위한 장애 극복에 쉽게 대응할 수 있다.

 

4. 다른 종류의 WAS로 서비스 가능

  • 하나의 서버에서 PHP Application(서버 측 어플리케이션)과 Java Application(클라이언트 측 어플리케이션)을 함께 상용 가능