• 파이썬 인 프랙티스
  • 디자인 패턴, 동시성, 네트워킹, 성능 최적화, GUI 제작 기법

  • 마크 서머필드 지음
  • 서형국, 오현석 옮김

  • 프로그래밍 & 프랙티스 시리즈_008
  • ISBN: 9788998139650
  • 28,000원 | 2014년 09월 3일 발행 | 356쪽



당신의 파이썬 실력을 한 단계 업그레이드해 드립니다!

이 책은 파이썬에 대한 더 넓고 깊은 지식을 얻어 개발 프로그램의 품질, 신뢰성, 속도, 유지 보수성, 사용성을 개선하고자 하는 파이썬 프로그래머를 주 대상으로 한다. 이 책을 통해 좀 더 나은 파이썬 프로그래밍에 도움되는 다양하고 실용적인 예제와 아이디어를 제시할 것이다.

이 책을 통해 우아한 코드를 위한 디자인 패턴, 동시성과 컴파일된 파이썬(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 싱글턴 패턴
    •  
  • ▣ 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 모듈
    •  
  • ▣ 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가 종료를 처리하는 방법
    •  
  • ▣ 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 클라이언트
    •  
  • ▣ 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.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. 사용자와 상호작용하기

예제코드 관련 깃허브 페이지

도서 소개 자료

관련 글