본문으로 바로가기
반응형

 

 

 

● 웹 서버   

 

 

웹 서버란,

웹 브라우저와 같은 클라이언트로부터 HTTP 요청을 받아들이고,

HTML 문서와 같은 웹 페이지를 반환하는 컴퓨터 프로그램이다.

 

HTTP 기반으로 동작하고,

정적(파일) HTML, CSS, JS, 이미지, 영상 같은 정적 리소스 및 기타 부가기능을 제공한다.

 

예) NGINX, APACHE

 

 

 

클라이언트가 요청을 보내면 서버는 그에 맞는 응답을 주는 구조이다.

 

 

 

 

 

 


● 웹 애플리케이션 서버(WAS - Web Application Server)

 

 

 

웹 애플리케이션 서버(WAS)는,

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

인터넷 상에서 HTTP를 통해 사용자 컴퓨터나 장치에 애플리케이션을 수행해 주는 미들웨어로 볼 수 있다.

 

HTTP 기반으로 동작하며, 정적 리소스 제공 같은 웹 서버 기능도 포함되어 있다.

 

 

WAS는 프로그램 코드를 실행해서 애플리케이션 로직을 수행할 수 있다.

 

     • 동적 HTML, HTTP API(JSON)

     • 서블릿, JSP, 스프링 MVC

 

 

예) 톰캣(Tomcat) Jetty, Undertow

 

 

 

 

 

 


● Web Server와 WAS의 차이

 

 

 

웹 서버는 정적 리소스(파일)을 제공하고 WAS는 애플리케이션 로직을 수행할 수 있다.

 

웹 서버도 프로그램을 실행하는 기능을 포함하기도 하고,

웹 애플리케이션 서버도 웹 서버의 기능을 제공하기도 하여 정확히 구분지을 수는 없다.

 

자바에서는 서블릿 컨테이너 기능을 제공하면 WAS이고,

서블릿 컨테이너 기능을 제공하지 않으면 웹 서버로 구분된다.

(서블릿 없이 자바코드를 실행하는 서버 프레임워크도 있음)

 

결론적으로 WAS는 애플리케이션 코드를 실행하는데 더 특화되어 있다.

 

 

 

 

 

 

 


●  웹 시스템 구성

 

 

 

일반적인 웹 시스템은 WAS, DB 만으로 시스템 구성이 가능하다.

WAS는 정적 리소스, 애플리케이션 로직 모두 제공 가능하기 때문이다.

 

하지만 WAS가 너무 많은 역할을 담당하게 되면, 서버 과부하가 우려될 수 있다.

 

 

 

따라서 이상적인 웹 시스템 구성은 아래와 같다.

 

 

 

 

정적 리소스는 웹 서버가 처리하고,

웹 서버는 애플리케이션 로직같은 동적인 처리가 필요하면 WAS에 요청을 위임한다.

WAS는 중요한 애플리케이션 로직 처리만을 전담한다.

 

 

정적 리소스가 많이 사용되면 Web 서버 증설하고,

애플리케이션 리소스가 많이 사용되면 WAS 증설하여

 

효율적인 리소스 관리를 할 수 있다.

 

 

 

 

 

반응형