[Python] 모듈(Module)
1. 파이썬의 모듈이란?
모듈은 파이썬 코드를 논리적으로 구조화하고 재사용 가능하게 만드는 방법입니다. 모듈은 변수, 함수, 클래스 등을 포함할 수 있는 파이썬 파일 .py
입니다. 모듈을 사용하면 코드를 더 효율적으로 관리하고 유지보수할 수 있습니다.
2. 모듈 만들기
모듈을 만드는 것은 간단합니다. .py
확장자를 가진 파이썬 파일을 생성하고 그 안에 코드를 작성하면 됩니다.
예를 들어, calculator.py
라는 파일을 만들어 봅시다:
# calculator.py
def add(a, b):
return a + b
def subtract(a, b):
return a - b
PI = 3.14159
3. 모듈 불러오기
모듈을 사용하기 위해서는 import
문을 사용합니다. 모듈을 불러오는 방법은 여러 가지가 있습니다:
3.1 전체 모듈 불러오기
import calculator
result = calculator.add(5, 3)
print(result) # 출력: 8
print(calculator.PI) # 출력: 3.14159
3.2 특정 항목만 불러오기
from calculator import add, PI
result = add(5, 3)
print(result) # 출력: 8
print(PI) # 출력: 3.14159
3.3 모든 항목 불러오기 (권장하지 않음)
from calculator import *
result = add(5, 3)
print(result) # 출력: 8
print(PI) # 출력: 3.14159
이 방식은 권장되지 않습니다. 그 이유는:
- 네임스페이스 오염: 모듈의 모든 이름이 현재 스코프로 직접 가져와져, 의도치 않게 기존 이름을 덮어쓸 수 있습니다.
- 코드 가독성 저하: 어떤 함수나 변수가 어느 모듈에서 왔는지 파악하기 어려워집니다.
- 예기치 않은 동작: 모듈이 업데이트되면서 새로운 이름이 추가될 경우, 기존 코드의 동작이 예상치 못하게 변경될 수 있습니다.
3.4 모듈에 별명 붙이기
모듈을 import할 때 as
키워드를 사용하여 별명(alias)을 붙일 수 있습니다. 이는 긴 모듈 이름을 짧게 줄이거나, 이름 충돌을 피하는 데 유용합니다.
import calculator as calc
result = calc.add(5, 3)
print(result) # 출력: 8
print(calc.PI) # 출력: 3.14159
특정 함수나 변수에도 별명을 붙일 수 있습니다:
from calculator import add as addition, PI as pi_value
result = addition(5, 3)
print(result) # 출력: 8
print(pi_value) # 출력: 3.14159
별명을 사용하면 코드의 가독성을 높이고, 다른 모듈과의 이름 충돌을 방지할 수 있습니다. 특히 긴 이름의 모듈이나 자주 사용되는 함수에 대해 간결한 별명을 사용하면 코드 작성이 더 편리해집니다.
4. 모듈의 __name__
속성
모든 모듈은 __name__
이라는 특별한 속성을 가지고 있습니다. 모듈이 직접 실행될 때 __name__
은 "__main__"
으로 설정되고, 다른 모듈에서 import 될 때는 모듈의 이름이 됩니다.
이를 이용해 모듈이 직접 실행될 때만 특정 코드를 실행하도록 할 수 있습니다:
# calculator.py
def add(a, b):
return a + b
def subtract(a, b):
return a - b
if __name__ == "__main__":
print("Calculator module is being run directly.")
print(f"3 + 5 = {add(3, 5)}")
5. 파이썬 표준 라이브러리 모듈
파이썬은 많은 유용한 모듈을 표준 라이브러리로 제공합니다. 몇 가지 예를 들면:
math
: 수학 함수random
: 난수 생성datetime
: 날짜와 시간 처리os
: 운영 체제와 상호 작용
import math
import random
import datetime
print(math.pi) # 출력: 3.141592653589793
print(random.randint(1, 10)) # 1부터 10 사이의 랜덤한 정수 출력
print(datetime.datetime.now()) # 현재 날짜와 시간 출력
6. 서드파티 모듈
서드파티 모듈은 파이썬 표준 라이브러리에 포함되어 있지 않지만, pip
를 사용해 설치할 수 있는 외부 모듈입니다.
# 서드파티 모듈 설치
pip install requests
설치 후, 해당 모듈을 불러와 사용할 수 있습니다.
import requests
response = requests.get('https://api.github.com')
print(response.status_code)
7. 모듈 검색 경로
파이썬 인터프리터가 모듈을 찾을 때 사용하는 경로는 sys
모듈의 path
변수를 통해 확인할 수 있습니다.
import sys
print(sys.path)
일반적으로 다음 순서로 검색합니다:
- 현재 디렉토리
- PYTHONPATH 환경 변수에 지정된 디렉토리
- 파이썬 설치 시 지정된 기본 디렉토리
필요에 따라 sys.path
에 경로를 추가하여 커스텀 모듈을 불러올 수 있습니다.
import sys
sys.path.append('/path/to/your/module')
import your_module
Leave a comment