Python
Python - 모듈과 패키지
thebasics
2024. 10. 21. 17:00
목차
- 모듈과 패키지란?
- 모듈의 주요 기능 및 사용법
- 모듈 만들기
- 모듈 불러오기 (
import
) - 모듈 내 특정 기능 불러오기
- 모듈 별칭 사용하기
- 패키지의 주요 기능 및 사용법
- 패키지 만들기
- 패키지 불러오기
- 하위 모듈과 서브패키지 불러오기
- 내장 모듈 활용
math
모듈random
모듈os
모듈
- 사용자 정의 모듈과 패키지
- 예시 코드
- 결론
- 관련 자료 및 추가 학습 자료
1. 모듈과 패키지란?
모듈과 패키지는 Python에서 코드를 재사용하고 구조화하는 방법입니다.
- 모듈(Module): Python 파일로서, 관련된 함수, 클래스, 변수들을 한 곳에 모아둔 것입니다. 모듈을 사용하면 코드를 재사용하고 프로젝트를 더 체계적으로 관리할 수 있습니다.
- 패키지(Package): 모듈을 디렉토리 구조로 묶은 것입니다. 패키지를 사용하면 프로젝트 내에서 모듈들을 계층적으로 구성할 수 있어 대규모 프로젝트를 체계적으로 관리할 수 있습니다.
2. 모듈의 주요 기능 및 사용법
모듈 만들기
- 설명: 모듈은 하나의
.py
파일로 구성됩니다. 모듈은 변수, 함수, 클래스를 포함할 수 있으며, 다른 파일에서import
를 통해 사용할 수 있습니다. - 사용법:
mymodule.py
라는 모듈을 만들었다고 가정합니다.# mymodule.py def greet(name): return f"Hello, {name}!"
모듈 불러오기 (import
)
- 설명:
import
키워드를 사용하여 모듈을 불러옵니다. 모듈을 불러오면 그 모듈에 정의된 함수, 클래스 등을 사용할 수 있습니다. - 사용법:
import mymodule print(mymodule.greet("Python")) # Hello, Python!
모듈 내 특정 기능 불러오기
- 설명:
from ... import ...
구문을 사용하여 모듈의 특정 기능만 불러올 수 있습니다. - 사용법:
from mymodule import greet print(greet("World")) # Hello, World!
모듈 별칭 사용하기
- 설명:
as
키워드를 사용하여 모듈이나 함수의 별칭을 지정할 수 있습니다. - 사용법:
import mymodule as mm print(mm.greet("Python")) # Hello, Python!
3. 패키지의 주요 기능 및 사용법
패키지 만들기
- 설명: 패키지는 여러 모듈을 포함하는 디렉토리로 구성되며, 패키지 디렉토리에는
__init__.py
파일이 있어야 합니다. 이 파일은 패키지를 인식하는 데 사용되며, 빈 파일이어도 됩니다. - 구조:
mypackage/ ├── __init__.py ├── module1.py └── module2.py
패키지 불러오기
- 설명: 패키지를 불러올 때는
import
키워드를 사용하며, 패키지 내 모듈을 호출할 때는 점 표기법(.
)을 사용합니다. - 사용법:
import mypackage.module1 mypackage.module1.function()
하위 모듈과 서브패키지 불러오기
- 설명:
from ... import ...
구문을 사용하여 패키지 내의 특정 모듈이나 서브패키지를 불러올 수 있습니다. - 사용법:
from mypackage import module1 module1.function()
- 서브패키지 구조:
mypackage/ ├── __init__.py ├── subpackage/ │ ├── __init__.py │ └── module3.py
- 서브패키지 불러오기:
from mypackage.subpackage import module3 module3.another_function()
- 서브패키지 구조:
4. 내장 모듈 활용
Python은 다양한 내장 모듈을 제공하여 많은 기능을 쉽게 사용할 수 있습니다.
math
모듈
- 설명: 수학 연산을 위한 함수들을 제공합니다.
- 사용법:
import math print(math.sqrt(4)) # 2.0 print(math.factorial(5)) # 120
- 기능: 제곱근(
sqrt
), 팩토리얼(factorial
), 삼각 함수(sin
,cos
등)
random
모듈
- 설명: 난수 생성 및 임의의 선택을 위한 함수들을 제공합니다.
- 사용법:
import random print(random.randint(1, 10)) # 1부터 10 사이의 임의의 정수 print(random.choice(['apple', 'banana', 'cherry'])) # 임의의 요소 선택
- 기능: 임의의 정수(
randint
), 리스트에서 임의의 요소 선택(choice
)
os
모듈
- 설명: 운영 체제와 상호 작용하기 위한 함수들을 제공합니다.
- 사용법:
import os print(os.getcwd()) # 현재 작업 디렉토리 os.mkdir('new_folder') # 새 디렉토리 생성
- 기능: 현재 디렉토리 확인(
getcwd
), 디렉토리 생성(mkdir
), 환경 변수 접근(environ
)
5. 사용자 정의 모듈과 패키지
모듈과 패키지는 프로젝트를 구성하고 코드를 재사용하는 데 중요한 역할을 합니다. 복잡한 프로젝트에서는 여러 모듈을 만들고 이를 패키지로 묶어 프로젝트를 구성할 수 있습니다.
사용자 정의 모듈
- 사용법: 프로젝트의 기능을 각각의 모듈로 분리하여 작성하면 코드의 가독성과 재사용성을 높일 수 있습니다.
- 예시:
utilities.py
모듈에 공통 기능을 정의하고, 다른 파일에서 불러와서 사용합니다.# main.py import utilities print(utilities.add(3, 4)) # 7
# utilities.py def add(a, b): return a + b
사용자 정의 패키지
- 사용법: 프로젝트를 구성하는 여러 모듈을 패키지로 묶어 계층적으로 관리할 수 있습니다.
- 예시:
mypackage
라는 패키지를 만들어 다양한 기능을 관리합니다.mypackage/ ├── __init__.py ├── math_operations.py └── string_operations.py
6. 예시 코드
모듈 사용 예시
math
모듈을 사용하여 제곱근을 구하고,random
모듈을 사용하여 임의의 숫자를 생성하는 예시입니다.import math import random print("Square root of 16 is:", math.sqrt(16)) # 4.0 print("Random number between 1 and 100:", random.randint(1, 100))
패키지 사용 예시
- 사용자 정의 패키지의 모듈을 사용하여 함수를 호출하는 예시입니다.
from mypackage import math_operations result = math_operations.add(5, 3) print("The sum is:", result) # The sum is: 8
7. 결론
모듈과 패키지는 Python에서 코드의 재사용성과 구조화를 위한 핵심 요소입니다. 모듈은 함수, 변수, 클래스를 하나의 파일로 묶어 사용 가능하게 하며, 패키지는 이러한 모듈을 계층적으로 관리할 수 있게 합니다. 또한, Python은 math
, random
, os
와 같은 내장 모듈을 제공하여 개발자가 필요한 기능을 쉽게 활용할 수 있도록 합니다. 사용자 정의 모듈과 패키지를 통해 프로젝트를 구성하면 코드의 유지보수성과 가독성을 크게 향상시킬 수 있습니다. 모듈과 패키지를 올바르게 이해하고 사용하여 효율적인 프로그래밍을 할 수 있도록 연습해보세요.
8. 관련 자료 및 추가 학습 자료
- 공식 홈페이지 및 문서
- Python 공식 문서 - 모듈: https://docs.python.org/3/tutorial/modules.html
- Python 공식 문서 - 패키지: https://docs.python.org/3/tutorial/modules.html#packages
- Python 표준 라이브러리 - 내장 모듈: https://docs.python.org/3/library/
- 국가기관 및 보고서
- NIST (국립 표준 기술 연구소) - Python 표준 라이브러리 가이드: NIST Publications
- 추천 도서
- 블로그 및 기타 자료
- Real Python - Python Modules and Packages: https://realpython.com/python-modules-packages/
- W3Schools - Python Modules: https://www.w3schools.com/python/python_modules.asp
이 글에서는 Python의 모듈과 패키지에 대해 다루었습니다. 모듈의 기본 사용법과 패키지의 구조화 방법, 내장 모듈의 활용 방법을 살펴보았습니다. 신뢰성 있는 자료를 참고하여 모듈과 패키지를 활용한 효율적인 프로그래밍을 연습해보시기 바랍니다.
반응형