2008년 11월 12일 수요일

GTK란?

GTK는 "GTK (GIMP Toolkit) is a library for creating graphical user interfaces.

It is licensed using the LGPL license, so you can develop open software, free software,

or even commercial non-free software using GTK without having to spend anything

for licenses or royalties." 라는 튜토리얼에 나와 있는 것처럼 GUI 프로그램을 만들 때

쓸 수 있는 라이브러리입니다. 리눅스에 보면 GIMP(포토샵 과 비슷한 기능을 가진 프로그램) 라는

그래픽 프로그램이 있는데 처음에는 이걸 만들기 위해서 GTK를 만들었다고 합니다.

그런데 지금은 여러 프로그램을 만드는데 사용되고 특히 그놈 프로젝트와 관련이 되어있어 앞에

"g" 자가 붙어 있는 프로그램은 대부분 GTK를 사용했다고 보면 됩니다.

위에 나와 있는 것처럼, Qt는 상용 프로그램을 만들 때는 그에 따른 비용이 들지만

(물론 상용이 아닌 경우는 무료임) 그와 다르게 상용 프로그램을 개발할 때 사용해도 됩니다.

GTK는 GDK(GIMP Drawing Kit : XLib에 접근하기 위한 저 레벨 함수임, 저 레벨이라고

수준이 낮은 것은 아니겠죠?~)라는 것을 내부적으로 사용합니다.

그리고 GTK 바탕에 GLib라는 라이브러리도 사용하게 되는데 이것은 GUI를 구현 하려는 것보다는

여러가지 데이터 타입과 함수, 매크로등(링크드 리스트,트리,에러 처리,메모리 관리등에 관련된)을

정의하고 있습니다. 그래픽적인 요소가 없으므로 GLib는 GUI프로그램이 아닌 프로그램

(콘솔 프로그램이라고 해야 되나?--이건 윈도우 상황에서 맞는 말인데-- )에서도

사용할 수 있다는 것을 알 수 있을 것입니다. 물론 GLib를 사용하지 않고도 할 수 있습니다.

하지만 일관된 프로그램을 짜려면 사용하는 것이 괜찮을 것 같습니다. GTK는 완전한

객체 지향이라고 말할 수는 없지만 그래도 상당한 부분은 객체 지향 기법을 제공하려고

노력한 것 같습니다. 원래 C로 쓰여 졌기 때문에 C++이나 자바처럼 언어적인 차원에서

객체 개념 제공해 주지는 않지만 구조체와 콜백함수(함수의 포인터를 이용함)를 사용해서

객체개념을 실현하려고 했습니다. 설치는 rpm으로도 구할수 있고 소스를 받아다가

빌드할 수도 있습니다. 그리고 보통 리눅스를 깔 때 선택해주면 같이 깔리므로 리눅스 설치를 하실

분은 신경을 써서 설치를 해 주시면 됩니다.

참고로 버전은 1.2.5라고 하면 리눅스 커널 버전과 비슷하게 두번째 숫자(여기서는 2)가 짝수이면

안정된(stable) 버전이고 홀수이면 개발(develop) 버전입니다.

그리고 마지막 숫자(여기서는 5)는 버그를 고친 횟수를 뜻하는 것이지요.

그리고 공식 사이트는 http://www.gtk.org 입니다.

댓글 없음: