[Zero to ML Master #34] 파이썬은 왜 AI의 표준 언어가 됐을까 — 탄생 이야기·Zen of Python·5대 특징과 Colab·venv 개발 환경 구축 (02권 1부)

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

파이썬은 사실 느린 언어입니다. C보다 수십 배 느려요. 🐢 그런데 GPT도, 이미지 생성 AI도, 거의 모든 딥러닝 코드가 파이썬으로 쓰입니다. 왜일까요?

답은 이 언어가 "왜 이렇게 생겼는지" 에 있습니다. 이번 글에서는 문법을 외우기 전에, 1989년 크리스마스 연휴의 취미 프로젝트가 어떻게 AI의 공용어가 되었는지, 들여쓰기·세미콜론 없음 같은 특이한 규칙이 모두 이유 있는 선택이었다는 것부터 봅니다. 그리고 Colab·pip·가상환경(venv)으로 첫 코드를 실행하는 데까지 갑니다.

📘 이 글은 위키독스 도서 Zero to 머신러닝 딥러닝 Master 의 02-01 🌱 1부 — 파이썬이라는 언어의 이야기 을 블로그용으로 다듬은 글입니다.
💻 실습 코드: GitHub · 🏠 mldict.net · ✍️ 기술 블로그

💻 이 글의 코드: 02-01-python-story · Open in Colab — 핵심 코드와 실제 실행 결과는 글 아래 💻 GitHub 실습 섹션에 있습니다.

⬅️ 이전 글: #33 딥러닝을 위한 파이썬 입문 로드맵 — 변수는 이름표, 클래스는 Layer (02권 헬로 파이썬 소개) \
➡️ 다음 글: #35 파이썬 자료형 완전 정복 — 변수는 이름표, list·tuple·dict·set 고르는 법과 형변환·초보자 3대 에러 (02권 2부)

TL;DR — 3줄 요약

  • 파이썬은 "읽기 쉽지만 쓸모없던" ABC 언어의 교훈에서, "읽기 쉬우면서 확장 가능한" 언어를 목표로 1989년 크리스마스에 귀도 반 로섬의 개인 취미로 시작됐습니다. 이름은 뱀이 아니라 코미디 「몬티 파이썬」에서 왔습니다.
  • Zen of Python(import this)의 핵심은 가독성이고, 5대 특징은 읽기 쉬운 문법·광범위한 라이브러리·플랫폼 독립성·대화형 인터프리터·커뮤니티입니다. AI가 파이썬을 쓰는 결정적 이유는 "무거운 계산은 C/CUDA가, 사람은 파이썬으로 지시만" 하기 때문입니다.
  • 막히면 Colab으로 바로 시작하세요. 직접 설치할 땐 Add Python to PATH를 꼭 켜고, 라이브러리는 pip로, 프로젝트마다 가상환경(venv) 으로 방을 따로 씁니다.

🔗 지난 글 복습: #33 딥러닝을 위한 파이썬 입문 로드맵 (02권 헬로 파이썬 소개)에서 02권 전체의 지도와 "변수는 이름표" 라는 핵심 문장을 봤습니다. 이번 글은 그 지도의 첫 칸, 파이썬이라는 언어의 이야기입니다.


02-01-A 파이썬의 탄생 — 실패한 언어에서 시작된 크리스마스 취미

문법을 외우기 전에 "이 언어가 왜 이렇게 생겼는지"를 먼저 알면, 이후 모든 규칙이 암기가 아니라 납득이 됩니다. 파이썬의 특이한 점들 — 중괄호 대신 들여쓰기, 세미콜론 없음, 타입 선언 없음 — 은 전부 이유가 있는 선택이었습니다.

① ABC 언어의 실패와 교훈 — "쉬운데 쓸모가 없다"

귀도 반 로섬(Guido van Rossum)은 네덜란드 국립 수학·컴퓨터 과학 연구소(CWI)에서 ABC라는 교육용 언어 개발에 참여했습니다.

😊 ABC의 장점

· 문법이 매우 읽기 쉬움\
· 초보자가 배우기 쉬움\
· 코드가 짧고 명확함

😰 ABC의 치명적 약점

· 확장이 안 됨 (기능 추가 불가)\
· 시스템 콜(OS 자원) 접근이 어려움\
· 결국 "장난감 언어"로 남음

👉 귀도의 결론: "ABC의 읽기 쉬운 문법은 지키되, 실제 시스템 개발에도 쓸 수 있는 확장성을 갖춘 언어를 만들자." 이 한 문장이 파이썬의 설계도가 되었습니다.

② 1989년 크리스마스 — 취미로 시작된 프로젝트 🎄

1989년 12월, 귀도는 연구소가 문을 닫은 크리스마스 휴가 기간에 개인 취미로 파이썬을 만들기 시작했습니다. 회사 프로젝트가 아니었습니다.

🔍 더 쉽게 이해하기 — 🔧 딱 맞는 공구가 없어서 직접 만든 목수

당시 귀도는 아메바(Amoeba) 분산 운영체제 프로젝트를 하고 있었는데, 손에 든 도구가 애매했습니다.\
🔨 C 언어 — 강력하지만 너무 딱딱하고 오래 걸림 (못 하나 박는데 설계도부터)\
🪛 쉘 스크립트 — 빠르지만 큰 작업엔 너무 약함 (드라이버로 벽 뚫기)\
👉 그래서 "C보다 유연하고 쉘보다 강력한" 중간 도구를 직접 만들었습니다. 그게 파이썬입니다.\
즉 파이썬은 "교육용 장난감"이 아니라 처음부터 "실무자가 자기 일 하려고 만든 실전 도구"였습니다.

③ 이름의 유래 — 뱀이 아니라 코미디 🎭

🐍 대부분 사람들은 파이썬이 "비단뱀"에서 왔다고 생각합니다. 틀렸습니다.\
\
🎬 실제 유래는 귀도가 좋아하던 영국 코미디 그룹 「몬티 파이썬의 비행 서커스(Monty Python's Flying Circus)」입니다.\
\
왜 이런 이름을? 귀도는 새 언어가 "지루하지 않고 재미있기를" 바랐고, 짧고 독특한 이름을 선호했습니다.\
📌 그래서 파이썬 공식 문서에는 지금도 spam, eggs 같은 몬티 파이썬 개그에서 온 예제 변수명이 등장합니다. (영어권 튜토리얼에서 foo, bar 대신 spam이 나오면 이 때문입니다.)\
"재미있어야 한다"는 태도가 이름에서부터 시작된 언어입니다.

🖼️ 시각화 — 파이썬 역사 연표

(시각화) 파이썬 역사 연표 — 1989 개발 시작 · 1991 버전 0.9.0 공개 · 1994 버전 1.0 · 2000 버전 2.0 · 2008 버전 3.0

📋 역사적 이정표 정리

연도사건의미
1989개발 시작귀도의 크리스마스 연휴 개인 프로젝트
1991버전 0.9.0 공개최초 공개. 이미 클래스·예외 처리 포함
1994버전 1.0 발표lambda·map·filter — 함수형 프로그래밍 추가
2000버전 2.0 발표가비지 컬렉터(GC)·리스트 컴프리헨션 도입
2008버전 3.0 발표하위 호환성을 과감히 버리고 언어의 정결함 강화

⭐ 오늘의 한 줄 — 파이썬은 "쉽지만 쓸모없던 언어"의 교훈에서, "쉬우면서 강력한 언어"를 목표로 태어났습니다.

02-01-B 파이썬의 철학과 5대 특징 — 왜 AI의 공용어가 되었나

🧘 Zen of Python — 파이썬의 헌법

파이썬 인터프리터에 import this를 입력하면 「파이썬의 선(禪)」이 출력됩니다. 그중 딥러닝 코드를 쓸 때 특히 중요한 문장들입니다.

📖 Beautiful is better than ugly. — 아름다운 것이 추한 것보다 낫다\
📖 Simple is better than complex. — 단순한 것이 복잡한 것보다 낫다\
📖 Readability counts. — 가독성은 중요하다\
📖 Explicit is better than implicit. — 명시적인 것이 암시적인 것보다 낫다\
📖 There should be one obvious way to do it. — 하는 방법은 하나여야 한다

🔍 더 쉽게 이해하기 — 📕 소설처럼 읽히는 코드

다른 언어에서 "0부터 9까지 출력"은 이렇게 씁니다.\
for (int i = 0; i < 10; i++) { printf("%d", i); }\
파이썬은 이렇게 씁니다.\
for i in range(10): print(i)\
👉 "for i in range 10, print i" — 영어 문장 그대로 읽힙니다.\
코드를 소설처럼 읽히게 만들면 유지보수 비용이 극적으로 줄어듭니다. 이것이 "가독성 중심" 설계의 목적입니다.

🏅 파이썬의 5대 특징

특징무엇이 좋은가
📖 ① 읽기 쉬운 문법중괄호 대신 들여쓰기로 블록을 구분해 누구나 같은 모양의 코드를 씁니다. 초보자도 남의 코드를 읽을 수 있습니다.
📚 ② 광범위한 라이브러리데이터 분석 pandas, 웹 Django, ML scikit-learn, 딥러닝 PyTorch. 바퀴를 다시 발명할 필요가 없습니다.
🌍 ③ 플랫폼 독립성윈도우에서 짠 코드가 맥·리눅스·서버에서 그대로 돌아갑니다. 연구는 노트북, 학습은 GPU 서버로 옮겨도 코드는 동일합니다.
💬 ④ 대화형 인터프리터한 줄 쓰고 즉시 결과 확인. 컴파일을 기다릴 필요가 없어 실험이 빠릅니다. 주피터 노트북이 AI 연구 표준이 된 이유입니다.
🤝 ⑤ 커뮤니티와 오픈소스1991년 공개 이후 귀도는 독점권을 갖는 대신 전 세계 개발자와 함께 언어를 키웠습니다. 그 결과 모르는 게 있으면 이미 누군가 답을 써놨습니다.

🤖 그래서 왜 AI는 파이썬을 쓰나 — 결정적 이유

사실 파이썬은 실행 속도가 느린 언어입니다. C보다 수십 배 느립니다. 그런데 왜 AI 표준이 되었을까요?\
\
🎯 답: "무거운 계산은 C가 하고, 사람은 파이썬으로 지시만 한다"\
· NumPy·PyTorch의 핵심 연산부는 C/C++/CUDA로 작성되어 있습니다\
· 파이썬은 그 위에서 "무엇을 계산할지 지시하는 리모컨" 역할만 합니다\
· A단원의 "C/C++ 모듈을 쉽게 붙일 수 있는 확장성"이라는 설계 목표가 30년 뒤 딥러닝 시대에 꽃핀 것입니다\
\
🎮 비유 — 게임기 본체(C/GPU)는 초고속으로 계산하고, 여러분은 컨트롤러(파이썬)만 잡습니다. 컨트롤러가 느려도 게임은 빠릅니다.

⭐ 오늘의 한 줄 — 파이썬은 "사람이 읽기 쉬운 리모컨"이고, 무거운 계산은 그 아래의 C가 대신합니다.

02-01-C 개발 환경 구축 — 첫 코드를 실행하기까지

🛠️ 세 가지 설치 방법 — 상황에 맞게 고르세요

방법추천 대상장점단점
☁️ Google Colab 설치 불필요완전 초보 · 지금 당장 시작설치 0분, GPU 무료, 브라우저만 있으면 됨인터넷 필수, 세션이 끊기면 초기화
🐍 Python 공식 python.org가볍게 쓰고 싶은 사람용량이 작고 깔끔함라이브러리를 하나씩 직접 설치
📦 Anaconda 데이터 과학 올인원본격 학습·연구NumPy·Plotly·주피터가 한 번에 설치됨용량이 큼(수 GB)

🚀 가장 빠른 시작 — 지금 당장 3분 안에

1️⃣ 브라우저에서 colab.research.google.com 접속\
2️⃣ 구글 계정으로 로그인 → 「새 노트」 클릭\
3️⃣ 회색 칸에 print("Hello Python!") 입력\
4️⃣ Shift + Enter 누르기\
→ 아래에 결과가 나오면 성공입니다. 설치 없이 NumPy·Plotly가 전부 준비되어 있습니다.

💻 직접 설치할 때 주의사항 (윈도우 기준)

⚠️ 설치 화면에서 「Add Python to PATH」 체크박스를 반드시 켜세요.\
이걸 빼먹으면 터미널에서 python을 쳤을 때 "명령을 찾을 수 없습니다" 오류가 납니다.\
\
🔧 이미 빼먹었다면? 두 가지 방법이 있습니다.\
① 재설치가 가장 빠릅니다 (설치 파일 다시 실행 → Modify → PATH 체크)\
② 수동 등록: 시스템 → 고급 시스템 설정 → 환경 변수 → Path에 파이썬 설치 폴더와 그 안의 Scripts 폴더를 추가한 뒤 재부팅\
\
📁 PATH가 뭔가요? 컴퓨터가 프로그램을 찾아다니는 "검색 경로 목록"입니다. 여기 등록되어야 어느 폴더에서든 python이라고 불렀을 때 반응합니다.

📦 라이브러리 설치 — pip 사용법

🖥️ 터미널(명령 프롬프트)

# 파이썬이 잘 설치됐는지 확인
python --version

# 이 장에서 쓸 라이브러리 설치 (pip = 파이썬 패키지 설치 도구)
pip install numpy plotly

# 주피터 노트북까지 원한다면
pip install jupyterlab

# 설치된 목록 확인
pip list

💡 가상환경(venv) — 프로젝트마다 방을 따로 쓰기

🏠 비유 — 한집에 여러 사람이 살면서 같은 냉장고를 쓰면, A가 B의 재료를 써버려 요리가 망합니다. 가상환경은 프로젝트마다 냉장고를 따로 주는 것입니다.\
\
프로젝트 A는 NumPy 1.24가, 프로젝트 B는 NumPy 2.0이 필요할 때 충돌 없이 공존합니다.\
python -m venv myenv → 생성\
myenv\Scripts\activate (윈도우) / source myenv/bin/activate (맥·리눅스) → 진입\
지금 당장은 몰라도 됩니다. 다만 나중에 "라이브러리 버전이 꼬였다"는 문제가 생기면 이 단락으로 돌아오세요.

💻 첫 코드 — Hello Python

🐍 첫 실행

print("Hello Python!")         # 화면에 글자 출력
print(2 + 3 * 4)                # 계산기로도 쓸 수 있다

import sys
print("파이썬 버전:", sys.version.split()[0])

🔗 GitHub에서 코드 보기 — 02_01_python_story.py L12–L16

▶ 실행 결과 (책 원고의 출력 예시)

Hello Python!
14
파이썬 버전: 3.12.3

🎉 이 세 줄이 나왔다면 환경 구축 완료입니다. (버전 숫자는 여러분 컴퓨터에 따라 다릅니다. 3.9 이상이면 이 책의 모든 코드가 동작합니다.)

⭐ 오늘의 한 줄 — 막히면 Colab으로 시작하세요. 설치에 시간을 쓰는 것보다 코드를 한 줄이라도 더 돌려보는 게 낫습니다.

🔜 다음 부 예고 — 02-02. 📦 2부 — 데이터를 담는 그릇: 자료형

파이썬을 설치하고 첫 코드를 실행했습니다. 다음 부에서는 변수가 "상자"가 아니라 이름표라는 핵심 원리부터 시작해, 숫자·문자열·리스트·딕셔너리 같은 그릇을 하나씩 다룹니다.


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

📂 이 장의 코드 폴더: 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책에 나온 셸 명령 모음 (python --version·pip install 등)보기

🧪 저장소 검증 상태: ✅ 실행 OK

🔑 핵심 코드 1 — 첫 코드 Hello Python — print·계산·파이썬 버전 확인

📄 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로 환영합니다!


🔮 다음 글 예고

다음 글은 #35 파이썬 자료형 완전 정복 — 변수는 이름표, list·tuple·dict·set 고르는 법과 형변환·초보자 3대 에러 (02권 2부) 입니다. 변수가 값을 담는 "상자"가 아니라 물건에 붙이는 이름표라는 핵심 원리부터 시작해, 숫자·문자열·리스트·튜플·딕셔너리·집합 같은 그릇을 하나씩 다루고, a = b 뒤에 둘 다 바뀌는 이유와 흔한 형변환 에러까지 짚습니다.

⬅️ 이전 글: #33 딥러닝을 위한 파이썬 입문 로드맵 — 변수는 이름표, 클래스는 Layer (02권 헬로 파이썬 소개) \
➡️ 다음 글: #35 파이썬 자료형 완전 정복 — 변수는 이름표, list·tuple·dict·set 고르는 법과 형변환·초보자 3대 에러 (02권 2부)


📚 더 깊이 공부하고 싶다면

이 시리즈는 수학을 놓았던 비전공자가 AI를 직접 구현하기까지의 공부 기록을 그대로 옮긴 연재입니다. 원문 책, 코드, 개념 사전을 함께 보면 훨씬 빨리 늡니다. 🚀

바로가기이런 분께
📘 책 (위키독스, 무료)Zero to 머신러닝 딥러닝 Master5권 · 20개 장 · 163개 절 전체를 순서대로 읽고 싶은 분
📄 이 글의 원문02-01 🌱 1부 — 파이썬이라는 언어의 이야기연습문제·해설까지 전부 보고 싶은 분
💻 실습 코드 (GitHub)otoloism/Zero_to_ML_Master.py·.ipynb를 Colab에서 바로 돌려보고 싶은 분
🏠 머신러닝 백과사전mldict.net본문 속 핵심 개념을 카드로 다시 확인하고 싶은 분
✍️ 기술 블로그wikidocs.net/blog/@mldict새 글 알림을 가장 먼저 받고 싶은 분

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

profile
자유주의자

0개의 댓글