02. 모듈과 패키지 (남의 코드 훔쳐 쓰기)
"코드가 1000줄이 넘어가면 파일을 쪼개야 합니다. 파일 하나는 하나의 역할(Role)을 맡아야 합니다."
1. 모듈 (Module)
개념은 아주 단순합니다. 파이썬 파일(.py) 하나가 곧 모듈입니다.
calculator.py라는 파일을 만들면 calculator라는 모듈이 생긴 것입니다.
- 변수, 함수, 클래스 등을 모아놓은 공구함(Toolbox)입니다.
- 내가 만든 파일도 모듈이고, 남이 만든 파일도 모듈입니다.
graph LR
subgraph Module["calculator.py (모듈)"]
F1[def add]
F2[def sub]
end
subgraph Main["main.py (실행 파일)"]
Code[import calculator]
Use[calculator.add]
end
Main -->|"가져오기 (import)"| Module
style Module fill:#fff9c4,stroke:#fbc02d
style Main fill:#e1f5fe,stroke:#01579b
2. 모듈을 가져오는 3가지 주문 (Import)
초보자가 가장 헷갈리는 것이 import 문법입니다. 딱 3가지만 기억하세요.
| 문법 | 의미 | 비유 | 예시 |
|---|---|---|---|
import A |
A라는 공구함을 통째로 가져온다. | "공구함 줘" | import mathmath.pi |
from A import B |
A에서 B라는 도구만 쏙 꺼내온다. | "공구함에서 망치만 줘" | from math import pipi (바로 씀) |
import A as B |
A를 가져오는데, 이름이 기니까 B라고 부르겠다. (별명) | "공구함을 '박스'라고 부를게" | import pandas as pdpd.DataFrame |
3. 패키지 (Package)
모듈(파일)들이 많아지면 정리할 폴더(Directory)가 필요합니다. 패키지는 "모듈을 담고 있는 폴더"입니다.
구조 예시
game/ # 패키지 (큰 폴더)
__init__.py # (관습) 이 폴더는 패키지입니다! 라는 표시
sound/ # 서브 패키지 (작은 폴더)
echo.py # 모듈
graphic/
render.py # 모듈
사용할 때는 점(.)을 찍어서 들어갑니다.
4. 핵심 철학: 거인의 어깨에 올라타기
우리가 모듈을 배우는 진짜 이유는 "내가 짜지 않기 위해서"입니다.
-
표준 라이브러리 (Standard Library): 파이썬을 설치하면 기본으로 주는 공구함.
math(수학),random(랜덤),datetime(날짜),os(파일 관리)
-
외부 라이브러리 (3rd Party): 전 세계 천재들이 만들어둔 공구함. (
pip로 설치 필요)pandas(엑셀보다 강력한 데이터 도구),requests(웹 통신)
우리가 import pandas를 하는 순간, 수십 년간 쌓인 데이터 분석 노하우가 내 코드 안으로 쏟아져 들어오는 것입니다.