트위스티드: 파이썬 네트워크 프로그래밍

트위스티드(Twisted Network Programming 2/E)

 

 

 

>> 책소개
트위스티드는 수많은 네트워크 프로토콜에서 사용하는 이벤트 기반 네트워크 프레임워크다. 이 책에서는 TCP 프로토콜을 사용하는 서버/클라이언트를 만들면서 트위스티드의 기본 개념과 설계 패턴을 설명한다. 트위스티드의 기본 기능을 익힌 후에는 여러분만의 프로토콜을 만들 수도 있다.

>> 저자 소개
제시카 맥켈러
소프트웨어 엔지니어이자 트위스티드의 메인테이너이며, 보스턴 파이썬 사용자 그룹의 조직자이다. 그녀는 한편으로는 네트워킹과 저수준의 시스템 엔지니어링, 또 다른 한편으로는 다른 사람들이 오픈 소스 소프트웨어에 기여하게 돕는 것을 즐긴다.

아베 페티그
소프트웨어 개발자이며, Hep의 메인테이너다. Hep은 RSS, 이메일, 웹 로그, 웹 서비스 사이 정보를 추가 처리 과정 없이(transparently) 유통하는 오픈소스 메시지 서버다.

>> 역자 소개
정성환
(주)NHN에서 인프라, 플랫폼 개발, 백엔드 서버 성능 진단과 최적화, GPU를 이용한 성능 최적화 등의 다양한 경험을 했다. 지금은 (주)NHN 엔터테인먼트에서 백엔드 서버 성능 진단과 최적화, IT 솔루션 개발을 하고 있다. 참여 했던 주요한 프로젝트로는 현재 오픈 소스 프로젝트로 다시 태어난 메모리 캐시인 Arcus(http://naver.github.io/arcus/) 개발, 초고속 이미지 썸네일 생성기인 libnthumb 설계 및 개발, 프론트엔드 체감 성능 측정 도구인 nSpeed 개발, x86 중형 서버 BMT 및 선정, 검색 엔진을 포함한 다양한 네이버 서비스의 백엔드 성능 분석 등이 있다.

>> 추천의 글
이벤트 기반 프로그래밍을 접하고 파이썬으로 많은 것을 가능하게 해준 것이 트위스티드 프레임워크입니다. 이 책은 트위스티드의 기초적인 내용을 폭넓게 다루고 있습니다. 많은 분들이 트위스티드의 매력에 빠지길 기대합니다.
– 배권한, 라인 주식회사, 페이스북 Python Korea 페이지 운영자

현업에서 클라우드 플랫폼의 백엔드 서버 일부를 개발하는데 직접 사용하면서 느낀 가장 큰 매력은 생산성입니다. 필요한 대부분의 프로토콜이 이미 구현되어 있어, 불필요한 개발 시간을 확 줄이면서 코어 로직에 집중할 수 있습니다.
– 강동민, NHN 엔터테인먼트

트위스티드에 대한 독보적인 책. 이 책을 오래 기다려온 독자들에게 가뭄에 단비 같은 선물이 될 것입니다. 알음알음으로만 회자되던 트위스티드가 이 기회를 통해 재조명 받기를 바랍니다.
– 이의호, (주)카카오. 『자바스크립트 닌자』『자바스크립트 완벽 가이드 6판』 공역

다양한 예제를 통해서 트위스티드를 활용할 수 있는 방법들을 제시해 주며, 트위스트의 핵심이라고 할 수 있는 디퍼드(Deferred)가 어떻게 작동하는지를 설명해 간단하게 이벤트 구동형 서비스를 구축하는 방법을 제시하고 있습니다. 트위스티드를 통해서 네트워크 프로그래밍의 즐거움을 느낄 수 있는 훌륭한 입문서가 되리라 생각됩니다.
– 김태훈 (울산과학기술대(UNIST))

>> 목차
옮긴이의 글
추천의 글
첫째 판의 서문
서문
_왜 트위스티드를 사용해야 하는가?
_이 책에서 다루는 내용
_이 책에서 사용한 표기 규정
_이 책을 읽기 위해 필요한 것
_이전 판과 달라진 점
_예제 사용하기
_우리에게 연락하는 방법
_감사의 말

1부 트위스티드(Twisted) 소개
1장 시작하기
1.1 트위스티드 설치하기
1.1.1 리눅스에서 설치하기
1.2 윈도우에서 설치하기
1.3 OS X 에서 설치하기
1.4 소스로 설치하기
1.4.1 필요한 관련 패키지들
1.4.2 릴리스 Tarball 압축 파일에서 트위스티드 설치하기
1.4.3 소스를 체크아웃하여 트위스티드 설치하기
1.4.4 소스로 선택적인 관련 패키지들 설치하기
1.5 설치본 시험하기
1.6 트위스티드 문서 사용하기
1.6.1 API 문서
1.6.2 서브 프로젝트 문서
1.7 질문에 대한 답변 찾기
1.7.1 메일링 리스트
1.7.2 IRC 채널
1.7.3 스택 오버플로 (Stack Overflow)
1.7.4 트위스티드 블로그들

2장 기본적인 클라이언트와 서버 만들기
2.1 TCP 에코 서버와 클라이언트
2.2 이벤트 기반 (Event-Driven) 프로그래밍
2.3 리액터
2.4 트랜스포트
2.5 프로토콜
2.5.1 프로토콜 팩토리
2.5.2 트랜스포트와 프로토콜 분리하기
2.6 TCP 인용문 서버와 클라이언트
2.7 프로토콜 상태 머신
2.8 더 해볼 것들과 다음 단계에서 다룰 내용

3장 디퍼드 (Deferred)로 비동기식 코드 작성하기
3.1 디퍼드가 하는 일과 하지 않는 일
3.2 디퍼드 객체의 구조
3.3 콜백 체인과 리액터에서 디퍼드 사용하기
3.4 실습 : 디퍼드 체인은 무엇을 할까 ?
3.4.1 연습 1
3.4.2 연습 2
3.4.3 연습 3
3.4.4 연습 4
3.4.5 연습 5
3.4.6 연습 6
3.5 addCallbacks 의 진실
3.5.1 연습 7
3.5.2 연습 8
3.6 디퍼드의 핵심 사항
3.7 디퍼드 API 요약
3.8 더 해볼 것들과 다음 단계에서 다룰 내용

4장 웹 서버
4.1 HTTP 요청에 응답하기 : 저수준에서 다시 살펴보기
4.1.1 HTTP 요청의 구조
4.1.2 HTTP 요청 구문 분석 (parsing) 하기
4.2 GET 요청 처리하기
4.2.1 정적 콘텐츠 제공하기
4.2.2 동적인 콘텐츠 제공하기
4.2.3 동적 디스패치
4.3 POST 요청 다루기
4.3.1 최소한의 POST 예제
4.4 비동기식 응답
4.5 더 해볼 것들과 다음 단계에서 다룰 내용

5장 웹 클라이언트
5.1 기본적인 HTTP 자원 가져오기
5.1.1 웹 자원 출력하기
5.1.2 웹 자원을 다운로드하기
5.2 에이전트 (Agent)
5.2.1 에이전트로 자원 요청하기
5.2.2 응답 메타 데이터 가져오기
5.2.3 에이전트로 데이터 포스트 (POST) 요청하기
5.3 더 해볼 것들과 다음 단계에서 다룰 내용

2부 제품 수준의 트위스티드 서비스 만들기
6장 트위스티드 애플리케이션 배포하기
6.1 트위스티드 애플리케이션 하부 구조
6.1.1 서비스
6.1.2 애플리케이션
6.1.3 TAC 파일
6.1.4 twistd
6.1.5 플러그인
6.2 더 많은 twistd 예제
6.3 더 많은 연습과 다음 단계
6.3.1 연습 제안

7장 로깅
7.1 기본적인 애플리케이션 내 로깅
7.2 twistd 로깅
7.3 커스텀 로거
7.4 로깅에 대한 핵심 사항과 주의 사항

8장 데이터베이스
8.1 논블로킹 데이터베이스 질의
8.2 더 해볼 것들과 다음 단계에서 다룰 내용

9장 인증
9.1 트위스티드 크레드의 구성 요소
9.2 트위스티드 크레드: 예제
9.3 크리덴셜 확인자
9.4 트위스티드 애플리케이션에서 인증
9.5 더해볼 것들과 다음 단계에서다룰 내용

10장 스레드와 서브 프로세스
10.1 스레드
10.2 서브프로세스
10.2.1 서브프로세스를 실행하고 결과 얻기
10.2.2 커스텀 프로세스 프로토콜
10.3 더 해볼 것들과 다음 단계에서 다룰 내용

11장 테스트하기
11.1 트라이얼로 트위스티드 단위 테스트를 작성하고 실행하기
11.2 프로토콜 테스트하기
11.3 테스트들과 리액터
11.3.1 디퍼드 테스트하기
11.3.2 시간의 흐름 테스트하기
11.4 더 해볼 것들과 다음 단계에서 다룰 내용

3부 더 다루어 볼 프로토콜들과 더 해볼 것들
12장 트위스티드 워즈(Twisted Words)
12.1 IRC 클라이언트
12.2 IRC 서버
12.3 더 해볼 것들과 다음 단계에서 다룰 내용

13장 트위스티드 메일
13.1 SMTP 클라이언트와 서버
13.1.1 SMTP 프로토콜
13.1.2 SMTP를 이용하여 이메일 전송하기
13.1.3 SMTP 서버
13.1.4 메일 저장하기
13.2 IMAP 클라이언트와 서버
13.2.1 IMAP 서버
13.2.2 IMAP 클라이언트
13.3 POP3 클라이언트와 서버
13.3.1 POP3 서버
13.4 더 해볼 것들과 다음 단계에서 다룰 내용

14장 SSH
14.1 SSH 서버
14.1.1 기본적인 SSH 서버
14.2 공개키를 사용하여 인증하기
14.3 파이썬 관리 셸(Administrative Python Shell) 제공하기
14.4 원격 서버에서 명령어 실행하기
14.4.1 SSH 클라이언트
14.5 더 해볼 것들과 다음 단계에서 다룰 내용

15장 맺음말
15.1 트위스티드에 기여하기

찾아보기