목차
- 서론
- 모듈이란 무엇인가?
- 모듈의 기본 개념
- 모듈의 생성과 사용
- 패키지란 무엇인가?
- 패키지의 기본 개념
- 패키지의 생성과 사용
- 모듈과 패키지의 장점
- 모듈과 패키지 사용 예제
- 간단한 모듈 생성과 사용
- 간단한 패키지 생성과 사용
- 모듈과 패키지 관리 도구
- 실습 예제
- 마무리
- 추천 태그
1. 서론
Python은 모듈화 프로그래밍을 통해 코드의 재사용성과 유지보수성을 높일 수 있는 강력한 기능을 제공합니다. 모듈과 패키지를 사용하면 큰 프로젝트를 작은 단위로 나누어 관리할 수 있습니다. 이번 포스팅에서는 모듈과 패키지의 기본 개념부터 사용법까지 초보자도 이해할 수 있도록 자세히 설명하겠습니다.
2. 모듈이란 무엇인가?
2.1 모듈의 기본 개념
모듈은 Python 파일 하나로, 함수, 클래스, 변수 등을 포함할 수 있습니다. 모듈을 사용하면 코드를 재사용하고, 논리적으로 묶을 수 있습니다.
2.2 모듈의 생성과 사용
모듈을 생성하려면 .py
파일을 작성하면 됩니다. 예를 들어, mymodule.py
라는 모듈을 생성해보겠습니다.
# mymodule.py
def greet(name):
return f"Hello, {name}!"
모듈을 사용하려면 import
키워드를 사용합니다.
# main.py
import mymodule
print(mymodule.greet("Alice")) # 출력: Hello, Alice!
3. 패키지란 무엇인가?
3.1 패키지의 기본 개념
패키지는 여러 모듈을 묶은 디렉터리입니다. 패키지는 디렉터리 내에 __init__.py
파일을 포함하여 모듈들을 논리적으로 그룹화합니다.
3.2 패키지의 생성과 사용
패키지를 생성하려면 디렉터리를 만들고, 그 안에 __init__.py
파일을 생성합니다. 예를 들어, mypackage
라는 패키지를 생성해보겠습니다.
mypackage/
__init__.py
module1.py
module2.py
각 모듈 파일에 함수를 정의합니다.
# module1.py
def func1():
return "This is function 1"
# module2.py
def func2():
return "This is function 2"
패키지를 사용하려면 다음과 같이 import
키워드를 사용합니다.
# main.py
from mypackage import module1, module2
print(module1.func1()) # 출력: This is function 1
print(module2.func2()) # 출력: This is function 2
4. 모듈과 패키지의 장점
- 코드 재사용성: 한 번 작성한 모듈과 패키지는 여러 프로젝트에서 재사용할 수 있습니다.
- 코드 유지보수성: 코드를 논리적으로 분리하여 유지보수와 디버깅이 쉽습니다.
- 네임스페이스 관리: 모듈과 패키지를 사용하여 네임스페이스를 관리할 수 있어 변수나 함수 이름의 충돌을 방지할 수 있습니다.
5. 모듈과 패키지 사용 예제
5.1 간단한 모듈 생성과 사용
mathmodule.py
라는 모듈을 생성하여 기본적인 수학 함수를 포함해보겠습니다.
# mathmodule.py
def add(a, b):
return a + b
def subtract(a, b):
return a - b
이 모듈을 사용하여 두 수의 합과 차를 구하는 프로그램을 작성합니다.
# main.py
import mathmodule
print(mathmodule.add(5, 3)) # 출력: 8
print(mathmodule.subtract(5, 3)) # 출력: 2
5.2 간단한 패키지 생성과 사용
geometry
라는 패키지를 생성하여 기본적인 기하학 함수를 포함해보겠습니다.
geometry/
__init__.py
circle.py
rectangle.py
각 모듈 파일에 함수를 정의합니다.
# circle.py
def area(radius):
return 3.14159 * radius * radius
def circumference(radius):
return 2 * 3.14159 * radius
# rectangle.py
def area(width, height):
return width * height
def perimeter(width, height):
return 2 * (width + height)
이 패키지를 사용하여 원과 직사각형의 면적과 둘레를 구하는 프로그램을 작성합니다.
# main.py
from geometry import circle, rectangle
print(circle.area(5)) # 출력: 78.53975
print(circle.circumference(5)) # 출력: 31.4159
print(rectangle.area(4, 6)) # 출력: 24
print(rectangle.perimeter(4, 6)) # 출력: 20
6. 모듈과 패키지 관리 도구
Python에서는 모듈과 패키지를 관리하기 위한 다양한 도구를 제공합니다. 그 중 대표적인 도구는 pip
입니다. pip
는 Python 패키지 관리 시스템으로, 패키지를 쉽게 설치하고 관리할 수 있습니다.
패키지 설치 예시:
pip install requests
설치된 패키지 사용 예시:
import requests
response = requests.get("https://api.github.com")
print(response.status_code) # 출력: 200
7. 실습 예제
예제 1: 간단한 계산기 모듈
간단한 계산기 모듈을 작성하고, 이를 사용하는 프로그램을 작성해보겠습니다.
# calculator.py
def add(a, b):
return a + b
def subtract(a, b):
return a - b
def multiply(a, b):
return a * b
def divide(a, b):
if b == 0:
return "Error: Division by zero"
return a / b
# main.py
import calculator
print(calculator.add(10, 5)) # 출력: 15
print(calculator.subtract(10, 5)) # 출력: 5
print(calculator.multiply(10, 5)) # 출력: 50
print(calculator.divide(10, 5)) # 출력: 2.0
print(calculator.divide(10, 0)) # 출력: Error: Division by zero
예제 2: 학생 관리 패키지
학생들의 정보를 관리하는 패키지를 작성해보겠습니다.
student_management/
__init__.py
student.py
course.py
각 모듈 파일에 클래스를 정의합니다.
# student.py
class Student:
def __init__(self, name, age):
self.name = name
self.age = age
def __str__(self):
return f"Student(name={self.name}, age={self.age})"
# course.py
class Course:
def __init__(self, title, students=None):
self.title = title
self.students = students if students is not None else []
def add_student(self, student):
self.students.append(student)
def __str__(self):
return f"Course(title={self.title}, students={[str(s) for s in self.students]})"
이 패키지를 사용하여 학생과 과정을 관리하는 프로그램을 작성합니다.
# main.py
from student_management.student import Student
from student_management.course import Course
# 학생 생성
student1 = Student("Alice", 20)
student2 = Student("Bob", 22)
# 과정 생성
course = Course("Python Programming")
# 과정에 학생 추가
course.add_student(student1)
course.add_student(student2)
print(course)
8. 마무리
이번 포스팅에서는 Python의 모듈과 패키지에 대해 알아보았습니다. 모듈과 패키지를 사용하면 코드를 재사용하고, 논리적으로 분리하여 관리할 수 있습니다. 다양한 예제를 통해 모듈과 패키지의 활용법을 익혀보시기 바랍니다. 다음 포스팅에서는 더 심화된 Python 주제를 다룰 예정입니다.
이 포스팅이 Python을 처음 접하는 분들에게 도움이 되길 바랍니다.