개요
이번 강좌에서는 파이썬에서 코드의 재사용성과 관리 편의성을 높여주는 모듈과 패키지에 대해 알아보겠습니다. 모듈은 함수, 클래스, 변수 등 관련된 코드들을 하나의 파일에 모아 놓은 것으로, 파이썬의 표준 라이브러리뿐만 아니라 직접 작성한 모듈도 포함됩니다. 패키지는 여러 모듈을 계층적으로 관리하기 위한 디렉터리 구조를 의미하며, __init__.py 파일을 통해 패키지로 인식됩니다. 또한, 외부 라이브러리를 설치하는 방법으로 pip를 활용하는 방법도 함께 살펴보겠습니다.
표준 라이브러리 소개
파이썬은 다양한 기능을 제공하는 표준 라이브러리를 내장하고 있어, 추가 설치 없이도 여러 유용한 기능을 바로 사용할 수 있습니다.
- math 모듈: 수학 관련 함수와 상수들을 제공하며, 삼각함수, 제곱근, 로그 등의 기능을 쉽게 사용할 수 있습니다.
- random 모듈: 무작위 수 생성, 리스트 섞기 등 랜덤 관련 기능을 제공합니다.
- datetime 모듈: 날짜와 시간을 다루는 다양한 함수와 클래스를 포함하여, 시간 계산 및 형식 변환을 쉽게 할 수 있습니다.
예제 코드 (math, random, datetime):
import math
import random
import datetime
# math 모듈: 제곱근과 파이 상수 사용
print("16의 제곱근:", math.sqrt(16)) # 출력: 4.0
print("파이 상수:", math.pi) # 출력: 3.141592653589793
# random 모듈: 1부터 10까지의 무작위 정수 생성
rand_int = random.randint(1, 10)
print("1부터 10까지의 무작위 정수:", rand_int)
# datetime 모듈: 현재 날짜와 시간 출력
now = datetime.datetime.now()
print("현재 날짜와 시간:", now.strftime("%Y-%m-%d %H:%M:%S"))
실행 결과 (예시):
16의 제곱근: 4.0
파이 상수: 3.141592653589793
1부터 10까지의 무작위 정수: 7
현재 날짜와 시간: 2023-03-25 14:35:20
모듈 만들기
파이썬에서는 자신만의 모듈을 만들어 코드의 재사용성과 유지보수를 높일 수 있습니다. 모듈은 보통 .py 파일로 작성되며, 다른 파이썬 파일에서 import나 from ... import ... 구문을 사용해 불러올 수 있습니다.
모듈 작성 예제
예를 들어, my_module.py 파일을 만들어 간단한 인사 함수를 작성합니다.
my_module.py:
# my_module.py 파일
def greet(name):
"""입력된 이름으로 인사말을 반환하는 함수"""
return f"안녕하세요, {name}님! 반갑습니다."
이제 다른 파일에서 위 모듈을 가져와 사용할 수 있습니다.
모듈 불러오기 예제
# 모듈을 불러와서 사용하기
# 전체 모듈 불러오기
import my_module
print(my_module.greet("홍길동")) # 출력: 안녕하세요, 홍길동님! 반갑습니다.
# 특정 함수만 불러오기
from my_module import greet
print(greet("이순신")) # 출력: 안녕하세요, 이순신님! 반갑습니다.
실행 결과 (예시):
안녕하세요, 홍길동님! 반갑습니다.
안녕하세요, 이순신님! 반갑습니다.
패키지 개념과 __init__.py
패키지는 여러 모듈을 하나의 디렉터리로 묶어 체계적으로 관리할 수 있도록 해줍니다. 패키지 디렉터리에는 반드시 __init__.py 파일이 포함되어야 하며, 이 파일은 패키지를 초기화하는 역할을 합니다. __init__.py는 빈 파일일 수도 있고, 패키지 초기화 코드를 포함할 수도 있습니다.
패키지 구조 예제
my_package/
├── __init__.py
├── module_a.py
└── module_b.py
module_a.py:
def func_a():
return "Module A의 함수"
module_b.py:
def func_b():
return "Module B의 함수"
패키지 사용 예제
# 패키지 내 모듈 불러오기 예제
# 전체 패키지를 불러오고, 모듈 내부의 함수를 사용
from my_package import module_a, module_b
print(module_a.func_a()) # 출력: Module A의 함수
print(module_b.func_b()) # 출력: Module B의 함수
# 또는 __init__.py에 특정 함수나 모듈을 미리 불러와 패키지 단위로 사용할 수도 있습니다.
이처럼 패키지를 사용하면 복잡한 프로젝트 구조에서도 모듈들을 체계적으로 관리하고, 이름 충돌을 방지할 수 있습니다.
외부 라이브러리 설치 (pip 활용)
파이썬의 강력한 기능 중 하나는 전 세계 개발자들이 만든 다양한 외부 라이브러리를 쉽게 설치하고 사용할 수 있다는 점입니다. 이를 위해 pip라는 패키지 관리 도구를 사용합니다.
예를 들어, HTTP 요청을 보내는 데 널리 사용되는 requests 라이브러리를 설치해 보겠습니다.
외부 라이브러리 설치 및 사용 예제
터미널이나 명령 프롬프트에서 다음 명령어를 실행합니다.
pip install requests
설치가 완료되면 아래와 같이 라이브러리를 사용해 HTTP 요청을 보낼 수 있습니다.
import requests
# GitHub API에 요청을 보내고 상태 코드를 출력하는 예제
response = requests.get("https://api.github.com")
print("응답 상태 코드:", response.status_code)
실행 결과 (예시):
응답 상태 코드: 200
pip를 통해 손쉽게 외부 라이브러리를 설치하고, 이를 활용해 프로젝트의 기능을 확장할 수 있습니다.
정리
- 표준 라이브러리: math, random, datetime 등 내장 모듈을 활용하여 다양한 기능을 바로 사용할 수 있습니다.
- 모듈 만들기: 자신만의 함수나 클래스를 .py 파일에 정의하고, import나 from ... import ... 구문으로 다른 파일에서 활용할 수 있습니다.
- 패키지와 __init__.py: 여러 모듈을 디렉터리 구조로 관리하는 패키지는 __init__.py 파일을 포함해야 하며, 이를 통해 체계적이고 확장 가능한 코드를 작성할 수 있습니다.
- 외부 라이브러리 설치: pip를 이용해 전 세계의 다양한 외부 라이브러리를 설치하고, 프로젝트에 쉽게 적용할 수 있습니다.
'개발 > Python' 카테고리의 다른 글
[Python 파이썬] 11. 예외 처리 (0) | 2025.02.14 |
---|---|
[Python 파이썬] 10. 파일 입출력 (0) | 2025.02.13 |
[Python 파이썬] 8. 함수의 이해와 활용 (0) | 2025.02.11 |
[Python 파이썬] 7. 데이터 구조: 딕셔너리와 세트 (0) | 2025.02.10 |
[Python 파이썬] 6. 데이터 구조: 리스트와 튜플 (0) | 2025.02.09 |