z
10-30-2005, 01:21 AM
The KMPlayer에 대한 여러 소문과 진실(이하 KMP로 약칭함)
작성자: z in kmp forum
일단 들어가기 전에 KMP의 간략한 개발사와 배경에 대해서 살펴보자. KMP는 MPC만큼 오래된 프로그램이다. MPC가 소스포지에 공개되어 오픈소스 프로젝트로 전환된 시점이 2003년 5월 19일이다. KMP의 최초 통신망 공개 ([Only registered and activated users can see links])는 델마당의 자료실에서 2002년 10월 01일에 이루어졌다. 사실 이 외에 KMP의 전신이라고 할 수 있는 Wasavi ([Only registered and activated users can see links])라는 프로그램이 2002년 3월 4일에 올려져 있는 것으로 볼 때, 동영상 재생기를 개발하기 시작한 시점은 2001년도쯤으로 여겨진다. 즉 KMP는 벌써 개발된지 5년에 이르고 있는 것이다.
그러나, 개발된지가 오래되었다고 해서 MPC ([Only registered and activated users can see links])의 소스코드를 가져다 쓰지 못한다고 할 수는 없을 것이다. 그런데 KMP는 밑바닥부터 델파이로 개발되었기 때문에 C++로 된 형식의 소스코드를 가져오는 것은 불가능하다. 그럼, 프로그래밍에 대해 개념이 거의 없거나 초보인 사람들은 이렇게 묻는다. MPC 소스 코드를 델파이로 변환한 거 아니냐고.. 이런 질문을 듣으면 너무 황당하고 어이가 없는 나머지 웃을 수 밖에 없다. 남이 짜놓은 소스 코드를 들여다보는 것 자체가 무척 힘든 일이다. 하물며 그것을 다른 언어로 쉽게 그대로 옮길 수 있을 거라고 생각하다니 차라리 새로 짜는게 훨씬 쉽다는 생각은 미처 못해 본 것일까?
사실 GPL ([Only registered and activated users can see links])에는 다음과 같은 중요한 부분이 있다. 즉, 프로그램을 실행할 때 GPL 라이브러리가 필수불가결하게 로딩되는 경우 이 프로그램은 GPL의 저촉을 받는다는 것이다. 특정 GPL 라이브러리 없이 프로그램 실행이 되지 않는다면 그 프로그램은 GPL의 저촉을 받게 된다. 그런데, KMP는 directshow ([Only registered and activated users can see links])를 기본으로 설계되었고 애초에 단독으로 실행할 수 있도록 개발되어 있다. KMP는 처음부터 내장 코덱용 재생기로 개발되지 않았다(1.x버전 참고 ([Only registered and activated users can see links])). 직접 확인해 보고 싶다면 초미니 버전을 받아서 실행해 보든지, 풀버전을 받아서 kmplayer.exe만 놔두고 모두 삭제한 후 KMP를 실행해 보면 된다. KMP에 포함된 각종 라이브러리들은 KMP 실행에 필수불가결한 요소가 아니라 단지 사용자의 편의를 위해서 구성된 말하자면 플러그인에 불과하다.
이런 구조가 주는 잇점은 여러가지가 있지만 대표적으로 시스템에 코덱을 깔지 않고도 대부분의 동영상을 재생할 수 있다는 점이다. KMP가 고급 사용자용뿐이라고 하시는 분이 있는데 사실 KMP은 아주 보편적인 일반 사용자들을 위해 디자인되어 있는 셈이다. 재생기의 가장 기본적인 목적이 재생이 잘 되는 것이라는 목표가 없었다면 내장코덱을 사용하는 구조란 사실 필요가 없는 것이다. 이 글을 쓰고 있는 필자 자신이나 KMP게시판의 여러 높은 수준의 사용자들은 사실 내장 코덱이란 어느 면에서 거추장스러운 것이라고 할 수도 있을 것이다.
그럼에도 불구하고 우리가 내장 코덱을 지지하는 이유는 KMP가 일반인들에게 편리한 도구로 널리 사용되어지기를 바라는 마음이 있기 때문이다. 물론 KMP내장 코덱 자체가 외부에서 사용되는 코덱과 아무런 차이점이 없다는 점 ([Only registered and activated users can see links])도 그 이유이다(혹자는 내장 코덱의 퀄리티에 대해 말하곤 하는데 근본적으로 차이가 없다. 차이가 있다면 재생기쪽의 세팅문제거나 튜닝 부족 문제라고 보는 것이 정확하다. 또는 우리는 그것을 버그라고 말하기도 한다. ^^). 그 밖에도 여러 잇점이 있다.
다만 개발자가 디자인이나 유저 인터페이스 쪽에 익숙하지 못하고 대부분의 실력있는 테크니션들이 자주 범하는 오류, 즉 프로그램이란 기능이 뛰어나면 된다는 사고에 오랫동안 젖어 있었던 것을 발견할 수 있었다. 고급 프로그램을 개발하면서 잘못된 일반화의 오류에 빠지게 된 것이다. 물론 이러한 점은 그간 KMP를 사랑하는 많은 사용자들의 지적과 개발자의 적극적인 수용으로 인해서 어느 정도 향상된 높은 수준의 인터페이스를 갖추게 되었다.
잠시 KMP에 관한 이야기를 했는데 다시 GPL얘기로 돌아가보자. 그렇다면 도대체 sf.net에 있는 MPC 홈에 있는 개발자의 글은 뭐냐고 할 사람들에게 말하겠다. 부끄럽게도 우리 나라의 어떤 대단하신 분께서 KMP가 GPL위반이며 MPC 소스코드를 훔쳐다 쓰고 있다고 MPC 개발자에게 메일을 보낸 것이다. 문제의 글중 KMP에 해당하는 부분은 다음과 같다.
"There are boundled dshow filters, string, toolbars, dialogs, command line switches, etc..., which can be verified easily by just running the applications and taking a look, or a bit harder by analysing the memory dump."
말인즉 KMP를 실행해서 살펴보기만 하면 KMP가 MPC랑 비슷한 곳이 있기 때문에 MPC 소스 코드를 가져다 쓴 것을 확인할 수 있으며 메모리 덤프를 통해서는 확인이 불가능하다는 이야기이다. 여기서, 필자는 MPC 개발자에게 무척 실망하고 말았다는 점을 미리 밝히고 싶다. 우선 무엇보다도 불쾌한 점은 KMP가 MPC 소스코드를 가져다 썼든 아니든 단순히 제 3자의 편지와, 또 객관적인 검증을 스스로 하지도 못했으면서 단지 눈에 보이는 것만 가지고 KMP가 소스 코드를 훔쳤다고 적고 있다는 점이다.
참고로 메모리 덤프라는 것은 KMP에서 MPC내부에 사용된 코드가 사용되어 있는지 확인하는 방법이다. 소스 코드를 가져다 사용한 경우 여지없이 걸리게 되어 있다.(참고로 MPC 소스 코드를 실제로 가져다 해먹은 다른 프로그램의 경우 메모리 덤프 ([Only registered and activated users can see links])에서 바로 걸려서 간판을 내린 것으로 알고 있다. 아마도 법적 분쟁을 회피할 수 없었을 것이다.) 그것도 MPC 개발자 그 자신이 메모리 덤프를 직접 떠서 검사했다면 MPC내의 고유한 코드는 그 자신이 가장 잘 알고 있을 것이기 때문에, 메모리 덤프로 확인이 불가능하다고 말하면서 KMP가 MPC소스를 가져다 썼다고 말한다는 것은 자기 스스로 논리적 모순을 저지르고 있는 것이라고 할 수 있다.
이런 저런 이야기할 것 없이 델파이로 짜여진 KMP에서 무슨 MPC소스코드가 나오겠는가. 그는 KMP가 델파이로 짜여진 것조차도 모르는 것이 틀림없으며 최소한 KMP가 델파이로 짜여진 것만 알았더라도 저런 모욕적인 말은 삼갔을 것이다.
다만, KMP는 MPC가 sf.net상에 공개된 후 MPC의 기능 중 기술적인 측면에서 몇가지 진보된 것들을 흡수한 것은 사실이다. 이것은 KMP 개발자가 MPC에서 기술적으로 뛰어난 부분을 참고하여 그것을 델파이로 재구현한 것이다. 그 과정에서 분명 오해를 살 부분들(MPC의 인터페이스와 유사한)이 없잖아 있는 것은 필자도 인정하는 바이다. 사실 개발자는 이 분야에 있어서 높은 수준의 실력을 가지고 있다는 것은 KMP를 한번쯤이라도 살펴본 사람들이라면 모두 고개를 끄덕일 것이다. 그렇기에 MPC를 살펴보고 특정기능(좋아보이는)의 작동방식을 깨달은 다음 그것을 비교적 쉽게 델파이로 구현할 수 있었던 것이다. 부끄럽지만 필자도 한 때는 개발자가 너무나 쉽게 MPC의 일부 기능을 가져오는 것(말하자면 코드 복사나 번역을 말하는 것이다)으로 생각하여 오해를 한 적이 있었다.
한 번 살펴보는 것으로도 구조를 이해할 수 있는 실력이 있기 때문에 가능했던 것을 모르고 단지 결과만을 놓고 판단했던 것이다. 하물며 델파이로 쓰여진 KMP를 놓고 그런 생각을 했다는 것을 돌이켜 볼 때 지금은 당시의 오해가 창피할 따름이다. 솔직히 기능 구현과정에서 인터페이스가 흡사한 데다 기능이 거의 같은 부분이 있으니(잘 들여다보면 차이가 나지만) 오해를 살 만 하게 한 개발자의 책임도 어느 정도는 있다고 여겨진다.
한 때 KMP개발자는 게시판에서 MPC에서 안되면 KMP에서 안된다는 식으로 자주 말한 적이 있었는데 이 때문인지 국내 사용자 중에도 MPC가 KMP의 아버지격이니 또는 MPC 코드를 베낀 것으로 잘못 이해하고 있는 사람들이 있는 것 같다. 그러나, 정확히 표현하자면 MPC는 KMP의 수많은 technical reference(기술적 참고문헌)에 불과할 뿐이다. 핑계없는 무덤은 없다고 하잖는가? 개발자의 이와 같은 말은 사실상 개발자를 가장 괴롭히는 필자를 견제하기 위한 필설에 불과할 뿐이다. ^^ 왜냐하면 기능구현이나 인터페이스 조정을 위해서 필자가 개발자를 압박하는 방법은 상당히 체계적이고 논리적이기 때문에 참다 못한 개발자가 빠져나갈 ?구멍을 찾다보니까 MPC를 들먹인 것 뿐이다. ㅎㅎ
그리고, MPC 개발자는 편지를 두번이나 보냈는데도 응답이 없었다고 하는데, KMP 개발자는 답장을 두번이나 보냈는데 아무런 응답이 없었다고 한다. 개인적으로는 KMP 개발자의 답장이 늦었을 것이라고 보지만 아마 그 메일을 본 MPC개발자는 자신의 실수가 몹시 창피했을 거라고 생각한다. 창피한 나머지 입을 다물고 모른 척하고 있는지도 모르겠다.
팔이 안으로 굽는 것 아니냐고 하실 분도 있으련지 모르겠지만, 필자는 사실관계에 있어서나 다른 재생기들과의 비교에 있어서 상당히 냉혹하고 엄격한 잣대를 가지고 있는 편이다. 좋은 것을 좋다고, 불편하고 부족한 것을 부족하다고 말할 수 있을 때만이 발전이 가능하지 않겠는가? 좋은 것을 좋다고 할 줄 모르거나 혹은 오직 불평만 하는 분들이나, 부족한 것을 감내하고 사용하는 사용자들은 자기 자신을 어떻다고 생각할지 모르겠지만, 필자의 졸견으로는 그것은 프리웨어 개발자에게 하등의 도움이 되지 않는다고 여겨진다. 물론 발전을 위한 비평의 글 속에는 분명히 개발자의 노고를 존중해 주는 배려가 존재해야만 한다. 그렇지 않다면 개발자의 업데이트 의지만 꺾을 뿐이다.
KMP는 상당한 완성도를 자랑하는 프로그램으로 특별히 국내 환경에서 어느 정도 상업적으로 이용할 만한 가치가 있다는 판단을 하는 사람들이 많은 탓인지 종종 GPL을 언급하며 소스 코드 공개를 요구하는 이들이 있다. 그리고 목적을 달성하지 못하면 서슴지 않고 인신공격을 가하고 비방을 일삼다 커뮤니티를 혼란과 분쟁 속에 빠드린 채 사라진다. 이런 일이 2년 전부터 거의 6개월 간격으로 일어나고 있다. 심지어는 KMP실행 파일을 오코리아 ([Only registered and activated users can see links])에서 리소스 해킹을 해서 사사미2 ([Only registered and activated users can see links])로 탈바꿈시켜 사사미 후속버전인 것처럼 속였던 경우도 있었다. 이걸 하나포스 자료실에서만 11만명이나 속아서 다운로드 받아 갔다니 오코리아가 수단 방법 가리지 않고 일을 추진하는 것은 참 대단하나 추한 한국인의 전형을 보는 것 같아 무척 씁쓸했다. 참고로 다른 자료실에서는 이 사실이 알려지자 말자 자료가 삭제되었음도 불구하고 하나포스측에서는 아무런 조치가 없었는데 이렇게 시간이 흐르자 증거자료로 활용될 수도 있게 되니 전화위복이라고 생각해야 하는 것일까? :)
필자가 영문 포럼의 관리자도 있다 보니 개발자로 오해하여 PM으로 이런 요구를 하고 있는 해외 사용자도 간혹 있는 편이다. 다만 그들의 경우는 아마 대부분 전문적인 개발자인지 간단히 몇마디로 설명하면 이내 알아듣는다.
물론 개중에는 이름만 대면 알 만한 재생기 개발자도 끼여 있었는데(구글신의 도움으로 비교적 최근에 우연히 발견한 사실이다. -_-), 재미있게도 자기는 모르는 척 하면서 MPC포럼에 Gabest씨의 글을 인용해 가면서 소스 코드 공개를 요구한 적이 있었다. 그런데 나중에 알아먹도록 설명하고 그 자신이 납득했음에도 불구하고 소스 공개 요청을 아주 정중하게 계속 요구한 적이 있어서 C++ 개발자라고 여겨지던 그가 왜 델파이 코드로 된 KMP 소스를 계속 요구하는지 잘 이해를 못했는데, 나중에 알고 보니 그는 델파이 전문 프로그래머였던 것이다. 그것도 재생기 분야에서 말이다. KMP가 델파이로 짜여진 것을 미리 알고 소스 공개를 유도했다는 뜻이다(구글신은 위대했다). 그래도 그는 끝까지 정중했다. 이 사실로 미루어 보아, 그 자신이 재생기 개발자라는 사실을 일부러 숨긴 것 같지는 않다.
어떤 프리웨어든지 처음엔 개발자 스스로의 즐거움을 먹고 살지만, 그것이 대중에게 공개된 시점부터 그것은 더 이상 개발자 한사람만의 몫이 아니게 된다. 점차로 기능이 추가되고 개발자 스스로 잘 사용하지도 않는 기능을 수정하고 첨가하면서 얼마나 고되고 힘들겠는가? 그런데 이렇게 악의적인 메일로 개발자를 난처하게 하고 사용자들의 자부심을 짓밟으며 자기 얼굴(대한민국)에 침뱉기를 열심히 하는 분이 있다니 참으로 부끄러울 따름이다.
KMP는 이런 불미스러운 사건만 제외하면 해외에서도 서서히 알려지고 있다. 특별히 이번 일이 Gabest라는 걸출한 개발자의 입을 통해서 나온 말이라 그것이 사실이 아닐지라도 공신력을 얻고 있는 것은 매우 유감스런 일이다. 일반 사용자들은 진실을 구별할 변별력이 없기 때문에 더욱 그러하다. 그런데 해외에서는 KMP에 대해 조사가 상당 부분 이루어졌음에도 불구하고 KMP가 아무런 문제가 없다는 것을 공시하지 않고 그냥 넘어가는 것은 아쉬운 일이다. 또한 KMP가 윈앰프 스킨을 모방한 것을 메인 스킨으로 쓴다는 점 등으로 미루어 KMP가 다른 것들도 베끼지 않았겠느냐는 맹목적인 시각도 존재하는 점은 KMP를 사랑하는 한 사람으로서 매우 안타까운 일이다.
Vista에서도 작동되는 KMP를 볼 수 있기를 바라고, 앞으로도 오랫동안 함께 할 수 있기를 바라며 이만 줄인다.
결론
KMP는 실행 파일 내에 GPL 코드나 바이너리를 삽입하지 않았다.
KMP에 사용되는 외부 라이브러리는 소스 코드에 수정을 가하거나 변경하지 않았고, CVS 버전의 소스를 컴파일하거나 바이너리 버전을 가져다 사용했다.
KMP는 외부 라이브러리에 종속성을 가지지 않는다.위 사항은 모두 검증 가능한 일이며, KMP 그 자체는 개인의 창작물입니다. 이 밖에 다른 사항(문서/링크 누락 등)들은 차차 개선되도록 하겠습니다. 안 했다고 하는데 사실 관계를 제대로 확인도 안하고 자꾸 했다고 하면서 돌을 던지거나, 위반이든 아니든 상관없다는 분들이 있는데 잘못된 것이면 바로 잡아야 할 것입니다. 또 패키징 방식에 문제가 있다면 이것도 바로 잡으면 될 것입니다.
ps. GPL/MPL에 대한 개발자의 답변 전문
일단.. DC-DSP는 MPL입니다.
소스코드 변경시 원저작자(DCoder)에게 공개를 해야 되지...
님한테 줄 이유는 없습니다.
또한 소스 코드는 변경되지도 않고 있는 그대로 사용했습니다.
그래서 공개할 이유도 없구요...
Gabest의 경우... Gabest한테 메일을 2번이나 보냈지만...
답장이 없었습니다...
이건.. Gabest가 KMP의 실행 파일을 덤프해서 알아 낸것이 아님니다..
저번에... 님과 같이 소스코드 공개를 요구한 한국사람이...
Gabest한테... 말해서 그런검니다.
그리고.. 누누히.. 말하지만... KMP는 델파이로 개발 되었습니다.
MPC는 Visual C++로 개발이 되었구요...
C++코드를 조금만 고쳐서 델파이에서 사용할 수 있습니까??
분명히 말하지만... KMP는 소스코드를 공개할 이유가 없습니다.
MPC의 소스코드를 제가 안본것은 아님니다만...
MPC의 알고리즘이나 방법만 참고 했습니다.
또한 Gabest씨가 문제 삼은것은...
KMP의 실행파일 문제가 아니라
KMP에 함께 포함되어 있는 MPC필터의 문제 입니다.
이건.. 추후에.. Gabest가 문제 제기를 계속 한다면..
KMP배포 팩에서 제거 할 생각입니다.
그리고.. 전 님과 같은 사람들을 보면.. 정말 한심합니다.
정말... 에휴.. 말을 말아야지...- -;;
작성자: z in kmp forum
일단 들어가기 전에 KMP의 간략한 개발사와 배경에 대해서 살펴보자. KMP는 MPC만큼 오래된 프로그램이다. MPC가 소스포지에 공개되어 오픈소스 프로젝트로 전환된 시점이 2003년 5월 19일이다. KMP의 최초 통신망 공개 ([Only registered and activated users can see links])는 델마당의 자료실에서 2002년 10월 01일에 이루어졌다. 사실 이 외에 KMP의 전신이라고 할 수 있는 Wasavi ([Only registered and activated users can see links])라는 프로그램이 2002년 3월 4일에 올려져 있는 것으로 볼 때, 동영상 재생기를 개발하기 시작한 시점은 2001년도쯤으로 여겨진다. 즉 KMP는 벌써 개발된지 5년에 이르고 있는 것이다.
그러나, 개발된지가 오래되었다고 해서 MPC ([Only registered and activated users can see links])의 소스코드를 가져다 쓰지 못한다고 할 수는 없을 것이다. 그런데 KMP는 밑바닥부터 델파이로 개발되었기 때문에 C++로 된 형식의 소스코드를 가져오는 것은 불가능하다. 그럼, 프로그래밍에 대해 개념이 거의 없거나 초보인 사람들은 이렇게 묻는다. MPC 소스 코드를 델파이로 변환한 거 아니냐고.. 이런 질문을 듣으면 너무 황당하고 어이가 없는 나머지 웃을 수 밖에 없다. 남이 짜놓은 소스 코드를 들여다보는 것 자체가 무척 힘든 일이다. 하물며 그것을 다른 언어로 쉽게 그대로 옮길 수 있을 거라고 생각하다니 차라리 새로 짜는게 훨씬 쉽다는 생각은 미처 못해 본 것일까?
사실 GPL ([Only registered and activated users can see links])에는 다음과 같은 중요한 부분이 있다. 즉, 프로그램을 실행할 때 GPL 라이브러리가 필수불가결하게 로딩되는 경우 이 프로그램은 GPL의 저촉을 받는다는 것이다. 특정 GPL 라이브러리 없이 프로그램 실행이 되지 않는다면 그 프로그램은 GPL의 저촉을 받게 된다. 그런데, KMP는 directshow ([Only registered and activated users can see links])를 기본으로 설계되었고 애초에 단독으로 실행할 수 있도록 개발되어 있다. KMP는 처음부터 내장 코덱용 재생기로 개발되지 않았다(1.x버전 참고 ([Only registered and activated users can see links])). 직접 확인해 보고 싶다면 초미니 버전을 받아서 실행해 보든지, 풀버전을 받아서 kmplayer.exe만 놔두고 모두 삭제한 후 KMP를 실행해 보면 된다. KMP에 포함된 각종 라이브러리들은 KMP 실행에 필수불가결한 요소가 아니라 단지 사용자의 편의를 위해서 구성된 말하자면 플러그인에 불과하다.
이런 구조가 주는 잇점은 여러가지가 있지만 대표적으로 시스템에 코덱을 깔지 않고도 대부분의 동영상을 재생할 수 있다는 점이다. KMP가 고급 사용자용뿐이라고 하시는 분이 있는데 사실 KMP은 아주 보편적인 일반 사용자들을 위해 디자인되어 있는 셈이다. 재생기의 가장 기본적인 목적이 재생이 잘 되는 것이라는 목표가 없었다면 내장코덱을 사용하는 구조란 사실 필요가 없는 것이다. 이 글을 쓰고 있는 필자 자신이나 KMP게시판의 여러 높은 수준의 사용자들은 사실 내장 코덱이란 어느 면에서 거추장스러운 것이라고 할 수도 있을 것이다.
그럼에도 불구하고 우리가 내장 코덱을 지지하는 이유는 KMP가 일반인들에게 편리한 도구로 널리 사용되어지기를 바라는 마음이 있기 때문이다. 물론 KMP내장 코덱 자체가 외부에서 사용되는 코덱과 아무런 차이점이 없다는 점 ([Only registered and activated users can see links])도 그 이유이다(혹자는 내장 코덱의 퀄리티에 대해 말하곤 하는데 근본적으로 차이가 없다. 차이가 있다면 재생기쪽의 세팅문제거나 튜닝 부족 문제라고 보는 것이 정확하다. 또는 우리는 그것을 버그라고 말하기도 한다. ^^). 그 밖에도 여러 잇점이 있다.
다만 개발자가 디자인이나 유저 인터페이스 쪽에 익숙하지 못하고 대부분의 실력있는 테크니션들이 자주 범하는 오류, 즉 프로그램이란 기능이 뛰어나면 된다는 사고에 오랫동안 젖어 있었던 것을 발견할 수 있었다. 고급 프로그램을 개발하면서 잘못된 일반화의 오류에 빠지게 된 것이다. 물론 이러한 점은 그간 KMP를 사랑하는 많은 사용자들의 지적과 개발자의 적극적인 수용으로 인해서 어느 정도 향상된 높은 수준의 인터페이스를 갖추게 되었다.
잠시 KMP에 관한 이야기를 했는데 다시 GPL얘기로 돌아가보자. 그렇다면 도대체 sf.net에 있는 MPC 홈에 있는 개발자의 글은 뭐냐고 할 사람들에게 말하겠다. 부끄럽게도 우리 나라의 어떤 대단하신 분께서 KMP가 GPL위반이며 MPC 소스코드를 훔쳐다 쓰고 있다고 MPC 개발자에게 메일을 보낸 것이다. 문제의 글중 KMP에 해당하는 부분은 다음과 같다.
"There are boundled dshow filters, string, toolbars, dialogs, command line switches, etc..., which can be verified easily by just running the applications and taking a look, or a bit harder by analysing the memory dump."
말인즉 KMP를 실행해서 살펴보기만 하면 KMP가 MPC랑 비슷한 곳이 있기 때문에 MPC 소스 코드를 가져다 쓴 것을 확인할 수 있으며 메모리 덤프를 통해서는 확인이 불가능하다는 이야기이다. 여기서, 필자는 MPC 개발자에게 무척 실망하고 말았다는 점을 미리 밝히고 싶다. 우선 무엇보다도 불쾌한 점은 KMP가 MPC 소스코드를 가져다 썼든 아니든 단순히 제 3자의 편지와, 또 객관적인 검증을 스스로 하지도 못했으면서 단지 눈에 보이는 것만 가지고 KMP가 소스 코드를 훔쳤다고 적고 있다는 점이다.
참고로 메모리 덤프라는 것은 KMP에서 MPC내부에 사용된 코드가 사용되어 있는지 확인하는 방법이다. 소스 코드를 가져다 사용한 경우 여지없이 걸리게 되어 있다.(참고로 MPC 소스 코드를 실제로 가져다 해먹은 다른 프로그램의 경우 메모리 덤프 ([Only registered and activated users can see links])에서 바로 걸려서 간판을 내린 것으로 알고 있다. 아마도 법적 분쟁을 회피할 수 없었을 것이다.) 그것도 MPC 개발자 그 자신이 메모리 덤프를 직접 떠서 검사했다면 MPC내의 고유한 코드는 그 자신이 가장 잘 알고 있을 것이기 때문에, 메모리 덤프로 확인이 불가능하다고 말하면서 KMP가 MPC소스를 가져다 썼다고 말한다는 것은 자기 스스로 논리적 모순을 저지르고 있는 것이라고 할 수 있다.
이런 저런 이야기할 것 없이 델파이로 짜여진 KMP에서 무슨 MPC소스코드가 나오겠는가. 그는 KMP가 델파이로 짜여진 것조차도 모르는 것이 틀림없으며 최소한 KMP가 델파이로 짜여진 것만 알았더라도 저런 모욕적인 말은 삼갔을 것이다.
다만, KMP는 MPC가 sf.net상에 공개된 후 MPC의 기능 중 기술적인 측면에서 몇가지 진보된 것들을 흡수한 것은 사실이다. 이것은 KMP 개발자가 MPC에서 기술적으로 뛰어난 부분을 참고하여 그것을 델파이로 재구현한 것이다. 그 과정에서 분명 오해를 살 부분들(MPC의 인터페이스와 유사한)이 없잖아 있는 것은 필자도 인정하는 바이다. 사실 개발자는 이 분야에 있어서 높은 수준의 실력을 가지고 있다는 것은 KMP를 한번쯤이라도 살펴본 사람들이라면 모두 고개를 끄덕일 것이다. 그렇기에 MPC를 살펴보고 특정기능(좋아보이는)의 작동방식을 깨달은 다음 그것을 비교적 쉽게 델파이로 구현할 수 있었던 것이다. 부끄럽지만 필자도 한 때는 개발자가 너무나 쉽게 MPC의 일부 기능을 가져오는 것(말하자면 코드 복사나 번역을 말하는 것이다)으로 생각하여 오해를 한 적이 있었다.
한 번 살펴보는 것으로도 구조를 이해할 수 있는 실력이 있기 때문에 가능했던 것을 모르고 단지 결과만을 놓고 판단했던 것이다. 하물며 델파이로 쓰여진 KMP를 놓고 그런 생각을 했다는 것을 돌이켜 볼 때 지금은 당시의 오해가 창피할 따름이다. 솔직히 기능 구현과정에서 인터페이스가 흡사한 데다 기능이 거의 같은 부분이 있으니(잘 들여다보면 차이가 나지만) 오해를 살 만 하게 한 개발자의 책임도 어느 정도는 있다고 여겨진다.
한 때 KMP개발자는 게시판에서 MPC에서 안되면 KMP에서 안된다는 식으로 자주 말한 적이 있었는데 이 때문인지 국내 사용자 중에도 MPC가 KMP의 아버지격이니 또는 MPC 코드를 베낀 것으로 잘못 이해하고 있는 사람들이 있는 것 같다. 그러나, 정확히 표현하자면 MPC는 KMP의 수많은 technical reference(기술적 참고문헌)에 불과할 뿐이다. 핑계없는 무덤은 없다고 하잖는가? 개발자의 이와 같은 말은 사실상 개발자를 가장 괴롭히는 필자를 견제하기 위한 필설에 불과할 뿐이다. ^^ 왜냐하면 기능구현이나 인터페이스 조정을 위해서 필자가 개발자를 압박하는 방법은 상당히 체계적이고 논리적이기 때문에 참다 못한 개발자가 빠져나갈 ?구멍을 찾다보니까 MPC를 들먹인 것 뿐이다. ㅎㅎ
그리고, MPC 개발자는 편지를 두번이나 보냈는데도 응답이 없었다고 하는데, KMP 개발자는 답장을 두번이나 보냈는데 아무런 응답이 없었다고 한다. 개인적으로는 KMP 개발자의 답장이 늦었을 것이라고 보지만 아마 그 메일을 본 MPC개발자는 자신의 실수가 몹시 창피했을 거라고 생각한다. 창피한 나머지 입을 다물고 모른 척하고 있는지도 모르겠다.
팔이 안으로 굽는 것 아니냐고 하실 분도 있으련지 모르겠지만, 필자는 사실관계에 있어서나 다른 재생기들과의 비교에 있어서 상당히 냉혹하고 엄격한 잣대를 가지고 있는 편이다. 좋은 것을 좋다고, 불편하고 부족한 것을 부족하다고 말할 수 있을 때만이 발전이 가능하지 않겠는가? 좋은 것을 좋다고 할 줄 모르거나 혹은 오직 불평만 하는 분들이나, 부족한 것을 감내하고 사용하는 사용자들은 자기 자신을 어떻다고 생각할지 모르겠지만, 필자의 졸견으로는 그것은 프리웨어 개발자에게 하등의 도움이 되지 않는다고 여겨진다. 물론 발전을 위한 비평의 글 속에는 분명히 개발자의 노고를 존중해 주는 배려가 존재해야만 한다. 그렇지 않다면 개발자의 업데이트 의지만 꺾을 뿐이다.
KMP는 상당한 완성도를 자랑하는 프로그램으로 특별히 국내 환경에서 어느 정도 상업적으로 이용할 만한 가치가 있다는 판단을 하는 사람들이 많은 탓인지 종종 GPL을 언급하며 소스 코드 공개를 요구하는 이들이 있다. 그리고 목적을 달성하지 못하면 서슴지 않고 인신공격을 가하고 비방을 일삼다 커뮤니티를 혼란과 분쟁 속에 빠드린 채 사라진다. 이런 일이 2년 전부터 거의 6개월 간격으로 일어나고 있다. 심지어는 KMP실행 파일을 오코리아 ([Only registered and activated users can see links])에서 리소스 해킹을 해서 사사미2 ([Only registered and activated users can see links])로 탈바꿈시켜 사사미 후속버전인 것처럼 속였던 경우도 있었다. 이걸 하나포스 자료실에서만 11만명이나 속아서 다운로드 받아 갔다니 오코리아가 수단 방법 가리지 않고 일을 추진하는 것은 참 대단하나 추한 한국인의 전형을 보는 것 같아 무척 씁쓸했다. 참고로 다른 자료실에서는 이 사실이 알려지자 말자 자료가 삭제되었음도 불구하고 하나포스측에서는 아무런 조치가 없었는데 이렇게 시간이 흐르자 증거자료로 활용될 수도 있게 되니 전화위복이라고 생각해야 하는 것일까? :)
필자가 영문 포럼의 관리자도 있다 보니 개발자로 오해하여 PM으로 이런 요구를 하고 있는 해외 사용자도 간혹 있는 편이다. 다만 그들의 경우는 아마 대부분 전문적인 개발자인지 간단히 몇마디로 설명하면 이내 알아듣는다.
물론 개중에는 이름만 대면 알 만한 재생기 개발자도 끼여 있었는데(구글신의 도움으로 비교적 최근에 우연히 발견한 사실이다. -_-), 재미있게도 자기는 모르는 척 하면서 MPC포럼에 Gabest씨의 글을 인용해 가면서 소스 코드 공개를 요구한 적이 있었다. 그런데 나중에 알아먹도록 설명하고 그 자신이 납득했음에도 불구하고 소스 공개 요청을 아주 정중하게 계속 요구한 적이 있어서 C++ 개발자라고 여겨지던 그가 왜 델파이 코드로 된 KMP 소스를 계속 요구하는지 잘 이해를 못했는데, 나중에 알고 보니 그는 델파이 전문 프로그래머였던 것이다. 그것도 재생기 분야에서 말이다. KMP가 델파이로 짜여진 것을 미리 알고 소스 공개를 유도했다는 뜻이다(구글신은 위대했다). 그래도 그는 끝까지 정중했다. 이 사실로 미루어 보아, 그 자신이 재생기 개발자라는 사실을 일부러 숨긴 것 같지는 않다.
어떤 프리웨어든지 처음엔 개발자 스스로의 즐거움을 먹고 살지만, 그것이 대중에게 공개된 시점부터 그것은 더 이상 개발자 한사람만의 몫이 아니게 된다. 점차로 기능이 추가되고 개발자 스스로 잘 사용하지도 않는 기능을 수정하고 첨가하면서 얼마나 고되고 힘들겠는가? 그런데 이렇게 악의적인 메일로 개발자를 난처하게 하고 사용자들의 자부심을 짓밟으며 자기 얼굴(대한민국)에 침뱉기를 열심히 하는 분이 있다니 참으로 부끄러울 따름이다.
KMP는 이런 불미스러운 사건만 제외하면 해외에서도 서서히 알려지고 있다. 특별히 이번 일이 Gabest라는 걸출한 개발자의 입을 통해서 나온 말이라 그것이 사실이 아닐지라도 공신력을 얻고 있는 것은 매우 유감스런 일이다. 일반 사용자들은 진실을 구별할 변별력이 없기 때문에 더욱 그러하다. 그런데 해외에서는 KMP에 대해 조사가 상당 부분 이루어졌음에도 불구하고 KMP가 아무런 문제가 없다는 것을 공시하지 않고 그냥 넘어가는 것은 아쉬운 일이다. 또한 KMP가 윈앰프 스킨을 모방한 것을 메인 스킨으로 쓴다는 점 등으로 미루어 KMP가 다른 것들도 베끼지 않았겠느냐는 맹목적인 시각도 존재하는 점은 KMP를 사랑하는 한 사람으로서 매우 안타까운 일이다.
Vista에서도 작동되는 KMP를 볼 수 있기를 바라고, 앞으로도 오랫동안 함께 할 수 있기를 바라며 이만 줄인다.
결론
KMP는 실행 파일 내에 GPL 코드나 바이너리를 삽입하지 않았다.
KMP에 사용되는 외부 라이브러리는 소스 코드에 수정을 가하거나 변경하지 않았고, CVS 버전의 소스를 컴파일하거나 바이너리 버전을 가져다 사용했다.
KMP는 외부 라이브러리에 종속성을 가지지 않는다.위 사항은 모두 검증 가능한 일이며, KMP 그 자체는 개인의 창작물입니다. 이 밖에 다른 사항(문서/링크 누락 등)들은 차차 개선되도록 하겠습니다. 안 했다고 하는데 사실 관계를 제대로 확인도 안하고 자꾸 했다고 하면서 돌을 던지거나, 위반이든 아니든 상관없다는 분들이 있는데 잘못된 것이면 바로 잡아야 할 것입니다. 또 패키징 방식에 문제가 있다면 이것도 바로 잡으면 될 것입니다.
ps. GPL/MPL에 대한 개발자의 답변 전문
일단.. DC-DSP는 MPL입니다.
소스코드 변경시 원저작자(DCoder)에게 공개를 해야 되지...
님한테 줄 이유는 없습니다.
또한 소스 코드는 변경되지도 않고 있는 그대로 사용했습니다.
그래서 공개할 이유도 없구요...
Gabest의 경우... Gabest한테 메일을 2번이나 보냈지만...
답장이 없었습니다...
이건.. Gabest가 KMP의 실행 파일을 덤프해서 알아 낸것이 아님니다..
저번에... 님과 같이 소스코드 공개를 요구한 한국사람이...
Gabest한테... 말해서 그런검니다.
그리고.. 누누히.. 말하지만... KMP는 델파이로 개발 되었습니다.
MPC는 Visual C++로 개발이 되었구요...
C++코드를 조금만 고쳐서 델파이에서 사용할 수 있습니까??
분명히 말하지만... KMP는 소스코드를 공개할 이유가 없습니다.
MPC의 소스코드를 제가 안본것은 아님니다만...
MPC의 알고리즘이나 방법만 참고 했습니다.
또한 Gabest씨가 문제 삼은것은...
KMP의 실행파일 문제가 아니라
KMP에 함께 포함되어 있는 MPC필터의 문제 입니다.
이건.. 추후에.. Gabest가 문제 제기를 계속 한다면..
KMP배포 팩에서 제거 할 생각입니다.
그리고.. 전 님과 같은 사람들을 보면.. 정말 한심합니다.
정말... 에휴.. 말을 말아야지...- -;;