삽질도 두드려 보고,

DESIGN YOUR EXPERIENCE

Web Application Server

토픽 삽질도 두드려 보고, > 서버 프로그래밍 > Apache HTTPD for Windows

개요

 Web Application Server(이하 WAS)는 웹 서버로부터 동적 페이지 요청을 받아 처리한 후 그 결과를 웹 서버로 반환한다. 주로 동적 페이지 생성을 하는 프로그램을 실행하고 데이터베이스 연동 작업을 처리한다. 주요 WAS는 다음과 같다.

  • Apache Tomcat
  • JBoss
  • WebLogic
  • WebSphere
  • Jetty
  • Jeus
  • mod_wsgi
  • uWSGI
  • Gunicorn

동적 웹 페이지(Dynamic web-page)란?

 정적 페이지(Static web-page)는 누가 언제 어디서 페이지를 요구하더라도 항상 같은 결과만을 응답하는 페이지이다. 웹 서비스 제공자가 사전에 준비하여 서버에 Deploy한 컨텐츠이며, 주로 HTML, CSS, JavaScript 및 각종 미디어 파일이 해당된다. 반대로 동적 페이지란 클라이언트의 요구나 시간, 장소에 따라 그 결과를 다르게 반환하는 페이지이다. 예를 들면, 현재 서버 시간을 출력하는 페이지, 사용자가 입력한 로그인 정보에 따른 로그인 결과 페이지 등이 있다. 즉, 동적 페이지는 PHP, Python, JavaScript, Java 등의 프로그래밍 코드에 의해 생성된 결과에 따라 페이지 내용이 달라질 수 있다.

CGI(Common Gateway Interface)

 정적 컨텐츠를 공급하는 웹 서버와 동적 컨텐츠를 생성하는 웹 애플리케이션 간에 주고 받는 규칙을 정의한 것이 CGI 규격이다(데이터베이스의 ODBC, JDBC와 유사한 개념이다.). 이 규격을 준수한다면 어떠한 언어를 사용하더라도 동적 웹 프로그래밍을 할 수 있다. 하지만 CGI는 클라이언트의 각 요청(Request)마다 별도의 프로세스를 생성한다. 이는 요청이 많아질 수록 프로세스가 많아지며, 메모리 점유율 뿐만 아니라 프로세스 생성과 소멸에 의한 오버헤드 처리가 서버의 성능에 큰 영향을 미치게 된다. 그래서 현재 CGI 기술은 사장되었고 CGI를 대체할 여러 기술들이 등장했다.

내장모드(Embedded mode)

 스크립트 언어로 제작된 애플리케이션을 실행시킬 스크립트 엔진(인터프리터)를 웹 서버에 모듈로서 내장시키는 방식이다. mod_php, mod_wsgi가 대표적이다.

데몬모드(Daemon mode), Web Application Server

 애플리케이션을 처리할 프로세스를 미리 데몬으로 실행시킨 후 동적 페이지 요청을 데몬에서 처리한다. 멀티 스레딩 지원 및 객체지향 설계가 반영되면서 애플리케이션 전용 데몬인 애플리케이션 서버로 발전했다. 대표적으로 JSP(Java Server Page), ASP(Active Server Page) 및 mod_wsgi(mod_wsgi는 내장 모드 및 데몬 모드 모두 지원한다.) 등이 있다.

 Linux의 데몬(Daemon)이란 용어는 Windows에서 서비스(Service)로 대응된다.

 웹 서버와 웹 애플리케이션 서버(WAS)가 분리되면서 서로의 역할이 좀 더 분명해졌다. 정적 컨텐츠는 웹 서버가 처리하고, 동적 컨텐츠는 WAS가 처리하는 것이 좀 더 효율적인 성능을 이끌어낸다.

댓글

댓글 본문