모르는 단어

QT

예쁜꽃이피었으면 2014. 7. 31. 14:24

http://limjunsung.egloos.com/657368


- 크로스 플랫폼을 지원하는
- C++
- GUI 애플리케이션 개발용 툴킷(Toolkit 또는 라이브러리)

위젯? 툴킷?
GUI 애플리케이션을 개발할 때 사용하는 그래픽 객체들을 위젯(Widget)이라 하고,
여러 위젯들과 위젯들을 대응하는 함수들의 묶음을 툴킷이라고 한다.
즉, 툴킷이란 푸시 버튼(Push Button), 메뉴(Menu), 다이얼로그(Dialog)와 같은 그래픽 객체(Graphical Object)와
이것들을 구현해 주는 함수들의 라이브러리(Library)로 생각하면 된다.
정리하자면 GUI 툴킷이란
개발자로 하여금 GUI 프로그래밍이 쉽도록 버튼, 박스, 윈도우를 구현하는 클래스들을 모아 놓은 라이브러리다. 

크로스 플랫폼을 지원한다는 말은?
Qt는 유닉스(리눅스, 솔라리스, ...)뿐만 아니라 MS Windows와 Mac OS X 등의 데스크탑 영역에서부터 임베디드 영역에 이르기까지 다양한 플랫폼을 지원한다. 이것은 리눅스에서 사용되는 GTK+나 다른 개발 도구와는 다르게 리눅스에서 작성한 코드를 가지고 MS Windows에서 그대로 이용할 수도 있고 Mac OS X에서도 이용할 수 있다는 점에서 주목할만 하다. (하나의 어플리케이션을 다른 플랫폼으로 포팅(Porting)하는 작업은 실로 만만치 않다.) Qt는 애플리케이션의 코드를 작성하면 컴파일을 다시 한번 하는 것만으로 포팅과 관련된 골치 아픈 문제들을 쉽게 해결할 수 있다.




http://blog.naver.com/PostView.nhn?blogId=luvweb&logNo=60012478029&redirect=Dlog&widgetTypeCall=true

C/C++언어는 너무나 유명하기 때문에 컴퓨터에 관심이 있다면, 누구나 알만한 언어입니다. 물론 이런 언어로 우리가 원하는 어플리케이션(프로그램)을 다양하게 만들고 쓸 수 있겠죠. 그러나 어떠한 기반없이 랭귀지 딸랑~하나만 가지고는 어떠한 것을 만들기 힘듭니다. 적어도 리눅스에서는 xlib라도 있어야 고생고생하면서 만들어 갈수 있겠죠. 그러나 이런 저수준 라이브러리로는 적절한 어플리케이션을 만들기 힘듭니다. 어떠한 기준이 될만한 GUI라이브러리가 있어야 하겠습니다. 이런 이유로 나온 라이브러리는 GTK(GTK+),QT, (그밖에 많죠)가 있습니다.

GTK+는 GNOME의 기반이 되는 라이브러리입니다. 처음에는 GTK라는 좀 저수준적인 라이브러리였지만, 많은 손질로 GTK+라는 이름으로 다시 나왔죠. 이것이 그 유명한 GIMP를 만든 장본인 입니다. 하지만, 구조적으로 C언어를 이용했기 때문에 GUI를 만들기 위해서는 많은 어려움이 있습니다. 혹시 GTK+에 관심이 있는 분은 GNOME2를 이용해 보시면 좋을 듯 합니다. GTK+의 단점을 많이 커버를 해서 뛰어나다고 들었습니다.

KDE라는 DESKTOP환경이 있습니다. 현재 제 linux에도 KDE를 사용하고 있죠. MS WINDOWS와 유사한 인터페이스를 가지고 있고, 상당히 안정적인 환경입니다. 이것의 기반이 되는 라이브러리가 바로 QT입니다. 현재 QT3.0.1까지 나온상태이고, All Flatfrom을 지향하고 있습니다. 쉽게 말해서 Windows, linux, MacOSX등 여러 가지 운영체제에서 쓸 수 있습니다.물론 운영체제마다 조금씩 다른 부분도 있지만, 99%가 같은 코드로 동작을 합니다.MS WINDOWS의 MFC를 알고 계시다면, 상당히 유사한 환경이라고 생각하시면, QT를 이해하시기 좋을 것입니다.

개인적으로는 QT가 GTK+보다 좋다고 말하고 싶습니다. 그러나 라이센스가 완전한 프리가 아니고, 고급 라이브러리를 사용시에는 상당한 금액을 지불해야 하는 치명적 단점이 있습니다. 그러나 이제 와서 골치아픈 GTK+하고 싶지는 않더군요. 선택은 여러분이 하셔야 합니다. 물론 개인 라이센스를 포기하시면, 무료로 Qt를 쓰실수 있습니다.

[출처] QT Programming Guide|작성자 세이지

반응형

'모르는 단어' 카테고리의 다른 글

벡터 (STL)  (0) 2014.08.06
API, SDK 란? ( 총정리 )  (0) 2014.08.01
gSOAP  (0) 2014.07.31
WSDL(Web Service Description Language)  (0) 2014.07.31
SOAP( Simple Object Access Protocol )  (0) 2014.07.31