원격 데스크탑에서 MATLAB 사용하기

Computer/ETC 2007. 2. 27. 11:57
출처 : http://rampo.tistory.com/10

----------------------------------------------------------------------------

제목 그대로 이번에 소개 해 드릴 간단한 팁은 원격 데스크톱 연결시 실행이 제한된 공학용 프로그램을 실행 가능하게 하는 방법입니다. 그 중

에서도 아래의 응용 프로그램들은 공대생들중 전자과에 적을 두고 있는 분들이시라면 사용 빈도가 상당히 높으리라 생각합니다.

사용자 삽입 이미지

그런데 위의 공학 프로그램들은 하나의 공통점이 있습니다. 바로 터미널에서의 프로그램 실행이 제한되어 있다는 겁니다. 공대생 분들은 다들

공감 하시리라 생각 합니다만, 급하게 공학 프로그램을 사용해서 레포트를 제출 해야 하는 상황이 닥쳐도, 라이센스 문제로 인해 학내 전산실에

는 위와 같은 공학용 프로그램이 설치되어 있는 PC 는 한정되어 있기 때문에 이러지도 저러지도 못하는 상황을 겪게 됩니다. 그래서 급하게

집에 설치되어 있는 PC 로 터미널 접속하여 프로그램 실행을 시도 해 보면 아래와 같은 경고 메세지가 출력이 되죠.

< MATLAB >

사용자 삽입 이미지

< OrCAD >

사용자 삽입 이미지

( 윈도우 XP 에서 지원하는 터미널 서버는 글꼴 다듬기 기원을 지원하지 않아서, 저처럼 맑은 고딕 글꼴을 사용하면 터미널 상에서는 글꼴의 중

간계조를 제외한 나머지 색 성분만 출력이 되게 됩니다 ) 다시 본론으로 돌아와서, 마음도 급한데 저런 메세지를 보게되면 "도대체 왜 막아 놓은

거야! 바빠 죽겠는데" 를 연발하며 짜증만 내게되죠. 이 문제를 해결할 수 있는 매우 간단한 팁을 알려 드리기 전, 도대체 왜 프로그램 제작사에

서 터미널 상에서의 프로그램 실행 기능을 제한 해 놓았는지 그 이유가 궁금하시지 않나요?

 아시는 분은 아시겠지만, 첫번째로 언급했던 MATLAB 의 경우 라이센스의 형태에 따라 상업용, 교육용으로 버전이 나뉘어 있는데요. 상업용 버

전의 경우 모든 패키지를 설치 할 경우 가격이 수백만원에 달합니다. 이에 반해 교육용은 상대적으로 저렴해서 수십만원 이내에서 구입이 가능

하구요. 그런데 MATLAB 같은 경우는 여타 프로그램에 비해서 상대적으로 시스템의 그래픽 성능 의존도가 낮은 편입니다. Iteration 같은 것을

수행할 때에도 실행 PC 의 연산 속도가 중요할 뿐이죠. 즉 프로그램을 사용할때 로컬에서 실행하나, 터미널에서 실행하나 사용 환경에 있어서

별반 차이가 없다는 예기가 됩니다. 이는 OrCAD 도 마찬가지구요. 조금 불편하긴 하지만 두 프로그램 모두 터미널에서 아무 문제 없이 사용 할

수 있습니다. 이 문제는 프로그램 제조사에게 있어서 굉장히 중요한 문제인데요. 예를 하나 들어 보겠습니다. 만약 제가 회사를 운영하고 있는

사장이고, 위와 같은 공학용 툴을 사용하여 제품을 개발 한다고 가정한다면 갑자기 들이 닥칠지도 모르는 불법 소프트웨어 단속을 피하기 위해

서라도 어쩔수 없이 설치된 PC 의 대수만큼 해당 프로그램의 라이센스를 구매 해야만 합니다. 그러나 터미널 접속으로 프로그램 실행이 가능하

고 또한 그 성능에 있어서 별반 차이가 없다면 ( 규모가 작은 ) 기업일수록 편법을 쓰게 되겠죠. 단속을 대비하여 해당 프로그램은 1~2 Copy 정

도만 구매하고 실제 작업은 터미널로 하면 되니깐요. 바로 이런 이유들로 인해 점차 터미널 사용 환경이 좋아지고 널리 보급 되고 있는 시점에

서 프로그램 제작사에서 터미널을 통한 프로그램 실행을 적극적으로 제한 하려고 하는 것입니다.

 그런데, MATLAB 에서 내보내는 오류 메세지를 읽어보면 중간단락 정도에 왠지 익숙한 회사의 웹 사이트가 눈에 띕니다.

사용자 삽입 이미지

바로 Macrovision 이라는 회사인데요. 이 회사는 하드웨어 / 소프트웨어 컨텐츠 보안 솔루션을 개발해서 먹고사는 회사입니다. 이 회사가 대박이

난건 1980년대 말, VHS 시절 메이져 영화사들과 계약을 체결하여 VHS 복제 방지 솔루션을 제공 한 것이 그 계기였습니다. 한때 VHS 복사 방지

체계를 "매크로 비전이 걸려 있어" 라고 했을 정도로 끝발을 날린 회사죠. 사족이지만, 저도 어린시절 친구에게서 디즈니 만화 비디오를 빌려와

서 공 테이프에 복사하려다가  저 회사의 프로텍션 때문에 실패한 아픈 기억이 있습니다. 물론, 복사 방지 해제기가 얼마 지나지 않아서 나오긴

했습니다만, 하드웨어 기반의, 상대적으로 고가로 암암리에 판매되는 장치였기 때문에 그다지 널리 보급 되지는 못했습니다. ( 참고로 해제기의

경우 매크로 비전 신호, Vertical Blanking Signal 을 오류가 없는 신호인 원래 검정색으로 되돌리는 회로로 구성되어 있습니다 ) 결론적으로 이

회사의 VHS 프로텍션은 일반인의 접근을 막아낸, 꽤 성공적인 솔루션이었습니다. 여튼, 이를 계기로 Macrovision 은 5대 메이저 영화사들의 전

폭적인 지지와 신뢰를 얻게 되고, 현재는 메이저 영화사들이 제시하는 표준 복제 방지 솔루션으로 지정되기에 이릅니다. 앞서 언급했듯 이 회사

는 하드웨어 기반의 컨텐츠 보안 솔루션 뿐만 아니라 소프트웨어 기반의 컨텐츠 보안 솔루션도 판매하고 있는데요, 그 중 하나가 Macrovision

社가 특허를 가지고 있는 FLEXnet Publisher 입니다.

http://www.macrovision.com/products/flexnet_publisher/enhanced_security_module.shtml

링크에도 소개 되어 있듯이, 모듈에서 지원하는 중요한 기능 중 하나가 터미널 서버에서의 응용 프로그램 실행을 막는 기능인데요. 이 기능을

아래의 간단한 팁으로 쉽게 무력화 시킬 수 있습니다. :)

 터미널 상에서의 응용 프로그램 실행제한은 크게 두가지 방법으로 해제가 가능합니다. 첫번째는 직접 배치파일을 만들어서 응용 프로그램을

실행하는 방법, 두번째는 프로그램의 속성 탭에서 직접 호환성 모드를 수정 해 주는방법 입니다. 먼저 첫번째는 다음과 같은 배치파일을 생성함

으로서 실행이 가능하게 하는 방법입니다. ( 아래에 제시된 내용은 Matlab 기준입니다 )

@echo off
setlocal
set MATLAB=C:\Program Files\MATLAB71\bin\win32\MATLAB.exe
set REGKEY=HKCU\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers
reg add "%REGKEY%" /f /v "%MATLAB%" /t REG_SZ /d NT4SP5 > nul
start "" "%MATLAB%"
reg delete "%REGKEY%" /f /v "%MATLAB%" > nul

그리고 두번째 방법은 프로그램의 속성탭에서 프로그램의 실행 방법을 호환성 모드로 바꿔주는 방법입니다.

사용자 삽입 이미지

위의 그림처럼 Windows NT 4.0 호환성 모드로 실행하시면 아무런 문제 없이 응용 프로그램이 구동 됩니다. 생각보다 너무 간단한 방법으로 문

제가 해결되죠? 조금 더 설명을 드리면, 호환성 모드의 경우 Windows 에서 하위 OS 에서 동작하는 프로그램의 상위 호환성을 구현하기 위해

별도의 계층을 만들어 응용 프로그램을 실행하는 방법입니다. Windows 2000 으로 넘어 오면서 응용 프로그램의 동작 세션 확인이 가능해 졌

는데요, 위의 프로그램들은 연결 세션을 확인하여 프로그램 실행을 허가, 불허 하는 방식으로 프로텍션이 동작합니다. 다만, 단점도 있는데요. 확

인결과 호환성 모드로 실행하면 실행속도가 아주 약간 느려지는 것을 확인 했습니다. ( Matlab 에서 간단한 Iteration 수행으로 확인 ) 그러나 거

의 체감 할 수 없는 수준이기에 사용에 아무런 문제가 없다고 생각합니다. 추가적으로, 응용 프로그램 호환성 기술에 대해 궁금하신 분이 계시

면 아래의 링크를 참조 해 주세요.

http://www.microsoft.com/korea/technet/prodtechnol/winxppro/plan/default.asp

정말 간단한 팁 이지만 이 글이 레포트 쓰느라 고생하시는 공대생들에게 도움이 되었으면 좋겠네요. :)