[PyCon Korea 2026] Python의 점 (.), 그 뒤에 숨겨진 7가지 이야기 - 김기범
조회수 92회·1개월 전·길이 미제공
아직 이 영상의 타임라인이 없어요.
영상 설명 원문 보기
This talk introduces the internal mechanics of CPython that occur when accessing an object attribute in Python (the . operator), along with techniques for optimizing this at the C++ level. Part 1 breaks down the 7-step CPython Attribute Lookup process (getattribute, MRO, Descriptor, slots, dict, getattr, etc.), and covers application patterns built on it—such as proxy implementations, memory savings, and data validation. Part 2 shares techniques for boosting lookup performance when binding Python with C++. This includes the architecture and concrete implementation details behind directly implementing tp_getattro, using String Interning for pointer comparison, bypassing RefCount write overhead, leveraging AVX2 SIMD, and enabling direct lookup via Unicode padding bit injection. --- 1부. 파이썬 점(.) 연산의 7가지 이야기 파이썬에서 매일 사용하는 속성 접근(.) 연산자는 CPython 내부에서 7단계의 우선순위 탐색 과정을 거칩니다. 각 단계의 동작 원리와 함께 이를 응용한 실무 패턴을 살펴봅니다. __getattribute__: 속성 조회를 최우선으로 가로채는 동적 로깅 프록시 패턴 MRO 탐색: C3 선형화 알고리즘과 상속 체인 검색 메커니즘 Data Descriptor: @property 동작 원리와 원천적 데이터 유효성 검증 __slots__: 인스턴스 딕셔너리를 제거하여 메모리를 80% 이상 절감하는 기법 Instance Dictionary: 객체 고유 딕셔너리(__dict__) 탐색 과정 Non-Data Descriptor: 파이썬 함수와 메서드 바인딩 메커니즘 __getattr__ Fallback: 미정의 속성을 처리하는 최후의 방어선과 동적 API 설계 2부. C++ 바인딩과 극한의 마이크로 최적화 발표자가 구글 텐서플로(TensorFlow) 팀에서 근무할 당시 tf.* API의 속성 조회 오버헤드를 최적화 하기 위해 실제로 적용했던 C++ 바인딩 최적화 기법과 실전 벤치마크 결과를 공유합니다. __getattribute__ 오버라이딩: 모듈 딕셔너리 탐색 생략 C++ tp_getattro 직접 구현: C-Slot 구현을 통한 C++ 레벨 속성 탐색 String Interning: 문자열 비교 대신 포인터 비교를 수행하는 최적화 Hashmap 캐싱: 수백 개 속성에 대해 일관된 탐색 속도를 보장하는 캐싱 Hot List & AVX2 SIMD: 자주 쓰이는 속성을 1사이클 만에 동시에 포인터 비교 가속 Unicode Padding Bits 주입: 문자열 미사용 비트에 직접 함수 인덱스를 주입하는 기법 --- Kibeom Kim - Google: Former Senior Software Engineer and Tech Lead — TensorFlow, Search, Chrome, and AdMob - Chromium: Committer - Terminal X: Former Co-founder and CTO - 10x.builders: Founder of an open-source database startup Links - LinkedIn: linkedin.com/in/kkimdev - Website: https://10x.builders --- 김기범 - Google: Ex Senior Software Engineer & Tech Lead - TensorFlow, Search, - Chrome, AdMob - Chromium: Committer - Terminal X: Ex- Co-founder & CTO - 10x.builders: 오픈소스 데이터베이스 스타트업 Founder Links - LinkedIn: linkedin.com/in/kkimdev - Website: https://10x.builders