IDL/Widget

IDL에서 GUI 프로그래밍을 해보고자 한다면? (내용 업데이트)

이상우_IDL 2018. 8. 13. 21:41
728x90

(2018년 8월 13일에 내용을 수정 및 업데이트하였습니다)


많지는 않지만 가끔씩 유저그룹 게시판을 통해서 또는 개인적으로 직접 듣는 질문인데요. IDL에서 GUI 프로그래밍을 배워서 뭔가 어플리케이션을 만들어보고 싶은데 어떻게 하면 되겠느냐라는 질문입니다. 사실 간단한 Q/A로 해결될 문제는 물론 아니고 관련 내용에 대한 공부가 어느 정도는 분명히 필요합니다. 사실 IDL 사용자들 중에서도 GUI 프로그래밍을 필요로 하게 되는 경우가 그리 많지는 않습니다. 하지만, 이 방법을 배우게 되면 본인 스스로 IDL 어플리케이션(흔히 말하는 '앱'이 되겠죠)을 만들어볼 수 있고, 그것을 본인 뿐 아니라 다른 사람들도 이용할 수 있도록 배포까지도 할 수 있다는 장점도 분명히 있습니다. 저도 제가 하는 일 때문에 많이 해봤지만, 프로그래밍에 좀 흥미가 있으신 분들이라면 나름 재미있게 해볼 수 있는 작업이기도 합니다. 그러면 어떤 방법으로 공부를 하면 되느냐의 문제가 될텐데요. 제가 권장드리는 몇가지 방법들이 있습니다. 관심있는 분들에게는 조금이나마 참조가 되었으면 합니다.

 

<1> IDL 도움말에서 Widget Programming 관련 내용들 참조


IDL에서 GUI 제작을 위하여 필요한 각종 프로그래밍 기법들을 흔히 Widget Programming이라고 하는데요. IDL 도움말을 보면 이와 관련된 내용들을 찾아볼 수 있습니다. 도움말 왼쪽 탭에서 'Routines (by topic)' -> 'Widget Routines'라는 섹션을 보면 관련 내장함수들에 대한 설명이 나옵니다. 또는 'Language' -> 'Widgets'라는 섹션에도 내용이 좀 있습니다. 다른 방법을 통해 공부를 하게 되더라도, 도움말에 있는 이러한 내용들을 어느 정도 참조는 해야 합니다. 그래야 최근 버전의 IDL에서 생겼을지 모르는 변동사항들을 확인할 수 있기 때문입니다.


<2> 관련 교육 참가 및 수강


IDL의 국내 배급사인 (주)에스이랩에서 주관하는 IDL 교육과정들 중에 'Application Development in IDL'이라는 교육이 있습니다. 제가 항상 진행하는 교육이고, 사실 이 교육을 수강하는 것이 가장 큰 도움이 됩니다. 물론 비용은 들지만, 공부하는데 소요되는 상당량의 시간들을 단축할 수 있다는 장점은 무시못합니다. 다만 이 교육과정은 2016년도까지는 정규 과정으로 편성이 되어오다가, 교육 수요의 감소 및 불규칙성 등으로 인하여 그 이후로는 정규 과정으로 편성되지 않고 수요가 있을 때에만 개설 가능한 과목으로 변경되었습니다. 그래서 당장은 이 방법을 권해드리기는 어려울 것 같습니다. 물론 요청이 많을 경우 긴급 편성이 될 여지는 있겠지만, '요청이 많을' 확률이 그리 높지는 않아서 보장은 할 수가 없습니다. 그래도 혹시라도 이런 교육을 원하신다면 제 이메일(lee@selab.co.kr) 또는 (주)에스이랩의 IDL/ENVI 대표 메일(sales@selab.co.kr)로 연락을 주시기 바랍니다.


<3> 예전 IDL User 게시판의 자료 활용


현재의 IDL/ENVI 유저그룹 웹사이트가 아닌 예전 IDL 유저그룹 웹사이트에 GUI Programming 관련 자료가 업로드되어 있는 것이 있습니다. 링크는 여기입니다. 제가 교육 때문에 예전에 준비했던 우리말 문서 및 예제코드들이 있습니다. 현실적으로는 이 자료를 보는 것이 가장 빠른 방법일 듯 싶습니다. 물론 시기적으로 예전에 작성되었던 자료라는 점은 있지만, GUI 프로그래밍과 관련해서는 그 사이에 아주 비약적인 변화가 있었던 것은 아니기 때문에 기본 골격은 이 내용으로도 충분히 커버가 가능하리라 생각합니다. 최근에 와서 달라진 부분들에 대해서는 최근 버전 IDL의 관련 도움말을 참조하면 됩니다.

--> 원래 이런 내용으로 소개해드렸었는데, 저 웹페이지가 지금 현재(2018년)는 사정상 막혀있습니다. 그래서 관련 문서 파일 및 예제코드가 필요하신 분은 제 이메일(lee@selab.co.kr)로 연락을 주시면 보내드리겠습니다.


<4> 'IDL 객체지향 그래픽스' 책에 수록된 GUI 제작 관련 내용 참조


제가 예전에 'IDL 객체지향 그래픽스'라는 책을 출판한 적이 있습니다 (관련 링크). 물론 메인 내용은 IDL의 Object Graphics 체계에 관한 내용이긴 하지만, 그 중 17, 18장이 GUI 프로그래밍에 관한 기본 개념 및 응용에 관한 내용을 담고 있습니다. 이 책이 2012년도에 출판되었기 때문에 아주 최신은 아니지만 그래도 나름 최근의 내용이라고 볼 수는 있습니다. 다만, 전체 책 내용에서 일부 챕터만 할애한 것이기 때문에 아주 폭넓은 내용을 다루지는 못하고 있다는 점, 그리고 책을 따로 구입해야 한다는 점 등의 단점이 있어서 적극적으로 권해드리기는 어려운 부분은 있습니다. 그리고 이 책이 현재는 시중에서는 거의 절판이 되어 구입이 거의 불가능할 것입니다. 그래도 혹시나 이 책을 구입하고자 하신다면 제 이메일(lee@selab.co.kr)로 연락을 한번 주시면 상담해드리겠습니다.


<5> '이상우의 IDL 블로그'의 'Widget' 섹션 참조


이 블로그에 "Widget"이란 이름의 섹션이 있습니다. 사실 이 섹션에는 이 글 포함해서 게시물이 총 5개 뿐이긴 하지만 그래도 참조할만한 Widget Programming 관련 내용들이 있으므로 이 내용도 참조하시기 바랍니다.


<6> IDL/ENVI 국내 공식 홈페이지의 기술 문서 참조


IDL/ENVI 제품의 국내 공식 배포사인 (주)에스이랩의 IDL/ENVI 웹페이지(idl-envi.co.kr)에서 '고객 지원'의 'Tech Tips' 섹션을 보면 각종 기술적인 내용이 담긴 PDF 문서들이 게시물의 형태로 제공되고 있습니다. 이 중 29, 31, 33번 게시물이 Widget Programming과 관련된 내용을 담고 있습니다. 이 내용도 참조해보시면 좋을 것 같습니다.


일단 이상과 같은 방법들이 있습니다. 참조하시고 적합한 방법들을 택하여 공부하시면 될 것 같습니다. 물론 본인 스스로 독학으로 공부를 하려면 당연히 시간은 어느 정도 소요될 겁니다. 사실 IDL이 C계열 언어나 Java, Visual Basic 등의 언어들처럼 본격적인 개발용 언어는 아닙니다. 엄격하게 구분하기는 다소 힘들겠지만, 역사적으로 보면 IDL이라는 언어 자체가 주로 개발자(Developer)들보다는 연구자(Researcher)들을 대상으로 하기 있는 편이기도 합니다. 따라서 IDL이 갖고 있는 어플리케이션 개발 기능은 타 개발용 언어들과 비교해보면 어느 정도의 한계는 분명 존재합니다. 그래도 IDL이 갖고 있는 다양한 자료 처리, 그래픽 등의 기능들을 담은 '앱'을 스스로 만들어볼 수 있다는 장점이 분명 있기 때문에, 도전해볼만한 가치는 충분히 있다고 생각합니다. 어쨌든 관심있는 IDL 유저들에게 이 내용이 도움이 되었으면 합니다.

LIST