pycon 12월 세미나 - 실전 파이썬 프로그래밍 책 홍보

32
실전 파이썬 프로그래밍오픈 소스 개발자가 알려주는 고급 기법과 실천법 (Hacker’s Guide To Python) PyCon 12세미나 김영후

Upload: young-hoo-kim

Post on 18-Jul-2015

420 views

Category:

Engineering


5 download

TRANSCRIPT

Page 1: PyCon 12월 세미나 - 실전 파이썬 프로그래밍 책 홍보

“실전 파이썬 프로그래밍” 오픈 소스 개발자가 알려주는 고급 기법과 실천법

(Hacker’s Guide To Python)PyCon 12월 세미나

김영후

Page 2: PyCon 12월 세미나 - 실전 파이썬 프로그래밍 책 홍보

책 홍보 세미나

Page 3: PyCon 12월 세미나 - 실전 파이썬 프로그래밍 책 홍보

지금 예판 중알라딘, YES24에서 검색 ㄱㄱ

“실전 파이썬 프로그래밍”

Page 4: PyCon 12월 세미나 - 실전 파이썬 프로그래밍 책 홍보

My Python

• new style class가 new일때쯤 정체

• 의사코드 + indentation

• 리스트 해석

• 제네레이터 (는 프레임워크가 쓰라고 할때, Tornado)

Page 5: PyCon 12월 세미나 - 실전 파이썬 프로그래밍 책 홍보

책 소개• 저자 Julien Danjou

• OpenStack 프로젝트의 개발자

• 오픈소스 프로젝트에 가장 적합한 내용

• 오픈소스 = 리모트 협업

• 프로젝트 구조

• API 설계

• 환경설정

• 문서화

• 유닛테스트 테스크 커버리지

Page 6: PyCon 12월 세미나 - 실전 파이썬 프로그래밍 책 홍보

목차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 지원 전략

Page 7: PyCon 12월 세미나 - 실전 파이썬 프로그래밍 책 홍보

목록

오픈소스 프로젝트의 실천법

파이썬과 아키텍쳐

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 지원 전략

Page 8: PyCon 12월 세미나 - 실전 파이썬 프로그래밍 책 홍보

1~6장 초간단 요약• 프로젝트 디렉토리 구조

• 테스트는 어디에 두는게 좋은가

• 코딩스타일 체크 pylint, pyflakes, flake8 등

• import 후킹

• 외부 라이브러리를 쓸 때 체크리스트

• API 변경 관리

• 문서화, 스핑크스, reST, 스핑크스 확장

• 파이썬 배포 도구의 역사 distutils, setuptools, distribute, disutils2, packaging, distlib, pbr (이거 진짜 영화…)

• pypi 에 공유하는 법

• 가상환경 tox

• unittest, fixture, mock, testscenario, 테스트 스트리밍 및 병렬 수행, 코트 커버리지

Page 9: PyCon 12월 세미나 - 실전 파이썬 프로그래밍 책 홍보

파이썬 메서드

• 메서드와 함수의 차이

• 메서드는 클래스의 속성이다. 그래서?

• 속성에 바로 접근해보자

Page 10: PyCon 12월 세미나 - 실전 파이썬 프로그래밍 책 홍보
Page 11: PyCon 12월 세미나 - 실전 파이썬 프로그래밍 책 홍보

• Python 2: Unbound method

• Python3: Function

Page 12: PyCon 12월 세미나 - 실전 파이썬 프로그래밍 책 홍보

• Python 2: Unbound method

• Python3: Function

Page 13: PyCon 12월 세미나 - 실전 파이썬 프로그래밍 책 홍보

• Python 2 & 3: 메소드는 객체와 바운드된 함수

Page 14: PyCon 12월 세미나 - 실전 파이썬 프로그래밍 책 홍보

• Python 2 & 3: 바운드된 메소드에서 객체를 __self__로 가지고 올 수 있음

Page 15: PyCon 12월 세미나 - 실전 파이썬 프로그래밍 책 홍보

• @staticmethod

• @classmethod

• import abc, abc = ABCMeta

Page 16: PyCon 12월 세미나 - 실전 파이썬 프로그래밍 책 홍보

책에서 봅시다

Page 17: PyCon 12월 세미나 - 실전 파이썬 프로그래밍 책 홍보

데코레이터

Page 18: PyCon 12월 세미나 - 실전 파이썬 프로그래밍 책 홍보

데코레이터

• 데코레이터 사용으로 기존 함수의 정보가 날라감

Page 19: PyCon 12월 세미나 - 실전 파이썬 프로그래밍 책 홍보

• functools.update_wrapper @wraps

Page 20: PyCon 12월 세미나 - 실전 파이썬 프로그래밍 책 홍보

데코레이터 inspect

• ‘username’이 키워드인자 **kwargs 온다는 가정

Page 21: PyCon 12월 세미나 - 실전 파이썬 프로그래밍 책 홍보

데코레이터 inspect

• inspect.getcallargs는 딕셔너리를 돌려줌

Page 22: PyCon 12월 세미나 - 실전 파이썬 프로그래밍 책 홍보

함수형

• lambda 대신 partial

• x, y => x + y 함수혀 언어 (Int) -> (Int) -> (Int)

• (Int, Int) -> (Int)가 아닌 이유

Page 23: PyCon 12월 세미나 - 실전 파이썬 프로그래밍 책 홍보

AST

• ast 모듈

• 파이썬 코드는 내부적으로 AST로 변환됨

Page 24: PyCon 12월 세미나 - 실전 파이썬 프로그래밍 책 홍보

Hy• http://hylang.org

• 파이썬에서 리습 런타임을 만들다가 퍼포먼스에 좌절

• 파이썬 AST로 컴파일 되는 리습언어 = Hy런타임은 파이썬 런타임

• 파이썬 에코시스템을 완전히 이용가능 (Clojure보다 더)

• “파이썬 컴파일러가 이 코드가 Hy로 작성되었는지 알기 어려운 수준”

• Flask, Django 가능

Page 25: PyCon 12월 세미나 - 실전 파이썬 프로그래밍 책 홍보

성능과 최적화• cProfile

• dis

• bisect

• __slot__과 namedtuple

• memoization

• PyPy

Page 26: PyCon 12월 세미나 - 실전 파이썬 프로그래밍 책 홍보

버퍼를 사용한 제로카피

Page 27: PyCon 12월 세미나 - 실전 파이썬 프로그래밍 책 홍보

확장과 아키텍쳐

• 멀티스레딩과 멀티프로세싱 (GIL)

• 비동기와 이벤트 기반 아키텍쳐

• SOA, ZeroMQ

Page 28: PyCon 12월 세미나 - 실전 파이썬 프로그래밍 책 홍보

관계형 데이터베이스• ORM을 까는 시간 (인터뷰이가 PostgreSQL 파시스트)

• 데이터베이스를 <저장소>로 여기지 말고 협력해라

• select_by_id 같은걸 만들어서 유니크 확인 후 insert하지 말고 unique 한 컬럼을 만들고 DB 예외처리해라

• PostgreSQL의 LISTEN, NOTIFY와 Flask를 이용한 스트리밍 서버

Page 29: PyCon 12월 세미나 - 실전 파이썬 프로그래밍 책 홍보

파이썬3

• tox로 파이선2와 파이썬3에 대해서 테스트

• 오픈스택에서 eventlet을 썼다가 망한 이야기 (여전히 파이썬3 지원안함)

• six 모듈

Page 30: PyCon 12월 세미나 - 실전 파이썬 프로그래밍 책 홍보

싱글 디스패쳐• Common Lisp의 CLOS

• 클래스 drum, stick, brushes

Page 31: PyCon 12월 세미나 - 실전 파이썬 프로그래밍 책 홍보
Page 32: PyCon 12월 세미나 - 실전 파이썬 프로그래밍 책 홍보

감사합니다인사이트 감사합니다! 협찬 5권!