New

Tkinter를 사용한 파이썬 GUI 프로그래밍 2/e [사용자 친화적인 기능성 GUI 애플리케이션 설계와 개발]

  • 원서명Python GUI Programming with Tkinter - Second Edition: Design and build functional and user-friendly GUI applications (ISBN 9781801815925)
  • 지은이앨런 무어(Alan D. Moore)
  • 옮긴이이태상
  • ISBN : 9791161758428
  • 45,000원
  • 2024년 04월 30일 펴냄
  • 페이퍼백 | 804쪽 | 188*235mm
  • 시리즈 : 프로그래밍 언어

책 소개

소스 코드 파일은 여기에서 내려 받으실 수 있습니다.
https://github.com/AcornPublishing/gui-tkinter-2e

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

Tkinter는 대표적인 파이썬 GUI 라이브러리다. 이 책은 Tkinter를 사용해 윈도우즈, 맥OS, 리눅스의 데스크톱 애플리케이션을 개발하는 방법을 설명한다. 또한 기업 환경의 가상 시나리오를 바탕으로 요구분석, 설계, 개발, 테스트, 운영 단계를 따라가면서 실무 환경에 적용할 수 있는 방법론까지 배울 수 있다.

이 책에서 다루는 내용

◆ 체계적이고 반응성 높은 기능형 GUI 애플리케이션 제작
◆ 클래스와 객체지향 프로그래밍을 사용한 위젯 기능 확대
◆ MVC와 버전 관리를 사용한 앱 확장성 도모
◆ 유효성 검증과 단위 테스트를 통한 앱 무결성 확보
◆ 사용자 요구 분석과 반영을 위한 도구와 프로세스 활용
◆ SQL, HTTP, Matplotlib, 스레드 프로그래밍, CSV 등 실전 기술 습득
◆ PostgreSQL을 사용한 데이터 보안 유지

이 책의 대상 독자

많은 경험이 없어도 파이썬의 기본만 알면 충분하다. 대형 애플리케이션을 설계하고 구축할 수 있게 차근차근 단계를 밟을 것이며 고급 프로그래머가 되기 위해 필요한 기법들을 설명할 것이기 때문이다.
또한 데이터 과학, 웹 개발, 시스템 운영이 주요 업무더라도 부가적으로 GUI 애플리케이션을 만들 필요가 있는 개발자에게도 적합하다. GUI 애플리케이션 제작에 필요한 지식과 기법을 공부할 것이기 때문이다.
마지막으로 Tkinter에 관심 있는 경험 많은 파이썬 프로그래머에게도 유용할 것이다. 이 책의 상당 부분은 Tkinter 라이브러리의 세부 사항을 설명하기 때문이다.

이 책의 구성

1장, ‘Tkinter 소개’에서는 기본적인 Tkinter 라이브러리를 알아보고 간단한 Tkinter 애플리케이션을 제작한다. 또한 그 자체가 Tkinter 애플리케이션의 본보기인 IDLE을 소개한다.
2장, ‘GUI 애플리케이션 설계’에서는 사용자 요구를 구현 가능한 설계로 전환하는 과정을 진행한다.
3장, ‘Tkinter와 Ttk 위젯으로 기본 폼 제작’에서는 CSV 파일에 데이터를 저장하는 기본적인 데이터 입력 애플리케이션을 제작한다.
4장, ‘클래스로 코드 개선’에서는 전반적인 객체지향 프로그래밍 기법뿐만 아니라 좀 더 이해하기 쉽고 관리하기 편한 GUI 애플리케이션을 만들고자 Tkinter만의 클래스 사용법을 살펴본다.
5장, ‘검증과 자동화로 사용자 오류 최소화’에서는 폼에 자동으로 데이터를 채우고 검증하는 방법을 알아본다.
6장, ‘애플리케이션 확장 계획’에서는 하나의 스크립트 파일을 여러 파일로 적절하게 분리하고, 애플리케이션을 파이썬 모듈로 빌드하며, 좀 더 관리가 용이한 코드 기반을 만들고자 관심사 분리를 구현한다.
7장, ‘메뉴와 대화상자 제작’에서는 Tkinter를 사용해 주 메뉴를 제작한다. 또한 통상적인 메뉴 기능을 구현하고자 내장 대화상자를 사용하는 방법도 알아본다.
8장, ‘Treeview와 Notebook으로 레코드 탐색’에서는 Ttk의 Treeview와 Notebook을 사용해 데이터 탐색 시스템을 구현하며, 데이터 추가만 가능했던 애플리케이션을 데이터 읽기, 쓰기, 갱신도 가능하게 개발한다.
9장, ‘스타일과 테마로 룩앤필 개선’에서는 애플리케이션의 색상, 글꼴, 위젯 스타일을 변경하는 방법과 이를 활용해 애플리케이션을 좀 더 유용하고 매력적으로 만드는 방법을 알아본다.
10장, ‘크로스플랫폼 호환성 유지’에서는 애플리케이션이 윈도우즈, 맥OS, 리눅스에서도 자연스럽게 작동하게 하는 파이썬과 Tkinter의 기술을 적용한다.
11장, ‘unittest로 테스트 자동화’에서는 단위 테스트와 통합 테스트의 자동화를 통해 애플리케이션을 검증하는 방법을 알아본다.
12장, ‘데이터 저장소 개선’에서는 안정적인 데이터 저장을 위해 CSV 파일에서 데이터베이스로 저장소를 변경한다. 이에 따라 SQL과 관계형 데이터베이스 모델에 관해 알아본다.
13장, ‘클라우드 연계’에서는 HTTP 서버, REST 서비스, SFTP 서버와 같은 네트워크 자원을 다룬다. 이들 서비스를 사용해 데이터와 파일을 다운로드하거나 업로드하는 방법을 알아본다.
14장, ‘비동기 프로그래밍’에서는 장기 실행 프로세스, 즉 시간이 오래 걸리는 프로세스 실행 중에도 애플리케이션 성능이 떨어지지 않게 비동기 프로그래밍과 멀티스레드 프로그래밍을 적용하는 방법을 알아본다.
15장, ‘캔버스를 사용한 데이터 시각화’에서는 데이터 시각화와 UI 애니메이션을 구현하고자 Tkinter의 Canvas 위젯을 사용하는 방법을 알아본다. 또한 Matplotlib 차트의 사용법도 알아보고 간단한 게임도 만든다.
16장, ‘패키징’에서는 애플리케이션 배포를 위해 파이썬 패키지뿐만 아니라 독립적으로 실행 가능한 파일을 만드는 방법을 알아본다.

저자/역자 소개

지은이의 말

글을 쓰는 일은 단지 문법과 구두법 적용이 전부가 아니다. 마찬가지로 애플리케이션 개발도 프로그래밍 언어와 라이브러리 API 지식만으로 할 수 없다. 단지 문법과 함수 호출 방법을 통달한 것만으로 사용자가 업무를 수행하고 가치 있는 데이터를 보전하며 완전한 결과를 도출하게 하는 애플리케이션을 설계하기에는 부족하다는 말이다. 개발자는 사용자 요구와 기대를 효과적인 인터페이스로 설계하고 이를 구현하기 위한 최적의 기술을 적용해야 한다. 또한 대량의 코드를 구성하고 테스트하며 관리 가능한 수준을 지키면서도 부주의한 오류가 없게 유지해야 한다.
이 책은 단순히 특정 GUI 툴킷의 참조 매뉴얼이 아니다. 작은 기업 환경의 가상 시나리오를 따라가면서 애플리케이션 프로그래머의 실무 경험을 제공한다. 또한 Tkinter를 비롯한 여러 유용한 라이브러리도 살펴보며 단순한 파이썬 스크립트가 아닌 완전한 기능을 갖춘 GUI 애플리케이션을 개발하는 방법을 알아본다.
이 책을 마칠 무렵에는 회사 실무 환경에 적합한 데이터 중심의 애플리케이션 개발에 확신을 갖게 될 것이다.

지은이 소개

앨런 무어(Alan D. Moore)

2005년부터 파이썬 코딩을 했다. 현재 미국 테네시주 프랭클린에 거주하며 현지 지방정부의 데이터베이스 앱을 개발하고 있다. 관심 기술 분야는 파이썬, 자바스크립트, 리눅스, 아날로그 전자기기다. 여유 시간에는 자신의 유튜브 채널인 ‘Alan D Moore Codes’에 코딩 강의 동영상을 올리고 작곡도 하며 기타 효과(guitar effect)도 만든다. 또한 교회와 스카우트 부대에서 자원 봉사를 하며 아내와 함께 다섯 자녀를 양육하고 있다.

옮긴이의 말

1991년에 등장한 파이썬이 현재 가장 인기 있는 프로그래밍 언어임을 부정할 사람은 없을 것이다. 특히 AI, IoT, 데이터 분석 등 최근 디지털 영역에서 중대한 역할을 하며 약 20년 동안 왕좌에 있었던 자바를 끌어내렸다.
디지털 영역 외에도 파이썬은 오랜 기간 수많은 패키지가 제작됨에 따라 다양한 분야에서 사용될 수 있게 발전했다. 그중 한 분야는 데스크톱 앱이다. 현재의 웹과 모바일 세상에서도 네트워크 제약 사항, 보안이 필요한 클라이언트, 솔루션 관리, 모니터링, 기타 업무 특성상 독립형 데스크톱 앱의 필요성은 여전하다.
파이썬으로 데스크톱 앱을 구축하기 위한 여러 GUI 라이브러리가 있지만 그중 대표 주자는 Tkinter와 PyQt라고 할 수 있다. PyQt가 디자인 측면에 강점이 있는 대신 난이도가 있다면 Tkinter는 기능 구현에 중점을 둘 수 있게 빠르고 쉬운 개발 방법을 지원한다. 그리고 이 책에서는 Tkinter를 다룬다.
그러나 이 책은 단순히 Tkinter의 사용법만 설명하지 않는다. 가상의 프로젝트를 설정하고 요구 분석, 설계, 개발, 테스트, 운영(유지보수)이라는 각 단계를 거치며 그에 필요한 접근법을 제시함으로써 실제 프로젝트에서 Tkinter를 손쉽게 적용할 수 있게 한다.
또한 데스크톱 앱의 개발 경험이 없는 사람이라면 이 책을 통해 기본적이고 표준적인 GUI 구축 방법론을 배울 수 있다. 이는 Tkinter가 아닌 라이브러리, 심지어 파이썬이 아닌 다른 언어로 데스크톱 앱을 개발할 때도 도움이 될 것이다.
아무쪼록 이 책을 통해 데스크톱 GUI 앱 개발이라는 특별한 역량을 여러분의 인벤토리에 추가하기 바란다.

옮긴이 소개

이태상

자바와 웹 전문가로서 오랜 기간 개발, 교육, 컨설팅을 했으며 현재 전자금융 관련 업무를 담당하고 있다. 『톰캣 최종분석』(에이콘, 2005)부터 『리액트 16』(에이콘, 2020)까지 십여 권의 IT 서적을 번역했다.

목차

목차
  • 01장. Tkinter 소개
    • Tkinter와 Tk 소개
      • Tkinter 선택의 이유
      • Tkinter 설치
        • 파이썬 설치: 윈도우즈
        • 파이썬 설치 맥 : OS
        • 파이썬과 Tkinter 설치: 리눅스
      • IDLE 소개
        • IDLE 셸 모드
        • IDLE 편집기 모드
        • Tkinter 예제로서의 IDLE
      • Tkinter 버전의 Hello World
    • Tkinter 개요
      • Tkinter 위젯으로 GUI 구성
      • 배치 관리자로 위젯 배열
      • 폼 작동시키기
      • Tkinter 제어 변수로 데이터 다루기
        • 콜백 함수에 제어 변수 사용
        • 제어 변수의 중요성
    • 정리

  • 02장. GUI 애플리케이션 설계
    • ABQ AgriLabs 과제 분석
      • 문제 조사
      • 관련 정보 수집
        • 인터뷰
      • 조사 내용 분석
        • 데이터 제공자로부터의 정보
        • 애플리케이션 사용자로부터의 정보
        • 기술지원 팀으로부터의 정보
        • 데이터 소비자로부터의 정보
    • 요구 명세 문서화
      • 간단한 명세 구성
      • ABQ 프로그램 명세 작성
    • 애플리케이션 설계
      • 입력 위젯 결정
      • 필드 그룹화
      • 폼 레이아웃
      • 애플리케이션 레이아웃
    • 기술 요소 검토
    • 정리

  • 03장. Tkinter와 Ttk 위젯으로 기본 폼 제작
    • Ttk 위젯 세트
      • Label
      • Entry
      • Spinbox
      • Checkbutton
      • Radiobutton
      • Combobox
      • Text
        • Text의 인덱스
      • Button
      • LabelFrame
    • 애플리케이션 구현
      • 첫 번째 단계
      • 데이터 레코드 폼
        • 기록 정보 섹션
        • 환경 정보 섹션
        • 작물 정보 섹션
        • GUI 마무리
      • 콜백 함수 작성
        • 초기화 콜백
        • 저장 콜백
      • ABQ 앱 테스트
    • 정리

  • 04장. 클래스로 코드 개선
    • 파이썬 클래스 입문
      • 클래스 사용의 이점
        • 파이썬의 필수 요소
        • 데이터와 함수의 명시적 관계 설정
        • 재사용 가능한 코드
      • 클래스 생성 문법
        • 속성과 메서드
        • 매직 속성과 매직 메서드
        • 퍼블릭, 프라이빗, 프로텍티드 멤버
      • 상속과 하위 클래스
    • Tkinter에서 클래스 사용
      • Tkinter 클래스 개선
      • 복합 위젯
      • 컴포넌트 캡슐화
      • Tk 하위 클래스
    • 클래스를 사용한 애플리케이션 재작성
      • Text 위젯에 StringVar 추가
        • 변수 전달
        • 변수로 위젯 동기화
        • 위젯으로 변수 동기화
      • 개선된 LabelInput()
      • 폼 클래스
      • 애플리케이션 클래스
    • 정리

  • 05장. 검증과 자동화로 사용자 오류 최소화
    • 사용자 입력 검증
      • 데이터 오류 방지 전략
      • Tkinter 방식의 검증
        • validate 인자
        • validatecommand 인자
        • invalidcommand 인자
    • 검증 위젯 클래스
      • 날짜 위젯 제작
    • GUI에서 검증 위젯 구현
      • 다중 상속
      • 검증 믹스인 클래스 개발
      • ValidatedMixin으로 검증 위젯 만들기
        • 기본 입력 위젯
        • Date 위젯
        • Combobox 위젯
        • 범위 제한 Spinbox 위젯
        • 검증 가능 Radiobutton 위젯
      • 검증 가능 위젯으로 폼 개선
      • 위젯 사이의 상호작용을 통한 검증
        • Spinbox 범위의 동적 변경
        • 필드의 동적 비활성화
      • 오류 보여주기
      • 폼 제출 방지
    • 입력 자동화
      • 날짜 자동화
      • 나머지 필드 자동화
    • 정리

  • 06장. 애플리케이션 확장 계획
    • 관심사 분리
      • MVC 패턴
        • 모델
        • 컨트롤러
      • 설계 복잡성의 이유
    • 애플리케이션 디렉터리 구성
      • 기본 디렉터리 구조
        • abqdataentry
        • README
        • docs 디렉터리
        • 파이썬 패키지 제작
    • 애플리케이션 분리
      • 모델 모듈 만들기
      • 위젯 이관
      • 뷰 이관
        • 뷰의 중복 코드 제거
        • 커스텀 이벤트로 강한 결합 제거
      • 애플리케이션 파일 작성
      • 애플리케이션 실행
    • 버전 관리 시스템
      • 깃 사용을 위한 빠른 안내
        • 깃 저장소의 초기화와 설정
        • 코드 추가와 커밋
        • 커밋의 확인과 활용
    • 정리

  • 07장. 메뉴와 대화상자 제작
    • 애플리케이션 문제 해결
      • 해결 방안 계획
    • Tkinter 대화상자 구현
      • messagebox
      • 오류 대화상자
      • filedialog
      • simpledialog와 커스텀 대화상자
        • simpledialog를 사용한 로그인 대화상자
        • LoginDialog 통합
    • 애플리케이션 메뉴 설계
      • Tkinter Menu 위젯
        • Checkbutton과 Radiobutton 아이템
      • ABQ 앱 메뉴 구현
        • 도움말 메뉴
        • 파일 메뉴
        • 옵션 메뉴
        • 마무리 작업
      • 설정 보존
        • 설정 보존을 위한 모델
        • 설정 모델 사용
    • 정리

  • 08장. Treeview와 Notebook으로 레코드 탐색
    • 모델에 읽기와 쓰기 구현
      • CSVModel 클래스에 읽기와 쓰기 추가
        • getallrecords() 구현
        • get_record() 구현
        • save_record()에 기능 추가
    • Ttk 트리뷰
      • 트리뷰 해부
      • 파일 탐색기 구현
        • Treeview 생성과 설정
        • 트리뷰에 데이터 채우기
        • Treeview 레코드 정렬
        • Treeview의 가상 이벤트 사용
    • Treeview로 레코드 목록 구현
      • RecordList 클래스
        • Treeview 위젯 설정
        • Treeview에 스크롤바 추가
        • Treeview 채우기
    • 애플리케이션에 레코드 목록 추가
      • 레코드 폼 수정
        • 인스턴스 속성 추가
        • 레이블 추가
        • load_record() 메서드 추가
      • 애플리케이션 레이아웃 개선
        • Ttk Notebook 위젯
        • 애플리케이션에 노트북 추가
      • 콜백 추가와 수정
        • showrecordlist() 메서드
        • populaterecordlist() 메서드
        • newrecord() 메서드
        • openrecord() 메서드
        • onsave() 메서드
      • 주 메뉴 변경
      • 프로그램 테스트
    • 정리

  • 09장. 스타일과 테마로 룩앤필 개선
    • Tkinter 이미지 작업
      • PhotoImage
        • PhotoImage와 변수 범위
      • Pillow를 사용한 이미지 지원 확대
      • 회사 로고 추가
        • 이미지 경로 문제
      • 윈도우 아이콘 설정
      • 버튼과 메뉴에 아이콘 추가
        • BitmapImage
    • Tkinter 위젯 스타일링
      • 색상 속성
        • 주 메뉴에 위젯 속성 사용
      • 태그를 사용한 위젯 콘텐츠 스타일링
        • 태그를 사용한 레코드 목록 스타일링
    • Tkinter 글꼴 작업
      • Tkinter 글꼴 설정
        • 문자열과 튜플을 사용한 글꼴 설정
        • font 모듈
      • ABQ 앱의 글꼴 설정
    • Ttk 위젯 스타일링
      • Ttk 스타일링 해부
        • Ttk 위젯 분석
        • 테마 사용
      • ABQ 앱에 색상 추가
        • 개별 위젯 스타일링
        • 오류 레이블 색상 변경
        • 오류 시 입력 위젯 스타일링
      • 테마 설정
        • 테마 선택 메서드
    • 정리

  • 10장. 크로스플랫폼 호환성 유지
    • 크로스플랫폼 파이썬
      • 파일명과 파일 경로
        • 경로 구분자와 드라이브
        • 대소문자 구분
        • 심볼릭 링크
        • 경로 변수
      • 플랫폼 특정적인 라이브러리와 기능
        • 플랫폼 특정적인 라이브러리
        • 로우레벨 호환성 확인
        • subprocess 모듈의 위험성
      • 텍스트 파일의 인코딩과 포맷
      • GUI 모드와 콘솔 모드
      • 플랫폼에 따라 변경되는 코드 작성
    • 크로스플랫폼 Tkinter
      • 플랫폼별 Tkinter 버전 차이
      • 크로스플랫폼 애플리케이션 메뉴
        • Menu 위젯의 특별함
        • 메뉴 지침과 표준
        • 메뉴와 단축키
      • 크로스플랫폼 글꼴
      • 크로스플랫폼 테마
      • 전체 창 모드
    • 크로스플랫폼 ABQ 앱
      • 설정 파일 저장
      • CSV 인코딩 지정
      • 플랫폼 맞춤형 메뉴
        • MainMenu 클래스 준비
        • 단축키 추가
        • 윈도우즈용 메뉴
        • 리눅스용 메뉴
        • 맥OS용 메뉴
        • 셀렉터 함수
    • 정리

  • 11장. unittest로 테스트 자동화
    • 테스트 자동화의 기본
      • 간단한 단위 테스트
      • unittest 모듈
        • 테스트 케이스 작성
        • TestCase 단언 메서드
        • 픽스처
        • 모의객체
        • 복수의 단위 테스트 수행
    • Tkinter 코드 테스트
      • 비동기 코드 관리
      • 사용자 액션 시뮬레이션
        • 이벤트 시퀀스 지정
      • 포커스 관리
      • 위젯 정보 취득
    • ABQ 앱을 위한 테스트 작성
      • 데이터 모델 테스트
        • 파일 읽기 테스트
        • 파일 저장 테스트
        • 나머지 테스트
      • Application 객체 테스트
      • 위젯 테스트
        • ValidatedSpinbox 위젯의 단위 테스트
        • ValidatedSpinbox의 통합 테스트
      • 믹스인 클래스 테스트
    • 정리

  • 12장. 데이터 저장소 개선
    • PostgreSQL
      • PostgreSQL 설치와 설정
      • pgAdmin으로 PostgreSQL 설정
      • 명령으로 PostgreSQL 설정
    • 관계형 데이터 모델링
      • 기본키
        • 대리키
      • 정규화
        • 제1정규형
        • 제2정규형
        • 제3정규형
        • 더 높은 단계의 정규형
      • 개체-관계 다이어그램
      • 데이터 타입 할당
    • ABQ 데이터베이스 구축
      • 테이블 생성
        • 룩업 테이블 생성
        • lab_checks 테이블
        • plot_checks 테이블
      • 뷰 생성
      • 룩업 테이블 채우기
    • psycopg3를 사용한 PostgreSQL 연결
      • psycopg2 기초
      • 파라미터화 쿼리
      • 특별한 커서 클래스
    • ABQ 앱에 SQL 통합
      • 새 모델 작성
        • 데이터 저장
        • 현재 종자 샘플 가져오기
      • Application 클래스 변경
        • SQL 로그인 구현
        • Application
        • 파일 관련 코드 제거
      • DataRecordForm 수정
        • 필드 순서 조정
        • load_record() 수정
        • 자동 채우기 개선
      • RecordList 수정
      • 마무리
    • 정리

  • 13장. 클라우드 연계
    • urllib을 사용한 HTTP
      • HTTP 트랜잭션 기초
        • HTTP 상태 코드
      • urllib.request로 콘텐츠 다운로드
        • POST 요청 생성
      • 기상 데이터 다운로드
        • 기상 데이터 모델 만들기
        • XML 데이터 파싱
        • 기상 데이터 저장소 구현
      • 다운로드 기능을 위한 GUI 요소 추가
    • requests를 사용한 RESTful HTTP 서비스
      • RESTful 웹 서비스의 이해
      • 파이썬 requests 라이브러리
        • requests 설치와 사용
        • 세션을 사용한 인증 통신
        • requests.Response 객체
      • REST 백엔드 구현
        • authenticate()
        • upload_file()
        • check_file()
        • get_file()
      • REST 업로드 적용
        • CSV 파일 생성
        • 업로드 콜백 추가
        • 마무리
    • paramiko를 사용한 SFTP 서비스
      • 테스트용 SSH 서비스 준비
      • paramiko의 설치와 사용법
        • paramiko 사용법
        • 연결 정보 조사
        • SFTP 사용
      • SFTP 모델 구현
        • 파일 업로드
        • 파일 존재 확인
      • SFTPModel 사용
        • 마무리
    • 정리

  • 14장. 비동기 프로그래밍
    • Tkinter 이벤트 큐
      • 이벤트 큐 제어
        • update()
        • after()
      • 일반적인 이벤트 큐 제어 방법
        • 매끄러운 화면 변화
        • GUI 프리징 완화
    • 스레드로 백그라운드 코드 실행
      • threading 모듈
        • Tkinter와 스레드 안전
      • 네트워크 함수에 스레드 적용
        • ThreadedUploader 사용
        • 큐를 사용한 메시지 전달
        • Queue 객체
        • 큐를 사용한 스레드 간 통신
      • ThreadedUploader에 큐 추가
      • 통신 규약 정의
      • 업로드 스레드에서 메시지 전송
      • 큐 메시지 처리
    • 락을 사용한 공유 자원 보호
      • Lock 객체
      • Lock 객체를 사용한 동시 업로드 방지
        • GIL
    • 정리

  • 15장. 캔버스를 사용한 데이터 시각화
    • 캔버스를 사용한 그림과 애니메이션
      • 캔버스에 그리기
        • 사각형
        • 원과 부채꼴
        • 다각형
        • 텍스트
        • 이미지
        • Tkinter 위젯
        • 캔버스 아이템과 상태
      • Canvas 객체의 메서드
      • 캔버스 스크롤
      • 캔버스 애니메이션
        • 필드 만들기
        • 선수 설정
        • 선수 움직이기
        • 게임 루프 실행과 우승 조건 판별
    • 간단한 그래프 제작
      • 모델 메서드
      • 차트 뷰
      • 애플리케이션 수정
    • 고급 그래프 제작
      • 데이터 모델 메서드
      • 버블 차트 뷰
      • 애플리케이션 수정
    • 정리

  • 16장. 패키징
    • setuptools로 배포 패키지 제작
      • 배포용 패키지 준비
        • requirements
        • pyproject
        • 라이선스 파일 추가
        • 실행 파일 제작
      • setup
        • 기본 메타데이터
        • 패키지와 의존 라이브러리
        • 추가 파일 지정
        • 명령문 지정
        • 설정 테스트
      • 소스 배포판 제작
        • 소스 배포판 테스트
      • wheel 배포판 제작
    • cx_Freeze로 실행 파일 제작
      • cx_Freeze 첫걸음
      • build_exe 옵션
      • 외부 파일의 포함
      • 실행 파일 빌드
        • 빌드 파일 정리
      • 윈도우즈 실행 파일
        • 윈도우즈 인스톨러
      • 맥OS 실행 파일
        • 맥OS 앱 번들
        • 맥OS. dmg 파일
    • 정리

  • 부록 A. reStructuredText 요약

  • 부록 B. SQL 요약 지침서

도서 오류 신고

도서 오류 신고

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

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

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