Federico Mena Quintero
federico@gnome.org 2013
시그널 및 슬롯을 갖춘 C 기반 객체 및 형식 시스템
조성호
shcho@gnome.org 2016, 2017, 2018.

# GObject

GObject는 C 프로그램에 객체 및 형식 시스템을 도입하는 GLib 라이브러리의 일부입니다. C 언어에서 객체 또는 클래스를 (문법적으로) 제공하지는 않지만, GObject는 객체지향 C 프로그램을 작성할 수 있게 해줍니다.

GObject에서는 근본적으로 정수형 및 문자열 형식을 전달하는 전체 형식 시스템의 근간인 GType을 제공합니다. 모든 기타 클래스의 기반 클래스인 GObject 그 자체가 있습니다. 어떤 흥미로운 동작이 일어났을 때 호출자에게 알리는 시그널을 뿌릴 수 있습니다. 예를 들어 `Button` 객체는 눌리고 뗀 상황을 나타내는 `clicked` 시그널을 보낼 수 있습니다.

GObject는 인트로스펙션이 가능한데, GObject 시스템에 정의 클래스 형식, 지원 메서드, 시그널 등을 요청할 수 있습니다. 그놈 언어 바인딩은 인트로스펙션 정보의 상부에 구성합니다. 다른 프로그래밍 언어에서 그놈 API를 호출하게 직접 래퍼를 작성하는 대신, 언어 바인딩은 GObject부터 자체적으로 만든 래퍼까지 인트로스펙션 정보를 활용합니다.

보통 그놈 기반으로 객체 지향 프로그래밍을 진행할 때 GObject 자체를 신경 쓸 필요가 없습니다. 그러나 시그널/슬롯 같은 GObject 개념에 익숙하면, 그놈 프로그래머 입장에서 편해집니다.

GObject 참고 설명서