L544(2005-11-04 00:58:32, Hit : 10646, Vote : 909
 http://www.L544.com
 [알림] 위저드는 단지 '코드 입력 단축 도구'일 뿐입니다!

안녕하세요? DShow지기 신화선입니다.

가끔 위저드 때문에 DShow 공부에 방해가 된다는 얘기가 있는데, 그건 분명한 오해입니다.
위저드가 생성해 주는 코드는 책에 모두(하나도 빼놓지 않고) 설명되어 있고,
그 내용을 토대로 Win32 애플리케이션이든 MFC 애플리케이션이든 생성하시면 됩니다.

그런데 제가 긴 시간을 투자해서 위저드를 만든 이유는,
DirectShow 애플리케이션이나 필터를 만들 때 입력해야 하는 코드가 항상 중복적이고 복잡하다는 것입니다.
위저드가 생성한 코드 중 핵심 부분을 Copy해서 자신의 코드에 Paste하면 상당 시간을 절약할 수 있습니다.

DShowApp 위저드의 예를 들어 봅시다.
GRF 파일로 만들어 놓은 필터그래프가 있는데, 이것을 코드로 옮기고 싶은 경우입니다.
먼저 필터의 CLSID를 찾고 이것을 일일이 입력해야 합니다.
그 다음 필터그래프매니저를 생성한 다음, 필터를 하나하나 생성하고 필터그래프에 넣어야 합니다.
그리고 나서 각 필터에서 원하는 핀의 ID를 알아낸 다음, 핀과 핀 연결을 수행해야 합니다.
이 코드를 직접 입력해 보신 분이라면 얼마나 힘든 과정인지 알 수 있을 겁니다.

DShowFilter 위저드의 경우를 생각해 봅시다.
일단 필터 프로젝트를 만드는 과정이 번거롭습니다. 설정해 주어야 하는 정의문도 있고 링크 설정도 있습니다.
그리고 기반클래스(BaseClasses) 라이브러리를 처리하는 것도 까다로운 점이 많습니다.
그리고 나서도 풀 소스인지 푸시 소스인지, 복사 변환인지 제자리 변환인지, 널 렌더인지 기본 렌더인지 등등
해당 필터 성격을 결정하고 관련된 클래스를 상속하고 재구현하는 절차도 복잡하고 번거롭습니다.

자동화된 도구는 자동화된 도구로서 가치가 있는 것입니다.
어떻게 이용할 지는 본인 스스로에게 달렸지만,
도움을 주는 도구 때문에 자신한테 도움이 되지 않는다는 것은 논리가 맞지 않습니다.

다시 한번 말씀 드리지만 위저드가 생성한 프로그램을 그대로 쓰는 것은 저도 바라지 않습니다.
그 "속에 있는 내용"을 먼저 이해하신 다음,
이해는 했으나 타이핑하고 싶지 않은 부분만 뽑아서 본인 프로그램에 이식하시기 바랍니다.

목적과 방법을 뒤집어 생각하는 분이 계셔서 답답한 마음에 글을 남깁니다.
아무쪼록 즐거운 개발 되시기 바랍니다!


* 사례1. 'DShowApp 위저드(책저자가 만든 위저드)로 프로그램 작성하는 것에 대해 나오지만'
=> 위저드로 프로그램 작성하는 것이 아니라 먼저 실행해 보고 코드를 공부하는 [top-down] 방식의 접근입니다.
MFC에서 MFC AppWizard로 예제를 생성하고 나서 설명하는 것과 무엇이 다른가요?

* 사례2. '책 내용도 그 위저드에 대한 설명이고, 코드 설명은 잘 들어오지 않는다.'
=> 위저드에 대한 설명이 아닌 DirectShow에 대한 설명입니다. DirectShow가 주(主)고 위저드는 부(附)일 뿐입니다.
예제 프로그램을 실행시켜 보셨으면 그 다음은 코드를 직접 입력해서 프로그램을 작성해 보는 것이 올바른 학습 방법입니다.



신종원 (2005-11-17 15:44:48)  
지당하신 말씀입니다! ^_^
엔코 (2005-12-01 11:43:46)  
비주얼씨에 어시스트와 비슷한 용도라 생각합니다.
배울때는, 어시스트 사용 않하는걸 권하지만, 실무에서는...
사용하므로써 개발 기간을 단 하루라도 줄일 수 있다면, 저같으면 사용하겠습니다.
만드신 위저드도 비슷하리라 생각합니다.
다니엘 (2006-01-02 09:31:57)  
당근이신 말씀임다~ 편하기만 하드만,,,
김중모 (2006-01-17 14:24:33)  
근데요 위저드를 설치하니까 이책을 구입하기전에 만들어 봤던 예제 쌤플들이
컴파일시 오류가나서 일단은 다 지웠는데 그런점이 좀 불편하더군요.
L544 (2006-01-19 19:02:26)  
^^; 컴파일러와 위저드랑은 아무런 관련이 없습니다. 다른 원인 때문에 그런 것이 아닐까요?
C++로 자동화(automation) 처리하는 게 얼마나 귀찮은 일인 줄 아시죠?
프로젝트 설정하는 것도 귀차니즘 극복하고 겨우 했는데... 다른 걸 언제 구현했을까요? ^^;;;
정일호 (2006-06-10 15:36:18)  
위저드가 공부에 방해된다 뭐하다 얘기하기 전에 얼마나 디테일하게 이해하고 있는지 스스로에게 자문이나 해보십시오. 본인 처음 MFC 독학할 때 코드 한줄 한줄 기억하면서 위자드 안 쓰고 그렇게 입력했습니다. 괜한 트집으로 위자드 만들어주신 고마움을 망각하지 마시기 바랍니다.
강민웅 (2006-08-25 15:19:46)  
위저드 매우 잘 쓰고 있습니다...필요한부분만 copy & paste ~~
위저드가 없었다면 시작도 못했을겁니다...
특히, CLSID 찾기위해 시간을 허비하지 않아도 된다는 점이 젤 맘에 듭니다^^
김형균 (2007-05-16 07:21:31)  
개정판 내용 진행중이신지?? 궁금할 따름 ^^;
L544 (2007-08-30 01:12:39)  
개정판 계획은 있는데 실행에 옮기지 못하고 있습니다.
집필한다면 개정판보다는 응용판으로 진행할 예정입니다.
응용판에는 WinCE 플랫폼, DES를 비롯하여 각종 멀티미디어 애플리케이션이 다뤄져야 하기 때문에 자료의 양이 많습니다.
거기서는 위저드 빼고 샘플 코드만 넣을 거구요...^^;
라이 (2008-03-19 20:22:26)  
지금 시점에서 WinCE나 SmartPhone쪽에서 Dshow를 다루는 간단한 응용을 보여 주신다면
많은 분들에게 도움이 되지 않을까 생각 합니다.
고운하루 되세요
김도영 (2008-07-30 13:02:21)  
저도 WinCE나 SmartPhone, WM5,6 등의 Dshow Filter 개발/포팅 및 응용에 대한 부분을 정리코져 한다면, 함께 참여하고 싶습니다.
수고하십시요~

[공지] 회원가입 없이 글과 내용을 보실 수 있습니다.
[종료] DirectShow 책 개정판에 관한 의견 부탁 드립니다. [25]

맞춤검색
Copyright (c) L544 Technology. All rights reserved.