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