지오지브라와 파이썬의 만남 - Part 1

지오지브라(GeoGebra)는 ’움직이는 수학’을 표방하는 무료 소프트웨어입니다. 가령 점을 만들고, 그 점을 중심으로 하는 원을 작도할 수 있습니다. 점과 원과의 관계가 계속 유지되기 때문에 점을 움직이면 원도 따라 움직입니다. 수학에 약간의 호감이라도 갖고 계신 분들께서는 금방 재미를 느끼실 수 있을 겁니다. 기하학만을 예로 들었지만 이름에서 추측해볼 수 있듯이 대수학도 포함하고 있습니다. GeoGebra 는 기하(Geometry)와 대수(Algebra)를 합성해서 만든 이름입니다. 꽤 오랜 시간 많은 사람들이 헌신적으로 노력해온 덕에 유럽과 미국의 교육 현장에서 널리 사용되고 있고, 최근에는 국내에서도 출판, 강의, 연수 등 관련 활동도 활발해지고 있습니다.

보통 GUI 를 사용하여 수학적 대상들을 구성해나가는 것이 일반적이지만, 저처럼 천성이 게으른 사람들은, 하나씩 그림으로 그리기 보다는 프로그램의 소스코드처럼 글로 쓰는 편을 선호합니다. 다시 입력하기가 쉽고, 틀린 곳을 고치거나, 일부를 바꾸거나, 반복적인 작업을 피하고, 예전에 했던 부분을 다시 쓰거나 하는데 더 편리하다고 생각하기 때문입니다. 지오지브라는 현재 두 가지 방식의 스크립팅을 제공하고 있습니다. 하나는 지오지브라 고유의 명령어들을 사용하는 GGBScript 이고, 다른 하나는 자바스크립트입니다.

GGBScript 는 if, while 등의 제어 구조를 본격적으로 지원하지 않는 간이 언어이기 때문에 프로그래밍이라고 부를만한 작업을 하기에는 어려움이 있습니다. 비록 스크립팅에만 사용될 수 있는 부분들이 있기는 하지만, 주 용도는 대화형으로 수학적 대상들을 구성할 때 GUI 를 보조하는 것입니다. 수식입력이 편리하도록 배려되어 있고, TeX 냄새가 물씬 풍깁니다.

반면 자바스크립트로는 본격적인 프로그래밍이 가능합니다. 지오지브라와의 연결은 미리 정의된 ggbApplet 객체를 통해 이루어집니다. 이 객체가 제공하는 메쏘드들은 별도의 문서로 정리되어 있습니다. 지오지브라가 자바스크립트를 실행하도록 지정하는 방식은 여러 가지 입니다. 간단한 작업은 GUI 에서 각 객체의 이벤트 처리기에 스크립트들을 입력하는 방식을 취할 수도 있습니다. 하지만 이렇게 하면 원래 스크립팅을 쓰고자 했던 목적에 어긋납니다. 제가 즐겨 쓰는 스타일은, ggb 파일이 로드될 때 실행되는 전역 스크립트로 함수들을 등록하고, ggbOnInit() 콜백에서 수학적 대상들을 구성하거나 이벤트 처리기들을 연결하는 방식입니다. 딱 한 곳에 입력되는 스크립트에서 모든 것을 제어하는 방식이지요.

자바스크립트도 무척 훌륭한 언어이기는 합니다만, 저는 더 이상 자바스크립트로 지오지브라를 프로그래밍하지 않을 것 같습니다. 앞으로 나올 지오지브라5 에서 파이썬을 지원하기 때문입니다. 이 글에서 다루는 내용은 지오지브라5 의 베타버전에 기반합니다. 베타버전인 만큼 최종 버전에서는 좀 달라질 수도 있겠지요.

다음에는 이 시리즈의 주제인 파이썬 스크립트를 자세히 살펴보겠습니다.