본문 바로가기

Dev.../델파이4의 모든것

20장 델파이에서 CGI 애플리케이션 만들기

 
1999년 출판했던 델파이4모든것의 초고중에.
 
빠진 부분들을 몇개 추려서 올려놓습니다.
 
(근데.. 그림이 편하게 안올라가네요.. ㅠ.ㅠ)
 
20장 Delphi에서 CGI 애플리케이션 만드는 방법

20 Delphi에서 CGI 에플리케이션 만드는 방법

 

Delphi에서 개발할 있는 실제 인터넷에서 사용할 있는 에플리케이션은 다음과 같은 다양한 방법이 있다.

 

1)  CGI프로그램 제작방법

2)  ActiveX 제작

3)  ActiveForm으로 제작

이외에도

4)  CORBA형태와의 결합

5)  MTS형식의 서버와의 결합

 

물론 서버를 구성한는 방법에는 여러가지 방법이 있으나 이장에서는 단순한 형태의 인터넷 에플리케이션을 제작하는 방법을 알아 보겠다.

 

1)  CGI프로그램 제작방법

 

Delphi에서 만들 있는 단순한 CGI프로그램은 일종의 하드(Hard)코딩(coding)입니다. 실제로 Delphi GUI 제작할 있는 툴에 가까운데 CGI 제작할 경우에 실제 화면에 보이는 내용은 HTML형식의 출력을 제시하여 주어야 하는데.. Delphi Form에서 만들어진 폼을 그대로 화면에 제시할 있다면 얼마나 좋겠습니까? 방법은 ActiveForm에서 설명할 것이고 여기서는 기본적인 CGI 만드는 방법을 살펴보겠습니다.

 

델파이에서 만들 있는 CGI 형식에는 다음과 같은 형식이 있습니다.


표에서 보듯이 ISAPI NSAPI 지원함으로써 양대 Web Server 지원 API 모두 지원합니다. 혹은, Console CGI Windows CGI 지원함으로써 CGI개발툴로써도 사용할 있습니다.

 

0. 델파이로 CGI프로그램을 작성하는 이유..

 

사실상 CGI 작성하는 이유가 무었인가? ? GUI개발툴로 각광을 받고 있는 델파이에서 CGI개발의 필요성을 요구하는가? 그이유를 간단히 알아보자

현재 인터넷에플리케이션을 제작하는 방법은 크게 3가지로 나뉜다.

 

1)  WebServer에서 지원되는 기본적인 스크립트를 사용하는 방법 : 대표적으로 ASP, Vbscript, JavaScript, Perl

2)  ISAPI NSAPI 통한 CGI 에플리케이션을 사용하는 방법

3)  Java 사용하여 서블릿이나 에플릿형태의 개발

물론, 각각의 방법만 가지고도 어렵지만(!) 한가지 방법으로 웹서버의 모든 기능(?) 만족시킬 있다. 그러나, 프로그램의 성능과 보안문제등 다양한 문제를 해결하기 위해서는 이러한 방법들을 혼용하여야 한다.

 

물론, CGI 제작되는 방식은 이미 구세대적인 방식인지는 모르나 현재시점에서 DB 접근하여 작업하는 경우에 가장 효율적인 방법은 CGI 에플리케이션을 제작하는 것이다.

 

델파이는 이러한 CGI 제작하는 경우에 효율적인 방법을 제공하는데 그것은 CGI 4가지 방식을 따로 구분할 필요없이 한가지 방식으로 개발한 다음 필요한 내용을 링크하여 CGI Build하기만 하면 된다는 것이다.

 

약간의 차이는 있겠지만 크게 다른점은 없다. 일단, 이곳에서는 Console CGI 개발하는 예제를 살펴보기로 하자.

 

 

1)  Console CGI제작

 

델파이의 Demo중에 Iservcgi프로그램을 살펴보자. 해당 소스를 Build한다음 해당 프로그램을 IIS CGI-Bin위치에 복사한다음 해당 내용을 Browse하여 보자.

 

하단에 보이는 화면과 같이 동작하는 것이 보일것이다. 예제가 바로 CGI Application 알아보기 위한 기본적인 Application입니다.

 

그리고 다음의 화면은 해당 화면의 Customer 코드의 코드의 링크를 누르면 다음의 화면이 나타난다.

 

이처럼 Delphi에서는 기본적인 데이터를 View하는 이외에 Grid 사용하듯이 HTML화면에 표를 만들어서 해당 코드에 링크되는 부분을 자동으로 만들어 있다.

 

 


좌측의 화면은 데이터리스트를 보여주는 것이고 우측의 화면은 GRID형태의 표형식으로 나타내는 것이다.

 

실제 좌측의 링크부분을 살펴보면 다음의 코드가 나타나있다.

 

실행화일.exe/runquery?custono=1645

 

코드는 CGI 파라메터로 runquery custono=1645라는 코드를 전달하는 것이다.

 

CGI프로그램을 구동시키기 위해 실행화일을 단독으로 수행하는 것과 파라메터를 전달하는 방법이 있다는 것을 있다. 이러한 파라메터를 처리하는 방법을 알아보자.

 

실제 해당 소스의 Webmodule 살펴보면 다음과 같은 코드가 나열되어 있다.

 


WebModule