[Zero to ML Master #33] 딥러닝을 위한 파이썬 입문 로드맵 — 변수는 이름표, 클래스는 Layer (02권 헬로 파이썬 소개)

오톨로리즘·약 22시간 전
post-thumbnail

딥러닝 책을 펼쳤는데 왜 파이썬 문법부터 나올까요? 🐍 이유는 단순합니다. 딥러닝 = 거대한 행렬 계산이고, 그 계산을 사람이 읽을 수 있게 적는 언어가 파이썬이기 때문이에요.

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부)

TL;DR — 3줄 요약

  • 파이썬을 관통하는 한 문장은 “변수는 값을 담는 상자가 아니라, 물건에 붙이는 이름표다” 입니다. a = b 뒤에 둘 다 바뀌는 이유, 숫자는 안 바뀌고 리스트는 바뀌는 이유가 모두 여기서 나옵니다.
  • 02권은 이야기 → 자료형 → 흐름 제어 → 함수·메모리 → 클래스 → 실무 도구 → NumPy → Pandas → Plotly 순서이고, 결승점은 “함수와 클래스가 신경망 Layer가 되는 과정”(V단원)입니다.
  • 9개 장의 책 코드는 GitHub 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·GILDataLoader의 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부 🛠️ 실무YPEP8 코드 컨벤션AI에게 코드 맡길 때 필수
7부 🔢 NumPyZ배열 기초·shape텐서의 조상
7부 🔢 NumPyAA축(axis)·reshape·인덱싱배치 차원 다루기
7부 🔢 NumPyAB원소별 연산 vs 행렬곱순전파의 핵심
7부 🔢 NumPyAC브로드캐스트편향(bias) 더하기
7부 🔢 NumPyADNumPy가 빠른 이유GPU 가속의 전 단계
📊 시각화AEPlotly 입문학습 곡선 보기
📊 시각화AFPlotly 실전 5종이미지·히트맵 확인
📊 시각화AG내장함수 100선평생 참고용 사전

📌 원고의 단원표(A~AG)와 아래 로드맵 그림에는 🐼 Pandas 장이 따로 표시되어 있지 않습니다. 실제 02권 목차는 8부 🐼 Pandas(#41·#42)에 이어 9부 📊 Plotly(#43·#44)로 끝나며, 표의 「📊 시각화」(AE~AG)가 9부에 해당합니다. 아래 💻 GitHub 실습의 장별 폴더 표를 기준으로 보세요.

(시각화) 02권 전체 로드맵 — 1부 이야기 → 2·3부 자료·흐름 → 4부 함수·메모리 → 5부 객체지향 → 6부 실무·7부 NumPy·Plotly

🧭 한 줄 지도: 🌱 파이썬 이야기 → 📦 자료형 → 🔁 조건·반복 → 🧠 함수·메모리 → 🏗️ 클래스·Layer → 🛠️ 실무 도구 → 🔢 NumPy → 🐼 Pandas → 📊 Plotly


💻 GitHub 실습 — 코드로 직접 확인하기

📂 02권 코드 폴더: book/02-hello-python · README

이 글(02권 소개)에는 실행할 코드가 없습니다. 대신 02권 아홉 장의 책 코드가 어디에 있는지 한눈에 정리하고, 아래에서 다음 글(02-01)의 첫 코드를 실제로 실행해 봅니다. 각 장 폴더에는 실행 스크립트(.py), 주피터 노트북(.ipynb), 코드 블록 목록과 검증 결과를 담은 README.md가 들어 있습니다.

절코드 폴더코드 블록저장소 검증이어지는 글
02-01 🌱 1부 — 파이썬이라는 언어의 이야기02-01-python-story1✅ 실행 OK#34
02-02 📦 2부 — 데이터를 담는 그릇 자료형02-02-data-types10✅ 실행 OK#35
02-03 🔁 3부 — 흐름 제어 조건과 반복02-03-control-flow5✅ 실행 OK#36
02-04 🧠 4부 — 함수와 메모리 파이썬의 심장02-04-functions-memory12❌ 의도된 오류 예시 1개 (11/12 블록 OK)#37
02-05 🏗️ 5부 — 객체지향 클래스에서 Layer까지02-05-oop-classes-layers6✅ 실행 OK#38
02-06 🛠️ 6부 — 실무 도구 예외·모듈·코드 컨벤션02-06-exceptions-modules-conventions4✅ 실행 OK#39
02-07 🔢 7부 — NumPy 딥러닝의 계산 엔진02-07-numpy7✅ 실행 OK#40
02-08 🐼 8부 — Pandas 파이썬으로 쓰는 엑셀02-08-pandas89✅ 실행 OK#41 · #42
02-09 📊 9부 — Plotly 결과를 눈으로 확인하기02-09-plotly6✅ 실행 OK#43 · #44

🧪 검증 표시는 저장소 book/02-hello-python/README.md 기준입니다. 02-04의 ❌는 책이 UnboundLocalError가 나는 모습을 일부러 보여 주는 블록(Block 6, 저장소 README에는 Block 7로 표기) 때문이며, 나머지 11개 블록은 정상 실행됩니다. 해당 글에서 원인과 함께 설명합니다.

🚀 첫 코드 맛보기 — 02-01 「파이썬이라는 언어의 이야기」

📂 맛보기 코드 폴더 (다음 글 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

🔑 핵심 코드 1 — 첫 파이썬 코드 — print·계산·버전 확인 (02-01 Block 1)

📄 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

☁️ Colab에서 바로 실행

👉 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

⭐ 코드가 도움이 되셨다면 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 머신러닝 딥러닝 Master5권 · 20개 장 · 163개 절 전체를 순서대로 읽고 싶은 분
📄 이 글의 원문02권 🐍 헬로 파이썬 — 파이썬의 탄생부터 NumPy · Pandas · Plotly까지연습문제·해설까지 전부 보고 싶은 분
💻 실습 코드 (GitHub)otoloism/Zero_to_ML_Master.py·.ipynb를 Colab에서 바로 돌려보고 싶은 분
🏠 머신러닝 백과사전mldict.net본문 속 핵심 개념을 카드로 다시 확인하고 싶은 분
✍️ 기술 블로그wikidocs.net/blog/@mldict새 글 알림을 가장 먼저 받고 싶은 분

⭐ 도움이 되셨다면 velog 팔로우와 GitHub Star를 눌러 주세요. 다음 글을 쓰는 가장 큰 힘이 됩니다. 궁금한 점은 댓글로 편하게 남겨 주세요! 🙌

profile
자유주의자

0개의 댓글