이 책에서 다루는 내용
- GUI 생성 및 위젯 추가
- 레이아웃 관리자를 사용해 위젯 정렬
- 객체지향 프로그래밍을 사용해 GUI 생성
- Matplotlib 차트 작성
- 스레드를 사용해 네트워크 통신
- GUI를 통한 MySQL 데이터베이스 사용
- GUI의 유닛테스트 및 국제화
- 서드파티 그래픽 라이브러리로 GUI 확장
- GUI 개발의 모범 사례 이해
이 책의 대상 독자
GUI를 개발하려는 프로그래머를 대상으로 한다. 파이썬 프로그래밍 언어를 사용해 아름답고, 기능적이고, 강력한 GUI를 만들면서 이룰 수 있는 것에 놀랄지도 모른다. 파이썬은 훌륭하고 직관적인 프로그래밍 언어며 매우 배우기 쉽다.
이 책의 구성
1장, ‘GUI 폼 만들기 및 위젯 추가하기’에서는 파이썬에서 첫 번째 GUI를 개발하는 방법을 설명한다. 실행 중인 GUI 애플리케이션을 빌드하는 데 필요한 최소 코드부터 시작한다. 그 다음, 각 레시피는 GUI에 여러 위젯을 추가한다.
2장, ‘레이아웃 관리’에서는 파이썬 GUI를 만들기 위해 위젯을 정렬하는 방법을 설명한다. 그리드 레이아웃 관리자는 사용할 tkinter에 내장된 가장 중요한 레이아웃 도구 중 하나다.
3장, ‘사용자 정의 룩앤필’에서는 좋은 룩앤필의 GUI를 만드는 방법에 대한 몇 가지 예를 보여준다. 실용적인 수준에서 레시피에서 만든 Help|About 메뉴 항목에 기능을 추가한다.
4장, ‘데이터와 클래스’에서는 GUI에 표시되는 데이터를 저장하는 방법에 대해 설명한다. 파이썬의 내장 기능을 확장하기 위해 객체지향 프로그래밍 OOP를 사용할 것이다.
5장, ‘Matplotlib 차트’에서는 시각적으로 데이터를 표현하는 아름다운 차트를 만드는 방법을 설명한다. 데이터 소스의 형식에 따라 동일한 차트 내에 하나 또는 여러 개의 데이터 열을 그릴 수 있다.
6장, ‘스레드와 네트워킹’에서는 스레드, 대기열 및 네트워크 연결을 사용해 파이썬 GUI의 기능을 확장하는 방법에 대해 설명한다. GUI가 사용자 PC의 지역 범위에 전혀 제한되지 않는다는 것을 보여줄 것이다.
7장, ‘GUI를 통해 MySQL에 데이터 저장하기’에서는 MySQL 데이터베이스 서버에 연결하는 방법을 보여준다. 이 장의 첫 번째 레시피에서는 무료 MySQL 서버 커뮤니티 에디션을 설치하는 방법을 보여줄 것이며, 다음 레시피에서는 데이터베이스, 테이블을 생성한 후, 해당 데이터를 로드하고 이러한 데이터를 수정한다. 또한 MySQL 서버에서 나온 데이터를 GUI로 읽어 들일 것이다.
8장, ‘국제화와 테스트’에서는 라벨, 버튼, 탭 및 기타 위젯을 다른 언어로 표시해 GUI를 국제화하는 방법을 보여준다. 간단하게 시작해 설계 단계에서 국제화를 위한 GUI를 준비할 수 있는 방법을 살펴볼 것이다. 또한 파이썬의 내장된 유닛 테스팅 프레임워크를 사용해 GUI를 자동 테스트하는 몇 가지 방법을 살펴볼 것이다.
9장, ‘wxPython 라이브러리로 GUI 확장하기’에서는현재 파이썬과 함께 제공되지 않는 다른 파이썬 GUI 툴킷을 소개한다. wxPython이며, 파이썬 3에서 잘 동작하도록 디자인된 피닉스 버전의 wxPython을 사용할 것이다.
10장, ‘PyOpenGL과 PyGLet으로 놀라운 3D GUI 생성하기’에서는 진정한 3차원 기능을 제공함으로써 GUI를 변환하는 방법을 보여준다. 2개의 파이썬 서드파티 패키지를 사용한다.
PyOpenGL은 모든 주요 운영 체제에 내장된 그래픽 라이브러리인 OpenGL 표준에 대한 파이썬 바인딩이다. 이것으로 결과 위젯에 기본 모양과 느낌이 부여된다. PyGLet은 이 장에서 살펴볼 또 다른 바인딩이다. 또한 PyOpenGL 라이브러리를 직접 사용하는 코드를 보여준다. 관심 있는 독자에게 약간의 문호를 열 수 있는 낮은 수준의 접근 방식이다.
11장, ‘모범 사례’에서는 GUI를 효율적으로 작성하고, 유지보수가 가능하고, 확장 가능한 GUI를 유지하는 데 도움이 되는 다양한 모범 사례에 대해 살펴본다. 모범 사례는 모든 코드에 적용할 수 있고, 훌륭한 소프트웨어 실무를 설계하고 구현하는데, GUI도 예외는 아니다.
지은이의 말
이 책은 프로그래밍 쿡북이다. 모든 장은 자체적으로 포함된 특정 프로그래밍 해결책을 설명한다. 매우 간단하게 시작하지만 이 책 전체에서 파이썬 3로 작성된 동작하는 애플리케이션을 빌드하며, 각 레시피는 이 애플리케이션 빌드를 확장한다. 도중에 네트워크, 대기열, 데이터베이스, OpenGL 그래픽 라이브러리 및 기타 여러 기술을 소개하고, 디자인 패턴을 적용하며, 모범 사례를 사용할 것이다.
독자가 파이썬 프로그래밍 언어에 약간의 경험을 갖고 있다고 가정하지만, 이 책을 성공적으로 읽는 데는 필요하지 않다. 파이썬 프로그래머가 되려는 욕심이 있다면 파이썬 프로그래밍 언어에 대한 입문서로 사용될 수 있다.
다른 언어에 숙련된 개발자라면 도구 상자에 파이썬을 사용해 GUI를 만들어 전문적인 도구 상자를 확장하는 재미있는 시간을 가질 수 있다.
준비됐다면 여행을 시작해보자.
옮긴이의 말
빅데이터와 머신 러닝의 시대에 가장 인기 있는 언어는 파이썬이 아닌가 싶다. 파이썬은 개발자나 전문가들을 위한 분야를 넘어 아이들의 조기 코딩 교육, 일반인들의 코딩 열풍으로 입문용 언어로서도 인기몰이를 하고 있다.
데이터 과학부터 게임 개발에 이르기까지 다양한 분야에 사용되는 언어지만, GUI와 관련된 분야에서의 활용은 의외로 잘 알려져 있지 않은 것 같다. 이 책은 GUI 개발에 초점을 맞춰 다양한 사례를 통해 쉽게 데스크톱 애플리케이션을 만드는 방법들을 보여준다. 현실에서는 많은 서비스가 웹 서비스 형태로 제공되고 있지만, 여전히 데스크톱 환경에서의 애플리케이션이 필요한 분야도 존재한다. 이 책을 통해 업무에 필요한 다양한 툴이 더 쉽게 개발돼 업무 자동화 및 비즈니스용 툴들이 많이 나왔으면 하는 바람을 가져본다.