2011년 6월 9일 목요일

GTK+와 Glade3 GUI 프로그래밍 도움글 - Part 2

출처 : http://www.micahcarrick.com/12-27-2007/gtk-glade-tutorial-part-2.html
GTK+와 Glade3 GUI 프로그래밍 도움글 – Part 2
December 27th, 2007

GTK+ 개발을 위한 프로그래밍 언어 선택하기

GTK+와 Glade3 GUI 프로그래밍 도움글 글타래의 Part 1에서 우리는 GTK+ text editor application의 graphical user interface(GUI)를 디자인하였다. 그 후로 우리는 application의 사용자 인터페이스를 묘사하는 XML 파일(tutorial.glade)만을 작성하였다.

GTK+와 Glade3 GUI 프로그래밍 도움글 글타래의 이번 part에서 나는 GTK+ 개발에 사용할 수 있는 다양한 프로그래밍 언어에 대해서 논의할 것이다. 이 도움글의 뒷역임 part들은 C 와 Python 프로그래밍 둘다에 대해서 다룰 것 이다. 나의 도움으로 여러분들이 사용법을 배우길 원하는 것이 무엇인지 (혹은 둘다)에 대한 결정을 내릴 수 있길 바란다.

GTK+와 Glade3 GUI 프로그래밍 도움글 내용

1. Part1 - Glade3를 이용한 User Interface 디자인 하기
1. GTK+ 개념의 간단한 개요
2. Glade3의 소개
3. Glade interface와 친숙해 지기
4. Widget의 속성 다루기
5. Signal을 위한 Callback함수 지정하기
6. GtkWindow에 Widget 더하기
7. Packing 방법에 따른 모양새의 효과
8. Menu (혹은 Toolbar) 편집하기
9. 주 Window 마지막 손질하기
10. Glade를 사용하는데 필요한 추가 도움 얻기
11. 다음 것들...

2. Part 2 – GTK+ 개발을 위한 프로그래밍 언어 선택하기
1. 가장 좋은 언어는 ?
2. 언어 선택에 고려해야할 것들
3. Python과 C 언어 비교해서 살펴보기
4. 다음 것들...
3. Part 3 – Glade 파일을 실행하는 기본적인 프로그램 작성하기
1. 개발환경 구성하기
2. GtkBuilder와 LibGlade
3. 가장 간단한 application
4. application 컴파일 하고 실행하기
5. 코딩으로 넘어가기
6. 다음 것들...

가장 좋은 언어는?

이러건 여러분들의 관심에서 지워버리자. 이건 순전히 여러분의 여생을 이것에 관한 대답만 읽는데 보내도록 하는 질문이다. 그리고 그 대답들은 제각각일 것이다. 문제는 대답이 각각의 다른 상황에 처한 사람에 따라 다르게 답할 수 있기때문에 대답을 구하는 것 자체가 잘못된 것이다. 각각의 언어들은 장점과 단점을 동시에 가지고 있다. 물어봐야 하는 질문은 어떤언어가 이 특정 프로젝트를 진행하는데 있어서 나에게 가장 적합한지로 수정해야한다.


언어 선택에 고려해야할 점들


하나의 언어를 가지고 시작하는 시점에 기억해야할 중요한 것은 다른 언어에 대한 열린 마음을 유지하는 것이다. 여러분이 한번 어떤 언어가 작업에 알맞는 어떠한 장점이 있는지 알고 이해한다면, 처음에 언어 x로 프로그래밍을 시작한더라도 나중에 언어 y로 전환할 수 있다. GTK+의 개념은 언어를 바꾸어도 동일하게 유지된다.

1. 숙련도 얼마나 오랜 시간, 인내하고 헌신 하는데 기꺼이 노력을 들일수 있는지 뿐만 아니라 일반적인 프로그램 숙련도도 언어를 선택하는데 중요한 요소이다. 어떠한 프로그래밍 경험도 없는 사람은 새로운 언어의 형식과 구성 뿐만아니라 기본적인 프로그래밍 개념을 공부해야만 한다. 숙력된 프로그래머는 빠르게 비교해 보고 새로운 언어를 선택할 수 있다. 그리고 그것을 배우는데 드는 비용에 대해 제공할 수 있는 게 어떤게 있는지에 대해서 좀더 초점을 맞출 수 있다. 게다가, 여러분이 이미 PHP 경험자라면, 친숙한 PHP를 가지고 GTK+ 개발을 시작할 수 있을 것이다. 아마도 여러분들은 대학에서 C++을 다루는 코스를 거쳤을 것이라 여기서 다루기를 원할 것이다. Visual Basic으로만 작업을 해본 사람도 있겠지만, C를 배우고 익숙해 지는데만 준비 되어 있다.

2. 활발한 교류와 지원 GTK+는 C언어로 쓰여졌다. 다른 언어들은 그 기능을 “wrap”하는 “language bindings”으로 지원한다. 많은 활동적인 프로젝트들이 binding을 중요한 요소로 제공한다. 여러분은 GTK+의 새로운 배포버전으로 빠르게 갱신되고 bug고 수정되는 언어를 선택하고 싶어한다. (내가 여기서 언급한 모든 언어들은 대체적으로 매우 잘 갱신되어 진다.) 게다가, 이러한 강력한 사용자 기반의 큰 교류장은 여러분이 대부분의 도움을 얻어갈 수 있는곳이기 때문에 아주 중요하다. GTK+를 위해 특정언어를 사용하는 사람들 더 많아 질 수 록, 더 많은 정보들이 제공되어 질 것이다.

3. 효과적인 프로그래머와 효과적인 프로그램 얼마나 쉽게 프로그램을 사용하느냐와 얼마의 수행시간과 lower-level에서 다룰수 있는냐에 대한 효과적인 프로그램 사이에는 trade-off이 존재한다. 많은 application들이 어떤 두 언어의 사이에서 생기는 차이점을 무시할만 하다. 그리고 새내기 프로그래머는 이러한 점들에 유념하지 않는다. 이러한 점들 때문에 결과물의 증가가 자주 결정적인 요소가 된다. 일례로 나는 GUI를 이용한 line utility같은 간단한 command를 처리하는 인터페이스 수행하는 program을 작성해야할 때 Python이나 Ruby와 같은 것들을 사용한다. 그러나 복잡한 작업을해야한다면 C나 C++을 사용한다. 사실 여러분은 하나의 프로젝트에 여러게의 언어를 사용할 수 있다. C나 C++에서는 효과적으로 메모리와 프로세서를 사용하는 루틴을 작성하고 나머지 부분에서 Python이나 Ruby를 사용한다.

4. 언의 성별 맞는 말이다. 어떤 언어가 어떻게 느껴지고 보여지는지는 하나의 요소다. 여러분은 코딩작업을 시작하는데 많은 시간을 소비한다. 특정 언어가 화면에서 어떻게 흘러가고 어떻게 읽혀지고, 그리고 결정적인 개발 프로세서 어떻게 되는지는 다른사람보다 특별히 느껴질 수 있다. 여러분은 프로그래밍하는 자체를 즐겨라.

Python과 C언어를 비교해서 살펴보기


위의 결정사항들에 기반해서 두개의 언어들로 이번 도움글을 기획하기로 결정했다. 위의 결정사항에 가장 잘 맞는 것으로 C와 Python를 제안하는 것은 내가 조심스럽게 내놓는 의견이다. 둘다 아주 많은 커뮤니티 지원을 가지고 있다. 그리고 리눅스 특히 GNOME을 위해 개발된 프로젝트의 많은 부분들에 사용되고 있다. 더욱이, 효율성과 성과성에 대한 저변에서 양 끝단을 이룬다. 여러분은 두 언어의 유사성과 차이점 둘다를 이 도움글 전체에서 살펴볼 수 있다.
만약 여러분이 프로그램 경험이 없다면, 있어도 Visual Basic이나 PHP같은것에 대한 경험만 있다면 난 Python으로 시작하기를 추천한다. C, C++이나 Java 경험을 가진 Python을 배우길 원하는 사람에게도 마찬가지이다. 이건 프로그램하기 즐겁고 경위로울 정도로 빠르게 배우고 사용할 수 있는 놀랄정도로 현대적인 언어이다. 리눅스에서 Rapid Application Development(빠른 응용프로그램 개발)을 위해서 Glade와 Pyton은 아주 훌룡한 조합이다. www.pygtk.org에서 Python의 GTK+ binding인 PyGTK에 대해서 좀더 알아 보아라.
여러분이 경험많은 프로그래머이거나 특정한 목적을 가진 학생이라면, GTK+ 개발에 C나 C++을 배우는 것은 의미가 있다. 특히 이미 C나 C++에 친숙하다면. 더욱이 여러분은 이미 존재하는 프로젝트에 공헌하기 위한 더 많은 기회들이 있을 것이다. 개인적으로 나는 C언어로 GTK+ 개발이 주를 이룬다. 나머지 시간은 다른 것으로 보내지만 말이다.

다음의 것들?


GTK+와 Glade3 GUI 프로그래밍 도움글 – Part 3 에서 나는 여러분의 개발 환경을 설정하고 우리가 part 2에서 만든 Glade 파일을 C나 Python을 가지고 간단하게 구현하는 것에 대해서 이야기 할 것이다.
여러분이 읽고 싶지 않고 마지막 결과물을 보느게 낳다라고 생각하면:

댓글 없음:

댓글 쓰기