diff --git a/_posts/2024-02-28-CPython.md b/_posts/2024-02-28-CPython.md new file mode 100644 index 0000000..afa425c --- /dev/null +++ b/_posts/2024-02-28-CPython.md @@ -0,0 +1,77 @@ +--- +layout: post +title: "Python 제대로 알고 써먹기 - CPython 파헤치기" +author: 전희선 +categories: [ 8기 아카데미 ] +image: assets/images/post/8th-builder/heehehe/cpython.png +--- + +안녕하세요! 가짜연구소 8기 "Python 제대로 알고 써먹기 - CPython 파헤치기" 프로젝트를 빌드하게 된 전희선입니다 :) +이번 글에서는 8기 동안 진행하게 될 CPython 프로젝트에 대해서 간단히 소개하고자 합니다. + + +## "Python 제대로 알고 써먹기 - CPython 파헤치기" 프로젝트 소개 + +데이터를 다루는 개발자로서 Python은 어떤 언어보다도 많이 사용하고 있지만, 정작 내부 구조는 잘 알고 있지 못한 채 쓰고 있다는 생각이 들었습니다. +이번 "Python 제대로 알고 써먹기 - CPython 파헤치기" 프로젝트를 통해 +Python의 내부 구현체인 CPython을 파헤쳐 보면서 Python을 보다 효율적으로 사용하고 깊이 있게 트러블슈팅할 수 있도록 하고자 합니다. +더불어 내부 구조를 살펴보면서 CS 기초도 다져보고, 나아가서 추후에는 CPython 오픈소스에 컨트리뷰션할 수 있는 발판을 마련하고자 합니다. + +## 빌더 소개 + +네이버에서 지식그래프 조회 API 구축 및 품질 검증을 진행하고 있는 전희선이라고 합니다 🤗 +가짜연구소에서는 지난 5-7기까지 러너로서 [DE4E(Data Engineering for Everybody)](https://github.com/Pseudo-Lab/data-engineering-for-everybody)라는 데이터 엔지니어링 초심자를 위한 가이드라인 구축 프로젝트에 참여했습니다. +보다 자세한 소개는 [노션 링크](https://pseudo-lab.com/42c4991e1d8d4478891178f361ed64e2)에서 확인하실 수 있습니다 :) +- Linkedin: http://linkedin.com/in/heeseon-cheon +- Github: https://github.com/heehehe + + +## 프로젝트 목적 + +- **CPython의 내부 작동 원리 이해**: Python을 보다 효율적으로 사용하기 위해 Python의 내부 구조와 동작 원리를 깊이 이해하고자 합니다. +- **성능 최적화**: 메모리 관리, 병렬 처리 및 코드 최적화 방법 등을 배워 Python 프로그램의 성능을 향상 시키고자 합니다. +- **고급 Python 기능 마스터링**: Python의 고급 기능과 표준 라이브러리에 대한 깊이 있는 지식을 얻어, 보다 효율적이고 강력한 코드를 작성하고자 합니다. +- **문제 해결 능력 강화**: CPython의 구조와 원리를 이해함으로써 버그를 더 빨리 찾아내고 해결하는 능력을 향상 시키고자 합니다. + + +## 프로젝트 계획 + +"CPython 파헤치기: 따라 하면서 이해하는 파이썬 내부의 동작 원리" 도서를 기반으로 진행합니다. +주차별로 2명씩 담당하여 스터디를 준비하는 식으로 진행되며, +각자 담당한 챕터만 이해하고 넘어가는 상황을 최대한 지양하고자 아래와 같은 과정으로 진행해보고자 합니다. + +1. **스터디 준비 (1-2주 전)** + - [발표자] 스터디 시간에 공유할 내용을 파악 및 정리하고, 관련하여 제공할 미션을 준비합니다. + - [스터디원] 스터디 내용에 대해 해당 챕터를 스터디 전에 미리 학습합니다. +2. **스터디 진행** + - [발표자] 발표 자료를 [노션](https://pseudo-lab.com/Python-CPython-eb832e65c4b1443ba3b9be8d5fc5883a?pvs=4#4b4c00a48b9444fd9bfed4f6e6ee97f5)에 정리하여 공유합니다. + - [스터디원] 발표 내용에 대한 질문 사항을 자유롭게 남깁니다. (slido를 통해 익명으로도 편하게 질문을 남길 수 있는 분위기를 만들고자 합니다😌) +3. **스터디 이후 (1주 이내)** + - [발표자] 발표 자료를 외부에 공유하기 위하여 https://github.com/Pseudo-Lab/CPython-Guide 에 업로드합니다. + - [스터디원] 발표자께서 준비해주신 미션을 수행하여 Github repo 등을 통해 제출합니다. + +**[정기 모임 시간 & 장소]** +- 시간: 월요일 오후 9시 ~ 10시 30분 (온라인) +- 장소: 디스코드 / 오프라인 + - 오프라인 모임은 월 1회 정도 진행되며, 수도권(강남 등)에서 모일 예정입니다. (모임 날짜는 1-2주 전 투표로 결정하고자 합니다.) + +## 주차별 목표 + +날짜 | 제목 | 설명 +--|--|-- +2024/03/11 | OT & Chapter 1-2. 개발 환경 구성하기 +2024/03/18 | Chapter 3-4. 컴파일하기 / 언어와 문법 +2024/03/25 | Chapter 5. 구성과 입력 +2024/04/01 | ~ 휴강 ~ | 빌더 사정으로 인하여 한 주 쉬어갑니다 +2024/04/13 | Chapter 6. 렉싱과 파싱 / 오프라인 첫 모임 🤗 | 스터디 함께 진행하시는 분들과 처음 오프라인으로 인사 나누는 시간을 가지려고 합니다 😊 (모임 날짜 논의 예정) +2024/04/22 | Chapter 7. 컴파일러 +2024/04/29 | Chapter 8. 평가 루프 +2024/05/06 | Chapter 9. 메모리 관리(1) - 메모리 할당 +2024/05/13 | Chapter 9. 메모리 관리(2) - 참조 카운팅 & 가비지 컬렉션 +2024/05/18 | Chapter 10. 병렬성과 동시성(1) - 멀티프로세스 +2024/05/27 | Chapter 10. 병렬성과 동시성(2) - 멀티스레딩 / 오프라인 중간 점검 👀 | 챕터 9-10이 특히 어려울 것으로 예상되어 오프라인으로 같이 중간 점검을 해보고자 합니다 🙂 (모임 날짜 논의 예정) +2024/06/03 | Chapter 11. 객체와 타입 +2024/06/10 | Chapter 12-13. 표준 라이브러리 / 테스트 스위트 +2024/06/17 | Chapter 14. 디버깅 +2024/06/22 | Chapter 15. 벤치마킹, 프로파일링, 실행 추적 +2024/06/29 | 회고 및 최종 리뷰 🥳 diff --git a/assets/images/post/8th-builder/heehehe/cpython.png b/assets/images/post/8th-builder/heehehe/cpython.png new file mode 100644 index 0000000..c59fec6 Binary files /dev/null and b/assets/images/post/8th-builder/heehehe/cpython.png differ