본문과 부록 A까지 34장 모두 사이트에서 바로 읽으실 수 있습니다. 어느 챕터부터 시작해도 좋고, 아래 “추천 진입점"에서 본인 배경에 맞는 시작점을 안내드립니다.
이 책이 다루는 것 #
- 현재의 파이썬 표준 워크플로우 — pip + venv + pyenv 대신 uv 하나로 환경·패키지·실행을 통합합니다. pyproject.toml 중심으로 구성합니다.
- 타입힌트 우선 — 모든 예제 코드에 타입힌트를 함께 적습니다. mypy / pyright의 도움을 처음부터 받는 습관을 들입니다.
- 입문에서 실전까지 하나의 흐름으로 연결합니다 — 변수 선언부터 FastAPI · SQLAlchemy · JWT 인증 · 배포까지, 파이썬의 핵심 개념을 실제 서비스 개발 과정 안에서 자연스럽게 이어 갑니다.
- 실무에 필요한 운영 영역까지 다룹니다 — 로깅 · 관측성 · 테스트 · CI · 라이브러리 배포처럼 실제 일에서 자주 마주치는 영역을 책의 후반부에서 함께 정리합니다.
이 책이 다루지 않는 것 #
- 데이터 분석 / ML / 게임 / GUI 같은 도메인 응용 — 별도 책에서 다룹니다.
- 모든 표준 라이브러리 망라 — 부록의 30선만.
- 2017 스타일 코드 (Python 2 호환,
%문자열,dict.has_key등) — 옛 파이썬 기초 강좌 21편이 그대로 남아 있습니다.
누구를 위한 책 #
- 파이썬을 처음 배우는 사람 — 최신 도구와 문법을 기준으로 배우고 싶은 입문자. 처음부터 모던 스택으로 시작합니다.
- 옛 파이썬을 알지만 모던 워크플로우는 모르는 사람 — 2.7~3.5 시대에 배운 뒤 멈춰 있던 사람. 부록의 옛 코드 마이그레이션 가이드가 출발점이 됩니다.
- 다른 언어를 알고 파이썬으로 넘어오는 사람 — 입문부를 빠르게 건너뛰고 2~5부에서 핵심을 흡수할 수 있습니다. 타입힌트 우선이라 진입 장벽이 낮습니다.
추천 진입점 — 어디서 시작할까 #
34장 모두 자유롭게 읽으실 수 있지만, “어디부터 시작해야 할지” 막막하신 분을 위해 세 진입점을 추천합니다.
- 1장 시작과 uv 셋업 — 책의 출발점. 2017 시대의 pip + venv 대신 uv 하나로 환경 · 패키지 · 실행을 통합하는 현재의 표준 워크플로우를 잡습니다. 입문자분이 가장 먼저 펼치실 챕터입니다.
- 2장 변수 · 기본 타입과 타입 힌트 — 이 책의 정체성인 “타입힌트 우선"을 처음부터 손에 익히는 챕터입니다. modern 파이썬 흐름이 궁금하신 분에게 가장 직접적인 시작점입니다.
- 부록 A 옛 파이썬 코드 마이그레이션 — Python 2 호환 코드 ·
%문자열 · pip + venv를 3.14 + uv + 타입힌트 스타일로 옮기는 가이드입니다. 옛 파이썬 사용자분 께서 이 책에서 가장 큰 가치를 가져가는 챕터입니다.
이 세 챕터는 각 진입점의 역할을 합니다. 마음에 드는 챕터부터 자유롭게 펼쳐 읽어 보세요.
책의 바탕이 된 시리즈 #
본 책은 다음 시리즈 27편 + 신규 7장 + 전체 개정으로 엮은 책입니다. 바탕이 된 시리즈는 지금도 사이트에 무료로 남아 있습니다.
책은 위 시리즈를 입문부터 실전까지 이어지도록 재구성하고, 운영 · 테스트 · 종합 실습 챕터를 더해 한 권으로 엮은 별도 책입니다.
이 책의 운영 #
이 책은 사이트 광고 (AdSense)와 독자 후원으로 운영됩니다. 결제 / 구매 절차는 두지 않았으며, 34장 본문 전체는 사이트에서 그대로 읽으실 수 있습니다.
책의 한 챕터가 도움이 되셨다면 Ko-fi에서 후원해 주실 수 있습니다. 후원은 다음 minor 개정과 후속 책 집필의 시간을 만들어 줍니다.
자주 묻는 질문 #
학습 환경으로 무엇이 필요한가요 #
Python 3.14 이상, uv, 그리고 코드 에디터 한 가지면 충분합니다. 4부 FastAPI 챕터에서는 SQLite와 무료 한도 안에서 쓸 수 있는 배포 서비스만 사용합니다. 결제가 발생하는 단계는 본문 안에 없습니다.
책의 코드는 어디서 받을 수 있나요 #
각 챕터의 예제 코드는 본문 안 코드 블록으로 직접 적혀 있어, 손으로 따라 적으시는 학습 방식을 권장합니다. 4부 종합 실습 TODO API의 완성본은 GitHub 저장소로 별도 제공될 예정입니다. 준비되면 이 책 소개 페이지에 링크를 추가합니다.
Python 다음 버전이 나오면 책이 폐기되나요 #
핵심 모델 (uv 워크플로우, 타입힌트 우선, dataclass · Protocol, asyncio, FastAPI + Pydantic v2)은 적어도 다음 2~3년의 버전 동안 그대로 유지될 것으로 봅니다. 변경된 문법과 라이브러리 API는 책의 minor 개정 (예: v1.1)으로 반영하고, 큰 변화가 누적되는 시점에는 v2 책 라인을 별도로 시작할 수 있습니다.
한국어 외 언어로도 볼 수 있나요 #
한국어 · 일본어 · 영어 세 언어 모두 같은 34장 구조로 공개되어 있습니다. 각 언어의 책 소개에서 바로 읽으실 수 있습니다.
책의 한 챕터가 사이트의 한 글과 70% 이상 같지 않나요 #
일부 챕터는 컴파일 소스 시리즈 글과 토픽이 같습니다. 다만 책 챕터는 (1) 책 흐름에 맞게 재서술, (2) Python 3.14 + uv + 타입힌트 기준으로 통일, (3) 책 안의 다른 챕터와 cross-link, (4) 연습문제와 한 줄 요약 추가로 다시 써서, 같은 토픽이라도 결과물은 다른 자료에 가깝습니다. 신규 7장과 부록 A는 컴파일 소스에 없습니다.
후원 / 피드백은 어떻게 보내나요 #
피드백은 블로그를 통한 댓글 또는 이메일로 환영합니다. 챕터별 오타 / 개선 제안 / 코드 오류 보고는 다음 minor 개정에 빠르게 반영됩니다. 후원은 Ko-fi 채널을 두고 있으며, $1부터 자유롭게 보내주실 수 있습니다.
다음 단계 #
이 책의 ko · ja · en 34장은 모두 공개됐습니다. 앞으로의 갱신은 다음과 같이 진행됩니다.
- v1 본문 안정화 — 출시 후 4~8주 동안 독자 피드백을 받아 오타 / 코드 오류 / 미흡한 설명을 minor 개정 (v1.x)으로 반영합니다. 세 언어에 같은 개정을 함께 적용합니다.
- 4부 종합 실습 GitHub 저장소 — TODO API 완성본을 별도 저장소로 정리해 이 책 소개 페이지에 링크를 추가합니다.
- Python 정기 갱신 — 새 마이너 버전과 라이브러리 변경을 6개월 주기로 점검해 반영합니다. 큰 변화가 누적되는 시점에 v2 책 라인을 시작할 수 있습니다.
새 챕터와 메이저 개정 알림은 RSS 피드로 받아보실 수 있습니다.
목차
Python · uv · 첫 프로젝트. 변수와 타입힌트, 제어 흐름, 컬렉션, 함수, 예외, 모듈까지 최신 표준 워크플로우로.
- 1. 시작과 uv 셋업 최신 파이썬과 uv로 첫 프로젝트를 직접 만들어 보겠습니다.
- 2. 변수, 기본 타입과 타입 힌트 파이썬은 동적 언어지만 모던 파이썬은 처음부터 타입을 적습니다. int/str/bool/None과 빌트인 제네릭, int | None 단축 문법, mypy/pyright까지 정리합니다.
- 3. 제어 흐름 — if, while, for, match-case 들여쓰기로 블록을 만드는 흐름 제어, range/enumerate/zip, 그리고 switch와 동작 방식이 다른 match-case 패턴 매칭까지 정리합니다.
- 4. 컬렉션과 컴프리헨션 list/tuple/dict/set 네 컬렉션의 쓰임새, 그리고 한 줄로 새 컬렉션을 만드는 컴프리헨션과 제너레이터 표현식까지 정리합니다.
- 5. 함수 — 인자 패턴 기본값, *args/**kwargs, positional-only(/), keyword-only(*)까지 함수 시그니처를 표현력 있게 적는 모든 도구를 정리합니다.
- 6. 에러와 예외 처리 try/except/else/finally의 역할, raise와 사용자 정의 예외, 그리고 3.11이 가져온 ExceptionGroup과 except*까지 정리합니다.
- 7. 모듈, 패키지와 pyproject.toml import 시스템, 모듈과 패키지의 차이, __init__.py와 __main__, 그리고 pyproject.toml로 의존성·도구 설정·배포까지 한곳에 정리합니다.
dataclass · Protocol · 컨텍스트 매니저 · 데코레이터 · 패턴 매칭 · asyncio 입문. 작은 스크립트에서 유지보수 가능한 코드로.
- 8. dataclass와 __slots__ 데이터 모음 클래스를 짧고 안전하게 만드는 @dataclass의 모든 옵션 — frozen, kw_only, field()와 메모리 절약 도구 __slots__까지 정리합니다.
- 9. typing 본격 — Generic, Protocol, TypedDict, Literal 기초의 타입 힌트 다음 단계 — 타입을 매개변수화하는 Generic, 덕 타이핑을 정확히 적는 Protocol, dict 모양 명시 TypedDict, 좁은 union Literal까지 정리합니다.
- 10. 컨텍스트 매니저 (with, contextlib) try/finally를 한 줄로 만드는 with, __enter__/__exit__로 직접 만들기, @contextmanager로 생성자처럼 짧게 만들기, 그리고 ExitStack/suppress 같은 실전 도구까지 정리합니다.
- 11. 이터러블, 제너레이터, yield from for가 어떻게 동작하는지 다룹니다. 이터러블 프로토콜, 제너레이터 함수와 식, yield from으로 위임, send/throw까지 한곳에 정리합니다.
- 12. 데코레이터 패턴 함수를 감싸는 데코레이터의 모든 형태 — 기본형, 인자 받는 데코레이터, functools.wraps, 클래스 데코레이터, ParamSpec까지 정리합니다.
- 13. 패턴 매칭 깊이 기초의 match-case 다음 단계 — 클래스 패턴과 __match_args__, 시퀀스/매핑 패턴, 캡처와 가드, 그리고 안티패턴까지 정리합니다.
- 14. 비동기 입문 (asyncio) async/await의 의미, 이벤트 루프, asyncio.gather와 TaskGroup, 동기 코드와 섞기까지 asyncio 첫 걸음을 한곳에 정리합니다.
매직 메소드 · 디스크립터 · 메타클래스 · 비동기 깊이 · GIL · 고급 타이핑 · 성능 프로파일링.
- 15. 매직 메소드 깊이와 프로토콜 파이썬 객체가 언어 기능과 통합되는 모든 후크. __call__, __getitem__, __hash__, __format__, __getattr__ 등을 한곳에 정리합니다.
- 16. 디스크립터와 __set_name__ property가 동작하는 원리 — __get__/__set__ 프로토콜과 데이터/논데이터 디스크립터, __set_name__으로 깔끔한 검증 필드 만들기까지 정리합니다.
- 17. 메타클래스 — 언제 정말 필요한가 클래스를 만드는 클래스를 다룹니다. type의 정체, __init_subclass__와의 분담, 클래스 데코레이터로 풀 수 있는 경우, 그리고 진짜 메타클래스가 필요한 좁은 영역까지 정리합니다.
- 18. 비동기 깊이 — 이벤트 루프, gather/wait, async generator 중급 입문의 다음 단계 — 이벤트 루프의 실제 동작, Future와 Task의 차이, gather vs wait, async generator와 async iteration까지 정리합니다.
- 19. GIL과 동시성 — threading vs multiprocessing vs asyncio GIL의 정체, threading/multiprocessing/asyncio 세 도구의 분담, 그리고 Python 3.13~3.14의 free-threaded 빌드(PEP 703/779)까지 한곳에 정리합니다.
- 20. typing 고급 — Variance, ParamSpec, Self, overload 중급 typing의 다음 단계 — covariance/contravariance, ParamSpec과 Concatenate, Self, TypeGuard/TypeIs, @overload까지 정리합니다.
- 21. 성능 — cProfile, py-spy, 메모리 프로파일링 느린 파이썬 코드를 찾고 고치는 도구상자 — timeit, cProfile, py-spy, line_profiler, memray, 그리고 흔한 최적화 패턴까지 정리합니다.
FastAPI · Pydantic v2 · SQLAlchemy 2.x · JWT 인증 · 백그라운드 작업 · 테스트와 배포. 마지막은 종합 실습 TODO API.
- 22. FastAPI 시작과 셋업 왜 FastAPI인가, uv로 첫 프로젝트 셋업, Hello FastAPI, OpenAPI/Swagger UI 자동 생성까지 한곳에 정리합니다.
- 23. 라우팅, Pydantic 모델, 의존성 주입 APIRouter로 라우트 분리, Pydantic v2 스키마로 입력/출력 정의, Depends로 공통 로직을 분리하는 패턴까지 정리합니다.
- 24. Pydantic v2 깊이 — 검증, serialization, 커스텀 validator FastAPI의 핵심인 Pydantic을 별도 챕터로 깊이 살펴보겠습니다. v2의 성능과 API 변화, model_validator/field_validator의 정확한 사용처, 직렬화 컨트롤, JSON Schema 생성까지.
- 25. DB 연동 — SQLAlchemy 2.x + Alembic SQLAlchemy 2.x의 새 스타일 — Mapped/mapped_column, async 세션, FastAPI 의존성 주입과의 결합, Alembic 마이그레이션까지 정리합니다.
- 26. 인증 — OAuth2 패스워드 플로우 + JWT 비밀번호 해싱(argon2/bcrypt), OAuth2 패스워드 플로우, JWT 발급/검증, 그리고 current_user 의존성으로 인증 흐름을 구성하는 패턴을 정리합니다.
- 27. 비동기와 백그라운드 작업 async 라우트의 사용 시점, BackgroundTasks로 응답 후 처리, 외부 큐(Celery, ARQ)가 필요해지는 경계, 그리고 동기 라이브러리와 안전하게 섞는 법을 정리합니다.
- 28. 테스트와 배포 — pytest, Docker, Railway/Fly pytest + httpx로 FastAPI 통합 테스트, 의존성 오버라이드로 격리, Docker 멀티스테이지 빌드, Railway/Fly 클라우드 배포까지 정리합니다.
- 29. 종합 실습 — TODO API 완성하기 1~28장의 패턴을 하나의 동작하는 서비스로 엮습니다. 인증된 사용자별 TODO CRUD, 태그 필터, 페이지네이션, 백그라운드 알림, 테스트, 배포까지.
타입체커 · CI · 구조화 로깅 · 관측성 · uv로 라이브러리 배포 · Typer CLI. 실제 일에 필요한 영역.
- 30. 타입체커 설정과 CI 통합 mypy/pyright/ruff 설정과 충돌 회피, pre-commit으로 로컬에서 막기, GitHub Actions로 PR 단계 막기까지.
- 31. logging과 관측성 표준 logging의 함정, structlog 등 구조화 로깅, OpenTelemetry로 분산 추적, Sentry로 에러 트래킹까지.
- 32. uv로 라이브러리 배포 — pyproject.toml과 PyPI 출시 pyproject.toml의 의미를 한 번에 정리하고 uv build · uv publish로 첫 라이브러리를 PyPI에 출시하는 과정을 다룹니다.
- 33. CLI 도구 만들기 (Typer) argparse가 아니라 Typer로 타입힌트 우선 CLI를 만드는 법. 서브커맨드, 자동 완성, Rich 출력 통합.