날짜에서 알 수 있듯이 여기에 갔다 온지는 꽤 됐다. 오늘도 갔는데 연습장에 보니 그전에 들으면서 정리한 것이 있었다, 그래서 그 것을 여기에 정리해 둘려고 한다.

이 행사에 대해서는 아래 링크에 잘 설명 됬다.


http://wiki.kldp.org/wiki.php/KLDPConf/20040417


이 날은 GTK+ 와 RSS 에 대한 내용이었다. 그 중 나는 GTK+ 에 대한 내용만을 들었다. 그 때 RSS 가 뭔지 너무 몰랐기에 들지 않았다. 그리고 세미나(?)는 GTK+ 에 대한 내용의 시간이 더 많았다.

GTK+ 는 C용 라이브러리 이다. 라이브러리 중에서도 GUI 방식을 프로그래밍을 짤 수 있게 해 주는 라이브러리 이다. 그리고 간단한 자료구조에 대한 라이브러리도 제공하는 것 같아 보인다. (너무 오래전이라서 기억이 안난다. )

리눅스 XWindow 에서 가장 잘 작동하고, (KDE 에서도 작동하는지 모르겠다. ) MS 윈도우에서도 작동할 수 있다고는 하나, 아직은 불완전해 보인다. ( 특히 한글을 사용하는 사람들에게. 내가 설정을 잘 못한 것인지도 모르겠다. ) 그 전에 내 경험으로는 MS 윈도우에서는 마치 java 처럼 프로그램을 설치하기 전 뭔가 따로 GTK 를 위한 폴더를 만들어 저장해 두었다.

GTK+ 는 Event Driven Programming 방식으로 GUI 가 구성 되었다고 한다. 이게 뭔지는 알 수 없지만, 자바에서도 이 방식을 사용한 것으로 알고 있다.

자바에서 GUI 프로그래밍을 해 봤다면, 그 방식대로 GTK 의 화면을 구성할 수 있어 보인다. 다만 GTK 는 C 다. 그래서 객체지향을 구성하기 어려운 언어이다. 그래서 이름을 잘 만들어서 객체지향 요소를 잘 집어 넣어다고 생각하면 될 것 같다.

GTK 는 callback 함수를 많이 사용한다. 함수 포인터를 사용할 일이 많을 것이다. 이 것은 C 를 가지고 객체지향적 요소를 집어 넣어서 그런 것 같다. 그리고 signal 함수 라는 것을 많이 사용한다. GTK에서 signal 은 어떠한 이벤트를 받아들이는 역할을 한다. g_signal_connet 을 이용해서 callback 함수와 연결한다고 한다.

GTK 에서 widget 이라는 것을 많이 들게 되었다. 마치 객체지향 프로그래밍에서 class 처럼 잘 묶어진 단위같다.


내가 거기서 느낀 것은 환경구축이 매우 어렵다는 것이다. HelloWorld 프로그래밍 짜는 것 보다 그 게 컴파일 하는게 더 어렵다는 것이다. 그리고 컴파일을 쉽게 하기 위해서는 그 환경을 구축해야 하는데, 그 것도 만만치 않은 작업이다.

보통, 프로그램을 만들 때 automake , autotools 로 좋은 템플릿( 프로그램의 틀로 make 파일을 만들어 주고, 대강의 프로그램의 소스를 알아서 만들어 주는 것, 빵틀이라고 한다던데) 을 만들 수 있다고 한다. 그러나, 너무 복잡하다.


우리가 GTK+ 부르는 것은 여러개로 이루어진 라이브러리 같아 보인다. GObject, GDK , Glib 등등. 여러가를 묶어 프로그래밍을 도와주는 라이블러리 묶음을 그렇게 부르는 것 같아 보인다. GTK+ 는 LGPL 이라고 한다. 상용프로그램에서(더 자세히는 독점성을 가지는 프로그램) 는 static Linking 을 사용하면 안된다고 한 것 같은데.
잘 모르겠다. (라이센스 문제는 너무 복잡하다. ) QT에 대항(?) 위해 개발되었다고 한다.

그 외에 다른 말도 잘어 있지만, 쉽게 찾아볼 수 있는 자료라서 생략한다.
내가 받은 느낌은 프로그래밍 보다도 그 것을 컴파일 할 수 있는 환경구축이 더 어렵다라는 느낌을 받았다.