장바구니 담기 close

장바구니에 상품을 담았습니다.

CPython 파헤치기

CPython 파헤치기

  • 앤서니쇼 ,realpython.com튜토리얼팀
  • |
  • 인사이트
  • |
  • 2022-09-23 출간
  • |
  • 364페이지
  • |
  • 172 X 225 mm
  • |
  • ISBN 9788966263677
판매가

32,000원

즉시할인가

28,800

배송비

무료배송

(제주/도서산간 배송 추가비용:3,000원)

수량
+ -
총주문금액
28,800

※ 스프링제본 상품은 반품/교환/환불이 불가능하므로 신중하게 선택하여 주시기 바랍니다.

목차


1장 CPython 소스 코드 받기
1.1 소스 코드에 포함된 것들

2장 개발 환경 구성하기
2.1 편집기와 통합 개발 환경
2.2 비주얼 스튜디오 구성하기
2.3 비주얼 스튜디오 코드 구성하기
-2.3.1 설치
-2.3.2 권장되는 확장
-2.3.3 고급 코드 탐색 및 펼치기 사용
-2.3.4 작업과 실행 파일을 설정하기
2.4 젯브레인스 CLion 구성하기
2.5 Vim 구성하기
2.6 요약

3장 CPython 컴파일하기
3.1 macOS에서 CPython 컴파일하기
3.2 리눅스에서 CPython 컴파일하기
3.3 수정된 CPython 설치하기
3.4 make 입문
3.5 CPython make 타깃
-3.5.1 빌드 타깃
-3.5.2 데스트 타깃
-3.5.3 정리 타깃
-3.5.4 기타 타깃
3.6 윈도우에서 CPython 컴파일하기
-3.6.1 의존성 설치하기
-3.6.2 명령 프롬프트에서 컴파일하기
-3.6.3 비주얼 스튜디오에서 컴파일하기
3.7 프로파일 기반 최적화
3.8 요약

4장 파이썬 언어와 문법
4.1 CPython이 파이썬이 아니라 C로 작성된 이유
4.2 파이썬 언어 사양
-4.2.1 파이썬 언어 레퍼런스
-4.2.2 문법 파일
4.3 파서 생성기
4.4 문법 다시 생성하기
-4.4.1 토큰
4.5 요약

5장 구성과 입력
5.1 구성 상태
-5.1.1 딕셔너리 초기화 구성
-5.1.2 연관된 소스 파일 목록
-5.1.3 런타임 구성 구조체
-5.1.4 명령줄로 런타임 구성 설정하기
-5.1.5 런타임 플래그 확인하기
5.2 빌드 구성
5.3 입력에서 모듈 만들기
-5.3.1 연관된 소스 파일 목록
-5.3.2 입력과 파일 읽기
-5.3.3 명령줄 문자열 입력
-5.3.4 로컬 모듈 입력
-5.3.5 표준 입력 또는 스크립트 파일 입력
-5.3.6 컴파일된 바이트코드 입력
5.4 요약

6장 렉싱과 파싱
6.1 CST 생성
6.2 파서-토크나이저
-6.2.1 연관된 소스 파일 목록
-6.2.2 파일 데이터를 파서에 입력하기
-6.2.3 파서-토크나이저의 흐름
6.3 추상 구문 트리
-6.3.1 연관된 소스 파일 목록
-6.3.2 인스타비즈로 AST 시각화하기
-6.3.3 AST 컴파일
6.4 중요한 용어들
6.5 예제: "거의 같음" 비교 연산자 추가하기
6.6 요약

7장 컴파일러
7.1 컴파일러 인스턴스 생성
7.2 퓨처 플래그와 컴파일러 플래그
-7.2.1 퓨처 플래그
-7.2.2 파이썬 3.9의 퓨처 플래그 목록
-7.2.3 컴파일러 플래그
7.3 심벌 테이블
-7.3.1 연관된 소스 파일 목록
-7.3.2 심벌 테이블 구조체
-7.3.3 symtable 모듈
-7.3.4 심벌 테이블 구현
7.4 핵심 컴파일 과정
-7.4.1 파이썬에서 컴파일러 사용하기
-7.4.2 컴파일러 C API
-7.4.3 명령
-7.4.4 기본 프레임 블록
-7.4.5 명령어와 인자
7.5 어셈블리
-7.5.1 어셈블러 구조체
-7.5.2 어셈블러의 깊이 우선 탐색 알고리즘
-7.5.3 어셈블러 C API
-7.5.4 깊이 우선 탐색
7.6 코드 객체 생성
7.7 인스타비즈로 코드 객체 시각화하기
7.8 예제: "거의 같음" 연산자 구현하기
7.9 요약

8장 평가 루프
8.1 스레드 상태 생성하기
-8.1.1 스레드 상태
-8.1.2 연관된 소스 파일 목록
8.2 프레임 객체 생성하기
-8.2.1 프레임 객체
-8.2.2 연관된 소스 파일 목록
-8.2.3 프레임 객체 초기화 API
8.3 프레임 실행
-8.3.1 프레임 실행 추적
8.4 값 스택
-8.4.1 바이트코드 명령 예제: BINARY_OR
-8.4.2 값 스택 시뮬레이션
-8.4.3 스택 효과
8.5 예제: 리스트에 요소를 추가하기
8.6 요약

9장 메모리 관리
9.1 메모리 할당
-9.1.1 정적 메모리 할당
-9.1.2 자동 메모리 할당
-9.1.3 동적 메모리 할당
9.2 파이썬 메모리 관리 시스템의 설꼐
-9.2.1 할당자 도메인
-9.2.2 메모리 할당자
9.3 CPython 메모리 할당자
-9.3.1 연관된 소스 파일 목록
-9.3.2 중요한 용어들
-9.3.3 블록, 풀, 아레나
-9.3.4 블록 할당 API
-9.3.5 파이썬 디버그 API 사용하기
9.4 객체와 PyMem 메모리 할당자 도메인
-9.4.1 tracemalloc 모듈 사용하기
9.5 저수준 메모리 할당자 도메인
9.6 사용자 지정 도메인 할당자
9.7 사용자 지정 메모리 할당 검사기
-9.7.1 AddressSanitizer
-9.7.2 MemorySanitizer
-9.7.3 UndefinedBehaviorSanitizer
9.8 PyArean 메모리 아레나
-9.8.1 연관된 파일 목록
9.9 참조 카운팅
-9.9.1 파이썬에서 변수 생성 과정
-9.9.2 참조 카운트 증가시키기
-9.9.3 참조 카운트 감소시키기
-9.9.4 바이트코드 연산에서의 참조 카운팅
-9.9.5 CPython 참조 카운터의 장점
9.10 가비지 컬렉션
-9.10.1 연관된 소스 파일 목록
-9.10.2 가비지 컬렉터 설계
-9.10.3 가비지 컬렉션 대상인 컨테이너 타입
-9.10.4 추적에서 제외할 수 있는 객체들과 가변성
-9.10.5 가비지 컬렉션 알고리즘
-9.10.6 세대별 가비지 컬렉션
-9.10.7 파이썬에서가비지 컬렉터 API 사용하기
9.11 요약

10장 병렬성과 동시성
10.1 병렬성과 동시성 모델
10.2 프로세스의 구조
10.3 멀티프로세스를 활용한 병렬 실행
-10.3.1 POSIX에서 프로세스 포크하기
-10.3.2 윈도우에서의 멀티프로세싱
-10.3.3 multiprocessing 패키지
-10.3.4 연관된 소스 파일 목록
-10.3.5 프로세스 스폰과 포크
-10.3.6 큐와 파이프를 사용해 데이터 교환하기
-10.3.7 프로세스 간의 공유 상태
-10.3.8 애플리케이션 예제
-10.3.9 멀티프로세싱 요약
10.4 멀티스레딩
-10.4.1 GIL
-10.4.2 연관된 소스 파일 목록
-10.4.3 파이썬 스레드 시작하기
-10.4.4 스레드 상태
-10.4.5 POSIX 스레드
-10.4.6 윈도우 스레드
-10.4.7 멀티스레딩 요약
10.5 비동기 프로그래밍
10.6 제너레이터
-10.6.1 제너레이터의 구조
-10.6.2 연관된 소스 파일 목록
-10.6.3 제너레이터 생성하기
-10.6.4 제너레이터 실행하기
10.7 코루틴
-10.7.1 연관된 소스 파일 목록
-10.7.2 이벤트 루프
-10.7.3 예제
10.8 비동기 제너레이터
10.9 서브인터프리터
-10.9.1 연관된 소스 파일 목록
-10.9.2 예제
10.10 요약

11장 객체와 타입
11.1 내장 타입들
11.2 객체와 가변 객체 타입
11.3 type 타입
-11.3.1 타입 슬록
-11.3.2 C 타입 사용하기
-11.3.3 타입 프로퍼티 딕셔너리
11.4 bool과 long 타입
-11.4.1 long 타입
-11.4.2 예제
11.5 유니코드 문자열 타입
-11.5.1 연관된 소스 파일 목록
-11.5.2 유니코드 코드 포인트 처리하기
-11.5.3 UTF-8 대 UTF-16
-11.5.4 확장(wide) 문자 타입
-11.5.5 바이트 순서 표식
-11.5.6 encodings 패키지
-11.5.7 코덱 모듈
-11.5.8 코덱 구현
-11.5.9 내부 코덱
-11.5.10 예제
11.6 딕셔너리 타입
-11.6.1 해싱
-11.6.2 연관된 소스 파일 목록
-11.6.3 딕셔너리의 구조
-11.6.4 검색
11.7 요약

12장 표준 라이브러리
12.1 파이썬 모듈
12.2 파이썬과 C가 혼용된 모듈

13장 테스트 스위트
13.1 윈도우에서 테스트 스위트 실행하기
13.2 리눅스와 macOS에서 테스트 스위트 실행하기
13.3 테스트 플래그
13.4 특정 테스트만 실행하기
13.5 테스트 모듈
13.6 테스트 유틸리티
13.7 요약

14장 디버깅
14.1 크래시 핸들러
14.2 디버그 지원 컴파일하기
-14.2.1 윈도우
-14.2.2 macOS 또는 리눅스
14.3 macOS에서 LLDB 사용하기
-14.3.1 중단점 추가하기
-14.3.2 CPython 실행하기
-14.3.3 실행 중인 CPython 인터프리터에 연결하기
-14.3.4 중단점 사용하기
-14.3.5 cpython_lldb 확장
14.4 GDB 사용하기
-14.4.1 중단점 추가하기
-14.4.2 CPython 실행하기
-14.4.3 실행 중인 CPython 인터프리터에 연결하기
-14.4.4 중단점 사용하기
-14.4.5 pthon-gdb 확장
14.5 비주얼 스튜디오 디버거 사용하기
-14.5.1 중단점 추가하기
-14.5.2 디버거 실행하기
-14.5.3 중단점 사용하기
14.6 CLion 디버거 사용하기
-14.6.1 Make 애플리케이션 디버깅
-14.6.2 디버거 연결하기
-14.6.3 중단점 추가하기
-14.6.4 중단점 사용하기
14.7 요약

15장 벤치마킹, 프로파일링, 실행 추적
15.1 timeit으로 마이크로 벤치마크 실행하기
-15.1.1 timeit 예제
15.2 파이썬 벤치마크 스위트로 런타임 벤치마크 실행하기
-15.2.1 벤치마크 실행하기
-15.2.2 벤치마크 비교하기
15.3 cProfile로 파이썬 코드 프로파일링하기
-15.3.1 프로파일 결과 내보내기
15.4 DTrace로 C 코드 프로파일링하기
-15.4.1 연관된 소스 파일 목록
-15.4.2 DTrace 설치
-15.4.3 DTrace 지원 컴파일하기
-1.5.4.4 CLion에서 DTrace 사용하기
-15.4.5 DTrace 예제
15.5 요약

16장 다음 단계
16.1 CPython용 C 확장 작성하기
16.2 파이썬 애플리케이션 개선하기
16.3 CPython 프로젝트에 기여하기
16.3.1 이슈 분류하기
16.3.2 이슈 수정을 위해 풀 리퀘스트 제출하기
16.3.3 다른 방식으로 기여하기

부록 A 파이썬 프로그래머를 위한 C 안내서

부록 B 성능 이슈를 통해 살펴본 CPython의 미래

교환 및 환불안내

도서교환 및 환불
  • ㆍ배송기간은 평일 기준 1~3일 정도 소요됩니다.(스프링 분철은 1일 정도 시간이 더 소요됩니다.)
  • ㆍ상품불량 및 오배송등의 이유로 반품하실 경우, 반품배송비는 무료입니다.
  • ㆍ고객님의 변심에 의한 반품,환불,교환시 택배비는 본인 부담입니다.
  • ㆍ상담원과의 상담없이 교환 및 반품으로 반송된 물품은 책임지지 않습니다.
  • ㆍ이미 발송된 상품의 취소 및 반품, 교환요청시 배송비가 발생할 수 있습니다.
  • ㆍ반품신청시 반송된 상품의 수령후 환불처리됩니다.(카드사 사정에 따라 카드취소는 시일이 3~5일이 소요될 수 있습니다.)
  • ㆍ주문하신 상품의 반품,교환은 상품수령일로 부터 7일이내에 신청하실 수 있습니다.
  • ㆍ상품이 훼손된 경우 반품 및 교환,환불이 불가능합니다.
  • ㆍ반품/교환시 고객님 귀책사유로 인해 수거가 지연될 경우에는 반품이 제한될 수 있습니다.
  • ㆍ스프링제본 상품은 교환 및 환불이 불가능 합니다.
  • ㆍ군부대(사서함) 및 해외배송은 불가능합니다.
  • ㆍ오후 3시 이후 상담원과 통화되지 않은 취소건에 대해서는 고객 반품비용이 발생할 수 있습니다.
반품안내
  • 마이페이지 > 나의상담 > 1 : 1 문의하기 게시판 또는 고객센터 1800-7327
교환/반품주소
  • 경기도 파주시 문발로 211 1층 / (주)북채널 / 전화 : 1800-7327
  • 택배안내 : CJ대한통운(1588-1255)
  • 고객님 변심으로 인한 교환 또는 반품시 왕복 배송비 5,000원을 부담하셔야 하며, 제품 불량 또는 오 배송시에는 전액을 당사에서부담 합니다.