
딥러닝 책을 펼쳤는데 왜 파이썬 문법부터 나올까요? 🐍 이유는 단순합니다. 딥러닝 = 거대한 행렬 계산이고, 그 계산을 사람이 읽을 수 있게 적는 언어가 파이썬이기 때문이에요.
01권에서 수식으로 배운 순전파·역전파를 NumPy 60줄로 돌려 봤다면, 이제는 그 코드의 self, __init__, *args, a = b 한 줄 한 줄을 스스로 읽고 고칠 수 있는 차례입니다. 이번 글은 02권 「헬로 파이썬」 전체의 지도예요. 무엇을, 어떤 순서로, 딥러닝의 어디에 쓰려고 배우는지 먼저 훑어봅니다.
📘 이 글은 위키독스 도서 Zero to 머신러닝 딥러닝 Master 의 02권 🐍 헬로 파이썬 — 파이썬의 탄생부터 NumPy · Pandas · Plotly까지 을 블로그용으로 다듬은 글입니다.
💻 실습 코드: GitHub · 🏠 mldict.net · ✍️ 기술 블로그
💻 이 권의 코드:
book/02-hello-python· 첫 코드 Open in Colab — 장별 코드 폴더 안내와 실제 실행 결과는 글 아래 💻 GitHub 실습 섹션에 있습니다.
⬅️ 이전 글: #32 XOR 미니 신경망부터 GPT·CNN·확산 모델까지 — NumPy 60줄이 PyTorch 15줄이 되는 법 (ML 수학 총정리 2부) \
➡️ 다음 글: #34 파이썬은 왜 AI의 표준 언어가 됐을까 — 탄생 이야기·Zen of Python·5대 특징과 Colab·venv 개발 환경 구축 (02권 1부)
a = b 뒤에 둘 다 바뀌는 이유, 숫자는 안 바뀌고 리스트는 바뀌는 이유가 모두 여기서 나옵니다.book/02-hello-python/ 폴더에 장별 .py·.ipynb로 정리되어 있어 Colab에서 바로 실행할 수 있습니다.🔗 지난 글 복습: #32 XOR 미니 신경망부터 GPT·CNN·확산 모델까지 (ML 수학 총정리 2부)에서 NumPy 60줄로 XOR을 풀고 PyTorch 15줄과 맞대어 보며 01권을 마무리했습니다. 이번 글부터는 그 코드를 쓰는 언어, 파이썬 자체를 처음부터 다집니다.
중요도 ⭐⭐⭐⭐⭐
딥러닝 책을 펼쳤는데 왜 파이썬 문법부터 나올까요? 이유는 단순합니다. 딥러닝 = 거대한 행렬 계산이고, 그 계산을 사람이 읽을 수 있게 적는 언어가 파이썬이기 때문입니다.
이 장을 끝내면 이런 것들을 혼자 힘으로 할 수 있습니다.\
✔ 남의 딥러닝 코드를 열었을 때 모든 줄이 무슨 뜻인지 읽힌다\
✔ self, __init__, *args 같은 낯선 기호가 더 이상 겁나지 않는다\
✔ 왜 a = b 했는데 둘 다 바뀌는지 메모리 구조로 설명할 수 있다\
✔ NumPy 배열로 신경망 순전파를 직접 계산할 수 있다\
✔ Plotly로 움직이는 그래프를 만들어 학습 결과를 눈으로 확인한다
아무것도 필요 없습니다. 이 장은 컴퓨터를 처음 켜는 사람도 따라올 수 있게 만들었습니다.\
다만 🔗 01-04 행렬과 🔗 01-13 ML 수학 총정리를 읽었다면, "아 그때 그 수식이 이 코드였구나" 하는 순간이 계속 나옵니다.\
🖥️ 준비물 — 인터넷이 되는 컴퓨터 한 대. 설치는 C단원에서 처음부터 안내합니다.
✏️ 꼭 알아야 할 TIP
파이썬을 관통하는 단 하나의 문장\
👉 "파이썬에서 변수는 값을 담는 상자가 아니라, 물건에 붙이는 이름표다."\
\
이 한 문장을 이해하면 파이썬의 절반이 풀립니다.\
· 왜a = b후에 둘 다 바뀌는지 (같은 물건에 이름표 두 개)\
· 왜 숫자는 안 바뀌고 리스트는 바뀌는지 (임뮤터블 vs 뮤터블)\
· 왜 함수 안에서 바꾼 값이 밖에 반영되기도 안 되기도 하는지\
이 세 가지가 초보자가 가장 많이 헤매는 지점이고, D · N · O단원에서 그림으로 완전히 해결합니다.
☐ 파이썬이 왜 이런 모습으로 태어났는지 역사와 철학으로 설명할 수 있다.
☐ 개발 환경을 직접 설치하고 첫 코드를 실행할 수 있다.
☐ 5대 자료형(int·float·str·list·dict)과 튜플·집합을 구분해 쓸 수 있다.
☐ 문자열 인덱싱·슬라이싱·f-string·주요 메서드를 자유롭게 쓸 수 있다.
☐ 조건문·반복문·컴프리헨션을 풀어쓰기와 묶어쓰기 양쪽으로 작성할 수 있다.
☐ 함수를 정의하고
*args·**kwargs·docstring·기본값을 활용할 수 있다.☐ 지역/전역 변수와 스택의 동작을 그림으로 설명하고
global을 올바르게 쓸 수 있다.☐ 뮤터블/임뮤터블의 차이와 그 설계 이유(성능·안전성)를 설명할 수 있다.
☐ 참조 카운트·GC·GIL의 관계를 이해하고 멀티스레딩 한계를 설명할 수 있다.
☐ 일급 함수·클로저·람다를 이해하고 실제 코드에서 알아볼 수 있다.
☐ 클래스를 설계하고 매직 메서드로 파이썬 표준 문법과 연동할 수 있다.
☐ 인스턴스·클래스·스태틱 메서드를 구분하고 상속을 사용할 수 있다.
☐ 함수와 클래스가 신경망의 Layer가 되는 과정을 비유로 설명할 수 있다.
☐
try-except로 예외를 처리하고 모듈·파일 입출력을 다룰 수 있다.☐ NumPy 배열의 생성·shape·축(axis)·인덱싱·reshape을 자유롭게 다룰 수 있다.
☐ 원소별 연산과 행렬 곱을 구분하고 브로드캐스트를 활용할 수 있다.
☐ NumPy가 왜 빠른지 설명하고 속도 차이를 직접 측정할 수 있다.
☐ Plotly로 선·산점도·막대·히트맵·이미지를 그리고 상호작용할 수 있다.
· 변수 = 레고 블록 하나 🟦 (값 하나를 가리키는 이름표)\
· 리스트 = 블록을 일렬로 쌓은 탑 🗼 (순서대로 담기)\
· 딕셔너리 = 이름표 붙은 서랍장 🗄️ (이름으로 꺼내기)\
· 함수 = 조립 설명서 📋 (넣으면 나오는 레시피)\
· 클래스 = 레고 세트 📦 (블록 + 설명서를 한 상자에)\
· NumPy 배열 = 레고 판 🟩 (블록을 격자로 정리 = 행렬!)\
· 신경망 Layer = 완성된 모듈 🏗️ (세트를 끼워 만든 부품)\
딥러닝은 이 레고들을 조합해 "숫자를 인식하는 기계"를 만드는 과정입니다.
| 부 | 단원 | 주제 | 딥러닝에서 어디에 쓰이나 |
|---|---|---|---|
| 1부 🌱 이야기 | A | 파이썬의 탄생 서사 | 왜 AI 표준 언어가 되었는지 |
| 1부 🌱 이야기 | B | 철학과 5대 특징 | 코드가 읽히는 이유 |
| 1부 🌱 이야기 | C | 환경 구축 | 모든 실습의 출발점 |
| 2부 📦 자료형 | D | 변수 = 이름표 | 텐서 공유·복사 이해의 뿌리 |
| 2부 📦 자료형 | E | 기본 자료형·연산자 | 가중치는 float, 라벨은 int |
| 2부 📦 자료형 | F | 상자 비유 심화 | 자료구조 선택 기준 |
| 2부 📦 자료형 | G | 문자열 완전 정복 | 토큰화·로그 출력 |
| 2부 📦 자료형 | H | 리스트·튜플 | 배치 데이터·shape 튜플 |
| 2부 📦 자료형 | I | 딕셔너리·집합 | 하이퍼파라미터·단어사전 |
| 2부 📦 자료형 | J | 형변환·흔한 에러 | dtype 오류 디버깅 |
| 3부 🔁 흐름 | K | 조건문 | ReLU·조기 종료 로직 |
| 3부 🔁 흐름 | L | 반복문·컴프리헨션 | 에폭 루프·배치 순회 |
| 4부 🧠 함수·메모리 | M | 함수 — 레시피 | 활성화 함수·손실 함수 |
| 4부 🧠 함수·메모리 | N | 스코프와 스택 | 중간값 저장 이해 |
| 4부 🧠 함수·메모리 | O | 뮤터블·임뮤터블 | in-place 연산 버그 방지 |
| 4부 🧠 함수·메모리 | P | 참조 카운트·GC·GIL | DataLoader의 num_workers |
| 4부 🧠 함수·메모리 | Q | 일급함수·클로저·람다 | 데코레이터·콜백·스케줄러 |
| 5부 🏗️ 객체지향 | R | 시퀀스·이터레이터 | Dataset·DataLoader의 원리 |
| 5부 🏗️ 객체지향 | S | 클래스 — 설계도 | 모든 Layer의 뼈대 |
| 5부 🏗️ 객체지향 | T | 매직 메서드 | model(x)가 되는 비밀 |
| 5부 🏗️ 객체지향 | U | 메서드 3종·상속 | nn.Module 상속 구조 |
| 5부 🏗️ 객체지향 | V | 함수·클래스 → Layer | 이 장의 결승점 🏁 |
| 6부 🛠️ 실무 | W | 예외 처리 | 학습 중단 복구 |
| 6부 🛠️ 실무 | X | 모듈·파일 입출력 | 체크포인트 저장 |
| 6부 🛠️ 실무 | Y | PEP8 코드 컨벤션 | AI에게 코드 맡길 때 필수 |
| 7부 🔢 NumPy | Z | 배열 기초·shape | 텐서의 조상 |
| 7부 🔢 NumPy | AA | 축(axis)·reshape·인덱싱 | 배치 차원 다루기 |
| 7부 🔢 NumPy | AB | 원소별 연산 vs 행렬곱 | 순전파의 핵심 |
| 7부 🔢 NumPy | AC | 브로드캐스트 | 편향(bias) 더하기 |
| 7부 🔢 NumPy | AD | NumPy가 빠른 이유 | GPU 가속의 전 단계 |
| 📊 시각화 | AE | Plotly 입문 | 학습 곡선 보기 |
| 📊 시각화 | AF | Plotly 실전 5종 | 이미지·히트맵 확인 |
| 📊 시각화 | AG | 내장함수 100선 | 평생 참고용 사전 |
📌 원고의 단원표(A~AG)와 아래 로드맵 그림에는 🐼 Pandas 장이 따로 표시되어 있지 않습니다. 실제 02권 목차는 8부 🐼 Pandas(#41·#42)에 이어 9부 📊 Plotly(#43·#44)로 끝나며, 표의 「📊 시각화」(AE~AG)가 9부에 해당합니다. 아래 💻 GitHub 실습의 장별 폴더 표를 기준으로 보세요.

🧭 한 줄 지도: 🌱 파이썬 이야기 → 📦 자료형 → 🔁 조건·반복 → 🧠 함수·메모리 → 🏗️ 클래스·Layer → 🛠️ 실무 도구 → 🔢 NumPy → 🐼 Pandas → 📊 Plotly
📂 02권 코드 폴더: book/02-hello-python · README
이 글(02권 소개)에는 실행할 코드가 없습니다. 대신 02권 아홉 장의 책 코드가 어디에 있는지 한눈에 정리하고, 아래에서 다음 글(02-01)의 첫 코드를 실제로 실행해 봅니다. 각 장 폴더에는 실행 스크립트(.py), 주피터 노트북(.ipynb), 코드 블록 목록과 검증 결과를 담은 README.md가 들어 있습니다.
| 절 | 코드 폴더 | 코드 블록 | 저장소 검증 | 이어지는 글 |
|---|---|---|---|---|
| 02-01 🌱 1부 — 파이썬이라는 언어의 이야기 | 02-01-python-story | 1 | ✅ 실행 OK | #34 |
| 02-02 📦 2부 — 데이터를 담는 그릇 자료형 | 02-02-data-types | 10 | ✅ 실행 OK | #35 |
| 02-03 🔁 3부 — 흐름 제어 조건과 반복 | 02-03-control-flow | 5 | ✅ 실행 OK | #36 |
| 02-04 🧠 4부 — 함수와 메모리 파이썬의 심장 | 02-04-functions-memory | 12 | ❌ 의도된 오류 예시 1개 (11/12 블록 OK) | #37 |
| 02-05 🏗️ 5부 — 객체지향 클래스에서 Layer까지 | 02-05-oop-classes-layers | 6 | ✅ 실행 OK | #38 |
| 02-06 🛠️ 6부 — 실무 도구 예외·모듈·코드 컨벤션 | 02-06-exceptions-modules-conventions | 4 | ✅ 실행 OK | #39 |
| 02-07 🔢 7부 — NumPy 딥러닝의 계산 엔진 | 02-07-numpy | 7 | ✅ 실행 OK | #40 |
| 02-08 🐼 8부 — Pandas 파이썬으로 쓰는 엑셀 | 02-08-pandas | 89 | ✅ 실행 OK | #41 · #42 |
| 02-09 📊 9부 — Plotly 결과를 눈으로 확인하기 | 02-09-plotly | 6 | ✅ 실행 OK | #43 · #44 |
🧪 검증 표시는 저장소
book/02-hello-python/README.md기준입니다. 02-04의 ❌는 책이UnboundLocalError가 나는 모습을 일부러 보여 주는 블록(Block 6, 저장소 README에는 Block 7로 표기) 때문이며, 나머지 11개 블록은 정상 실행됩니다. 해당 글에서 원인과 함께 설명합니다.
📂 맛보기 코드 폴더 (다음 글 02-01): book/02-hello-python/02-01-python-story
책에 실린 코드를 장(절)별로 모아 둔 폴더입니다. 아래 파일을 열어 보거나, Colab에서 바로 실행해 보세요.
| 파일 | 용도 | 링크 |
|---|---|---|
02_01_python_story.py | 책의 코드 블록 1개를 순서대로 모은 실행 스크립트 (# %% 셀 구분) | 코드 보기 |
02_01_python_story.ipynb | 같은 코드를 블록당 셀 1개로 담은 주피터 노트북 | 보기 · Colab |
README.md | 코드 블록 목록 · 실행 방법 · 검증 결과 | 보기 |
commands.sh | 책에 나온 셸 명령 모음 (파이썬 버전 확인·pip install 등) | 보기 |
🧪 저장소 검증 상태: ✅ 실행 OK
📄 02_01_python_story.py L12–L16 · Block 1 (💡 가상환경(venv) — 프로젝트마다 방을 따로 쓰기)
print("Hello Python!") # 화면에 글자 출력
print(2 + 3 * 4) # 계산기로도 쓸 수 있다
import sys
print("파이썬 버전:", sys.version.split()[0])
▶ 실행 결과 — 위 코드를 실행한 출력 (직접 실행: Linux · Python 3.13.5 · numpy 2.5.3, 앞 블록부터 순서대로 실행)
Hello Python!
14
파이썬 버전: 3.13.5
👉 Open in Colab — 02_01_python_story.ipynb · 설치 없이 브라우저에서 셀을 위에서부터 순서대로 실행하세요.
git clone https://github.com/otoloism/Zero_to_ML_Master.git
cd Zero_to_ML_Master
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -r book/requirements.txt # 책 전체용 (PyTorch 등 포함, 용량 큼)
cd book/02-hello-python/02-01-python-story
python 02_01_python_story.py
⭐ 코드가 도움이 되셨다면 GitHub 저장소에 Star를 눌러 주세요. 새 장의 코드가 올라올 때 가장 먼저 알 수 있습니다.
🍴 직접 고쳐 보며 실험하고 싶다면 Fork 해서 내 저장소에서 마음껏 바꿔 보세요. 오류 제보·개선 제안은 Issues로 환영합니다!
다음 글은 #34 파이썬은 왜 AI의 표준 언어가 됐을까 — 탄생 이야기·Zen of Python·5대 특징과 Colab·venv 개발 환경 구축 (02권 1부) 입니다. 귀도 반 로섬이 크리스마스 연휴에 시작한 취미 프로젝트가 어떻게 AI의 표준 언어가 되었는지, "읽기 쉬운 코드"를 앞세운 파이썬의 철학과 5대 특징, 그리고 가상환경(venv)으로 첫 코드를 실행하는 환경 구축까지 따라 해 봅니다.
⬅️ 이전 글: #32 XOR 미니 신경망부터 GPT·CNN·확산 모델까지 — NumPy 60줄이 PyTorch 15줄이 되는 법 (ML 수학 총정리 2부) \
➡️ 다음 글: #34 파이썬은 왜 AI의 표준 언어가 됐을까 — 탄생 이야기·Zen of Python·5대 특징과 Colab·venv 개발 환경 구축 (02권 1부)
이 시리즈는 수학을 놓았던 비전공자가 AI를 직접 구현하기까지의 공부 기록을 그대로 옮긴 연재입니다. 원문 책, 코드, 개념 사전을 함께 보면 훨씬 빨리 늡니다. 🚀
| 바로가기 | 이런 분께 | |
|---|---|---|
| 📘 책 (위키독스, 무료) | Zero to 머신러닝 딥러닝 Master | 5권 · 20개 장 · 163개 절 전체를 순서대로 읽고 싶은 분 |
| 📄 이 글의 원문 | 02권 🐍 헬로 파이썬 — 파이썬의 탄생부터 NumPy · Pandas · Plotly까지 | 연습문제·해설까지 전부 보고 싶은 분 |
| 💻 실습 코드 (GitHub) | otoloism/Zero_to_ML_Master | .py·.ipynb를 Colab에서 바로 돌려보고 싶은 분 |
| 🏠 머신러닝 백과사전 | mldict.net | 본문 속 핵심 개념을 카드로 다시 확인하고 싶은 분 |
| ✍️ 기술 블로그 | wikidocs.net/blog/@mldict | 새 글 알림을 가장 먼저 받고 싶은 분 |
⭐ 도움이 되셨다면 velog 팔로우와 GitHub Star를 눌러 주세요. 다음 글을 쓰는 가장 큰 힘이 됩니다. 궁금한 점은 댓글로 편하게 남겨 주세요! 🙌