구성 요소 및 개체 사용

COM 구성 요소는 강력하고 유용한 웹 응용 프로그램을 만들 수 있는 중요한 요소입니다. 구성 요소는 스크립트에서 재무 트랜잭션을 실행하거나 데이터를 검사하는 등의 특정 작업을 수행할 때 사용되는 기능을 제공합니다. 또한 ASP에서 제공하는 일련의 기본 구성 요소를 통해 스크립트를 크게 향상시킬 수도 있습니다.

구성 요소 정보

COM 구성 요소는 재사용이 가능한 프로그램의 기반 구조로서 하나의 작업 또는 작업 집합을 수행하는 데 필요한 코드가 들어 있습니다. 여러 구성 요소를 조합하여(네트워크 상에서도 가능) 웹 응용 프로그램을 작성할 수 있습니다. COM 구성 요소는 일반 작업을 수행하기 때문에 사용자가 이들 작업 수행을 위한 코드를 따로 작성할 필요가 없습니다. 예를 들어, Stock Ticker 구성 요소를 사용하면 웹 페이지의 최신 주식 현황을 확인할 수 있습니다. 그러나 똑같은 기능을 제공하는 스크립트를 만드는 것은 쉬운 일이 아니며 스크립트는 구성 요소처럼 재사용할 수도 없습니다.

스크립팅에 익숙하지 않은 경우라도 구성 요소 작업 원리에 대한 이해 없이 구성 요소를 사용하는 스크립트를 작성할 수 있습니다. ASP에는 즉시 사용할 수 있는 기본 구성 요소가 포함되어 있습니다. 예를 들어, ADO(ActiveX Data Objects) 구성 요소를 사용하여 웹 페이지에 데이터베이스 연결을 추가할 수 있으며, 다른 개발자가 작성한 추가 구성 요소를 구할 수도 있습니다.

웹 응용 프로그램 개발자들이 비즈니스 논리를 재사용 가능한 보안 모듈로 캡슐화하려면 구성 요소를 사용하는 것이 가장 좋습니다. 예를 들어, 판매 주문을 처리하는 스크립트에서 구성 요소를 호출하여 신용 카드 번호를 확인할 수 있습니다. 이러한 확인 절차는 주문 처리 과정과 별개의 것이므로 신용 카드 확인 처리가 변경되면 주문 처리를 변경하지 않고도 구성 요소를 업데이트할 수 있습니다. 또한 COM 구성 요소는 다른 스크립트와 응용 프로그램에서 재사용할 수 있습니다. 웹 서버에 구성 요소를 설치한 후 ASP 서버쪽 스크립트, ISAPI 확장 기능, 기타 서버의 구성 요소 또는 다른 COM 호환 언어로 작성된 프로그램 등으로부터 이를 호출하여 사용할 수 있습니다.

구성 요소는 COM(Component Object Model)을 지원하는 C, C++, Java 또는 Visual Basic, 기타 여러 가지 스크립트 언어 등 모든 프로그래밍 언어로 작성할 수 있습니다. COM 프로그래밍에 익숙한 경우 COM 구성 요소는 자동화 서버라고도 합니다. COM 구성 요소를 웹 서버에서 실행할 경우에는 Visual Basic의 MsgBox 함수와 같은 그래픽 사용자 인터페이스 요소를 사용할 수 없습니다. 그래픽 인터페이스 요소는 서버에서만 볼 수 있으며 브라우저에서는 볼 수 없습니다.

구성 요소의 개체 인스턴스 만들기

구성 요소는 동적 연결 라이브러리(.dll) 또는 실행 파일(.exe)에 포함된 실행 가능 코드입니다. 구성 요소는 그 안에서 특정 기능을 수행하는 자체 포함된 코드 단위인 개체로 구성됩니다. 각 개체에는 메서드(프로그래밍된 프로시저)와 속성(행동 특성)이 있습니다. 구성 요소에서 제공하는 개체를 사용하려면 개체의 인스턴스를 작성하고 변수 이름에 새 인스턴스를 지정하십시오. 개체 인스턴스를 만들려면 ASP Server.CreateObject 메서드나 HTML의 <OBJECT>를 사용하십시오. 개체 인스턴스 이름을 지정하려면 스크립트 언어의 변수 지정 문을 사용하십시오. 개체 인스턴스를 만들 때는 등록 이름(PROGID)을 제공해야 합니다. ASP에서 제공되는 기본 구성 요소의 경우는 참조 페이지에서 개체의 PROGID를 얻을 수 있습니다. 자세한 내용은 ASP의 설치 가능한 구성 요소를 참조하십시오.

예를 들어, Ad Rotator 구성 요소는 일련의 그래픽 광고 전체를 임의로 회전시킵니다. Ad Rotator 구성 요소는 PROGID가 "MSWC.AdRotator"인 Ad Rotator 개체를 제공합니다. Ad Rotator 개체의 인스턴스를 작성하려면 다음 문 중 하나를 사용하십시오.

VBScript:

<% Set MyAds = Server.CreateObject("MSWC.AdRotator") %>

JScript:

<% var MyAds = Server.CreateObject("MSWC.AdRotator") %>

VBScript나 JScript에 익숙하다면 새 개체 인스턴스를 작성할 때 스크립트 언어의 함수(VBScript의 CreateObject 또는 JScript의 New)를 사용하지 않는다는 점에 유의하십시오. ASP Server.CreateObject 개체를 사용하지 않으면 ASP에서 스크립트의 개체 사용을 추적할 수 없게 됩니다.

또한 HTML <OBJECT> 태그를 사용하여 개체 인스턴스를 만들 수도 있습니다. 이 때는 서버 값으로 RUNAT 속성을 제공해야 하고, 스크립트에서 사용할 변수 이름에 설정된 ID 속성을 제공해야 합니다. 개체를 구별할 때는 개체의 등록 이름(PROGID)이나 등록 번호(CLSID)를 사용합니다. 다음은 등록 이름(PROGID)을 사용하여 Ad Rotator 개체의 인스턴스를 만드는 예제입니다.

<OBJECT RUNAT=Server ID=MyAds PROGID="MSWC.AdRotator"></OBJECT>

다음은 등록 번호(CLSID)를 사용하여 Ad Rotator 개체의 인스턴스를 만드는 예제입니다.

<OBJECT RUNAT=SERVER ID=MyAds CLASSID="Clsid:1621F7C0-60AC-11CF-9427-444553540000"></OBJECT>

스크립트를 사용하여 COM 구성 요소 만들기

ASP는 Microsoft의 강력한 스크립트 작성 기술인 Windows 스크립트 구성 요소를 지원하므로 이를 사용하여 COM 구성 요소를 만들 수 있습니다. 특히 데이터베이스 액세스나 컨텐트 생성에 사용되는 공통 스크립트(.asp 파일이나 프로그램에서 액세스할 수 있음)를 재사용 가능한 구성 요소로 캡슐화할 수 있습니다. 특수한 개발 도구 없이도 VBScript나 JScript 등의 언어를 사용하여 Windows 스크립트 구성 요소를 작성할 수 있습니다. 또한 Windows 스크립트 구성 요소를 Visual Basic, C++, Java 등 COM 호환 프로그래밍 언어로 작성된 프로그램으로 통합할 수도 있습니다.

다음은 VBScript로 작성된 Windows 스크립트 구성 요소의 예로서, 온도 측정 기준을 섭씨 또는 화씨로 변경하는 방법을 정의합니다.

<SCRIPTLET>

<Registration
	Description="ConvertTemp"
	ProgID="ConvertTemp.Scriptlet"
	Version="1.00"
>
</Registration>

<implements id=Automation type=Automation>
	<method name=Celsius>
		<PARAMETER name=F/>
	</method>
	<method name=Fahrenheit>
		<PARAMETER name=C/>
	</method>
</implements>

<SCRIPT LANGUAGE=VBScript>

Function Celsius(F)
	  Celsius = 5/9 * (F - 32)
End Function

Function Fahrenheit(C)
	  Fahrenheit = (9/5 * C) + 32
End Function

</SCRIPT>
</SCRIPTLET>

이 Windows 스크립트 구성 요소를 구현하기 전에, 파일의 확장명을 .sct로 저장한 다음 Windows 탐색기에서 마우스 오른쪽 단추로 클릭하여 등록을 선택합니다. 웹 페이지에서 이 Windows 스크립트 구성 요소를 사용하려면 다음과 같은 서버쪽 스크립트를 사용해야 합니다.

<%
Option Explicit

Dim objConvert
Dim sngFvalue, sngCvalue

sngFvalue = 50
sngCvalue = 21

Set objConvert = Server.CreateObject("ConvertTemp.Scriptlet")
%>

<%= sngFvalue %> degrees Fahrenheit is equivalent to <%= objConvert.Celsius(sngFvalue) %> degrees Celsius<BR>

<%= sngCvalue %> degrees Celsius is equivalent to <%= objConvert.Fahrenheit(sngCValue) %> degrees Fahrenheit<BR>

ASP 기본 제공 개체 사용

ASP에서는 또한 웹 개발을 간단히 할 수 있는 유용한 작업을 위해 기본 제공 개체를 제공합니다. 예를 들어, 요청 개체를 사용하여 HTML 폼이나 쿠키에서 온 사용자 입력 등 HTTP 요청과 관련된 정보에 쉽게 액세스할 수 있습니다. COM 구성 요소가 제공하는 개체 사용과는 달리, ASP 기본 제공 개체는 스크립트에서 사용하기 위해 인스턴스를 만들 필요가 없습니다. 이러한 개체는 ASP 요청이 처리되기 시작할 때 자동으로 작성됩니다. 이 항목에서 설명한 구성 요소 개체의 메서드 및 속성에 액세스하는 하는 것과 같은 방법을 사용하여 기본 제공 개체의 메서드 및 속성을 액세스합니다. 기본 제공 개체에 대한 자세한 내용은 Active Server Pages 개체의 빠른 참조 카드를 참조하십시오.

개체 메서드 호출

메서드는 개체에서 또는 개체로 수행할 수 있는 작업입니다. 일반적인 메서드 호출 구문은 다음과 같습니다.

Object.Property

경우에 따라 속성값을 읽고 설정할 수 있습니다. 또한 일부 개체의 경우는 새 속성을 추가할 수도 있습니다.

예를 들어, Ad Rotator 구성 요소에는 주변에 괘선을 추가하거나 괘선 두께를 지정하는 Border라는 속성이 있습니다. 다음 식은 괘선을 지정하지 않습니다.

<% MyAds.Border = 0 %>

일부 속성의 경우 ASP 결과 지시어를 사용하면 현재 값을 표시할 수 있습니다. 예를 들어, 다음 명령은 브라우저가 서버에 연결되어 있을 경우 TRUE를 반환합니다.

<%= Response.IsClientConnected %>

Java 클래스로부터 개체 만들기

Server.CreateObject를 사용해서 Java 클래스의 인스턴스를 만들려면 JavaReg 프로그램을 사용하여 클래스를 COM 구성 요소로 등록해야 합니다. 그러면 Server.CreateObject 메서드나 HTML의 <OBJECT> 태그를 PROGID나 CLSID와 사용할 수 있습니다.

또는 Java 모니커에서 제공하는 메커니즘을 사용하면 JavaReg 프로그램을 사용하지 않고 직접 Java 클래스의 인스턴스를 만들 수 있습니다. 모니커를 사용해서 클래스의 인스턴스를 만들려면 VBScript 또는 JScript의 GetObject 문을 사용하고 java:classname의 양식으로 Java 클래스 전체 이름을 제공하십시오. 다음은 Java Date 클래스의 인스턴스를 만드는 VBScript 예입니다.

<%
  Dim dtmDate
  Set dtmDate = GetObject("java:java.util.Date")
%>

The date is <%= dtmDate.toString() %>

Server.CreateObject 대신 GetObject를 호출하여 만든 개체로도 ASP 기본 제공 개체에 액세스하고 트랜잭션에 참여할 수 있습니다. 그러나 Java 모니커를 사용하려면 버전 2.0 이상의 Microsoft Virtual Machine을 사용해야 합니다.


© 1997-2001 Microsoft Corporation. All rights reserved.