웹 개발의 시작, 웹 서버 와 WAS의 역할에 대한 전반적인 이해

서버와 개발자, 왜 서버 지식이 중요한가? 를 통해 서버가 무엇 인지를 정리 했고, 그 중 웹 개발을 시작하면 자연스럽게 가장 처음 접하게 될 웹 서버 (Web Server) 에 좀 더 상세하게 정리한다.

웹 서버 (Web Server)

웹 개발의 시작, 웹 서버 와 WAS의 역할에 대한 전반적인 이해

웹 서버는 월드 와이드 웹 (통칭 WWW) 에서 클라이언트 (주로 웹 브라우저) 의 요청을 받으면 HTML 문서와 같은 웹 콘텐츠 파일을 제공해 주는 역할을 한다.

우리가 보고 있는 이 웹 페이지는 웹 서버 위에 올라가 있는 HTML, JavaScript, CSS 등의 파일을 웹 서버를 통해 제공 받아 웹 브라우저가 해당 파일을 읽고 화면에 표시해 주고 있는 것.

대표적인 웹 서버 로는 Apache, Nginx, Microsoft IIS 등이 있다. 그리고 국내 업체 TmaxSoft 가 만든 WebtoB 가 있다.

요청/응답은 HTTP 프로토콜을 통해 서로 전송 된다.

HTTP (HyperText Transfer Protocol) 프로토콜

먼저 프로토콜 이란 용어에 대해 정의하자.

프로토콜은 규칙, 규약 정도로 해석 될 수 있는 용어로 서로 데이터를 어떤 방식으로 주고 받을지 등의 규칙을 정의해 두는 것이다.

그 중 HTTP 는 웹에서 서로 정보를 주고 받기 위해 만들어진 프로토콜이고 클라이언트 (웹 브라우저) 의 요청을 받으면 웹 서버에서 응답을 줄 때 이 프로토콜을 통해 이루어진다.

WAS (Web Application Server)

여기서 처음 웹 개발을 접할 시 Web Server 와 자주 혼동 되는 WAS 라는 용어가 있다.

웹 서버는 위에 언급을 보면 웹 콘텐츠 (HTML, JavaScript, CSS) 등의 웹 리소스 를 제공하는 서버로서 역할을 하고 이 콘텐츠 들을 묶어 정의하면 정적 콘텐츠라 한다.

그리고 이 WAS 는 동적인 컨텐츠를 제공하기 위해 다양한 로직을 처리 하기 위한 소프트웨어다.

쉽게 말하자면 Java, .NET, Python 등의 프로그래밍 언어 단을 처리하는 역할을 한다.

정리하자면 웹 서버는 정적 콘텐츠를 처리하고, WAS 는 데이터베이스 조회, 사용자 인증, 서버 사이드 스크립트 실행 등 동적인 콘텐츠를 처리하는 역할을 담당한다.

웹이 단순히 화면만 그려주는 역할이 아니라 여러 데이터를 가공, 처리 해야 되는 서비스로 변모한 만큼 웹 서버와 함께 WAS 의 사용도 필수적인 요소가 되었다.

대표적인 WAS 는 Apache Tomcat, JBoss, WildFly 등이 있고 Tmax 사에서 웹 서버는 WebtoB 를 제공 한다면 WAS 로는 JEUS 가 존재 하고 있다.

웹 서버 없이 WAS 만으로도 웹 운영은 가능하다.

WAS 는 기본적으로 웹 서버의 기능도 포함하기 때문에 WAS 만으로도 웹 서비스를 제공할 수 있다.

즉, 위에서 언급한 Tomcat 만으로도 웹 사이트를 운영할 수 있다.

WAS 는 직접 HTTP 요청을 받아 처리 할 수 있으며 정적 컨텐츠를 클라이언트 에게 제공할 수 있다.

웹 서버와 WAS 를 같이 사용하는 이유

그런데 실제 운영 환경 에선 웹 서버와 WAS 를 둘 다 사용한다.

그 이유는 둘을 분리 하면서 얻을 수 있는 장점 때문이다.

대표적인 장점으론 보안 강화, 부하 분산, 리소스 관리 최적화, 유지보수 등의 용이성이 있다.

웹 서버는 정적 컨텐츠를 빠르게 제공하고 WAS 는 동적인 콘텐츠 처리에 집중하면서 시스템의 성능, 효율성을 높일 수 있다.

따라서, 대부분의 실제 업무 상의 웹 운영을 하게 된다면 웹 서버와 WAS 를 함께 사용하게 되는 경우가 많다.

반대로 웹 서버 만으로는 사이트 운영이 어려운 이유

웹 서버 없이 WAS 만으로 사이트 운영은 가능 하지만, 반대의 경우는 어렵다.

그 이유는 웹 서버는 주요 기능이 정적 컨텐츠 제공이고 Java 와 같은 프로그래밍 언어로 작성된 애플리케이션을 직접 실행, 처리 하는 능력이 없다.

물론 이를 가능하게 만들 수 있다.

예를 들어 Apache 웹 서버에서 mod_php 등의 모듈을 설치해 PHP 파일을 해석하게 만드는 것이 대표적인 사례다.

그러나, 기본적으론 웹 서버는 이런 동적인 컨텐츠를 처리할 능력을 보유하지 않고 이는 WAS 가 처리하게 된다.

0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x
목차
위로 스크롤