[Python] 파이썬 모듈(Module) 완벽 가이드: 코드 구성과 재사용의 핵심, 초보자도 쉽게 이해하는 방법
파이썬 모듈(Module) 완벽 가이드: 코드 구성과 재사용의 핵심, 초보자도 쉽게 이해하는 방법
파이썬 모듈(Module)은 코드의 구성과 재사용을 위한 핵심적인 도구입니다. 모듈을 사용하면 코드를 논리적인 단위로 분리하고, 다른 프로그램에서 재사용할 수 있습니다. 이 글에서는 파이썬 모듈의 개념, 생성, 사용법, 다양한 활용법을 예제 코드와 함께 자세히 설명합니다.
1. 모듈이란 무엇인가?
모듈은 파이썬 코드를 담고 있는 파일(.py)입니다. 함수, 클래스, 변수 등을 포함할 수 있으며, 다른 파이썬 프로그램에서 불러와 사용할 수 있습니다. 모듈을 사용하면 다음과 같은 장점을 얻을 수 있습니다.
- 코드 구성: 코드를 논리적인 단위로 분리하여 관리하고 이해하기 쉽게 합니다.
- 코드 재사용성: 다른 프로그램에서 모듈을 불러와 코드를 재사용할 수 있습니다.
- 이름 공간 관리: 모듈은 자체적인 이름 공간을 제공하여 변수나 함수 이름의 충돌을 방지합니다.
2. 모듈 생성 및 사용
2.1 모듈 생성
파이썬 코드를 작성하고 .py
확장자로 저장하면 모듈이 생성됩니다.
# my_module.py
def greet(name):
"""인사 메시지를 출력하는 함수"""
print(f"안녕하세요, {name}님!")
pi = 3.14159
2.2 모듈 불러오기
import
키워드를 사용하여 모듈을 불러옵니다.
import my_module
my_module.greet("Alice") # 출력: 안녕하세요, Alice님!
print(my_module.pi) # 출력: 3.14159
2.3 모듈 별칭 사용
as
키워드를 사용하여 모듈에 별칭을 부여할 수 있습니다.
import my_module as mm
mm.greet("Bob") # 출력: 안녕하세요, Bob님!
print(mm.pi) # 출력: 3.14159
2.4 모듈의 특정 요소 불러오기
from
키워드를 사용하여 모듈의 특정 요소만 불러올 수 있습니다.
from my_module import greet, pi
greet("Charlie") # 출력: 안녕하세요, Charlie님!
print(pi) # 출력: 3.14159
2.5 모든 요소 불러오기
from 모듈 import *
를 사용하여 모듈의 모든 요소를 불러올 수 있지만, 이름 충돌의 위험이 있으므로 권장하지 않습니다.
3. 파이썬 표준 라이브러리 모듈
파이썬은 다양한 기능을 제공하는 표준 라이브러리 모듈을 제공합니다.
- math: 수학 연산 관련 함수 제공
- random: 난수 생성 관련 함수 제공
- datetime: 날짜 및 시간 관련 클래스 제공
- os: 운영체제 관련 기능 제공
- sys: 파이썬 인터프리터 관련 기능 제공
import math
print(math.sqrt(16)) # 출력: 4.0
4. 외부 모듈 설치 및 사용
pip
패키지 관리자를 사용하여 외부 모듈을 설치하고 사용할 수 있습니다.
pip install requests
import requests
response = requests.get("https://www.google.com")
print(response.status_code) # 출력: 200
5. 모듈 활용 예시
5.1. 사용자 정의 모듈
# calculator.py
def add(a, b):
return a + b
def subtract(a, b):
return a - b
import calculator
print(calculator.add(10, 5)) # 출력: 15
print(calculator.subtract(10, 5)) # 출력: 5
5.2. 패키지
모듈을 디렉토리 구조로 묶어 패키지를 생성할 수 있습니다. 패키지는 __init__.py
파일을 포함해야 합니다.
my_package/
__init__.py
module1.py
module2.py
6. 결론
파이썬 모듈은 코드 구성과 재사용을 위한 필수적인 도구입니다. 표준 라이브러리 모듈과 외부 모듈을 활용하고, 사용자 정의 모듈과 패키지를 생성하여 더욱 강력하고 효율적인 파이썬 프로그램을 개발할 수 있습니다.