코어 프런트엔드 UI
38,000원
초급
도서 소개
당신의 파이썬 실력을 한 단계 업그레이드해 드립니다!
이 책은 파이썬에 대한 더 넓고 깊은 지식을 얻어 개발 프로그램의 품질, 신뢰성, 속도, 유지 보수성, 사용성을 개선하고자 하는 파이썬 프로그래머를 주 대상으로 한다. 이 책을 통해 좀 더 나은 파이썬 프로그래밍에 도움되는 다양하고 실용적인 예제와 아이디어를 제시할 것이다.
이 책을 통해 우아한 코드를 위한 디자인 패턴, 동시성과 컴파일된 파이썬(Cython)을 통한 처리 속도 개선, 고수준 네트워킹, 그리고 그래픽을 배울 수 있다. 파이썬에 유용한 검증된 디자인 패턴을 식별해 주고, 이에 대해 전문가 수준의 코드 예제를 제공하며, 반면 어떤 객체 지향 디자인 패턴은 파이썬에는 적합하지 않은지도 알려준다. 파이썬 프로그래밍이 비생산적이라는 몇몇 편견도 깨트려 줄 것이다.
★ 이 책에서 다루는 내용 ★
- 파이썬에서 가장 효과적인 생성, 구조, 행동 디자인 패턴 활용
- 파이썬의 multiprocessing, threading, 그리고 concurrent.futures 모듈을 활용한 동시성 지원
- 위험한 락 대신 쓰레드 안전 큐와 퓨처를 활용한 동시성 문제 회피 방안
- xmlrpclib 와 RPyC를 포함한 고수준 모듈을 활용한 간편한 네트워크 프로그래밍
- 싸이썬, C 기반 파이썬 모듈, 프로파일링 등의 기법을 활용한 파이썬 코드 가속 방법
- Tkinter를 활용한 세련된 GUI 애플리케이션 생성
추천의 글
"경험이 많은 프로그래머와 이제 입문한 독자 모두에게 ‘파이썬 인 프랙티스’는 여러분의 역량을 개선하는 데 도움이 될 값진 충고와 예제가 가득합니다. 문제를 다른 관점에서 바라보게 하고, 새로운 도구를 소개하며, 더 효율적인 해결책을 제시하는 자세한 기법을 다루고 있습니다."
-- 덕 헬먼, DreamHost 수석 개발자
저자 소개
마크 서머필드(Mark Summerfield)
마크 서머필드는 Qtrac(유) 소유주이며, C++, Go, Python, Qt와 PyQt를 전문 분야로 하는 유명한 강사, 컨설턴트, 기술 편집자, 작가다. 그의 저서로는 『Rapid GUI Programming with Python and Qt』, 『Qt 4를 이용한 C++ GUI 프로그래밍(2판) (자스민 블랑쉐 공저, ITC)』, 『Programming in Python 3, Second Edition』, 『Advanced Qt Programming』, 『Programming in Go』 등이 있다. 본서는 국내 번역 출간된 그의 첫 번째 파이썬 관련 도서다.
역자 소개
서형국
KAIST 전산학과 학부를 졸업하고 서강대학교 정보통신대학원에서 정보시스템 석사 학위를 취득했다. 솔트룩스와 와이즈넛 등 여러 검색엔진 전문 기업에서 기계학습 및 텍스트마이닝 엔진을 개발했다. 현재는 모 구인구직 포털에서 추천 및 검색 알고리즘 개선과 각종 데이터 분석 업무를 수행하고 있다. 각종 텍스트 마이닝 기법과 검색 기술의 결합에 관심이 많으며, 요즈음은 데이터가 말하고자 하는 작고 희미한 목소리를 어떻게 더 분명하게 들을 수 있을지 고민하고 있다.
오현석
KAIST 전산학과 학부를 졸업하고 동 대학원 프로그래밍 언어 전공으로 석사 학위를 취득했다. 삼성메디슨, 비트앤펄스 등에서 UI 개발과 개발 팀장을 역임하였으며, 현재는 호주 Griffith University에서 웹 백엔드 개발 및 지원업무를 담당하고 있다. 웹이나 모바일과 등의 분야에서 값 중심의 프로그래밍을 통해 좀 더 오류 발생 가능성이 적고 유지보수가 편한 프로그램을 작성하는 방법과 이를 지원하는 여러 도구를 만드는 일에 관심이 많다. 최근에는 클라우드 환경과 빅데이터 구현 등에도 관심을 가지고 공부하는 중이다.
목차
- ▣ 01장: 파이썬 생성 디자인 패턴
- 1.1 추상 팩터리 패턴
- 1.1.1 고전적인 추상 팩터리
- 1.1.2 더 파이썬다운 추상 팩터리
- 1.2 빌더 패턴
- 1.3 팩터리 메서드 패턴
- 1.4 프로토타입 패턴
- 1.5 싱글턴 패턴
- 1.1 추상 팩터리 패턴
- ▣ 02장: 파이썬 구조 디자인 패턴
- 2.1. 어댑터 패턴
- 2.2. 브리지 패턴
- 2.3. 컴포지트 패턴
- 2.3.1. 전통적인 조합/비조합 계층구조
- 2.3.2. (비)조합 객체를 위한 단일 클래스
- 2.4. 데코레이터 패턴
- 2.4.1. 함수 및 메서드 데코레이터
- 2.4.2. 클래스 데코레이터
- 2.4.2.1. 데코레이터로 프로퍼티 추가하기
- 2.4.2.2. 클래스 데코레이터를 상속 대신 활용하기
- 2.5. 파사드 패턴
- 2.6. 플라이웨이트 패턴
- 2.7. 프록시 패턴
- ▣ 03장: 파이썬 행위 디자인 패턴
- 3.1. 책임 사슬 패턴
- 3.1.1. 일반적인 사슬
- 3.1.2. 코루틴 기반 사슬
- 3.2. 커맨드 패턴
- 3.3. 인터프리터 패턴
- 3.3.1. eval()을 이용한 식 계산
- 3.3.2. exec()를 이용한 코드 실행
- 3.3.3. 자식 프로세스를 활용한 코드 실행
- 3.4. 반복자 패턴
- 3.4.1. 시퀀스 프로토콜 반복자
- 3.4.2. 인자가 두 개인 iter() 함수 반복자
- 3.4.3. 이터레이터 프로토콜 반복자
- 3.5. 조정자 패턴
- 3.5.1. 일반적인 조정자
- 3.5.2. 코루틴 기반 조정자
- 3.6. 메멘토 패턴
- 3.7. 관찰자 패턴
- 3.8. 상태 패턴
- 3.8.1. 상태에 따라 메서드의 동작 방식 변경하기
- 3.8.2. 상태에 따라 호출되는 메서드 변경하기
- 3.9. 전략 패턴
- 3.10 템플릿 메서드 패턴
- 3.11. 비지터 패턴
- 3.12. 사례 분석: Image 패키지
- 3.12.1. 제네릭 Image 모듈
- 3.12.2. Xpm 모듈
- 3.12.3. PNG 모듈
- 3.1. 책임 사슬 패턴
- ▣ 04장: 파이썬 고수준 동시성
- 4.1 CPU 위주의 동시성
- 4.1.1. 큐와 다중 프로세스 활용
- 4.1.2. 퓨처와 다중 프로세스의 활용
- 4.2. I/O 위주의 동시성
- 4.2.1. 큐와 스레드의 활용
- 4.2.2. 퓨처와 스레드의 활용
- 4.3. 사례 분석: 동시성 GUI 애플리케이션
- 4.3.1. GUI 만들기
- 4.3.2. ImageScale 작업자 모듈
- 4.3.3. GUI가 진행상황을 처리하는 방법
- 4.3.4. GUI가 종료를 처리하는 방법
- 4.1 CPU 위주의 동시성
- ▣ 05장: 파이썬 확장하기
- 5.1. ctypes를 활용한 C 라이브러리 접근
- 5.2 싸이썬 활용
- 5.2.1. 싸이썬을 활용한 C 라이브러리 접근
- 5.2.2. 싸이썬 모듈을 활용한 프로그램 속도 향상
- 5.3. 사례 분석: Image 패키지의 성능 향상
- ▣ 06장: 파이썬 고수준 네트워킹
- 6.1. XML-RPC 애플리케이션
- 6.1.1. 데이터 래퍼
- 6.1.2. XML-RPC 서버
- 6.1.3. XML-RPC 클라이언트
- 6.1.3.1. 콘솔 XML-RPC 클라이언트
- 6.1.3.2. GUI XML-RPC 클라이언트
- 6.2. RPyC 애플리케이션
- 6.2.1. 스레드 안전한 데이터 래퍼
- 6.2.1.1. 스레드 안전한 딕셔너리
- 6.2.1.2. 검침 값 딕셔너리 하위 클래스
- 6.2.2. RPyC 서버
- 6.2.3. RPyC 클라이언트
- 6.2.3.1. 콘솔 RPyC 클라이언트
- 6.2.3.2. GUI RPyC 클라이언트
- 6.2.1. 스레드 안전한 데이터 래퍼
- 6.1. XML-RPC 애플리케이션
- ▣ 07장: 파이썬과 Tkinter를 활용한 GUI
- 7.1. Tkinter 소개
- 7.2. 대화창 만들기
- 7.2.1. 대화창 스타일 애플리케이션 만들기 - 환율 변환 프로그램
- 7.2.1.1. main() 함수
- 7.2.1.2. MainWindow 클래스
- 7.2.2. 애플리케이션 대화창 만들기
- 7.2.2.1. 모달 대화창 만들기
- 7.2.2.2. 모드리스 대화창 만들기
- 7.2.1. 대화창 스타일 애플리케이션 만들기 - 환율 변환 프로그램
- 7.3. 메인 창 애플리케이션 만들기
- 7.3.1. 메인 창 만들기
- 7.3.2. 메뉴 만들기
- 7.3.2.1. 파일 메뉴 만들기
- 7.3.2.2. 도움말 메뉴 만들기
- 7.3.3. 상태 막대와 표시기 만들기
- ▣ 08장: 파이썬 OpenGL 3차원 그래픽
- 8.1. 원근투영 장면
- 8.1.1. PyOpenGL로 원기둥 만들기
- 8.1.2. pyglet으로 원기둥 만들기
- 8.2. 정사투영(Orthographic) 게임
- 8.2.1. 보드 장면 그리기
- 8.2.2. 객체 선택 처리하기
- 8.2.3. 사용자와 상호작용하기
- 8.1. 원근투영 장면