프로그래밍 언어

SQLAlchemy 2.0 #1 전체 그림: Core와 ORM, 그리고 2.0 스타일
6 분 소요

SQLAlchemy 2.0 #1 전체 그림: Core와 ORM, 그리고 2.0 스타일

파이썬 DB 라이브러리의 사실상 표준인 SQLAlchemy를 바닥부터 정리하는 시리즈의 첫 편입니다. Core와 ORM이라는 두 층의 구조, 1.x 시절 코드와 2.0 스타일이 다른 이유, select() 중심으로 통일된 쿼리 방식과 타입 힌트 지원, 설치와 첫 연결, text()로 SQL을 직접 실행하는 것까지 다룹니다.

Rust 기초 강좌 #1 Rust란: 배우는 이유, rustup 설치와 cargo 첫 사용
5 분 소요

Rust 기초 강좌 #1 Rust란: 배우는 이유, rustup 설치와 cargo 첫 사용

Rust가 커널부터 CLI 도구까지 빠르게 퍼진 이유로 꼽히는 "GC 없는 메모리 안전"이 무슨 뜻인지부터 시작합니다. 안전과 성능이 트레이드오프였던 기존 언어들과의 차이, rustup 한 줄 설치, cargo로 프로젝트를 만들고 실행하는 기본 사이클, 그리고 첫 컴파일 에러 메시지를 읽는 법과 강좌 전체의 지도까지 다루겠습니다.

파이썬 패키징 #7 팀 규약과 도구 선택: uv, poetry, pip
4 분 소요

파이썬 패키징 #7 팀 규약과 도구 선택: uv, poetry, pip

시리즈 마지막 편으로, 도구 선택과 팀 규약을 정리합니다. uv, poetry, pip+venv를 한 표에 놓고 가르는 기준, 마이그레이션의 실제 비용, CI에서 캐싱과 frozen 검증을 거는 법, 도커 이미지에서 uv를 쓰는 표준 패턴, 새 팀원이 와도 무너지지 않는 팀 규약 체크리스트까지 다루고 시리즈 전체를 회고합니다.

파이썬 패키징 #6 배포: wheel 빌드와 PyPI 업로드
5 분 소요

파이썬 패키징 #6 배포: wheel 빌드와 PyPI 업로드

받는 쪽에서 만드는 쪽으로 방향을 바꿔, 내 코드를 설치 가능한 패키지로 만들어 올리는 워크플로를 정리합니다. src 레이아웃과 빌드 백엔드의 역할, sdist와 wheel의 차이, uv build로 빌드하고 TestPyPI에서 리허설한 뒤 PyPI에 올리는 순서, GitHub Actions의 Trusted Publishing으로 토큰 없이 배포하는 현대 표준, 사내 전용 배포 대안까지 다룹니다.

파이썬 패키징 #5 의존성 잠금: lock 파일과 재현성
5 분 소요

파이썬 패키징 #5 의존성 잠금: lock 파일과 재현성

선언과 잠금이 왜 분리되는지에서 시작해 uv.lock의 내용을 직접 읽습니다. 전이 의존성까지 전부 고정하는 해석 결과, 해시 검증이 막는 공급망 위험, CI에서 --frozen으로 잠금 그대로 재현하는 법, 업그레이드를 일상 업무로 만드는 전략, 도구 간 이동을 여는 표준 pylock.toml(PEP 751)까지 다룹니다.

파이썬 패키징 #4 uv: 2026년 표준 워크플로
5 분 소요

파이썬 패키징 #4 uv: 2026년 표준 워크플로

가상 환경, 의존성 설치, lock, 파이썬 버전 관리를 한 도구로 묶은 uv의 일상 워크플로를 정리합니다. init·add·sync·run 네 명령이 앞 편들의 수작업을 대체하는 과정, 파이썬 인터프리터까지 uv가 설치하는 구조, uvx와 uv tool로 전역 도구를 격리 설치하는 법, 기존 requirements.txt 프로젝트를 흡수하는 마이그레이션까지 다룹니다.

파이썬 패키징 #3 pyproject.toml: 프로젝트 설정의 표준
5 분 소요

파이썬 패키징 #3 pyproject.toml: 프로젝트 설정의 표준

setup.py와 흩어진 설정 파일들의 시대가 pyproject.toml 한 파일로 수렴한 과정을 정리합니다. project 테이블의 메타데이터와 의존성 선언, extras와 dependency-groups로 선택 의존성과 개발 의존성을 가르는 법, build-system의 역할, ruff와 pytest 설정까지 tool 테이블로 모으는 실전 구성을 다룹니다.

파이썬 패키징 #2 pip와 requirements.txt: 전통 워크플로의 한계
5 분 소요

파이썬 패키징 #2 pip와 requirements.txt: 전통 워크플로의 한계

pip의 동작 원리와 requirements.txt 워크플로를 정리하고, 이 방식이 어디서 무너지는지 짚습니다. 버전 지정자를 읽는 법, pip freeze가 직접 의존성과 전이 의존성을 구분하지 못하는 문제, 버전을 안 박으면 설치 시점마다 결과가 달라지는 재현성 구멍, constraints 파일까지 다루며 다음 세대 도구가 나온 이유를 만듭니다.

파이썬 서버가 느릴 때: py-spy로 5분 안에 병목 찾기
5 분 소요

파이썬 서버가 느릴 때: py-spy로 5분 안에 병목 찾기

운영 중인 파이썬 프로세스에 코드 수정·재시작 없이 붙는 샘플링 프로파일러 py-spy 사용법을 정리합니다. dump로 멈춘 프로세스의 정체 확인, top으로 실시간 병목 관찰, record와 플레임그래프, --idle로 보는 off-CPU 대기, GIL 관점의 해석, 컨테이너에서 쓰는 법까지 다룹니다.

파이썬 패키징 #1 가상 환경: 환경이 꼬이는 원리와 venv
5 분 소요

파이썬 패키징 #1 가상 환경: 환경이 꼬이는 원리와 venv

파이썬 환경이 꼬이는 구조적 원인부터 정리합니다. import가 패키지를 찾는 경로와 site-packages가 하나뿐이라 생기는 충돌, 시스템 파이썬을 건드리면 안 되는 이유와 PEP 668 에러의 의미, venv로 프로젝트마다 환경을 격리하는 방법, activate의 정체가 PATH 조작일 뿐이라는 것까지 다룹니다.

파이썬 JIT 컴파일러 정리: 3.13 실험 도입부터 기대치 조정까지
8 분 소요

파이썬 JIT 컴파일러 정리: 3.13 실험 도입부터 기대치 조정까지

CPython 3.13에 실험적으로 들어온 copy-and-patch JIT 컴파일러를 정리합니다. 동작 원리와 켜는 방법, 3.14에서의 변화, 그리고 지금 시점에서 가질 수 있는 현실적인 기대치까지 다룹니다.

GIL 없는 파이썬이 왔다: free-threading 현재 상태와 써야 할 때
7 분 소요

GIL 없는 파이썬이 왔다: free-threading 현재 상태와 써야 할 때

Python 3.13 실험 빌드에서 3.14 공식 지원까지 온 free-threading의 현재 상태를 정리합니다. 설치와 확인 방법, 싱글 스레드 오버헤드, C 확장 호환 현황, 그리고 지금 프로덕션에 도입해도 되는지의 판단 기준까지 다룹니다.