Notice
Recent Posts
Recent Comments
Link
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

Visual Studio

C에서 객체지향 프로그래밍을 하는 방법 - GObject 본문

Programming Language

C에서 객체지향 프로그래밍을 하는 방법 - GObject

emacser 2021. 11. 22. 02:51

Linux 시스템 상에서 개발을 해본 사람이라면, GTK라는 이름을 한번쯤은 들어봤을 것이다.

GTK는 GIMP Toolkit의 줄임말로, 본래 이미지 편집 프로그램인 GIMP의 개발을 위해 만들어진 GUI 라이브러리이지만,

규모가 커지면서 범용 라이브러리가 되었다.

 

GTK는 다른 GUI 라이브러리들이 객체지향 언어로 작성되었던 것과는 달리, 다른 언어들을 위한 바인딩을 쉽게 만들 수 있도록 하기 위하여 C로 작성되었다. GUI 애플리케이션을 개발하는데 있어 절차지향 설계보다는 객체지향 설계가 압도적으로 편하기 때문에 객체지향 시스템으로 설계하는 것이 일반적이지만, C는 언어 자체에서 OOP를 지원하지 않기 때문에 OOP로 개발하기 위해서는 추가적인 번거로운 작업이 필요하다.

GTK 개발자들은 이를 위해 C를 위한 Object System을 개발하였는데, 이것이 GObject이며 다음과 같은 기능을 지원한다.

 

- Reference Counting

- Dynamic Type System

- Property (Getter / Setter)

- Public / Private

- Inheritance System

 

Interface

 

이외에도 여러 기능이 있지만 본 게시글에서는 OOP에 중점을 두고 있으니 생략한다.

 

GNOME 프로젝트의 컨트리뷰터 중 하나인 Ryan McDougall은 2004년에 GObject로 어떻게 C에서 객체지향을 할 수 있도록 만들었는지에 대한 설명을 포함한 튜토리얼을 작성했는데, 너무 옛날 자료라 원본은 GNOME 메일 서비스에서만 찾아볼 수 있고 쉽게 열람할 수 있는 자료는 아래 링크밖에 남아있지 않다.

 

GitHub - jonnenauha/code

Contribute to jonnenauha/code development by creating an account on GitHub.

github.com

GObject에 관심이 있는 사람은 읽어보면 좋을 것 같다.