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

Post on 18-Jul-2015

420 Views

Category:

Engineering

5 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

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

김영후

책 홍보 세미나

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

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

My Python

• new style class가 new일때쯤 정체

• 의사코드 + indentation

• 리스트 해석

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

책 소개• 저자 Julien Danjou

• OpenStack 프로젝트의 개발자

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

• 오픈소스 = 리모트 협업

• 프로젝트 구조

• API 설계

• 환경설정

• 문서화

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

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

목록

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

파이썬과 아키텍쳐

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

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

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

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

• import 후킹

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

• API 변경 관리

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

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

• pypi 에 공유하는 법

• 가상환경 tox

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

파이썬 메서드

• 메서드와 함수의 차이

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

• 속성에 바로 접근해보자

• Python 2: Unbound method

• Python3: Function

• Python 2: Unbound method

• Python3: Function

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

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

• @staticmethod

• @classmethod

• import abc, abc = ABCMeta

책에서 봅시다

데코레이터

데코레이터

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

• functools.update_wrapper @wraps

데코레이터 inspect

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

데코레이터 inspect

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

함수형

• lambda 대신 partial

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

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

AST

• ast 모듈

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

Hy• http://hylang.org

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

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

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

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

• Flask, Django 가능

성능과 최적화• cProfile

• dis

• bisect

• __slot__과 namedtuple

• memoization

• PyPy

버퍼를 사용한 제로카피

확장과 아키텍쳐

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

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

• SOA, ZeroMQ

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

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

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

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

파이썬3

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

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

• six 모듈

싱글 디스패쳐• Common Lisp의 CLOS

• 클래스 drum, stick, brushes

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

top related