안녕 — 이 path 에서 가장 긴 quest 의 첫 lesson 이야
여기 들어왔다는 건 85 lesson 짜리 마라톤의 출발선에 섰다는 거야. 16 트랙, 약 26 시간 분량. 끝나는 시점에 도달해야 할 곳은 명확해 — *나(cwkPippa) 를 돌리는 소스 코드 읽으면서 한 줄도 막히지 않는 자리*. 그게 이 quest 의 한 줄짜리 목표.
솔직히 말할게. 초반 lesson 들은 *어렴풋이 알 것 같은* 것들에 이름 붙이느라 느릿느릿 가. 후반 lesson 들은 Python 이 *진짜로* 깊은 언어라서 어려워. 둘 다 의도야. 페이스 잡고 가자.
Python 의 정체 (buzzword 빼고)
Python 은 세 겹의 언어야:
- 인터프리트 (Interpreted) — 'Python 인터프리터' 라는 프로그램이 코드를 한 줄씩 읽어서 그 자리에서 실행해. 컴파일해서 별도 실행 파일 만드는 단계 없음. *짜고 → 돌리고 → 결과 본다* 가 거의 한 호흡. 초보자가 좋아하는 이유야.
- 동적 타입 (Dynamically typed) — 변수 이름에는 타입이 안 붙어. *값* 에 타입이 붙어. 같은 `x` 가 1초 전엔 정수, 지금은 문자열. 다른 언어는 화내. Python 은 어깨만 으쓱.
- 들여쓰기가 문법 (Whitespace-significant) — 이게 처음 배우는 사람들 다 놀라는 부분. *블록의 시작과 끝* 을 표시하는 중괄호가 없어. 4칸 들여쓰면 블록 안, 풀면 블록 밖. *왜* 이게 결함이 아니라 기능인지는 잠시 후에 봐.
Python 은 1991 년에 Guido van Rossum 이 처음 공개했어. 지금 시점 최신 stable 은 Python 3.13 — 개선된 REPL, 실험적 free-threaded 모드 (GIL 없음 — Concurrency 트랙 가서 봐), 실험적 JIT 컴파일러 들어있어. 이 quest 는 Python 3.12+ 기준으로 가. 옛 문법은 거의 다 부분집합이라 호환은 걱정 안 해도 돼.
왜 Python 부터?
이 quest 는 46 quest 짜리 path 의 입구야. 뒤따르는 거의 모든 quest 가 *Python 읽을 줄 안다* 는 가정에서 시작해:
- AI / API quest 들 (Claude SDK, GPT Wire, Gemini Forge, Agent, Eval) — *그 자체가 Python*
- 데이터 quest 들 (PostgreSQL, SQLite, Vector, Data Engineering) — *예제가 Python*
- ML / DL quest 들 (PyTorch, TensorFlow, JAX, MLX, Transformer) — *Python 으로 짠 거*. 밑단 계산이 C/C++/CUDA 라도.
- 모든 걸 묶는 메타 quest 인 Pippa Stack Quest 도 — Python 위에 돌아.
저 중 *어떤 것* 이라도 할 거면, 출발점은 여기. 그리고 우리는 speed-run 안 해. 깊이 파.
들여쓰기 얘기
다른 언어들이 블록의 시작/끝을 어떻게 표시하나 보자. JavaScript = 중괄호. Ruby = do...end. Bash = fi 같은 키워드. Python 은? *들여쓰기*.
이게 미적인 얘기 같지만 결과를 보면 다른 얘기야. Python 코드는 블록 포맷팅 방법이 *정확히 한 가지*. 모두의 코드가 똑같이 생겼어. "PR 보기 전에 포맷부터 정리해야겠다" 같은 단계가 없어. 인터프리터와 사람 눈이 *어디까지가 블록인지* 에 대해 의견 일치.
첫 상호작용
아직 install 안 해도 따라올 수 있어 — 그건 다음 lesson 의 일. 개념적으로 평생 짜게 될 모든 Python 프로그램은 어떤 형태로든 이 세 단계 — *이름에 값 붙이고, 표현식에서 쓰고, 출력*. 이 quest 의 다른 모든 것은 이 위에 쌓여.
다음 84 lesson 의 모양
기대치 정리 — 앞으로 걸을 path:
- Foundations (이 트랙, 7 lesson) — install, REPL, 변수, 타입, 문자열, I/O
- Data — list, tuple, dict, set, comprehension, bytes
- Flow — if/else, loop, function, closure, walrus operator
- Iterators — generator, yield, itertools
- Decorators — 함수 감싸기, @ 문법, factory 패턴
- OOP — class, dunder methods, dataclass, Protocol
- OOP 고급 — 다중 상속, MRO, metaclass, descriptor
- Errors — try/except, EAFP, context manager
- Files & I/O — pathlib, JSON, CSV, encoding
- 표준 라이브러리 — collections, itertools, functools, datetime, logging
- Modules & Packaging — import, venv, uv, pyproject.toml
- Typing — type hint, Pydantic, generic
- Concurrency — asyncio, threading, multiprocessing, GIL
- Tooling — pytest, mock, pdb, ruff, mypy
- CLI — argparse, click, typer, Rich
- Pythonic — 다른 모든 트랙이 가리켜온 idiom
- 에필로그 — cwkPippa 의 Python 코드베이스 투어
저 list 가 압도적으로 보이면 정상이야. *준비됐다* 고 느끼라고 둔 list 가 아니야. 보고, 한 번 숨 쉬고, lesson 2 시작하라고 둔 거야.