Top

파이썬 GUI 프로그래밍 쿡북 2/e [파이썬 3로 쉽고 빠르게 GUI 개발하기]

  • 원서명Python GUI Programming Cookbook - Second Edition: Use recipes to develop responsive and powerful GUIs using Tkinter (ISBN 9781787129450)
  • 지은이부르크하르트 메이어(Burkhard Meier)
  • 옮긴이김동호
  • ISBN : 9791161751474
  • 35,000원
  • 2018년 04월 26일 펴냄
  • 페이퍼백 | 460쪽 | 188*235mm
  • 시리즈 : acorn+PACKT, 프로그래밍 언어

판매처

개정판

책 소개

소스 코드 파일은 여기에서 내려 받으실 수 있습니다.

본문에 쓰인 컬러 이미지는 여기에서 내려 받으세요.
요약

파이썬 3를 사용해 GUI 프로그래밍 방법을 단계별로 설명하는 유용한 책이다. 앞의 레시피를 개선해 나가면서 다양한 분야의 새로운 개념을 이해시키는 방식은 해당 라이브러리가 왜 필요하고 어떻게 사용하는지 이해하기 쉽게 해준다. 단계별로 GUI 관련 기술뿐만 아니라 네트워크, 데이터베이스, 객체지향 사고에 이르기까지 적절하게 배울 수 있도록 예제가 준비돼 있어 언어 자체를 배우는 입문용으로도 적당하다. 비주얼 C++와 같은 쉽지 않은 도구로 데스크탑용 GUI 프로그래밍을 해본 경험이 있는 사용자라면 쉽고 간단하게 GUI를 만드는 파이썬의 심플함과 강력함에 놀라운 즐거움을 느끼게 되리라 생각한다.

이 책에서 다루는 내용

■ 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를 만들어 전문적인 도구 상자를 확장하는 재미있는 시간을 가질 수 있다. 준비됐다면 여행을 시작해보자.

지은이 소개

부르크하르트 메이어(Burkhard Meyer)

소프트웨어 테스터 및 개발자며 소프트웨어 테스트 자동화 개발, 실행 및 분석을 전문으로 소프트웨어 산업에서 17년 이상의 경력을 쌓았다. 파이썬 3 소프트웨어 테스트 자동화 개발과 SQL 관계형 데이터베이스 관리, 저장 프로시저의 개발, 디버깅 코드에 대해 매우 잘 알고 있다.
Visual Studio .NET C#, Visual Test, TestComplete 및 기타 테스트 언어(C / C++ 등)를 경험했지만, 지난 5년 동안 파이썬 3로 테스트 자동화를 개발해 아이폰(iPhone), 안드로이드(Android) 스마트폰 및 태블릿용 FLIR ONE(현재 3세대) 적외선 카메라뿐만 아니라 FLIR 볼로미터 IR 카메라 플랫폼의 품질을 이끌었다.
예술, 미용 및 프로그래밍에 대한 높은 평가를 받았으며, C# 및 파이썬으로 일상적인 테스트 자동화 작업을 능률화해 자동화된 테스트를 수주 동안 무인으로 실행할 수 있도록 GUI를 개발했다. 또한 분석할 유용한 데이터를 수집해 자동으로 그래프를 만들고, 매일 밤 자동 테스트가 완료되면 상급 관리자에게 이메일을 보냈다.
현재 InfoGenesis(현재 Agilysys), QAD, InTouch Health 및 FLIR Systems의 선임 테스트 자동화 엔지니어 및 디자이너로 일하고 있다. 링크드인(LinkedIn) 계정(https://www.linkedin.com/pub/burkhard-meier/5/246/296)을 통해 연락할 수 있다.

옮긴이의 말

빅데이터와 머신 러닝의 시대에 가장 인기 있는 언어는 파이썬이 아닌가 싶다. 파이썬은 개발자나 전문가들을 위한 분야를 넘어 아이들의 조기 코딩 교육, 일반인들의 코딩 열풍으로 입문용 언어로서도 인기몰이를 하고 있다.
데이터 과학부터 게임 개발에 이르기까지 다양한 분야에 사용되는 언어지만, GUI와 관련된 분야에서의 활용은 의외로 잘 알려져 있지 않은 것 같다. 이 책은 GUI 개발에 초점을 맞춰 다양한 사례를 통해 쉽게 데스크톱 애플리케이션을 만드는 방법들을 보여준다. 현실에서는 많은 서비스가 웹 서비스 형태로 제공되고 있지만, 여전히 데스크톱 환경에서의 애플리케이션이 필요한 분야도 존재한다. 이 책을 통해 업무에 필요한 다양한 툴이 더 쉽게 개발돼 업무 자동화 및 비즈니스용 툴들이 많이 나왔으면 하는 바람을 가져본다.

옮긴이 소개

김동호

PC 통신 시절부터 인터넷으로 전환되는 시점까지 개발자로서 패러다임의 흥망성쇠를 겪으며 10년이 넘는 시간을 보냈다. 돌아보니 C부터 시작해 인기 있던 스크립트 언어들까지 참으로 넓고도 얄팍한 삶을 살아왔다는 생각도 든다. 지금은 개발자로서의 시간을 보내고 있지 않지만, 혹시 대박의 기회가 생기지 않을까 하는 생각에 여전히 곁눈질만 하고 있는 게으른 직장인이다. 개발 환경은 점점 편해지고, 툴의 생산성은 점점 높아져감에 혹시나 하면서 말이다.

목차

목차
  • 1장. GUI 폼 만들기 및 위젯 추가하기
    • 소개
    • 첫 파이썬 GUI 만들기
    • GUI 크기 조정 막기
    • GUI 폼에 라벨 추가하기
    • 버튼 생성 및 텍스트 속성 변경하기
    • 텍스트 박스 위젯
    • 위젯에 포커스 설정하고 비활성화하기
    • 콤보 박스 위젯
    • 초기 상태가 다른 체크 버튼 만들기
    • 라디오 버튼 위젯 사용하기
    • 스크롤되는 텍스트 위젯 사용하기
    • 순환문에서 위젯 추가하기

  • 2장. 레이아웃 관리
    • 소개
    • 라벨 프레임 위젯에 라벨들 배열하기
    • 패딩을 사용해 위젯 주변에 공간 추가하기
    • 위젯이 동적으로 GUI를 확장하는 방법프레임 내에 프레임을 임베드해 GUI 위젯 정렬
    • 메뉴 바 생성하기
    • 탭 위젯 만들기
    • 그리드 레이아웃 관리자 사용하기

  • 3장. 사용자 정의 룩앤필
    • 소개정보, 경고, 오류 메시지 박스 생성하기독립적인 메시지 박스 생성 방법
    • tkinter 윈도우 형식의 타이틀 생성 방법
    • 메인 기본 윈도우 아이콘 변경하기
    • 스핀 박스 컨트롤 사용하기
    • SUNKEN, RAISED 형태의 입체적 위젯
    • 툴팁 생성하기
    • GUI에 프로그레스 바 추가하기
    • 캔버스 위젯 사용법

  • 4장. 데이터와 클래스
    • 소개
    • StringVar() 사용 방법
    • 위젯에서 데이터를 얻는 방법
    • 다중 레벨 전역 변수 사용하기
    • 클래스에서 GUI를 개선하는 코딩 방법
    • 콜백 함수 작성하기
    • 재사용 가능한 GUI 컴포넌트 만들기

  • 5장. Matplotlib 차트
    • 소개
    • Matplotlib으로 아름다운 차트 만들기pip로 whl 확장자의 Matplotlib 설치하기
    • 첫 차트 만들기
    • 차트에 레이블 배치하기
    • 차트에 범례 추가하는 방법
    • 차트 스케일링
    • 동적으로 차트 스케일 조정하기

  • 6장. 스레드와 네트워킹
    • 소개
    • 멀티스레드 생성하기
    • 스레드 시작하기
    • 스레드 멈추기
    • 큐 사용법
    • 다른 모듈 간에 큐 전달하기
    • 대화상자 위젯을 사용해 네트워크에서 파일 복사하기
    • 네트워크 통신을 위해 TCP/IP를 사용하기
    • urlopen으로 웹 사이트 데이터 읽어오기

  • 7장. GUI를 통해 MySQL에 데이터 저장하기
    • 소개
    • MySQL 서버 설치하고 접속하기
    • MySQL 데이터베이스 연결 설정하기
    • 파이썬 GUI 데이터베이스 설계하기
    • SQL INSERT 명령 사용하기
    • SQL UPDATE 명령 사용하기
    • SQL DELETE 명령 사용하기
    • MySQL 데이터베이스에서 데이터 저장, 조회하기
    • MySQL 워크벤치 사용하기

  • 8장. 국제화와 테스트
    • 소개
  • 다른 언어로 위젯 텍스트 표시하기
    • GUI 언어 한 번에 바꾸기
    • GUI 지역화
    • 국제화 GUI 준비하기
    • GUI를 설계하는 애자일 방법
    • GUI 테스트 코드가 필요할까?
    • 디버그 워치 설정하기
    • 다양한 디버그 출력 레벨 설정하기
      • main 을 사용한 셀프 테스트 코드 만들기
    • 유닛 테스트로 강력한 GUI 만들기
    • 이클립스 PyDev IDE 로 유닛 테스트 작성하기

  • 9장. wxPython 라이브러리로 GUI 확장하기
    • 소개
    • wxPython 라이브러리 설치하기
    • wxPython으로 GUI 생성하기
    • wxPython으로 빠르게 컨트롤 추가하기
    • 메인 tikinter 앱에 wxPython 앱 임베딩하기
    • wxPython에 tkinter GUI 코드 임베딩하기
    • 2개의 다른 GUI 프레임워크 제어하기
    • 연결된 두 GUI 사이의 통신

  • 10장. PyOpenG과 PyGLet으로 놀라운 3D GUI 만들기
    • 소개
    • PyOpenGL로 GUI 변형하기
    • 3D GUI!
    • 비트맵을 이용해 멋진 GUI 만들기
    • PyOpenGL보다 쉬운 PyGLet으로 GUI 변형하기
    • 놀라운 색상의 GUI
    • OpenGL 애니메이션
    • tkinter 로 슬라이드 쇼 만들기

  • 11장. 베스트 프랙티스
    • 소개
    • 스파게티 코드 피하기
    • 준비하기
    • 커넥트 모듈 init 사용하기
    • 절차지향과 객체지향 방식의 혼합
    • 코드 명명 규칙 사용하기
    • OOP를 사용하지 않을 때
    • 디자인 패턴을 성공적으로 사용하는 방법
    • 복잡성 피하기

도서 오류 신고

도서 오류 신고

에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

(예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안