본문 바로가기

[CPython 파헤치기] 사실 Python은 C로 구성되어 있다 - CPython 구성 요소 살펴보기 해당 글은 도서 CPython 파헤치기 1-4장을 기반으로 작성되었습니다. Python은 아래 2023년 stack overflow survey의 결과에서도 보여주고 있듯이 많은 개발자들에게 사랑받고 있는 언어 중 하나이다. 실제로 업무에서나 다른 개발 작업을 할 때 내가 가장 주 언어로 사용하고 있는 것이 Python인데, 정작 이렇게 많이 사용하고 있으면서 내부 구조를 어떻게 구성되어 있는지 알지 못해 매번 궁금했었다. 그래서 이번 글에서는 CPython 파헤치기 관련 첫번째 글로, C로 구성되어 있는 Python의 전반적인 내부 구조와 문법에 대해 살펴보고자 한다. C로 구성되어 있는 Python 우리가 일반적으로 이용하고 있는, 공식 사이트 python.org에서 다운로드 받는 python은 C로..
[OSSCA] python-mysql-replication - 오픈소스는 어떻게 테스트를 진행하고 있을까? 개발을 하다보면 기능 구현에 집중하느라 정작 테스트 확인은 간과하게 되는 경우가 많았다. 이 정도면 괜찮겠지..! 하고 넘기면 며칠 뒤의 나에게 고통을 선사하게 되는 악순환을 겪게 되었다. 특히 오픈소스는 누구나 기여할 수 있다는 부분으로 인해 테스트가 더 중요하게 여겨질 것이라고 생각이 들었다. 그래서 이번 글에서는 python-mysql-replication 오픈소스에서 어떻게 테스트를 구현했는지 살펴보고자 한다. 또한 2023 오픈소스 컨트리뷰션을 통해 기존 테스트 구현 방식을 직접 개선한 부분에 대해서도 담아볼 예정이다. 지난 글 다시 보기 python-mysql-replication - 개념 이해하기 python-mysql-replication - RandEvent 구현하기 python-mysq..
[OSSCA] python-mysql-replication - UserVarEvent 구현하기 이전 2023 오픈소스 컨트리뷰션 python-mysql-replication RandEvent 기여 활동 글에 이어 두번째 기여 작업이었던 UserVarEvent에 대해 이야기해보고자 한다. (이전 RandEvent 구현 내용은 https://heehehe-ds.tistory.com/204에서 확인할 수 있다.) [OSSCA] python-mysql-replication - RandEvent 구현하기2023 오픈소스 컨트리뷰션 python-mysql-replication 첫번째 기여 활동으로 진행한 RandEvent 구현 과정에 대해 살펴보고자 한다. (python-mysql-replication 설명은 이전 글 참고 : https://heehehe-ds.tistory.com/203) [OSSCA]he..
[OSSCA] python-mysql-replication - RandEvent 구현하기 2023 오픈소스 컨트리뷰션 python-mysql-replication 첫번째 기여 활동으로 진행한 RandEvent 구현 과정에 대해 살펴보고자 한다. (python-mysql-replication 설명은 이전 글 참고 : https://heehehe-ds.tistory.com/203) [OSSCA] python-mysql-replication이란? 지난 7월부터 2023 오픈소스 컨트리뷰션 아카데미라는 활동을 통해 오픈소스에 직접 기여하는 활동을 진행하게 되었다. 2023 오픈소스 컨트리뷰션 아카데미 Open Source Contribution Academy www.contribution.a heehehe-ds.tistory.com Event란? 먼저 Event는 이전 글에서 언급했던 바와 같이 p..
[OSSCA] python-mysql-replication - 개념 이해하기 지난 7월부터 2023 오픈소스 컨트리뷰션 아카데미라는 활동을 통해 오픈소스에 직접 기여하는 활동을 진행하게 되었다. 2023 오픈소스 컨트리뷰션 아카데미 Open Source Contribution Academy www.contribution.ac 오픈소스라면 그저 사용할 줄 밖에 몰랐던 사람인데.. 아직도 내가 스타 2000개 넘는 repo에 PR을 올리고 merge 시켰다는 사실이 믿기지 않는다..!! 총 20가지 이상의 프로젝트 중 python-mysql-replication이라는 오픈소스 프로젝트에 함께 참여했는데, 이번 글에서는 먼저 해당 오픈소스가 어떤 것인지 다뤄보고자 한다. Python-mysql-replication 이 왜 필요할까? 먼저 python-mysql-replication (..
[Python] dateutil import 오류 해결 ImportError: No module named dateutil.relativedelta 해결방법 → python-dateutil 을 따로 설치해주어야 한다. ## CentOS7 sudo yum install python-dateutil
[Python] 카멜 / 파스칼 / 스네이크 표기법 변환 코드 작성 시, 변수 명 설정을 위해 다양한 표기법이 존재한다 camel 표기법 (camelCase) : 띄어쓰기 되는 부분의 글자를 대문자로 작성 pascal 표기법 (PascalCase) : camel 표기법 + 첫번째 글자도 대문자로 작성 snake 표기법 (snake_case) : 띄어쓰기 부분을 '_' 로 대체 다음은 camel 표기법을 snake 표기법으로 변환하는 방법이다. def camelToSnake(s): camel = re.compile(r'(.)([A-Z][a-z]+)') to_snake = re.compile('([a-z0-9])([A-Z])') return to_snake.sub(r'\1_\2', camel.sub(r'\1_\2', s)).lower() stringcase 패키지..
[Python] pygraphviz 설치 오류 해결 CentOS 기준, 다음과 같은 오류가 나왔을 때 해결방법 subprocess.CalledProcessError: Command '['pkg-config', '--libs-only-L', 'libcgraph']' returned non-zero exit status 1. ERROR: Command errored out with exit status 1: /usr/bin/python3 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-1meqr4hy/pygraphviz_1dd95962042b4dada13e5f3e5ee3a3f0/setup.py'"'"'; __file__='"'"'/tmp/pip-install-1meqr4..