안녕하세요.
3.1절을 보내면서 다시 한번 순국선열들의 넋을 생각하게끔 되는군요.....
우리모두 나라를 사랑합시다.^^;
빌더를 시작하면서 많은 부분 모르는 것이 있더군요.
저 처럼 빌더초보에게는 개념을 잡아 나간다는 것이 많은 시간과의 싸움인듯...
요즘 동영상캡쳐프로그램(USB와 IEEE1394)쪽 자료를 찾고자 여기저기 웹쪽을 방황하고 있습다
근데, 지나가다 우연찮게 좋은 글이 있어 올리네요.
이 글을 올리기에는 자유게시판이 좋을 듯...
편안한 마음으로 읽으십쇼..^^;
항상 운 좋은 날 되십쇼.
ActiveX
다이렉트X가 단순히 게임을 위한 기술이 아니듯이 액티브X도 단순히 인터넷을 위한
기술이 아니다. 다이렉트X가 새롭게 만들어진 API를 통틀어 부르는 이름인데 반해
액티브X는 미디어와 관련된 모든 기술을 총칭하는 말이다. 그러나 현재 미디어 중
에서 인터넷이 가장 각광받고 있기 때문에 액티브X가 인터넷을 위한 기술인 것으로
보인다. 마이크로소프트가 액티브X라는 이름을 걸고 신기술을 개발하는 이유를 살
펴보기 위해 잠시 과거로 돌아가기로 하자.
모자익이 거의 유일한 웹 브라우저였던 2년 전만 해도 인터넷은 그렇게 주목받지
못했다. 그러다가 넷스케이프가 설립되고 넷스케이프 내비게이터가 발표되면서 웹
을 중심으로 인터넷이 급성장하기 시작했다. 급기야 넷스케이프 내비게이터가 막
성장하기 시작하는 웹 브라우저 시장의 대부분을 장악하면서 정적이고 밋밋한 웹
문서를 벗어나려는 노력이 시도되었고 웹 문서에 여러 가지 형식의 문서가 포함되
기 시작했다. 그러나 웹 브라우저는 이 문서를 보기 위해서 플러그인이라는 별도의
프로그램이 필요했다. 이어 웹에서도 프로그램을 실행할 수 있는 자바라는 개발 도
구가 등장하고 넷스케이프 내비게이터는 이를 곧 지원하기 시작한다.
이렇게 플러그인이 나오고 인터넷용 개발 툴이 사용자의 인지를 받을 동안에도
마이크로소프트는 인터넷에 주목하지 않았다. 그들은 인터넷 세상이 오려면 2~3년은
족히 더 걸릴 것이라고 생각했기 때문이다. 이런 생각에 종지부를 찍은 것은 최근
들어 인터넷의 상업적 이용 가능성이 현실화되면서부터다. 너도나도 인터넷을 주목
하기 시작했고 마이크로소프트도 이 대열에 낀 것은 당연하다. 그러나 마이크로소프
트가 영향력을 발휘하기에는 넷스케이프 내비게이터의 위치는 너무 컸다. 현재 인터
넷 시장이 웹 브라우저 중심이기 때문이다.
여기서부터 마이크로소프트의 인터넷 장악 전략이 시작된다. 마이크로소프트는 인터
넷 시장을 웹 브라우저 중심에서 웹 문서 중심으로 바꾸어야만 인터넷에서도 지배력
을 가질 수 있다고 생각하고 인터넷 전략을 새로 세운다. 넷스케이프 내비게이터와
같은 방식의 웹 브라우저를 만들어서는 승산이 없다고 생각한 것이다.
웹 문서에 새로운 문서 형식을 넣으면 플러그인을 설치해야 한다. 그러나 플러그인
은 성능에 비해 용량이 너무 크다. 상당수의 플러그인은 넷스케이프 내비게이터의
실행 파일 크기보다도 커 배보다 배꼽이 더 큰 것이 사실이다. 게다가 간단한 마키
기능이 있는 동적인 문서를 작성하려면 자바를 이용해야 한다. 그러나 자바는 결코
쉬운 언어가 아닐 뿐더러 자바로 작성한 애플릿을 실행하려면 자바 애플릿을 모두
다운로드 받아야만 한다.
자바를 이용해 애플릿을 작성하는 방식은 마이크로소프트가 막강한 영향력을 미치는
기존의 데스크탑 시장과는 다르다. 데스크탑에서는 간단한 프로그램을 작성할 때
C나 C++이 아니더라도 비주얼 베이식이나 델파이 같은 많은 비주얼 도구로서 쉽게
작성할 수 있었다. 이 프로그램들은 네트워크에서도 별 무리없이 잘 실행되므로
지금까지는 프로그램을 작성할 때 플랫폼이 문제시되지 않았다. 그러나 인터넷에서
는 다르다. 같은 기능의 프로그램을 인터넷에서 구현하려면 자바를 배워야 하고,
모든 프로그램을 새로 작성해야 한다.
문제는 아주 간단한 애플릿까지도 자바가 필요하다는 데 있다. 마이크로소프트는
여기서 힌트를 얻어 인터넷 프로그래밍 환경을 데스크탑과 똑같이 만들기로 결정했
다. 자신들이 강한 영역에서 싸워야 승산이 있다는 옛 격언대로 말이다.
앞으로 인터넷이 상업적인 목적에 본격적으로 이용되면 현재의 많은 데스크탑 프로
그램들을 인터넷에서 사용할 수 있도록 자바로 재작성해야 할까? 왜 유독 인터넷만
다른 프로그래밍 환경과 달라야 하는가? 액티브X 기술은 응용 프로그램을 데스크탑
이건 인터넷이건 상관없이 동일하게 작성하고 이용할 수 있도록 하는 것이 그 목적
이다.
현재 인터넷은 웹 브라우저가 주도하고 있고, 웹 브라우저에서는 넷스케이프 내비
게이터가 독보적이다. 마이크로소프트의 인터넷 익스플로러가 액티브X 기술을 이용
해 넷스케이프 내비게이터의 아성을 무너뜨릴 수 있을까? 필자의 생각으로는 액티
브X 기술로 마이크로소프트는 웹 브라우저 시장 점유율을 높이려는 것이 아니라
아예 웹 브라우저 시장을 없애려고 하는 것 같다. 윈도우 95나 윈도우 NT 차기 버전
에 웹 문서를 운영체제 수준에서 검색할 수 있는 기능을 추가함으로써 이들 운영체
제 사용자에게 아예 다른 웹 브라우저의 필요성을 못 느끼게 하는 것이다. 즉, 인터
넷에서 중요한 것은 웹 브라우저가 아니라 웹 문서라는 데 초점을 맞추고 있다.
이를 위해 이미 마이크로소프트는 윈도우 쉘에 페이지 뷰 모드를 추가하는 등 윈도
우 쉘 프로그램을 상당 부분 개선하고 있다고 한다.
인터넷에 관련된 액티브X 기술은 크게 CGI(Common Gateway Interface)의 Win32 버전
격인 ISAPI(Internet Server API)와 액티브X 컨트롤로 나눌 수 있다. ISAPI는 인터
넷 서버를 제어하기 위한 API로, 윈도우 기반 서버 소프트웨어 개발자들을 위해서
Win32 API에 새롭게 추가되었다. ISAPI는 서버용 프로그램 개발자를 위한 것이므로
일반 인터넷 이용자나 개발자에게는 별로 상관없지만 액티브X 컨트롤은 인터넷 뿐만
아니라 데스크탑에서도 널리 사용되고 있고 앞으로도 계속 사용될 것이기 때문에
중요하다.
도대체 액티브X 컨트롤은 무엇인가? 이 질문에 대답하기 위해서는 비주얼베이식이
발표되던 1991년으로 되돌아가야 한다. 비주얼베이식 발표 전만 하더라도 윈도우용
프로그램을 작성하려면 윈도우 SDK(Software Development Kit)를 이용해야 했다.
이를 이용해 응용프로그램을 작성해 본 사람은 느끼겠지만 C언어와 윈도우 API를
이용해 응용프로그램을 작성하는 것은 많은 시간과 노력을 요구하는 일이었다. 윈
도우 프로그래밍은 기본적으로 객체 지향적 프로그래밍을 요구하지만 그 당시만
해도 윈도우 프로그래밍은 비객체 지향 언어인 C를 이용해야 했기 때문에 윈도우
클래스 하나만 새로 만들려고 해도 많은 코딩을 해야 했고 새로 배워야 하는 윈도우
API는 수도 많고 사용법도 어려웠다. 그래서 조금만 큰 응용 프로그램을 하나 작성
하려고 하면 코딩이 기하급수적으로 늘어난다. 지금이야 C++, MFC, OWL과 같은 클
래스 라이브러리를 이용해 좀더 쉬운 코딩이 가능하지만 C++를 이용해도 윈도우
API에 의존하는 것은 마찬가지기 때문에 C나 C++로 윈도우 프로그래밍을 하는 것은
아직도 그렇게 쉬운 일은 아니다.
이런 점에 착안을 둔 마이크로소프트는 1991년 일반인들도 윈도우 응용프로그램을
작성할 수 있도록 비주얼베이식을 발표한다. 비주얼베이식은 설계 때부터 철저히
객체지향적으로, 즉 윈도우에서 자주 사용하는 클래스를 기반으로 제작되었다.
예를 들어, 윈도우 클래스들은 폼이라는 객체 형식으로 비주얼베이식에 등장한다.
또한 코딩을 쉽게 하기 위해 자주 사용되는 코드를 포함한 새로운 객체 형식인
VBX(Visual Basic Extension)을 제공한다.
VBX의 철학은 자주 사용하는 코드를 부품화해 레고 블럭 쌓듯이 누구나 쉽게 프로
그램을 만들게 하자는 데 있다. 예를 들어, 그래픽 파일을 다루는 프로그램을 만들
경우 기존에는 그래픽 파일 루틴을 모두 하나하나 작성해야 한다. 그러나 비주얼베
이식에서는 그래픽 파일을 다루는 VBX만 가져다 바로 프로그램을 작성할 수 있다.
이렇게 만든 프로그램은 부피가 크고 속도가 느리나 짧은 시간에 만들 수 있다는
장점으로 큰 환영을 받게 된다.
더구나 마이크로소프트는 제 3업체들에게 특정한 업무를 위한 VBX를 만들 것을 권
장했고 비주얼베이식이 인기를 얻게 되자 VBX의 수는 점점 늘어난다. 또한 VBX는
애당초 언어에 상관없이 사용되도록 설계되어 C와 같은 다른 언어에서도 이용할 수
있었다. VBX의 인기를 업고 비주얼베이식은 윈도우 개발 도구의 하나로 확실하게
인지되었고 비주얼베이식과 같은 철학을 가진 델파이와 같은 도구들이 새롭게 등장
했다. 그러나 VBX는 16비트로 설계되었기 때문에 32비트용 프로그램을 작성할 때는
사용할 수가 없었다. 그래서 나온 것이 VBX의 확장 규격인 OCX(OLE Control)이다.
VBX,OCX의 근본 철학은 자주 사용하는 코드를 부품화하자는 데 있다. 예를 들어,
웹 문서에 마키 기능이나 반짝이는 글자 효과를 넣고 싶다고 하자. 현재 유일한
방법은 자바를 이용하는 것이지만 이 간단한 기능을 구현하려고 수십 줄의 자바
코드를 작성하는 것은 보통 시간 낭비가 아니다. 마키 기능이 이 정도니 웹 문서
에서 간단한 애플릿을 작성한다는 것은 일반인들은 엄두도 못낸다. 또한 자바로
작성된 애플릿을 실행하려면 이 애플릿을 모두 다운로드 받아야 한다. 마키 기능
을 보려고 가뜩이나 느린 인터넷에서 애플릿을 다운로드 받기를 기다리는 것은
얼마나 실속없는 일인가.
반면 마키 기능을 지원하는 OCX를 웹 문서에 포함시키면 일은 한결 쉬워진다. 마
키 기능을 지원하는 OCX를 문서에 포함시킨 후 이 OCX에 마키할 문장만 넘겨주면
되기 때문이다. 또한 OCX는 한번 다운로드 받으면 다음에 다시 이용할 수 있기 때
문에 자바 애플릿처럼 다시 다운로드 받을 필요도 없다. 그러나 OCX는 인터넷에서
사용하기에는 덩치가 너무 크기 때문에 마이크로소프트는 데스크탑에서 인터넷까지
모두 사용할 수 있도록 충분히 작고 빠른 OCX의 확장 규격을 제안했는데, 이것이
바로 액티브X 컨트롤이다.
액티브X 컨트롤은 기존의 OCX와 크게 다르지 않다. 현재까지 발표된 OCX도 액티브X
컨트롤이라고 할 수 있다. 액티브X 컨트롤의 파일 확장명이 OCX와 같은 .OCX인 것
도 이런 이유에서이다. 그러나 액티브X 컨트롤에는 기존의 OCX와는 전혀 다른 기능
이 하나 포함되어 있다. 바로 자바를 지원하는 부분이다. 이 컨트롤들은 .OCX가
아닌 .DLL 형식으로 지원된다.
액티브X 컨트롤이 앞으로 인터넷에서 영향을 미칠 수 있는 가장 큰 이유는 액티브X
컨트롤로 쉽게 옮겨갈 수 있는 OCX의 수가 수천 개에 달하기 때문이다. 만약 웹 상
에서 특수한 기능을 구현하고 싶다면, 예를 들어 MPEG 파일을 재생하고 싶다면 이
를 지원하는 액티브X 컨트롤을 찾으면 된다. 그러나 이를 자바로 구현한다는 것은
상상만 해도 끔찍하다.
액티브X 컨트롤이 포함된 웹 문서는 현재 마이크로소프트 인터넷 익스플로러에 3.0
에서 열 수 있으며, 넷스케이프 내비게이터의 경우 액티브X 플러그인을 설치하면
된다. 그러면 웹 문서에 어떻게 액티브X 컨트롤을 넣을 수 있을까? 웹 문서에 액티
브X 컨트롤을 넣으려면 웹 문서 에디터를 이용해야 한다. 마이크로소프트는 이를
위해 액티브X 컨트롤 패드라는 웹 에디터를 제공한다.
웹 문서에 액티브X 컨트롤을 넣은 다음 해당 액티브X 컨트롤이 웹에서 작동하도록
컨트롤에 붙일 코드를 작성해야 한다. 이 코드에는 비주얼 베이식을 인터넷에 맞도
록 고친 비주얼베이식 스크립터와 자바 스크립터가 쓰인다. 비주얼베이식 스크립터
의 경우 비주얼베이식 사용자라면 별 어려움없이 쉽게 익숙해질 수 있다. 또한 대
부분의 액티브X 컨트롤은 코드 작성인 매우 쉽다. 예를 들어 마키 컨트롤의 경우
마키할 문장만 넘기면 그만이다.
액티브X 컨트롤이 포함된 웹 문서를 마이크로소프트 인터넷 익스플로러로 열면 웹
브라우저는 우선 이 컨트롤이 하드 디스크에 있는지 레지스트리를 통해 찾아본다.
컨트롤이 있다면 이 컨트롤을 이용해 웹 문서를 보여주고, 없다면 우선 다운로드
받은 후 이를 이용해 웹 문서를 보여준다. 한번 다운로드 받은 컨트롤은 버전 업이
되지 않는 한 다시 받을 필요가 없다. 그러므로 자바 애플릿으로 작성된 웹 문서보
다 검색 속도가 훨씬 빠르다.
조만간 런타임시 무료로 이용할 수 있는 많은 액티브X 컨트롤들이 마이크로소프트
와 써드파티 업체에서 쏟아져 나올 것이다. 현재 마이크로소프트가 제공하는 액티
브X 컨트롤은 다음과 같다.
마이크로소프트 인터넷 익스플로러 3.0에 포함된 컨트롤
Shell Explorer 컨트롤 : 웹 문서를 보여주는 웹 브라우저 컨트롤.
Marquee 컨트롤 : 마키 기능을 보여주는 컨트롤.
액티브X 컨트롤 패드와 HTML 레이아웃 컨트롤에 포함된 컨트롤
Microsoft Forms 2.0 Label 컨트롤 : 텍스트 레이블 컨트롤
Microsoft Forms 2.0 Textbox 컨트롤 : 텍스트 컨트롤
Microsoft Forms 2.0 Combo Box 컨트롤 : 콤보 박스 컨트롤
Microsoft Forms 2.0 List Box 컨트롤 : 리스트 박스 컨트롤
Microsoft Forms 2.0 Check Box 컨트롤 : 체크 박스 컨트롤
Microsoft Forms 2.0 Option Button 컨트롤 : 옵션 버튼 컨트롤
Microsoft Forms 2.0 Toggle Button 컨트롤 : 토글 버튼 컨트롤
Microsoft Forms 2.0 Command Button 컨트롤 : 버튼 컨트롤
Microsoft Forms 2.0 Tabstrip 컨트롤 : 탭 컨트롤
Microsoft Forms 2.0 ScrollBarBasic 컨트롤 : 스크롤바 컨트롤
Microsoft Forms 2.0 Spin Button 컨트롤 : 스핀 버튼 컨트롤
Microsoft Image 컨트롤 : 메타 파일, .JPG, .GIF, .BMP, 웨이블릿 형식 이미지
뷰어 컨트롤
HTML Layout 컨트롤 : 새로운 HTML 형식의 웹 문서를 보여주는 컨트롤
마이크로소프트 웹 사이트에서 얻을 수 있는 컨트롤
Animated Button 컨트롤 : 눌렀을 때 다른 이미지를 보여주는 버튼 컨트롤
Chart 컨트롤 : 다양한 형식을 지원하는 차트 컨트롤
Gradient 컨트롤 : 웹 문서의 배경에 그래디언트 효과를 주는 컨트롤
Label 컨트롤 : 텍스트를 어느 각도든지 회전시켜주는 컨트롤
New Item 컨트롤 : 정해진 날짜까지 이미지를 보여주는 컨트롤
Pop-up Menu 컨트롤 : 웹 문서에서 팝업 메뉴를 추가하는 컨트롤
Pre-loader 컨트롤 : 웹 브라우저가 이미지와 액티브X 컨트롤을 미리 읽어들이
게 하는 컨트롤
Stock Ticker 컨트롤 : 데이터를 현재 시간에 맞게 계속 업데이트하는 컨트롤
Timer 컨트롤 : 타이머 서비스를 지원하는 컨트롤
Powerpoint Animation Player : 파워포인트 프리젠테이션과 애니메이션 효과를
웹 문서에서 보여주는 컨트롤
Java Virtual Machine : 자바 애플릿을 실행하는 컨트롤
Active VRML 컨트롤 : VRML 문서를 보여주는 컨트롤
Active Movie 컨트롤 : 멀티미디어를 재생하는 컨트롤
액티브무비 컨트롤과 관계된 액티브
|