파이썬 모듈이란 무엇인가?
모듈(Module)은 파이썬에서 함수, 변수, 클래스 등을 정의해 놓은 .py 파일을 말합니다.
코드를 파일 단위로 나눔으로써 재사용성과 가독성을 높일 수 있습니다.
1. 간단한 모듈 예제
📁 calculator.py
def add(a, b):
return a + b
def subtract(a, b):
return a - b
2. 모듈 사용하기
📁 main.py
import calculator
print(calculator.add(3, 5)) # 8
print(calculator.subtract(10, 7)) # 3
해석:
import 모듈명
을 사용해 다른 파일의 함수나 클래스를 불러옵니다.모듈명.함수명()
형식으로 호출합니다.
3. 특정 함수만 가져오기
from calculator import add
print(add(1, 2))
필요한 함수만 from ~ import
구문으로 가져와 코드 가독성을 높일 수 있습니다.
패키지와 디렉터리 구조화
패키지(Package)는 모듈을 폴더 단위로 그룹화한 것입니다.
파이썬에서 폴더를 패키지로 인식시키려면 그 안에 __init__.py
파일이 있어야 합니다.
패키지 구조 예시
my_project/
├── main.py
├── math_utils/
│ ├── __init__.py
│ ├── add.py
│ └── subtract.py
1. add.py
def add(x, y):
return x + y
2. subtract.py
def subtract(x, y):
return x - y
3. __init__.py
from .add import add
from .subtract import subtract
해석:
__init__.py
는 해당 폴더를 패키지로 인식시켜줍니다.- 여기에서 하위 모듈을 import 해두면 외부에서
math_utils
만 import 해도 사용 가능합니다.
4. main.py에서 패키지 사용
from math_utils import add, subtract
print(add(10, 20)) # 30
print(subtract(20, 5)) # 15
정리: 여러 파일로 나눈 기능들을 폴더로 묶고 __init__.py
로 연결하면 패키지가 완성됩니다.
모듈화 실전 팁과 프로젝트 구조 예시
1. 큰 프로젝트 예시 구조
my_app/
├── main.py
├── utils/
│ ├── __init__.py
│ ├── file.py
│ └── string.py
├── models/
│ ├── __init__.py
│ └── user.py
├── config/
│ └── settings.py
폴더별 역할:
utils/
: 파일 처리, 문자열 처리 등 유틸 함수models/
: 사용자, 제품 등 데이터 구조 정의config/
: 설정 정보, 경로 관리
2. 상대 경로 vs 절대 경로
# 상대 경로 (동일 패키지 내)
from .file import load_file
# 절대 경로 (전체 구조 기준)
from utils.file import load_file
상대 경로는 패키지 내부 모듈 간 호출
에 유용하고,
절대 경로는 최상위 기준에서의 import
를 명확히 할 수 있어 외부에서 접근할 때 편리합니다.
3. __all__ 정의하기 (선택사항)
__all__ = ["add", "subtract"]
__init__.py
안에 __all__
리스트를 정의하면from 패키지 import *
구문 사용 시 가져올 모듈을 제한할 수 있습니다.
파이썬의 모듈화와 패키지 구조화는 협업, 유지보수, 확장성을 높이기 위한 필수 기술입니다.
작은 기능부터 모듈로 나누고, 관련 기능끼리 묶어서 폴더(패키지)로 정리하는 습관을 들여보세요.
직관적인 폴더 구조와 깔끔한 import 구문은 프로젝트를 더 전문적이고 관리하기 쉬운 형태로 발전시켜줍니다.
지금부터라도 여러분의 프로젝트를 “모듈 단위”로 정리해보는 연습을 해보세요!