이전글 보기 : http://moordev.tistory.com/7





 

 




저번에는 KDE와 Gnome에 대한 글을 적당히적었는데요. (사실 제대로 된 고찰도 아니었습니다.) 이번에는 KDE와 Gnome 각 환경의 기반이 되는 라이브러리인 QT와 GTK에 대한 이야기를 하려고 합니다.

GDI란 라이브러리로 만들어진 데스크탑환경(?)의 대표적인 예

QT와 GTK의 차이를 알아보기 전에 이 라이브러리가 하는 것이 무엇 인지를 알아야할 것 같습니다. 우선 익숙한 윈도에서의 비교가 필요할 것 같습니다. 윈도에서는 프로그램들의 모습이 비슷비슷하다는 것을 알 수 있을 겁니다. 그건 윈도에서는 GUI를 만들기 위해 사용하는 라이브러리가 GDI/GDI+라는 녀석을 쓰기 때문입니다. 사실 이 외에는 생각하기 힘들지요. QT나 GTK로 만들어지는 경우도 없지는 않습니다만 (다음클라우드는 QT로만들어져있고, Gimp for Windows는 GTK for Windows로 만들었다고 합니다.) 작업표시줄이라던가 시작메뉴, 탐색기 등의 구성 오브젝트 들, 시스템의 전반적인 것들이 GDI로 만들어져있기 때문에 윈도용 QT,GTK 프로그램들은 KDE나 Gnome의 경우하고는 다르다고 봐야 할 겁니다. 윈도용 QT, GTK프로그램은 아무래도 KDE에서 돌아가는 GTK 프로그램과 같은 방식으로 돌아간다고 생각하셔도 됩니다. 즉 그래픽 라이브러리란 화면에 그리기 위한 수단 중 하나입니다. 윈도는 기본으로 GDI/GDI+를 통해서 그리는 것이고 KDE는 QT를 이용해서, Gnome과 그 친척들(XFCE,LXDE 등)은 GTK로 그리는 것입니다. 작업표시줄이나 바탕화면조차도 하나의 프로그램이라는 개념으로 보세요. 그리고 그 프로그램은 어떤 라이브러리로 만들어졌는가를 생각해보세요. 그럼 이제 좀 이해가 될 것입니다.


QT와 GTK는 경쟁자라기 보다는 그냥 서로 협력관계로 보시는 편이 맞을지도 모르겠습니다.GTK가 만들어지게 된 배경이 QT로 그래픽 프로그램을 개발하기 어려워서 만들어진 것 입니다. GTK개발후에 만들어지게 된 프로그램이 그 유명한 Gimp이고요. QT의 부족함을 채우기 위해 만들어지게 된 것이니 경쟁자라고 보기는 좀 어렵지요. 지금이야 GTK로 데스크탑환경도 만들지만 당시에는 Gimp를 위해 만들어졌던 라이브러리였습니다. GTK이전에는 QT가 윈도에서의 GDI와 같은 입장이 아니었을까 합니다.

그렇지만 QT는 약간의 맹점이 하나 있습니다. 다름아닌 저작권이 약간 붕 떠있었다는 것입니다. 리눅스의 근간은 Unix였고 이 Unix의 X환경이 라이센스문제로 엉키던 시절(XFree86에서 Xorg로 넘어가던 시절)부터 QT는 노키아가 마지막으로 라이센스를 가지고 있었는데 지금의 LGPL로 바뀌기 전까지는 이 라이센스 문제때문에 오픈소스프로젝트들이 기피하게 되었습니다. 그러다 대안을 찾은 것이 GTK이고 이걸로 데스크탑환경과 각종 프로그램들을 만들어냈습니다. 그래서였는지 QT기반은 좀 오래된 프로젝트들이 많고 GTK기반은 비교적 최근에 시작된 프로젝트들이 많습니다. 사실 GTK가 다른언어로도 여기저기 포팅된 것도 한몫했습니다. QT데스크탑환경이 KDE만 있는것도 이와같은 영향이 아닐까라는 생각도 듭니다.


이전에도 말했듯이 QT프로그램이 Gnome환경에서 돌아가고 GTK프로그램이 KDE환경에서 돌아간다는 말 한적이 있었나요? 사실 이것도 라이브러리만 있으면 돌아가기 때문입니다. 걔중에는 데스크탑환경에 종속된 물건도 있기는 합니다만 (Nautilus라던가 Konqurer라던가 자세히 보니 대부분 파일탐색기류네요.) 데스크탑환경과는 관계없이 라이브러리만 써서 만든 프로그램들이 훨씬 더 많습니다.

대표적인 프로그램이 다음과 같은데

KDE에 GTK설치하게 만든 범인(?)인 Firefox와 Chrome이 있군요.

그리고 Gnome에 QT 설치하게 만드는 VLC미디어플레이어와 SMPlayer가 있습니다. Amarok도 있네요.

그래픽 라이브러리의 선택은 결국 개발자의 몫이기 때문에 사용자 입장에서는 어떤 라이브러리를 쓰든 상관할 필요는 없습니다. 특히 용량이 넘쳐나는 지금 데스크탑환경이라면 KDE에서 Nautilus쓴다고해도 크게 문제는 없어 보이는군요. (Nautilus는 Gnome을 설치해야 돌아갑니다. 그만큼 용량이 넘쳐난다는 의미입니다.)

제 생각에는 그저 리눅스 데스크탑은 사용라이브러리나 최적화를 떠나서 그저 필요한 프로그램을 쓸 수 있는 것이 가장 좋은 것이 아닐까 생각합니다.

,