오픈소스 이야기

조회 수 4388 추천 수 0 댓글 1
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
오픈소스에 대한 이해를 만화로 쉽게 할 수 있도록 작성한 컨텐츠를 원작자 님의 허락을 얻고 공유하고 있습니다.
공유를 허락해주신 원작자님에게 감사 드립니다.
 

 

원작자 : https://joone.net/

 

 

Qt의 시작

1990년 하바드 노드(Haavard Nord)와 아이릭 참베(Eirik Chambe-Eng)는 노르웨이 공과대학에서 전산학을 공부하는 대학원생이였다.

 

“아이릭, 나하고 프로그램 하나 개발 안할래?”
“뭔데?”

 

“초음파 사진을 저장하는 데이터베이스 애플리케이션을 개발하려고 하는데, 유닉스, 매킨토시, 윈도에서 실행되어야해.”
“그러면, UI를 전부 따로 만들어되잖아. 나 맥 프로그래밍 안해봤는데..”

 

“나도 알아, 그래서 크로스 플랫폼을 지원하는 UI 툴킷을 만들어보는거야. C++ 사용해서 객체지향 기반으로 새로운 디스플레이 시스템을 만드는거지.”

 

두 사람은 이 때 부터 C++으로 GUI 툴킷 개발을 시작한다.

 

“바닥 부터 모든 UI 위젯(Widget) 만든다는 생각을 하니까 정말 흥미진진한데..”

“드디어 개발이 끝났네.”

“우리가 만든 GUI 툴킷(Toolkit)이 유닉스, 맥, 윈도에서 다 실행되는데, 이제 뭘하지?”
“좀 더 위젯(widget)을 추가해서 완성도 높은 애플리케이션 프레임웍(Framework)으로 발전시키면 따로 팔 수 있을 것 같아. PC에서도 윈도3.1이 이제 많이 사용되잖아. 앞으로는 GUI시대가 올거야.”

“하지만 제대로 만들려면 우리둘이서 전업으로 몇년 이 일을해야할 것 같은데..”
“ㅎㅎ 방법이 있겠지.”

 

1994년 3월 4일 하바드와 아이릭은 Quasar Technologies라는 회사를 차리고 본격적으로 개발에 몰두한다. (나중에 Trolltech로 회사 이름을 변경한다)

“툴킷 이름을 뭘로 할까?”
“글쎄, Qt 어때? 난 알파벳 중에 Q가 제일 이쁜 것 같아. 뒤에 toolkit에 t를 붙이는 거지. Xt를 따라해서 Qt?”

 

어느날 모교 교수로 부터 전화가 왔다.

“하바드군 자네가 창업을 했다고 들었네, 내가 아는 분이 소프트웨어 개발을 원하는데 가능한가?”

“물론이죠 교수님”

 

“드디어 첫 고객이 생겼어. 하지만, 이런식으로는사업을할수는없지. Qt를 알릴 좋은 방법은 없을까?”
“우리 Qt를 소스 코드와 함께 공개하면 어떨까? Qt로 만든 앱 코드를 공개하면 무료로 사용하도록 하는거지, 상업적으로 사용할 때만 돈을 받으면 되지.”

1995년 5월 20일 Qt 0.90 버전이 sunsite.unc.edu 에 업로드되었고, 6일 후에 comp.os.linux.announce에 그 사실을 알렸다. 이것이 바로 Qt의 첫번째 공개 릴리스였고, Qt Free edition 라이선스로 공개되었다. 이 라이선스는 비록 소스코드는 공개되었으나, 재배포를 허락하지 않아 자유 소프트웨어 재단(FSF)가 정의한 자유 소프트웨어 정의와는 호환되지 않았고, 이 문제는 1.45버전까지 계속된다.

“Qt를 공개했지만 10개월이 되도록 상업용 라이선스를 하나도 못팔았네..”
“몇년째 아내 수입으로 버티고 있는데, 큰일이군.”

“Qt라고 들어봤어? 새로운 UI 툴킷이 나왔는데, C++로 만들었어.. 윈도와 리눅스를 지원하고 있지. Visual C++ MFC랑 비슷해.”
”뭐라고? 리눅스도 된다고? 라이선스가 어떻게 되? 소스는 공개되어 있나?”

 

“라이선스가 약간 애매해. 소스 코드는 공개되어 있는데, 상업용 소프트웨어를 만들 때는 로열티를 내야 하고, 코드를 공개하는 소프트웨어를 만들면 무료로 사용할 수 있어.”

1996년 3월, 유럽 우주국(the European Space Agency)이 Qt의 두번째 고객이 된다.

“드디어 두번째로 Qt 라이선스를 파는구나.“

1996년 Qt 1.0이 출시되고 그해말, Qt가 1.1이 될때까지 18개의 라이선스를 판매한다.

“드디어 18개의 라이선스를 팔았어!”
“1.0버전이 나오니까 이제 장사가 좀 되네.”

KDE 프로젝트 시작

독일 출신의 마티아스 에트리히(Matthias Ettrich)는 LyX 프로젝트를 진행하다가, GUI를 만들 목적으로 Qt를 접하게 된다.

“LaTeX는 사용하기 어려우니까 UI만들면 좋을 것 같아. 그런데, 리눅스에서 Qt 툴킷이 쓸만하군, 소스코드도 공개되어 있고, 이걸로 X11기반에 새로운 데스크탑 환경을 만들면 어떨까?”

그는 이러한 생각을 여러 인터넷 뉴스 그룹에 공유했고, 반응은 폭발적이였다.

 

“저와 함께 Qt로 리눅스 데스크탑을 만들어 볼 사람이 있나요?”

“제가 Qt로 애플리케이션을 만들어 본 경험이 있어요. 동참하고 싶어요.”

“나도”, “Qt 좋아요.”, “윈도 관리자도 만들어요?”, “프로젝트 이름이 뭔가요?”

 

“이름은 CDE(Common Desktop Environment)에서 가져오지. 그냥 C대신 K을 붙이는거야. 발음이 같으니까. 바로 KDE 프로젝트.”

1996년 이렇게 KDE 프로젝트는 시작된다

 

“누가 Qt로 리눅스 데스크탑을 만든다고 하는데? 윈도 관리자 부터 응용 앱까지..”
“드디어 사람들이 진정한 객체지향 크로스 프레임웍의 진가를 알아보는군..”

하지만, 이러한 상황에 불편을 느끼는 사람들도 있었다.

“KDE는 왜 자유소프트웨어 아닌 Qt로 GNU 리눅스용 자유소프트웨어 데스탑을 만드는거야”

 

“소스코드만 공개하면 뭐하나? 수정해서 재배포도 못하고. Qt가 GPL과 호환이 안되는데, KDE 애플리케이션을 GPL로 배포하겠다고? 몰상식하군”
“그놈(GNOME) 공동체와 함께 Qt의 자유 소프트웨어 버전을 만들어야겠다.”

 

Qt 사용을 반대해온 사람들이 그놈 공동체를 만들었고 FSF와 함께 하모니라는 Qt의 자유 소프트웨어 버전을 만들기 시작한다.

“그 이야기 들었어? FSF와 GNOME이 하모니라는 Qt 호환 GUI 툴킷을 만든다는 소식”
“심각한 문제인데, 이 문제를 KDE 프로젝트 리더와 이야기를 해봐야겠어.”

 

1998년, 결국 두 사람은 이 문제를 해결하기 위해 KED 프로젝트 리더인 마티아스 에트리히((Matthias Ettrich)를 영입한다. 그리고 Qt의 라이선스는 Qt 2.0 릴리스와 함께 자유소프트웨어 정의와 호환되는 QPL(the Q Public License)를 채택한다. 마침내, 2000년 Qt/X11 2.2부터는 GPL v2로 릴리스되어 GPL 호환 문제를 모두 해결한다.

“Qt도 KDE 커뮤니티를 위해 이제 부터 GPL 라이선스로 공개됩니다.”
“고맙습니다. 이제 자유롭게 Qt를 가지고 GPL라이선스를 가진 애플리케이션을 만들 수 있겠군요.”

 

하지만, Qt의 이러한 실책은 GNOME과 Gtk+를 탄생시켰고 이후, 리눅스 데스크탑은 GNOME과 KDE로 양분되는 결과를 만들고 만다.

 

 

“그래봐야 Qt는 회사 소유잖아”
“아직도 C언어로 UI를 만들어?”

Qt의 현재

Qt 공식 개발도구인 Qt Creator 모습 (출처: 위키피디아)

 

Qt로 만들어진 LG webOS UI(출처: 위키피디아)

 

Qt는 Qt Embedded 버전을 만들어, 최초의 리눅스 기반의 스마트폰에 사용되었고, 노키아에서 만든 Maemo 플랫폼과 블랙베리 10에도 사용되었다. LG webOS도 Qt를 사용하고 있다.

참고

 

  • ?
    gnome3과flatpak과nimf 2020.05.21 23:04

    와, 정말 재미있게 봤습니다. 리눅스 쓰다가 보면 자주 보는게 qt니 gtk니 하는건데, 이런 사연이 있는지 몰랐어요.


List of Articles
번호 제목 글쓴이 날짜 조회 수
공지 최준호 - 프로그래밍의 깊은 세계로 들어가는 길 file Kevin 2018.04.22 1138
공지 허준회 - 더 나은 세상을 위한 소통 file Kevin 2018.04.22 669
공지 류창우 - 그냥 부담 없이 취미로 2 file Kevin 2018.04.22 558
공지 이희승 - 도전과 점진적 개선, 그리고 변화에 열린 마음 1 file Kevin 2018.04.22 1164
공지 김정균 - 자신을 발전시키는 소중한 공부 file Kevin 2018.04.22 489
공지 허태준 - 가장 의미 있고 즐거운 개발 file Kevin 2018.04.22 2588
공지 오픈소스 이야기 게시판 이용안내 3 file Kevin 2018.04.13 1632
59 그놈(GNOME) 데스크탑의 시작 2 Kevin 2020.08.06 1074
58 오픈소스 이미지 편집 프로그램 김프와 GTK+ 시작 2 Kevin 2020.06.08 1602
» 오픈소스 GUI 툴킷 Qt와 KDE 프로젝트의 시작 1 Kevin 2020.05.21 4388
56 리눅스 배포본과 데비안 프로젝트 Kevin 2020.05.11 1012
55 리눅스 이야기: 네트워킹 Kevin 2019.07.19 2006
54 FreeCAD 한국어 번역 함께 해 보아요 8 세벌 2019.06.26 2893
53 리눅스 이야기: 리눅스 vs. 미닉스 2부 Kevin 2019.05.27 1648
52 리눅스 이야기: 리눅스 vs. 미닉스 1부 Kevin 2019.02.22 1578
51 리눅스 이야기: 진정한 자유 운영체제 1 Kevin 2018.12.27 1433
50 리눅스 이야기: 운영체제를 만들자! 7 Kevin 2018.12.03 1954
49 LibreOffice Korea 2 세벌 2018.11.27 1554
48 김프 2.10.8 나왔습니다. 1 세벌 2018.11.14 1103
47 XFree86과 X.Org Kevin 2018.08.13 1162
46 X11의 탄생 4 Kevin 2018.07.25 1410
45 X-Window 탄생 1 Kevin 2018.06.21 1917
44 오픈소스란 무엇인가요? 1 file Kevin 2018.06.01 11079
43 [TED2016] 리눅스의 기본 철학(한글 자막) 1 file PEACH 2018.05.15 1044
42 ‘리눅스 아버지’처럼 성공하기 위한 11가지 조건 file PEACH 2018.05.15 903
41 깃허브 러닝랩 - 혼자서 아무것도 없이 깃허브 마스터 가능합니다. 2 file PEACH 2018.05.11 1854
40 The C programming language 2nd edition 2 세벌 2018.05.11 2302
Board Pagination Prev 1 2 3 ... 4 Next
/ 4
CLOSE