IDL/Programming

키워드(keyword)와 인자(argument)에 관하여

이상우_IDL 2012. 1. 13. 17:41
728x90

이미 IDL에 익숙하신 분들이야 다 아실만한 내용이겠지만, IDL을 접한지 얼마 안되시는 분들은 미처 잘 모르시는 경우도 많은 것 같아서 초보적인 내용이지만 한번 정리해보고자 합니다. IDL을 쓰다보면 keyword, argument와 같은 용어들이 자주 등장합니다. 주로 IDL 도움말에서 어떤 명령에 관한 내용을 찾아보면 항상 나오는 용어들입니다. 물론 keyword는 우리말로도 그냥 '키워드'라고 하고, argument의 경우는 '인수' 또는 '인자'라고 주로 번역됩니다. 저는 그냥 '인자'라는 용어로 부르겠습니다.


먼저 인자라는 것은 어떤 프로시저나 함수를 사용할 때 필수적으로 주어져야만 하는 변수나 배열 등을 뜻합니다. 즉, 이러한 인자가 없으면 그 프로시저나 함수는 전혀 의미를 갖지 못할 정도로 필수적인 요소가 됩니다. 예를 들어 PLOT 프로시저를 쓸 때 우리는 다음과 같이 사용합니다.


PLOT, x, y 또는

PLOT, y


여기서는 x, y와 같은 것들이 바로 인자가 됩니다. 플롯을 그릴 때 x 또는 y에 해당되는 인자가 없으면, 플롯 자체를 아예 그릴 수가 없겠죠? 함수의 경우도 비슷합니다. 예를 들어 평균을 구하는 함수인 MEAN은 다음과 같이 사용됩니다.


result = MEAN(x)


그러면 여기서는 x가 바로 인자가 됩니다. 당연한 얘기지만, 이러한 인자가 없으면 이 MEAN이란 함수는 아예 실행조차 할 수 없습니다. 따라서 인자라는 것은 그 프로시저나 함수를 실행하는데 있어서 없어서는 안될 필수적인 존재가 됩니다.


물론 어떤 프로시저나 함수를 사용하느냐에 따라 인자의 갯수는 다릅니다. 그리고 똑같은 프로시저나 함수를 사용하더라도 인자의 갯수가 달라지는 경우도 있습니다. 바로 위에서 본 PLOT같은 경우를 보면 인자가 하나만 사용된 경우도 있고 두 개가 사용된 경우도 있는데, 바로 이러한 경우입니다. 우리가 이 PLOT 프로시저를 IDL 도움말에서 찾아보면, SYNTAX(문법) 부분에 다음과 같이 적혀 있습니다.


PLOT, [X,] Y [, /ISOTROPIC] [, MAX_VALUE=value] [, MIN_VALUE=value] [, NSUM=value] [, /POLAR] [, THICK=value] [, /XLOG] [, /YLOG] [, /YNOZERO]


여기서 X, Y가 바로 사용될 인자를 뜻하는데, 자세히 보면 X가 []로 둘러싸여 있습니다. 이렇게 []로 둘러싸인 인자는 사용해도 되고 없어도 무방하다는 의미입니다. 따라서 X, Y 두 인자가 다 사용될 경우도 있고, Y에 해당되는 인자만 사용될 수도 있다는 뜻입니다.


이번엔 키워드에 관하여 살펴봅시다. 키워드라는 것은 어떤 프로시저나 함수를 사용할 때 선택적으로 사용될 수 있는 설정요소들을 제어하는 역할을 합니다. 즉, 하나의 옵션일 뿐이지 없다고 해서 실행에 지장이 되지는 않습니다. 이 점이 인자와 구분되는 결정적 차이점입니다.


바로 위의 PLOT 프로시저의 문법상으로 보면 인자를 제외한 나머지 것들이 모두 키워드들입니다. 우리가 PLOT 프로시저를 사용할 때 X축이나 Y축의 범위를 정할 때에는 XRANGE, YRANGE와 같은 키워드를 쓰고, 좀 두껍게 그리려면 THICK이란 키워드를 사용합니다. 그런데 잘 생각해보면 이와 같은 키워드들은 굳이 사용을 안하더라도 PLOT 프로시저 자체가 실행되는데에는 아무 지장이 없습니다. 단지 사용자의 구미에 안맞는 디폴트 형태로 그려진다는 것 뿐입니다. 따라서 의도에 맞게 그리기 위하여 다양한 키워드들을 사용하게 됩니다. 키워드는 'THICK='와 같은 형태일 수도 있고, '/XLOG'와 같이 '/'를 앞에 붙이는 형태일 수도 있습니다. 사실 '/'가 붙은 것은 '=1'이라는 뜻입니다. 즉, '/XLOG'라고 쓰는 것은 'XLOG=1'이라고 쓰는 것과 마찬가지의 효과를 갖는다는 점은 꼭 알아둬야 합니다.


참고로 인자와 키워드는 순서가 뒤섞여도 지장이 없습니다. 예를 들어 다음은 PLOT 프로시저를 사용하는데 인자와 키워드를 함께 사용하는 전형적인 모습입니다.


PLOT, x, y, XRANGE=[0, 10], LINESTYLE=1


그런데 이것을 다음과 같이 사용해도 아무 상관이 없습니다.


PLOT, x, XRANGE=[0, 10], LINESTYLE=1, y


어차피 인자는 인자끼리 키워드는 키워드끼리만 인식되기 때문입니다. 물론 인자들끼리는 서로 순서가 뒤바뀌면 안됩니다. 즉


PLOT, x, y

PLOT, y, x


이 두 경우는 전혀 다른 결과를 나타냅니다. 이러한 점들만 유의하면 되겠습니다.

LIST

'IDL > Programming' 카테고리의 다른 글

누적에 의한 배열 생성법  (0) 2012.07.08
배열 합치기  (0) 2012.05.04
_EXTRA라는 키워드에 관하여  (0) 2012.01.09
COMPILE_OPT의 활용  (0) 2011.12.13
날짜 기반의 파일명 다루기  (0) 2011.09.20