본문 바로가기

리디북스 접속이 원활하지 않습니다.
강제 새로 고침(Ctrl + F5)이나 브라우저 캐시 삭제를 진행해주세요.
계속해서 문제가 발생한다면 리디북스 접속 테스트를 통해 원인을 파악하고 대응 방법을 안내드리겠습니다.
테스트 페이지로 이동하기


고성능 파이썬 상세페이지

컴퓨터/IT 개발/프로그래밍

고성능 파이썬

파이썬 성능 잠재력을 끌어내는 실용적인 개발 전략서

구매종이책 정가30,000
전자책 정가30%21,000
판매가21,000
고성능 파이썬

작품 소개

<고성능 파이썬> 파이썬의 생산성에 컴파일 언어의 성능을 더하다

파이썬은 느리다? 이 책은 파이썬의 단 하나의 약점, 성능 문제를 해결해주는 다양한 전략을 소개한다. 파이썬의 관점에서 바라보는 컴퓨터 아키텍처와 동작 원리를 기본으로 깔고, 각종 라이브러리의 올바른 활용법, 행렬과 벡터 연산 가속, 메모리를 효율적으로 쓰는 법, 병목을 찾는 습관과 도구, 네이티브 코드로 컴파일하기 등을 배우고, 파이썬을 성공적으로 도입한 업계 선배들의 경험담과 전략을 듣게 될 것이다. 특히 한국어판에서는 저자의 동의를 얻어 파이썬 2로 작성된 원서의 예제 코드를 파이썬 3에서 실행할 수 있도록 수정하였다.


출판사 서평

프로토타이핑에서 실무 운영까지 살아가는 파이썬 코드의 비밀

아이디어 무한경쟁이 펼쳐지는 대(大)스타트업 시대! 높은 생산성으로 유명한 파이썬은 최우선 고려사항이다. 한 가지, 컴파일 언어 대비 느린 성능 때문에 성공한 서비스나 성능이 중요한 기능은 컴파일 언어로 다시 작성하곤 한다. 하지만 실무 운영까지 파이썬 코드를 계속 이어가는 방법이 있다면?

이 책은 파이썬을 둘러싼 설계와 작동 원리를 설명하고 이에 기반한 실용적인 구현 전략을 소개한다. 멀티코어 아키텍처와 클러스터의 이점을 활용하려면 어떻게 해야 하는가? 안정성을 잃지 않고 확장하는 방법은 무엇인가? 여러분은 이에 대한 명확한 해법을 찾고 방대한 소셜 데이터까지도 눈부신 속도로 처리해내는 파이썬 코드를 얻게 될 것이다.


주요 내용
- numpy, Cython, 프로파일러 활용하기
- 파이썬의 시선으로 바라보는 컴퓨터 아키텍처 이해하기
- CPU 시간과 메모리 사용량을 프로파일링하여 병목 지점 찾기
- 상황에 맞는 컬렉션으로 효율적인 프로그램 작성하기
- 행렬과 벡터 연산 가속하기
- 네이티브 코드로 컴파일하기
- 대량의 I/O와 연산 동시 수행하기
- 원격 클러스터로 병렬 처리하기
- 적은 메모리로 대규모 데이터 처리하기



저자 소개

저자_미샤 고렐릭

2023년 화성에 착륙한 최초의 인류이자 시간 여행에 대한 공로로 2046년 노벨상을 받았다. 그가 개발한 신기술이 의도와 다르게 사용되고 있는 사실에 분노하여 2012년으로 되돌아와서 물리학 박사 과정을 그만두고 데이터와 사랑에 빠졌다. bitly에서 실시간 데이터 처리와 관련된 업무를 했다. 사람들에게 미래 기술을 알리고 싶은 욕망에 미치광이 과학자 역할로 패스트포워드랩을 함께 시작해 고성능 데이터 분석과 관련된 다양한 프로젝트에 컨설팅을 하고 있다. 1857년 센트럴 파크에 그의 생을 기리는 기념비가 세워졌다.

저자_이안 오스발트

10년이 넘는 파이썬 경력을 가지고 있으며 ModelInsight.io에서 데이터 과학자이자 파이썬 강사로 활동 중이다. 그는 PyCon과 PyData 콘퍼런스에서 강사로 활동하였으며 영국에서 10여 년간 인공지능과 고성능 계산에 대한 컨설팅을 하고 있다. 개인 블로그(IanOzsvald.com)를 운영하고 있으며 맛 좋은 맥주 한 잔에 큰 행복을 느낀다. 파이썬뿐만 아니라 C++, 리눅스와 윈도우 개발, 스토리지 시스템, 자연어 처리 및 텍스트 처리, 기계 학습, 데이터 시각화에도 관심이 많다. 파이썬 중심의 비디오 학습 사이트인 ShowMeDo.com의 공동창업자다.


역자_오현석

KAIST에서 전산학 학사와 석사 학위(프로그래밍 언어 연구실)를 취득했다. 삼성메디슨, 비트앤펄스 등에서 UI 개발자와 개발 팀장을 지냈고, 호주에서 프리랜서 C++/풀스택 개발자로 일하고 있다. 웹이나 모바일 등의 분야에서 값 중심의 프로그래밍을 통해 오류 발생 가능성이 더 적으면서 유지보수가 편한 프로그램을 작성하는 방법과 이를 지원하는 여러 도구를 만드는 일에 관심이 많다. 최근에는 스칼라와 파이썬을 사용한 대규모 병렬 처리나 액터를 활용한 분산 처리 등을 공부하는 중이다. 『프로그래밍 스칼라』(한빛미디어), 『스칼라와 기계 학습』, 『파이썬 로보틱스』, 『스칼라 동시성 프로그래밍』, 『Programming in Scala(Second Edition) 한국어판』, 『스칼라 동시성 프로그래밍』(이상 에이콘), 『시스템 성능 분석과 최적화』, 『파이썬 인 프랙티스』(이상 위키북스) 등을 번역했다.

역자_김영근

애플 II에서 베이직으로 처음 프로그래밍을 시작했고, 장래 희망은 항상 프로그래머라고 말하고 다니다 정신 차리고 보니 어느덧 개발 경력이 10년을 훌쩍 넘긴 중년(?) 개발자가 되었다. 리눅스 커뮤니티에서 오랫동안 활동했으며 임베디드 환경에서부터 미들웨어, 스마트폰 애플리케이션에 이르기까지 다양한 분야에서 개발했다. 파이썬 소프트웨어 재단의 이사로 활동 중이며 2014년부터 ‘PyCon 한국’을 만들고 있는 사람 중 한 명이다. 현재는 스마트스터디에서 가장 비밀스러운 조직인 D9에 소속되어 있다. 한빛미디어에서 『리눅스 시스템 프로그래밍(개정2판)』, 『파이썬 라이브러리를 활용한 데이터 분석』을 번역했다.

목차

1장. 고성능을 위한 파이썬 이해하기
__1.1 컴퓨터 시스템의 기본
__1.2 기본 구성 함께 보기
__1.3 파이썬을 쓰는 이유

2장. 프로파일링으로 병목 지점 찾기
__2.1 효과적으로 프로파일링하기
__2.2 쥘리아 집합
__2.3 전체 쥘리아 집합 계산하기
__2.4 시간을 측정하는 간단한 방법 - print와 데코레이터
__2.5 유닉스 time 명령어를 이용한 간단한 시간 측정
__2.6 cProfile 모듈 사용하기
__2.7 line_profiler로 한 줄씩 측정하기
__2.8 memory_profiler로 메모리 사용량 진단하기
__2.9 heapy로 힙 메모리 살펴보기
__2.10 dowser로 변수 생성을 실시간으로 확인하기
__2.11 dis 모듈로 CPython의 바이트코드 조사하기
__2.12 최적화 중에 단위 테스트하기
__2.13 성공적인 코드 프로파일링 전략
__2.14 마치며

3장. 리스트와 튜플
__3.1 더 효율적인 탐색
__3.2 리스트와 튜플
__3.3 마치며

4장. 사전과 셋
__4.1 사전과 셋의 동작 원리
__4.2 사전과 네임스페이스
__4.3 마치며

5장. 이터레이터와 제너레이터
__5.1 무한급수와 이터레이터
__5.2 제너레이터의 지연 실행
__5.3 마치며

6장. 행렬과 벡터 연산
__6.1 문제 소개
__6.2 파이썬의 리스트만으로 충분할까?
__6.3 메모리 단편화
__6.4 numpy를 이용한 확산 방정식 해법
__6.5 numexpr : 제자리 연산을 더 빠르고 간편하게 쓰기
__6.6 최적화 검증 scipy
__6.7 마치며

7장. C 언어로 컴파일하기
__7.1 가능한 속도 개선의 종류
__7.2 JIT 대 AOT 컴파일러
__7.3 타입 정보가 실행 속도에 영향을 주는 이유
__7.4 C 컴파일러 사용하기
__7.5 쥘리아 집합 예제 다시 보기
__7.6 Cython
__7.7 Shed Skin
__7.8 Cython과 numpy
__7.9 Numba
__7.10 Pythran
__7.11 PyPy
__7.12 각 기술을 언제 사용할까?
__7.13 외부 함수 인터페이스
__7.14 마치며

8장. 동시성
__8.1 비동기 프로그래밍 소개
__8.2 순차적 크롤러
__8.3 gevent
__8.4 tornado
__8.5 AsyncIO
__8.6 데이터베이스 예제
__8.7 마치며

9장. multiprocessing 모듈
__9.1 multiprocessing 모듈 소개
__9.2 몬테카를로 방식을 사용해 원주율 추정하기
__9.3 프로세스와 스레드를 사용해 원주율 추정하기
__9.4 소수 찾기
__9.5 프로세스 간 통신을 사용해 소수 검증하기
__9.6 multiprocessing과 numpy 데이터 공유하기
__9.7 파일과 변수 접근 동기화하기
__9.8 마치며

10장. 클러스터와 작업 대기열
__10.1 클러스터링의 이점
__10.2 클러스터링의 단점
__10.3 일반적인 클러스터 설계
__10.4 클러스터화한 해법을 어떻게 시작할 것인가?
__10.5 클러스터 사용 시 고통을 피하는 방법
__10.6 세 가지 클러스터링 솔루션
__10.7 강건한 프로덕션 클러스터링을 위한 NSQ
__10.8 살펴볼 만한 다른 클러스터링 도구들
__10.9 마치며

11장. RAM 아껴 쓰기
__11.1 원시 타입 객체는 비싸다
__11.2 컬렉션이 사용하는 RAM 이해하기
__11.3 바이트와 유니코드
__11.4 RAM에 수많은 텍스트를 효율적으로 저장하기
__11.5 RAM을 덜 사용하기 위한 팁
__11.6 확률적 자료구조

12장. 현장에서 얻는 교훈
__12.1 어댑티브랩의 소셜 미디어 분석, 소마(SoMA)
__12.2 RadimRehurek.com의 딥 러닝, 플라이(Fly)
__12.3 Lyst.com의 대규모 기계 학습
__12.4 스메시에서의 대규모 소셜 미디어 분석
__12.5 성공적인 웹과 데이터 처리 시스템을 위한 PyPy
__12.7 Lanyrd.com의 작업 대기열


리뷰

구매자 별점

3.3

점수비율

  • 5
  • 4
  • 3
  • 2
  • 1

3명이 평가함

리뷰 작성 영역

이 책을 평가해주세요!

내가 남긴 별점 0.0

별로예요

그저 그래요

보통이에요

좋아요

최고예요

별점 취소

구매자 표시 기준은 무엇인가요?

'구매자' 표시는 리디북스에서 유료도서 결제 후 다운로드 하시거나 리디셀렉트 도서를 다운로드하신 경우에만 표시됩니다.

무료 도서 (프로모션 등으로 무료로 전환된 도서 포함)
'구매자'로 표시되지 않습니다.
시리즈 도서 내 무료 도서
'구매자’로 표시되지 않습니다. 하지만 같은 시리즈의 유료 도서를 결제한 뒤 리뷰를 수정하거나 재등록하면 '구매자'로 표시됩니다.
영구 삭제
도서를 영구 삭제해도 ‘구매자’ 표시는 남아있습니다.
결제 취소
‘구매자’ 표시가 자동으로 사라집니다.

이 책과 함께 구매한 책


이 책과 함께 둘러본 책



본문 끝 최상단으로 돌아가기

spinner
모바일 버전