Chapter 1. IronPython의 설치와 구동

IronPython은 CodePlex.com이라는 오픈 소스 프로젝트 호스팅 사이트를 통하여 다운로드받으실 수 있습니다. 지금은 본 강좌에 첨부된 IronPython 프로그램 파일이 담긴 이 ZIP 파일을 편리한 디렉터리에 압축을 풀어주시기만 하면됩니다.

압축된 파일을 풀면 ipy.exe 파일과 ipyw.exe 파일, IronMath.dll 파일, IronPython.dll 파일을 비롯하여 문서, 예제 파일들이 저장될 것입니다. 이 중에서 핵심이 되는 것은 직접 언급한 네 가지 파일입니다. 각각의 파일의 용도를 살펴보겠습니다.


ipy.exe: IronPython 대화형 콘솔 프로그램입니다. 이 강좌의 대부분은 이 프로그램을 이용하여 실행하는 것을 기준으로 합니다.

ipyw.exe: IronPython을 WinMain 스타일로 구현한 프로그램입니다. 콘솔 윈도우가 나타나는 것이 아니며 또한 윈도우용 GUI가 나타나는것도 아닙니다. 다만, 외부에서 실행할 때 이 프로그램에 대한 파라미터로 Python Script 파일을 넘겨주었을 때 대리로 수행해주는 역할을 하게 됩니다.

IronMath.dll: IronPython의 수학적 능력이 발휘될 수 있는 원동력이 바로 이 파일인데, BigInteger 클래스와 Complex64 구조체를 제공합니다. BigInteger는 통상적으로 가장 크다고 알려진 Visual C++의 int64보다 더 큰 수를 다룰 수 있고, Complex64의 경우 복소수를 다룰 수 있으므로 허수의 개념을 지원합니다. IronPython을 어떤 형식으로 사용하든 꼭 필요한 파일입니다.

IronPython.dll: IronPython의 핵심 기능은 이곳에 모두 밀집되어있습니다. 자세히 언급하지 않더라도 생략하면 안되는 파일입니다. 이름만 봐도 알 수 있는 사실이지요.

그 외에 있는 폴더나 파일들은 한 번씩 살펴보시면 IronPython에 관한 또 다른 정보를 얻으실 수 있을 것입니다. 이 강좌를 통해서도 각종 예제들은 수시로 언급하고자 합니다.

기본적인 파일들에 대한 설명이 끝났으니 이제 본론으로 들어가서 ipy.exe로 간단히 재미있는 일들을 수행해보도록 하지요. ipy.exe를 실행한 후 잠시 기다리시면 다음과 같은 형태의 화면이 콘솔에 나타날 것입니다.


IronPython 1.0.60816 on .NET 2.0.50727.42
Copyright (c) Microsoft Corporation. All rights reserved.

>>>

IronPython의 버전과 함께 현재 IronPython이 사용하는 .NET Framework의 버전도 같이 표시됩니다. 현재는 .NET Framework 3.0을 설치한 후에라도 내부적으로는 .NET Framework 2.0을 사용하고 있기 때문에 여전히 2.0의 버전대를 표시하고 있습니다. 그리고 Microsoft의 프로젝트임을 명시하는 글귀도 보입니다. 마지막으로 세번째 줄의 프롬프트부터 우리가 원하는 것을 입력하면 됩니다.

IronPython은 단순한 스크립트 언어일 뿐만이 아니라 훌륭한 공학용 계산기의 역할을 해냅니다. 우리가 해보고 싶은 “재미있는 것”이란 바로 공학용 계산기의 기본기를 살펴보는 일입니다. 다같이 따라해 봅시다.

설명) 프롬프트상에서 입력한 내용임을 구분짓기 위하여 >>> 기호를 앞에 붙입니다. 실제로는 >>> 기호를 빼고 입력해야 정상적으로 실행이 되겠지요? ^^


>>> 1+2
3
>>> (56+44)
100
>>> (56+44) * 3 / 8
37
>>> 1 / 0
Traceback (most recent call last):
File , line 0, in <stdin>##22
ZeroDivisionError: 0으로 나누려 했습니다.
>>>

어떤가요? 괄호를 이용하여 묶은 수식도 척척 계산해 냅니다. 하지만 우리가 사용하고 싶은 진짜 공학용 계산기의 모습은 훨씬 다양한 것입니다. 뭔가 빠졌지요? 맛보기로 math 모듈을 참조하여 어떤 기능을 사용할 수 있는 살펴보겠습니다.


>>> import math
>>> dir(math)
[‘__builtins
‘, ‘class‘, ‘dict‘, ‘doc‘, ‘init‘, ‘module‘, ‘name‘, ‘new‘, ‘reduce‘, ‘reduce_ex‘, ‘repr‘, ‘acos’, ‘asin’, ‘atan’, ‘atan2’, ‘ceil’, ‘cos’, ‘cosh’, ‘degrees’, ‘e’, ‘exp’, ‘fabs’, ‘floor’, ‘fmod’, ‘frexp’, ‘hypot’, ‘ldexp’, ‘log’, ‘log10’, ‘modf’, ‘pi’, ‘pow’, ‘radians’, ‘sin’, ‘sinh’, ‘sqrt’, ‘tan’, ‘tanh’]
>>> math.sin(30)
-0.988031624093
>>>

math라는 모듈 안에 우리가 사용하고 싶어하는 수학적 함수들이 모두 프로그래밍 되어있습니다. IronPython에서의 모듈이란 C#의 Static Class (또는 Static 멤버를 1개 이상 포함하는 보통의 Class도 포함됩니다.), Visual Basic .NET의 Module과 같은 개념이며 IronPython도 실제로 그렇게 처리해줍니다. 그리고 dir() 이라는 내장 함수는 IronPython이 객체를 어떻게 다룰 수 있는가에 대한 의문을 일거에 날려버리는 유명한 함수입니다. DOS나 UNIX에서 특정 디렉터리 내에 속한 개체들을 살피기 위하여 사용하던 그 dir 명령과 다르지 않아서 금방 머리에 들어옵니다.

좀 더 복잡한 계산식을 계산하시고 싶으시다면 지금 당장 사용해 보세요. 한 가지 더 알려드리면 이후 IronPython을 종전의 .NET 응용프로그램에서 사용할 경우 지금의 명령문이나 스크립트들을 모두 사용할 수 있다는 것입니다. 즉, 계산식을 분석하기 위하여 고민할 필요 없이 간단히 IronPython을 사용하기만 해도 되는 것입니다.

다음 Chapter에 들어와서는 Python의 실제 문법을 살펴보도록 하겠습니다. 많은 기대 바랍니다. ^^

댓글 남기기