GLib 2.26.0 출시
GLib 2.26.0 안정버전 이 출시되었습니다. 한동안 개인적으로 관심있는 업데이트가 없어서 정리를 안 했는데, 이번 업데이트는 흥미로운 기능이 매우 많이 추가되어 있어 관심을 가질 수 밖에 없을 것 같습니다.
전반적으로 2011년 4월 예정인 GNOME 3 환경을 목표로 계속 개발중인 GTK+ 3.0 에 초점이 맞추어 있는 듯 싶더니, 굵직한 기능들을 이번 GTK+, GLib 안정버전에 미리 많이 포함했다는 느낌을 받습니다. 다른 말로 표현하면, 기존에 여러 라이브러리를 사용해야 했던 데스크탑 어플리케이션 기본(?) 기능들을, 마치 QT 라이브러리처럼, GLib 라이브러리 하나에 통합하고 있는 듯한 느낌입니다. 물론 이로 인해 멀티플랫폼 라이브러리 색깔은 조금 옅어질 것 같지만, 어차피 리눅스 / 유닉스 특화적인 기능은 GIO 모듈로 분리되어 있기 때문에 GIO 라이브러리 사용만 조심한다면, C++ 언어에서 STL, Boost 라이브러리 등과 같이 C 프로그래머를 편하게 해 주는 멀티 플랫폼 “기본” C 라이브러리 역할을 하는데는 여전히 문제가 없을 것으로 생각됩니다.
glib 모듈에서 가장 눈에 띄는 기능은 단연
GDateTime
API입니다. 지금까지 GLib 라이브러리를 사용하면서 제일 아쉬웠던 부분 중 하나인데, 날짜와 매우 기초적인 초(seconds) 정보만 다루는
GDate
API만 있어서 매번 시 / 분 / 초를 표현하는 자료구조와 API를 만들어 사용했던 번거로움이 사라질 것 같습니다.
gobject 모듈에는
제가 무척이나 아쉬워했던
객체 속성 바인딩
GBinding
기능이 추가되었습니다. 사용법은 이전에 제가 소개했던
ExoBinding
과 거의 비슷하고, 내부 구현도 거의 유사합니다. 더불어 트리모델이나 객체 속성으로 기존 구조체를 사용하기 위해 매번 GBoxed 타입을 구현했는데, 이를 쉽게 해주는
G_DEFINE_BOXED_TYPE()
,
G_DEFINE_POINTER_TYPE()
등과 같은 매크로도 추가되었습니다.
gio 모듈에는 이번 릴리스의 핵심 기능들이 추가되었습니다. 첫번째는 더 이상 리눅스 기본시스템 버스인
DBus
에 접근하기 위해 별도의 라이브러리가 필요없도록
GDBus
API가 추가되었습니다.(간단한
튜토리얼 가이드
도 있습니다) 두번째 기능은
GSettings
API인데, GNOME 3부터 현재
GConf
설정 기능을 대체할
dconf
기능과 연동되어 사용될 것으로 보입니다.(
“GConf에서 GSettings로 이전하기”
가이드도 참고하시면 좋을 것 같습니다)
이외에도 물론 많은 API가 추가되었으므로, 관련 있으신 분들은 반드시 각 모듈 참고 매뉴얼 마지막의 2.26 버전에서 새로 추가된 API 목록을 확인해 보시기 바랍니다. 참고로, 지금까지 설명한 GLib 변경사항은 GNOME 2.32 버전에 이미 포함되어 있기 때문에 앞으로 출시되는 대부분의 배포판(Ubuntu 10.10 포함)에 기본적으로 탑재됩니다.