5. 책 소개
• 저자 Julien Danjou
• OpenStack 프로젝트의 개발자
• 오픈소스 프로젝트에 가장 적합한 내용
• 오픈소스 = 리모트 협업
• 프로젝트 구조
• API 설계
• 환경설정
• 문서화
• 유닛테스트 테스크 커버리지
6. 목차
1. 1장 프로젝트 시작하기
2. 2장 모듈과 라이브러리
3. 3장 문서화
4. 4장 배포
5. 5장 가상 환경
6. 6장 단위 테스트
7. 7장 메서드와 데코레이터
8. 8장 함수형 프로그래밍
9. 9장 AST
10.10장 성능과 최적화
11.11장 확장과 아키텍처
12.12장 관계형 데이터베이스와 ORM
13.13장 파이썬 3 지원 전략
7. 목록
오픈소스 프로젝트의 실천법
파이썬과 아키텍쳐
1. 1장 프로젝트 시작하기
2. 2장 모듈과 라이브러리
3. 3장 문서화
4. 4장 배포
5. 5장 가상 환경
6. 6장 단위 테스트
7. 7장 메서드와 데코레이터
8. 8장 함수형 프로그래밍
9. 9장 AST
10.10장 성능과 최적화
11.11장 확장과 아키텍처
12.12장 관계형 데이터베이스와 ORM
13.13장 파이썬 3 지원 전략
8. 1~6장 초간단 요약
• 프로젝트 디렉토리 구조
• 테스트는 어디에 두는게 좋은가
• 코딩스타일 체크 pylint, pyflakes, flake8 등
• import 후킹
• 외부 라이브러리를 쓸 때 체크리스트
• API 변경 관리
• 문서화, 스핑크스, reST, 스핑크스 확장
• 파이썬 배포 도구의 역사 distutils, setuptools, distribute, disutils2, packaging, distlib, pbr (이거 진짜 영화
…)
• pypi 에 공유하는 법
• 가상환경 tox
• unittest, fixture, mock, testscenario, 테스트 스트리밍 및 병렬 수행, 코트 커버리지
9. 파이썬 메서드
• 메서드와 함수의 차이
• 메서드는 클래스의 속성이다. 그래서?
• 속성에 바로 접근해보자
10.
11. • Python 2: Unbound method
• Python3: Function
12. • Python 2: Unbound method
• Python3: Function
27. 확장과 아키텍쳐
• 멀티스레딩과 멀티프로세싱 (GIL)
• 비동기와 이벤트 기반 아키텍쳐
• SOA, ZeroMQ
28. 관계형 데이터베이스
• ORM을 까는 시간 (인터뷰이가 PostgreSQL 파시스트)
• 데이터베이스를 <저장소>로 여기지 말고 협력해라
• select_by_id 같은걸 만들어서 유니크 확인 후 insert
하지 말고 unique 한 컬럼을 만들고 DB 예외처리해
라
• PostgreSQL의 LISTEN, NOTIFY와 Flask를 이용한
스트리밍 서버
29. 파이썬3
• tox로 파이선2와 파이썬3에 대해서 테스트
• 오픈스택에서 eventlet을 썼다가 망한 이야기 (여전히
파이썬3 지원안함)
• six 모듈
30. 싱글 디스패쳐
• Common Lisp의 CLOS
• 클래스 drum, stick, brushes