공학용 언어 IDL 5.3

일반입력 :2000/08/08 00:00

장세정 기자

최상의 그래픽을 제공하는 과학 및 공학용 언어

누구나 자신에 맞는 적당한 환경을 선호하듯이 프로그래밍 분야에서도 각자의 관심과 활용 범위에 맞는 최상의 프로그래밍 언어를 선택해야 한다. IDL은 다양한 데이터를 시각적이고 간단명료하게 처리, 활용함으로써 많은 사용자에게 즐거움과 가능성을 제시하는 제품이다.

IDL은 과학 및 공학용 데이터를 분석하고 시각화하는 언어로, 다양한 형태의 데이터 입출력과 수많은 수학 및 통계 데이터 처리 라이브러리를 포함해 빠른 시간 내에 최적의 결과를 제시한다. 인터프리터 형식의 명령어 처리와 위젯 툴킷을 사용해 뛰어난 GUI 응용 프로그램을 개발할 수 있으며 윈도우, 매킨토시, 유닉스 등 모든 시스템 환경에서 거의 동일하게 작동하는 강력함을 선보이고 있다. 따라서 IDL은 과학과 공학용 프로그램 개발, 수학, 통계, 영상처리, 신호처리, 3차원 그래픽, 시뮬레이션, 애니메이션, 매핑(mapping), GUI 응용 프로그램 개발과 해양, 우주, 기상, 의학 등 많은 분야에서 널리 사용되고 있다.

간단한 코딩, 빠른 프로세싱

프로그램에 사용되는 배열의 수치 교환과 흐름은 시각적인 데이터 흐름으로 나타나는 것이 아니라 직관과 사고에 의해 만들어지고 코딩된다. 그 결과 역시 동일한 과정의 각종 제어문과 조건문을 사용해 확인해야 하므로 알고리즘에 대한 정확한 이해가 가능한 반면, 금방 실증을 느끼게 하는 면도 있다.

IDL은 배열 중심의 언어라는 특성 때문에 초보자에게 쉽게 다가간다. 이는 다른 언어와 다르게 함수나 연산자에 배열을 변수로 직접 적용할 수 있는 행렬 연산 기능이 제공되기 때문인데, 이를 통해 사용자는 데이터 분석과 가시화를 다른 언어의 3분의 1정도로 손쉽게 할 수 있다. 게다가 IDL과 유사한 매트랩(Matlab)이 2차원 배열을 지원하는데 비해 IDL은 훨씬 많은 8차원 배열을 지원하고 있어 다차원 데이터를 처리하는데 효율적이다. 이런 특징을 활용해 프로세싱의 속도를 한층 더 빠르고 효율적으로 할 수 있다.

함수나 프로시저 하나로 최상의 그래픽 제공

데이터의 진정한 의미를 파악하기 위해 그래픽을 활용하는 것은 기본적이면서도 효과적이다. IDL의 경우 그래픽 관련 함수 또는 프로시저 등의 광범위한 라이브러리를 제공하고 있어 간단한 방법으로 최상의 효과를 얻을 수 있으며, 키워드와 파라미터의 적절한 선택을 통해 어떠한 형식의 데이터라도 원하는 형태로 가시화할 수 있는 막강한 기능을 갖고 있다. 그래픽 라이브러리의 내부 지원은 처리 속도를 향상시키고 출력 결과를 간단히 편집할 수 있어 사용자가 원하는 형식으로 쉽게 저장할 수 있다. 이런 IDL의 그래픽 능력은 사용자의 입장에서 IDL을 가히 최상의 그래픽 툴로 여기게 한다.

2차원과 3차원, 표면 도식화, 등치선화, 3차원 그래픽, 매핑, 시뮬레이션, 애니매이션 등이 IDL로 표현할 수 있는 대표적 기능이며, 이런 시각적 그래픽 과정을 통해 분석된 자료의 본질과 특성을 쉽게 알아낼 수 있다. 그러나 강력한 그래픽 능력을 제공하는 IDL도 한가지 아쉬운 점이 있는데, 일반적으로 많이 사용하는 영상 파일 형식인 GIF 포맷으로 저장하는 경우 해상도가 많이 떨어진다는 것이다. 이런 한계를 극복하기 위해 별도의 프로그램이나 JPEG, PS 형식을 주로 사용하고 있지만 상당한 불편함이 느껴진다.

다양한 형식의 데이터 입출력 지원

IDL은 이미지 관련 데이터 형식(BMP, GI F, JPEG, XWD 등)을 비롯해 과학 기술용 데이터 형식(CDF, HDF, NetCDF 등)도 지원한다. 과학 기술용 데이터 형식 지원을 보면 매트랩이 HDF만을 지원하는 것에 비해 훨씬 다양한 형식을 지원하고 있어 원격탐사나 GIS 등 위성 관련 데이터 처리에서 특히 두드러진다.

국내 최초의 다목적 위성인 아리랑 1호(KOMPSAT)를 비롯한 많은 위성 데이터가 HDF, CDF, NetCDF 형식으로 표준화돼 위성 자료의 특성이 상당한 그래픽적 요소를 포함한다는 점을 감안한다면 IDL은 바로 위성 시대의 자료 처리와 과학 기술용 소프트웨어로서 가장 강력한 툴 중 하나가 될 것으로 여겨진다. 또한 수학, 통계를 비롯한 수많은 과학기술용 라이브러리, 포괄적인 지도 정보, 일반적인 신호와 영상 처리에 사용되는 알고리즘을 제공하고 있어 데이터의 분석과 처리가 훨씬 손쉬워진다. 이밖에 PS, HPGL, PCL, LJ, CGM 등의 저장 형식을 지원하기 때문에 사용자가 원하는 형식으로 출력할 수 있다.

응용 소프트웨어 개발을 위한 SW

IDL은 거의 모든 시스템과 운영체제를 지원하며, 플랫폼간 이식이 자유롭다. 버전 5.0부터는 객체지향 프로그래밍을 지원하므로, 더욱 짜임새있는 코드를 만들 수 있다. 또한 컴파운드 위젯과 제어, GUI 빌더를 이용해 그래픽 환경을 유연하게 제작할 수 있다. 이러한 이유로 IDL은 짧은 역사에도 불구하고 위성 영상 처리와 GIS 프로그램인 ENVI, 기상 관련 프로그램인 EDGE, 해양 관련 위성 자료 처리를 위한 SEADAS, 강의 네트워크를 분석하는 RiverTools, 그리고 최근에 개발된 VIP 등 사용자 중심의 응용 소프트웨어의 개발에 일익을 담당하고 있다. 특히 얼마 전 NIMA의 패스파인더에 의해 그 동안 원격탐사 소프트웨어를 몇몇 분야에서 평가해 본 결과 ENVI가 다양한 원격탐사 프로그램 중 우수 소프트웨어로 꼽혔다. IDL을 이용해 국내에서 개발된 VIP의 경우 프로그래밍의 일차적 단계인 플로우 차트의 개념을 응용, 코딩없이 적당하게 구성된 노드(node)를 사용해 간단한 흐름도를 작성함으로써 하나의 완벽한 프로그램을 완성하는 신개념의 소프트웨어로써 그 활용 범위를 더욱 넓혀가고 있다.

직접적인 하드웨어 제어 불가능

IDL을 사용한 GUI는 비주얼 C 또는 비주얼 베이직으로 제작한 GUI보다 만족스럽지 못할 수 있다. 이같은 단점을 극복하기 위한 방안으로 액티브X 지원 기능을 통해 자신의 개발 환경에서 비주얼 베이직, 비주얼 C++, 그리고 델파이 등과 결합시켜 이들의 GUI와 IDL의 막강한 그래픽 기능을 손쉽게 이용할 수 있도록 한다. 하지만 다양한 플랫폼에서 작동하도록 개발돼 하드웨어를 직접적으로 제어할 수 없다. 이 부분의 대안으로 C 또는 포트란 등과 서로 라이브러리를 공유할 수 있도록 개선하고 있다.

앞에서 언급한 ID L의 단점은 액티브X와 라이브러리 공유를 통해 극복하려고 하지만 사용자에게 손쉽게 다가오는 IDL로서의 이미지를 희석시키고 많은 부담을 안겨주는 것이 사실이다. 사용자 위주의 환경을 제공하는 만큼 IDL 자체의 멋진 GUI, 간단한 함수와 프로시저를 이용한 하드웨어 제어를 할 수 있는 라이브러리 개발이 빨리 이뤄지기를 기대한다.