APR(Apache Portable Runtime)

크로스 플랫폼 어플리케이션 개발을 위해 지금까지 많은 라이브러리를 검토했지만 대부분 아쉬운 점이 많았다. 덩치가 너무 크거나, 의존하는 라이브러리가 너무 많거나, 반대로 너무 기능이 제한적이고 부족하거나 하는 이유로 진행하는 프로젝트에서는 직접 만들어 사용하고 있는 실정이다.

오늘 문득 Apache2 웹서버와 Subversion 버전 관리 소프트웨어가 사용하는 APR (Apache Portable Runtime) 라이브러리를 살펴보게 되었다. 그 존재는 Subversion을 사용하기 시작하면서부터 알고 있었으나 사이트를 들어가서 검토까지 해본 건 이번이 처음이다. 튼튼한 네트워크 서버를 만들면서 구축한 라이브러리의 특성을 한눈에 확인할 수 있다. 프로세스, 쓰레드, 시그널, MMAP, 메모리 관리, 공유 메모리 등과 같은 부분의 API가 정교하게 다듬어져 있다.

하지만 아직까지는 GLib 에게 더 높은 점수를 주고 싶다. GObject까지는 필요 없더라도 GLib 자체는 충분히 안정화되어 가고 있다. 초기 버전에 비해 Win32 지원이 날이 갈수록 좋아지는 걸 확인하고 있다. GLib에서 가장 좋아하는 부분은 메인 이벤트 루프를 지원한다는 점이다.(물론 가장 까다로운 부분이라 고생하는 부분이기도 하다)

GLib과 APR을 대충 비교하면, GLib과 겹치는 부분도 있지만 없는 부분도 많다. 물론 GLib에만 있는 부분이 더 많다. 그리고 APR은 아직도 너무 치열하게 개발중이다. 즉, GLib은 이미 API가 안정화 단계에 있는데 APR은 아직도 활발하게 API가 변경되고 있다.

지금 당장 프로젝트에 도입할 수는 없지만, 몇 개월 뒤에는 또 어떻게 발전해 있을까 궁금해진다.

comments powered by Disqus

Related