QT의 정의

Mokwon Univ 2008. 8. 16. 16:53
QT란 무엇인가

리눅스나 유닉스에서 X-Window용 프로그램을 개발하려면 많은 지식이 필요하다. 이를 보완하기 위해 많은 것들이 나왔지만 그 중에서 대표적인 것이 KDE에서 사용하는 Qt와 GNOME의 GTK+ 툴킷이다. 이 외에도 많은 사람들이 들어 보았을 만한 것들을 열거하면 Python(http://www.python.org), LessTif( http://www.lesstif.org), Motif(http://www.opengroup.org/tech/ desktop/motif), tk(http://sunscript.sun.com/techcorner) 등이 있다.
KDE는 리눅스의 데스크탑 환경에서 GNOME과 함께 두가지 흐름 중의 한 줄기로 거대한 응용프로그램들과 라이브러리의 집합체 이다. KDE는 단순한 윈도우 매니저 수준을 넘어서 완전한 데스크탑 환경을 제공하기 때문에 콘솔 환경에 익숙하지 않은 많은 사용자들을 리눅스 환경으로 불러들였다. KDE는 Troll Tech사에서 만든 Qt라는 라이브러리를 사용했다. 하지만, Qt는 라이센스 문제가 있었다. 이는 Qt 프로그램이 GPL을 따르지 않고, Qt의 소스를 함부로 고칠 수 없었기 때문이다. 따라서, GPL만을 고집하는 개발자들은 완전히 자유로운 환경의 프로젝트를 생각하게 되었으며, 이런 이유로 만들어진 것이 GNOME(GNU Network Object Model Environment) 프로젝트이다.
GNOME은 Gimp를 사용하면서 GTK+ 라이브러리를 사용한다. GTK+는 Qt에 비해 시작이 늦고 C로 구성되었다는 단점이 있었지만, 최근엔 GTK--라는 C++ 버전이 등장할 정도로 빠른 속도로 개발되고 있다. 이같은 개발 추세에 따라 최근엔 레드햇 6.1 배포본의 인스톨 프로그램에 사용될 정도로 사용층을 넓혀가고 있다.
한편 GPL을 요구하는 개발자들의 항의를 받은 Qt는 2.0버전부터 QPL(Qt Public License)를 도입하여 Qt 라이브러리의 수정을 가능하게 했다. 하지만 여전히 Qt 상용 버전을 구입해야만 상용 프로그램을 개발 가능하다.
  • Qt Free : Qt의 비상업적인 버전으로 자유롭게 다운 받아 사용가능하다.(상용 프로그램 개발 못 한다.)
  • Qt Professional : Qt의 상업용 버전으로, Qt를 사용해 상업용 프로그램을 개발 가능하다.
Qt는 Troll Tech에서 개발한 X윈도우, MS윈도우의 GUI의 프로그램을 개발하기 위한 라이브러리로 지원하는 플래폼은 다음과 같다.
Microsoft Windows 95/98, NT
Solaris, SunOS, HP-UX, Digital UNIX(OSF/1), Irix, BSD/OS, SCO, AIX
Linux, FreeBSD
Qt는 다음과 같은 특징이 있다.
  • C++기반
      Qt는 C++로 만들어졌으며 그 구조는 MFC와 비슷하다. 따라서 기존의 C 개발 방식에 비해서 훨씬 쉽고, 기능 확장이 편리해서 생산성이 높다.
  • 객체 지향
      Qt 라이브러리는 모듈화와, 구성물을 재활용 가능하도록 초점을 맞춰서 설계되었다.
  • 멀티 플랫폼
      Qt는 앞서 살펴본 것과 같이 MS윈도우에서 유닉스까지 다양한 플랫폼을 지원하므로, 플랫폼을 바꾸더라도 소스를 수정해야 하는 번거로움이 줄어든다.
  • Signal & Slot
      Signal & Slot은 Qt에서 제공하는 이벤트 처리 모델이다. 이것을 사용해서 객체 간의 통신이 가능하고, 복잡한 Callback 함수를 만드는 부담을 줄일 수 있다.
  • 국제화
      Qt는 16비트인 유니코드를 완벽히 지원한다. 또한 다양한 ISO 변환 규격과 지역화(Localization)를 지원한다. 인터페이스에 사용되는 모든 문장은 메시지 변환 테이블을 통해 해당 지역 언어로 바꿀 수 있다.
  • 풍부한 API
      Qt는 250여개의 C++ 클래스를 지원하며 각 클래스에는 GUI를 위한 함수와 템플릿 기반의 collection, serialization, 파일, I/O 장치, 디렉토리 관리 및 다양한 종류의 API를 지원한다.
  • 안정성
      Qt는 Troll Tech에서 모든 것을 관리하므로, 공개된 다른 X 툴킷에 비해 훨씬 안정적이다. 또한 Qt 2.0부터는 CVS에 등록되어 관리되기 때문에 개발중인 Qt 소스를 그대로 받아볼 수도 있다.
Qt의 설치는 트롤 테크의 다운로드 페이지(http://www.troll.no/dl)에서 다운 받을 수 있지만 대부분의 리눅스 배포본에 포함되어 있기에 설치에 대해 특별히 언급하지 않겠다.
일단,
    #rpm -q qt
라고 해 봐서 qt가 설치되어 있지 않다면 Linux@Work 2000년 2월호나 박천구님의 사이트 ( http://mix1009.sarang.net)에 보면 자세한 설치 방법이 나와 있으니 참고하길 바란다. 참고로 리눅스 배포본에 있는 Qt는 KDE 1.1.1버전이 Qt-1.44를 사용하기에 qt-1.44-8kr이 설치되어 있다. 일반적으로 Qt 라이브러리는 /usr/lib 디렉토리나 /usr/lib/qt 디렉토리에 설치되고, 헤더파일은 /usr/include/qt 디렉토리에 설치된다.
자, 이제부터 하나씩 Qt 프로그램을 알아보자.
 
 
관련 홈페이지
 
Posted by 용학도리
,