1. 이 글에 첨부된 patch.zip 파일을 다운로드하여 patch.js 파일을 원하는 곳에 저장한다.

2. 패치를 적용할 웹 문서나 웹 어플리케이션의 소스를 연다.

3. 문서의 <HEAD> ~ </HEAD> 섹션 안에 다음과 같이 반영될 수 있도록 편집한다. 보통의 HTML 문서로 말할 것 같으면 다음과 같다고 할 수 있다.

[CODE]
...
<head>
<meta http-equiv="content-type" content="text/html; charset=euc-kr">
<title>제목 없음</title>
<script src="patch.js" language="javascript"></script>
</head>
...
[/CODE]

4. patch.js에는 docWrite 함수 하나만 들어있으며 단지 document.write를 대신 써주는 일 뿐이다. 하지만 이 HTML 페이지에서 직접 document.write를 호출하는 것과는 차이가 있다.

5. 이제 ActiveX 컨트롤이 삽입된 곳으로 가서 <OBJECT> ~ </OBJECT> 섹션의 내용을 모두 복사한다.

6. docWrite 함수를 호출하되 문자열 인수를 넘겨주면된다. 그러나 다음의 사항을 지킬 필요가 있다.

6-1. 편의상 문자열 인수의 시작과 끝을 작은 따옴표로 할 것을 권장한다. Well-Formed XHTML Document의 경우 모든 Property를 쌍 따옴표로 열고 닫는 관습이 있는데 여기에 일일이 Escape Sequence 처리를 하는것은 비효율적이기 때문이다.

6-2. 가독성을 위하여 String Concatenation을 사용할 것을 권장한다. 물론 한 줄로 이어서 쓰더라도 별 문제는 없겠으나 한 번만 쓰고 말 것은 아니지 않겠는가. 잘 모르는 사람들을 위해서 설명하자면 Enter키로 입력한 줄 띄우기 부분이 JavaScript 문자열에서는 자동으로 이어지는 것이 아니기 때문에 곧 이어 나올 예제와 같이 표기하는 방식을 말하는 것이다.

위의 6-1과 6-2에 따라서 내용을 표기한다면 다음과 같다.

[CODE]
<script language="javascript" type="text/javascript">
<!--
docWrite('<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" namo_flashbutton width="400" height="70">' +
'<param name="movie" value="banner_02.swf">' +
'<param name="play" value="true">' +
'<param name="loop" value="true">' +
'<param name="quality" value="high">' +
'<param name="WMode" value="Window">' +
'<embed width="400" height="70" src="banner_02.swf" play="true" loop="true" quality="high" WMode="Window" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash">' +
'</object>');
-->
</script>
[/CODE]

완성된 문서/스크립트는 patch.zip 파일 안에 그대로 저장되어있으니 한 번 살펴보기 바란다.


내용 출처: http://cafe.naver.com/repay.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=345
Creative Commons License
Creative Commons License
남정현 이 작성.

당신의 의견을 작성해 주세요.

[로그인][오픈아이디란?]
오픈아이디로만 댓글을 남길 수 있습니다

Visual Basic Extension, Object Linking Embedded, Component Object Model, Binary Behavior, Distributed Component Object Model, Component Object Model Plus, Windows DNA 등 Microsoft가 C++과 객체 지향 기술을 이용하여 개발해왔던 다양한 프레임워크들 중 하나인 ActiveX가 이제는 그 수명을 다하려는듯한 결정적인 루머를 내고 있다.

당장 내년 1월에 새롭게 출시될 Windows Vista에 포함된 IE7에서는 ActiveX 컨트롤 자체가 완벽하게 Sand-Box 처리가 될 것이라고 한다. ActiveX 인스턴스는 어차피 Internet Explorer와 함께 그 수명을 같이하는 것이므로 이상할 것이 없지만 Sand-Box 라는 것은 다소 생소하실 분들이 많겠다.

요약하자면, ActiveX 컨트롤을 PC에 다운로드하여 Install하는 작업을 하지 않고 마치 Java Applet이나 Flash Content 또는 Script 처럼 동작하게 만들겠다는 의미가 된다. 보안 상으로는 틀림없이 이득이 될테지만 ActiveX를 개발하여 배포해왔던 업체들에게는 정말 큰 일인셈이다.

퍼블릭 릴리즈로 나온 IE7을 먼저 써본 사람들은 새로운 모드인 "안전 모드"에 대하여 궁금해 했을 것이라 생각한다. 이 "안전 모드"가 바로 이 루머와도 관련이 있겠다. 단순히 설치된 ActiveX 컨트롤 전체를 사용하지 않는 것으로 시작해서 유입되는 모든 ActiveX 컨트롤이 하드 디스크에 저장되거나 설치되는 것을 통제하고, 퍼미션 조절을 통하여 작업에 제약을 걸어놓는 모드이다. 정식으로 나올 Windows Vista의 IE7에서는 아마도 이 "안전 모드"를 기본 모드로 사용하도록 권하기 때문에 이런 루머가 나온 것이 아닐까 싶다.

더 재미있는 사실은, Windows Vista가 이제는 .NET Framework 3.0을 기본으로 내장하고 있다는 사실이다. 이것이 의미하는 바는 ActiveX의 운명을 더욱 확실하게 만들어주고 있다. .NET Framework 2.0부터 강화된 ClickOnce는 Windows Forms로 개발된 .NET Application을 Internet Explorer와 연동할 수 있도록 도울 것이며, Windows Presentation Framework의 XAML은 Internet Explorer 7.0이 직접 렌더링하는 것도 가능하다. 또한 Windows Presentation Framework Everywhere는 경량화된 응용프로그램을 지원할 것이다. 지금 언급한 이 세 가지 기술을 적극 유치하고 유도하는 것이 MS의 실제 목표다. ActiveX는 보안 상의 문제가 많다는 점을 이용하여 오히려 뒤로 빼려는 셈이다.

또한 이제는 ActiveX보다는 Flash, Java를 이용한 개발을 더욱 선호하는 추세이다. 컨텐츠 프로바이더의 입장에서도 ActiveX는 메리트가 없는 셈이다. 그리고 기억하는 사람들도 아직 있으리라 생각되는 이올라스社의 소송 승리도 ActiveX의 숨통을 조르고 있다.

Creative Commons License
Creative Commons License
남정현 이 작성.

당신의 의견을 작성해 주세요.

[로그인][오픈아이디란?]
오픈아이디로만 댓글을 남길 수 있습니다