Blog | Tag | Local | Guest | Login | Write |  RSS
GTK와 GDK


오늘은 GTK를 공부하기전에, GTK와 GDK에 대해 알아보도록 하겠습니다.
이전에 공부를 할때 찾아봤던 기억이 있으나, 아직 제것으로 만들지 못했던것 같아, 다시 찾아보기로 하였습니다 ^ ^
이번 시그를 통하여 저번 공부때 마무리 하지 못했던 GTK를 마무리 해볼까 합니다.
공부를 하면서 올리는 내용이라 많이 부족하지만, 지적도 쏠쏠하게 해주시면 감사하겠습니다 ^ ^

처음부터 주저리주저리.. 너무 긴것 같습니다. (자~자~! 시작해 보겠습니다,)

 



1. GTK는 "GIMP Toolkit"의 약자이다.
- ( 와, 이부분은 기억이 나려고 하네요, ㅋ 처음 찾아본 자료가 아는 내용인거 보니 출발이 좋은것 같네요^ ^)
그럼 GIMP는 무엇인가 리눅스에 관심이 있는 사람들이라면 한번쯤 들어봤을만한 이미지 편집기입니다.
바로 리눅스에서 사용할 수 있는 포토샵인것입니다. (두둥.. 너무 거창한가? 그림판이라고 해둬야겠네요.ㅋ)

GTK의 천재가 아니라 잘은 모르지만, GTK의 Tutorial을 보면 이런말이 가장 처음 적혀있습니다. "GTK (GIMP Toolkit) is a library for creating graphical user interfaces" 그렇습니다!! GUI를 만들기 위한 툴킷 라이브러리입니다.

2. GDK의 친구는 그리기와 Event이다.
- (GDK는 그리기와 Event의 친구이다.. 친구라는 표현이.. 어울리지 않을 수 있습니다. 여기서 친구란, GDK로 우리가 가장 많이 해야할 일들은 그리기와 Event라는 것을 강조하기 위함입니다.)
"GDK 라이브러리는 GTK+ 위젯(어플리케이션)과 윈도우 시스템을 이어주는 추상적 계층을 제공해줍니다" 라는 문장을 많이 보셨을 겁니다. 그 이전은 저도 안해봐서 잘은 모르겠으나 듣기로는 GTK와 GDK의 구분이 없었다고 합니다. 하지만 지금은 GTK와 윈도우 시스템 사이에 GDK가 있다고 합니다.

실제로 X Window든 MS Windows든 플랫폼과의 대화는 GDK가 맡아서 하고 GTK는 GDK와 좀더 쉬운 대화를 하는것입니다. Event나 Drawing처럼 X Window와 친하게 지내야하는 작업들을 GTK와 플랫폼(일반적으로 X Window) 사이에서 처리 해 주는것입니다. 그뿐 아니라 Font, Style, 이미지 제어 등 GUI의 중요한 부분들을 담당하고 있습니다. GTK는 이러한 GDK를 이용하여 구조적인 부분을 담당합니다.

현재에는 Xlib을 래핑하고 있는것은 GDK입니다. GTK는 그 GDK를 이용하는것입니다.

3. GTK와 GDK 그리고 X Window
- X Window에서는 GUI 구현을 편리하게하고 개발자를 여유롭게 만들어 줍니다.
우리가 X Window에서 GUI를 만들려면 어떻게 해야할까요? 가장 기본적인 방법으로는 Xlib을 이용하여 개발하는 것이 있습니다. 이것은 매우 귀찮고 어려울 수 있는 일입니다.

Xlib은 X Window에서 GUI 개발을 할 수 있는 가장 기본적인 라이브러리입니다. 화면에 필요한 Widget들을 그려내고 GUI뿐만 아니라 X Window 시스템에 관련된 대부분의 기능을 지원하지만 원초적인 정보와 기능들만을 제공합니다. 개발자가 Xlib을 사용하여 GUI부분을 구현한다면 직접 정보를 관리하고 안정성을 책임져야 합니다.

GTK와 GDK를 사용한다면 Xlib이 해주는 역할외에도 GUI 프로그램을 제작함에 있어 필요한 대부분의 유형과 기능들을 미리 구현해 놓았습니다.

GTK와 GDK도 X Windows에 실제로 무언가 표시할때나 X Window에 관련된 작업을 할때는 Xlib을 사용합니다. 결국 Xlib을 사용하지만 이부분은 모두 GTK와 GDK가 내부적으로 처리해주는것입니다. 그럼 GTK와 GDK는 그냥 Xlib 래핑 해 놓은것 아니냐라고 할 수 있겠으나 그렇다고 하기엔 GTK와 GDK는 너무나 많은 일을 대신해주고 많은 부분을 확장하여 미리 만들어 놓았습니다.

버튼 하나만 보더라도 Xlib은 가장 기본적인 부분만 처리해 줍니다. 버튼을 화면에 그리고 이벤트 처리하고 정도입니다. 하지만 GTK와 GDK는 버튼을 구현함에 있어 관련된 대부분의 필요한 정보들과 기능을 확장하여 미리 준비해놓았기 때문에 우리는 그것을 사용하면 됩니다. 또한 기본적인 Widget들을 GUI 프로그램에서 일반적으로 사용하는 다양한 형태로 변이시켜서 새롭게 구성해 놓았습니다.

GTK와 GDK는 물론 아주 특수한 상황까지 고려되어있는것은 아니지만 GUI 프로그램을 제작함에 있어 불편함을 느낄수 없을만큼 많이 준비되어있습니다.

Xlib은 X Window 시스템을 제어하기 위한 가장 기본적인 라이브러리이고 GTK와 GDK는 GUI 프로그램 개발에 필요한 툴킷 라이브러리 인것입니다. 개발자는 GUI를 구현하기 위해 엄청난 시간을 보내야하는것이 아니라 비지니스로직 등의 구현에 더 많은 시간을 할애하고 GUI관련해서는 GTK와 GDK에 맡기면 되는것입니다.





나름 쉽게 정리를 해본다고 이것저것 자료를 참고해 보았습니다.
처음에는 이론 부분을 설명하고 점차 실전으로 해보고 올릴 생각입니다.
궁금하신 내용이나 추가해야할 내용이 있다면, 이야기해주세요,
저의 서치 실력으로는 거의 같은 내용이 나오는 듯 하네요 ^ ^
오늘은 사정상 내용이 많이 짧네요, 다음부터는 분발하겠습니다 ㅋㅋ