CGI와 WAS, 무슨차이인가요?

2013-10-03 15:49

CGI(Common Gate Interface) : 웹서버에 있어 사용자의 요구를 응용프로그램에 전달하고 그 결과를 사용자에게 되돌려주기 위한 표준적인 방법. 보통 perl이나 python과 같은 언어들이 웹프로그래밍에서 사용하는 방식이라고 책이나 인터넷을 통해서 확인했는데요.. 웹어플리케이션의 용어나 역사가 정립되지 않아서 헷갈립니다;

개인적으로는 아래와 같이 개념을 정리하고 있습니다; "CGI는 클라이언트가 서버에 자료를 요청할때, 정적인페이지가 아닌 동적페이지(정해지지 않은 데이터를 입력하거나 받아올 경우, 페이지의 내용이 일관되지 않는 경우.)를 요청할때 데이터처리를 위한 표준적인 방식을 의미하는데, 이러한 표준방식을 따르는 언어가 perl이나 python같은 언어들이며, 현재는 이보다 발전된 방식으로 자바의 경우에는 Servlet과 같은 형태로 제공되며 우리는 WAS(Web Application System)이라고 한다."

질문1. CGI라는 용어. 의미가 무엇인가요? 질문2. 보통 자바 웹프로그래밍 같은 경우에는 was(web application system)이라고 일컫는데. CGI와의 차이점이 무엇인가요?

1개의 의견 from SLiPP

2013-10-03 22:38

CGI는 용어에서도 의미하듯이 웹 서비스에 대한 표준을 정한 것이라 판단하면 좋을 듯 합니다. 질문에서도 이야기했듯이 정적인 서비스가 아닌 동적인 웹 서비스를 위한 표준이라고 생각하면 됩니다. CGI가 동적인 웹 서비스를 위한 표준이라면 이 CGI 표준에 대한 구현을 하는 것이 PERL, PHP와 같은 기술을 사용하는 것이라고 보면 됩니다.

자바 진영에서도 PERL과 PHP와 같이 동적인 웹 서비스를 위해 지원하는 기술로 JSP(Java Server Pages)가 있습니다. MS에서는 ASP 기술이 그 중 하나입니다.

실상 WAS(Web Application Server)는 CGI 표준을 따르는 구현 기술들을 실행할 수 있는 서버라고 생각하면 됩니다. 즉, 자바 환경의 경우 JSP는 동적인 웹 애플리케이션을 구현할 수 있는 기술이라면 WAS(오픈 소스로 Tomcat, Jetty 등이 있죠)는 사용자의 요청에 해당하는 JSP를 찾아 실행하는 역할을 하는 서버라고 생각하면 됩니다. WAS가 JSP로 구현한 소스 코드를 읽어 동적으로 HTML을 생성하고 사용자에게 응답을 주는 역할을 WAS가 한다고 생각하면 되는거죠.

글로 와 닿지 않을 수 있어요. 만약 자바에 익숙하다면 JSP로 소스 코드를 구현하고 Tomcat 서버에 JSP를 배포해 실행해 보세요. 그럼 대략적인 감은 잡을 수 있을 겁니다.

의견 추가하기