3.웹서버 관련기술


  브라우저쪽과 관련된 수많은 기술들 중에서 그나마 좀 살아남은 기술들은 앞장에서 살펴보았다.

그러나, 웹서버쪽도 만만치 않다. 몇년 사이에 그 주인공들이 마구 뒤바뀌고 있는 상황이라 정신없기는 브라우저쪽 못지않다.

3.1 WEB Server

  먼저 대표적인 웹서버들의 종류에 대해서 잠깐 살펴보자.

  • 아파치(Apache)

    아파치와 같은 종류의 웹서버(NCSA, CERN에서 개발한 웹서버 포함)는 대부분이 무료로 제공되며, UNIX버전이 주류를 이룬다.(아파치는 Window용 웹서버 버전도 있다.) 이러한 계열의 웹서버는 별도의 개발언어를 지원하지 않는다. 즉, 모든 언어로 작성된 CGI를 실행시킬 수 있다.

      CGI?  예전에 웹에서는 정적인 HTML문서만을 제공했었다. 그러나 사용자들은 시시각각으로 변하는 정보들을 보다 빠르고 다양하게 접근하고 싶어졌다. 그러나 HTML문서의 경우는 일일이 손을 봐줘야 하기 때문에 그런 욕구를 충족시킬 수가 없었던 것이다. 그래서, 자동적으로 HTML문서의 내용이 바뀌도록 할 수 있게 웹서버의 기능을 확장한 것이 CGI프로그램이다. 어떻게 보면, CGI프로그램은 웹서버의 일종이기도 한 것이다.

      그러나 다양한 웹서버가 존재하고 또 다양한 프로그래밍 언어가 존재하여 웹서버와 CGI프로그램이 필요한 정보를 상호 주고받는 방식(interface라고 부른다.)을 표준으로 결정해야 했다. 이것이 바로 CGI이고, 이러한 규칙을 따라 작성한 것이 CGI프로그램이다.

      그러니 프로그래밍 언어는 뭐가 되도 관계가 없고, 웹서버도 뭐가 됐든 간에 이러한 기능이 존재하게 된 것이다. 일반적인 프로그래밍 언어로는 PERL, C, ASP, PL/SQL, C++, JAVA, Server Side Javascript, PHP, JSP, Java Servelet 등이 주로 사용되고 있다.

    아파치는 무료라는 장점때문에 이를 기반으로 다양한 언어들이 Module형태로 지원된다. 즉, 아파치 웹서버에 모듈을 끼워넣으면 해당 언어로 CGI 프로그램을 작성할 수 있게 한다. 대표적인 CGI언어로 Perl, PHP, C, Java등이 있다. 자세한 정보는 www.apache.org에서 확인할 수 있다.

  • NES(Netscape Enterprise Server)

    유료로 사용되는 웹서버중 기업에서 일반적으로 가장 많이 사용되는 종류이다. NCS(Netscape Commerce Server)도 같은 계열인데, 아파치와 같이 Livewire(Server-Side JavaScript)라는 개발언어를 지원하며, 이외에도 다른 언어로 개발할 수 있도록 하고 있다. 최근에 서버명칭이 iPlanet으로 변경되었고, 현재 6.0이 나와있으며, 내부에 Java엔진을 탑재하고 있다.

    http://www.iplanet.com/

  • Oracle Web Server

    DBMS사에서 제공하는 웹서버로 아파치와 같이 모든 개발언어로 작성된 CGI를 지원하고 있으며, 각 DBMS사에서 제공하는 별도의 언어로(Oracle의 경우 PL/SQL) 작성된 CGI를 지원하고 있다. www.oracle.com

  • IIS(Internet Information Server)

    NT급에서 기본적으로 지원되는 웹서버로 ASP(Active Server Page)라는 개발 언어를 지원한다. MS환경에서는 무조건 IIS를 쓸수밖에 없는 상황이다. 다른 웹서버들도 개발자들이 간단한 Test를 해볼수있도록 Window버전을 지원하지만, 문제는 그회사들의 문서에서 밝히듯이 진짜 개발 및 테스트용이라는 점이다. 최근 Window2000 Server로 오면서 보다더 견고해졌다.

    이외에 윈도우에서 실행되는 웹서버나 맥켄토시에서 실행되는 웹서버도 물론 있다. 그러한 것도 대부분 위와 같은 4가지 부류중의 하나에 속한다.

    문제는 웹서버고유의 영역을 넘는 부분 즉, CGI프로그래밍 지원이나, Application Server들이 이들의 부족한 부분을 메워가고 있는데, 최근에는 Application Server제품들(Web Logic, Web Sphere, Oracle Application Server, Resin, Jrun, Tomcat, Inprise, GemStome/J, Dynamo, PowerTier, EAServer, SapphireWEB)들간의 각축이 벌어지고 있는 상황이다.

      Application Server?  좀 어려운 얘기인데, CGI들을 수행하는 기반환경이면서, 이들에 대한 관리적인 기능들을 안정적으로 제공하는 프로그램으로, 간단히 얘기하자면, HTML을 지원하기 위해서 Web Server가 있고, CGI프로그램을 지원하기 위해서 Application Server가 있다고 봐도 좋다.

- Last Update : 2001.6.19 by Deadfire(http://www.deadfire.net)

WEB 강좌
웹에대한 기초지식
     - WEB 서비스
     - HTTP 프로토콜
     - 통신 규약관련 용어들
     - 네트워크 관련용어
     - 브라우저 작동방식
브라우저 관련기술
웹서버 관련기술
     - WEB Server
     - CGI 개발언어
고려 사항
마치며

Copyright ⓒ 1997 ~, Deadfire Program Master