Python에서 패키지(package)와 모듈(module)은 모두 코드를 조직화하고 재사용성을 높이기 위해 사용되는 구조적 요소입니다. 이 둘은 Python 코드베이스를 더 잘 구조화하고 관리하기 위한 단위이지만, 각각 다른 개념을 나타냅니다.
모듈 (Module)
• 모듈은 Python 코드의 파일로, 함수, 클래스, 변수, 또는 다른 코드 블록들이 포함된 단위입니다.
• 각 모듈은 .py 확장자를 가진 파일로 저장되며, 이 파일의 이름이 모듈의 이름이 됩니다.
• 모듈은 다른 모듈에서 import 문을 사용하여 불러올 수 있습니다.
예시
# my_module.py
def greet(name):
return f"Hello, {name}!"
# 다른 파일에서 모듈을 불러오기
import my_module
print(my_module.greet("Alice")) # 출력: Hello, Alice!
위의 예에서 my_module.py 파일이 모듈입니다. 이 모듈은 greet라는 함수를 포함하고 있으며, 다른 Python 파일에서 import를 통해 이 함수를 사용할 수 있습니다.
패키지 (Package)
• 패키지는 여러 모듈을 포함할 수 있는 디렉토리로, Python에서는 __init__.py 파일을 포함한 디렉토리를 패키지로 인식합니다.
• 패키지는 서브 모듈을 계층적으로 조직할 수 있게 해줍니다. 즉, 패키지 안에 또 다른 패키지를 포함하여 하위 모듈을 관리할 수 있습니다.
• __init__.py 파일은 해당 디렉토리를 패키지로 인식하게 합니다. Python 3.3 이후로는 이 파일이 없어도 패키지로 인식되지만, 여전히 패키지 초기화 작업을 위해 종종 사용됩니다.
예시
my_package/
__init__.py
module1.py
module2.py
sub_package/
__init__.py
module3.py
위의 구조에서 my_package는 패키지입니다. 이 패키지에는 module1.py와 module2.py라는 두 개의 모듈과, sub_package라는 하위 패키지가 포함되어 있습니다. 하위 패키지 sub_package에는 module3.py라는 모듈이 포함되어 있습니다.
이러한 구조에서는 다음과 같이 모듈을 가져올 수 있습니다:
from my_package import module1
from my_package.sub_package import module3
패키지와 모듈의 차이점
• 구조:
• 모듈은 단일 .py 파일로 구성됩니다.
• 패키지는 여러 모듈(그리고 하위 패키지)을 포함할 수 있는 디렉토리입니다.
• 범위:
• 모듈은 단일 파일에 포함된 코드 단위입니다.
• 패키지는 모듈과 하위 패키지를 조직화하는 더 큰 단위입니다.
• 내포 관계:
• 모듈은 패키지 안에 포함될 수 있습니다.
• 패키지는 모듈들을 그룹화하는 역할을 하며, 패키지 내에 또 다른 패키지를 포함할 수도 있습니다.
요약
• 모듈: Python 코드가 담긴 단일 .py 파일. 모듈은 함수, 클래스, 변수 등의 코드를 포함할 수 있으며, 다른 Python 코드에서 import를 통해 재사용할 수 있습니다.
• 패키지: 모듈들을 조직화하는 디렉토리 구조. 패키지는 모듈과 다른 하위 패키지를 포함할 수 있으며, 패키지로 인식되기 위해서는 일반적으로 __init__.py 파일이 필요합니다.
'LLM FullStacker > Python' 카테고리의 다른 글
[Python] with get_openai_callback as cb: 의미 (0) | 2024.08.25 |
---|---|
[Python] Pydantic 의 BaseModel 클래스 사용 (0) | 2024.08.14 |
[Python] 함수 정의시 * 인수 사용법 (0) | 2024.08.11 |
[Python] Union 과 isinstance 사용법 (0) | 2024.08.11 |
[Python] 여러 Dictionary 병합하기 (0) | 2024.08.11 |