본문 바로가기

Developement/C/C++

FLTK 연재.



 지금 부터 소개하는 FLTK 는 1998 년 부터 시작되어 온 GPL-V2 기반의 라이센스를 가진 GUI 라이브러리 입니다.

각 OS 마다 구비되어 있는 GCC 를 이용해서 build 할수 있음은 물론, Windows 에서는 MSVC 를 통해서 개발을 이어 나갈 수 있기도 합니다.


대표 싸이트 : http://www.fltk.org/index.php


 FLTK 의 경우는 C++ 의 상속 개념을 통해 여러 종류의 Fl_Widget 이라 불리는 Component 를 유기적으로 만들 수 있으며, 각 platform마다 빌드시, 거의 모든 동작환경이나 형태가 동일한 GUI 를 만들수 있는 좋은 라이브러리 입니다. 특히 OpenGL 을 일부 사용하는 GUI 에서 거의 완벽한 대부분의 component 들을 사용할 수 있으며, 정상적인 방법으로 만들어진 Application 이라면 동일한 소스를 그대로 각 platform 간에서 빌드후 사용이 가능 한 장점이 있습니다.


 현재 필자의 경우 FLTK를 이용한 Application 개발은 Windows 에서 수행 하지만, 실제 Target 는 ARM-Cortex-A8 호환을 사용하는 특정 Embedded Linux입니다. 여기에 nano-X 를 사용하여 FLTK 를 구동하며, 이 프로젝트는 매우 성공적 이었습니다.

다양한 platform 을 지원하는 GUI 라이브러리들 중에서는 QT 라던가, GTK, WxWidget 등이 있겠습니다만, 완벽히 Customize 가능하면서, 매우 가볍고 빠른 라이브러리엔 뭐가 있을까? 란 의문을 가져 본 다음 얻은 결론은 현재 FLTK 뿐 입니다.

 쉽게 말해 Windows GDI 가 가지는 거의 모든 기능들은 FLTK 에서 그대로 구현이 가능하며, 해당 component 가 가지는 특성을 상속받아 다시 만들어 내어 customize 하는 것이 매우 용이한 장점이 있다는 것 또한 FLTK 가 가지는 매력이라 하겠습니다. 다만, FLTK 는 별다른 design tool 이 없는 관계로 FLUID 라는 개발자 목적에 맞는 간단한 code generator 가 있긴 하지만 이것이 실제 사용되기엔 매우 어려운 부분이 있어서 대규모 개발에 있어서 designer 와 code programmer 간의 협업엔 약간의 절충이 필요한 부분 입니다.

 그럼에도 FLTK 는 다목적 platform 기반의 GUI Application을 가벼우면서 고속으로 동작할수 있도록 만들수 있는 좋은 기반의 라이브러리 이며, 이는 platform 에 종속적이지 않은 제품을 만들때 매우 효과적인 설계기반이 될 수 있다 믿습니다.


 앞으로 빠르진 못하겠지만, 점진적인 FLTK 의 연재를 통해 많은 개발자들이 FLTK 를 통해 우수한 성능과, 깔끔한 모습의 GUI 를 개발하고, 체계적으로 다양한 모습으로 도입될 수 있도록 노력해 보겠습니다.