8장: 모듈과 패키지

파이썬에서 모듈과 패키지는 코드를 구조화하고 재사용성을 높이는 데 중요한 역할을 합니다. 이 장에서는 모듈과 패키지를 정의하고 사용하는 방법에 대해 알아보겠습니다.


#### 8.1 모듈


모듈(Module)은 파이썬 코드를 논리적으로 묶어놓은 파일입니다. 모듈은 다른 파이썬 파일에서 재사용할 수 있습니다. 모듈을 사용하면 코드를 구조화하고, 유지 보수성을 높일 수 있습니다.


```python

# my_module.py 파일 내용

def greet(name):

    return f"안녕하세요, {name}님!"


def add(a, b):

    return a + b

```


모듈을 사용하려면 `import` 키워드를 사용하여 모듈을 가져와야 합니다.


```python

# 모듈 사용 예제

import my_module


print(my_module.greet("Python"))  # 출력: 안녕하세요, Python님!

print(my_module.add(10, 20))      # 출력: 30

```


#### 8.2 특정 함수 또는 변수 가져오기


모듈의 특정 함수나 변수를 가져오려면 `from ... import ...` 구문을 사용할 수 있습니다.


```python

# 특정 함수 가져오기 예제

from my_module import greet


print(greet("Python"))  # 출력: 안녕하세요, Python님!

```


#### 8.3 별칭 사용하기


모듈 이름이 길거나 더 짧은 이름으로 사용하고 싶을 때는 `as` 키워드를 사용하여 별칭(alias)을 지정할 수 있습니다.


```python

# 별칭 사용 예제

import my_module as mm


print(mm.greet("Python"))  # 출력: 안녕하세요, Python님!

```


#### 8.4 패키지


패키지(Package)는 여러 모듈을 묶어놓은 디렉터리입니다. 패키지를 사용하면 더 큰 프로젝트에서 모듈을 체계적으로 관리할 수 있습니다. 패키지 디렉터리에는 `__init__.py` 파일이 있어야 합니다. 이 파일은 해당 디렉터리가 패키지임을 나타냅니다.


디렉터리 구조 예시:

```

my_package/

    __init__.py

    module1.py

    module2.py

```


`module1.py` 파일 내용:

```python

def func1():

    return "모듈 1의 함수"

```


`module2.py` 파일 내용:

```python

def func2():

    return "모듈 2의 함수"

```


패키지를 사용하려면 `import` 키워드를 사용하여 패키지와 모듈을 가져와야 합니다.


```python

# 패키지 사용 예제

from my_package import module1, module2


print(module1.func1())  # 출력: 모듈 1의 함수

print(module2.func2())  # 출력: 모듈 2의 함수

```


#### 8.5 하위 패키지


패키지 내에 또 다른 패키지를 포함할 수 있습니다. 이를 통해 계층 구조를 가진 패키지를 만들 수 있습니다.


디렉터리 구조 예시:

```

my_package/

    __init__.py

    sub_package/

        __init__.py

        sub_module.py

```


`sub_module.py` 파일 내용:

```python

def sub_func():

    return "서브 모듈의 함수"

```


하위 패키지를 사용하려면 전체 경로를 지정하여 가져와야 합니다.


```python

# 하위 패키지 사용 예제

from my_package.sub_package import sub_module


print(sub_module.sub_func())  # 출력: 서브 모듈의 함수

```


#### 8.6 모듈 검색 경로


파이썬 인터프리터는 모듈을 가져올 때 여러 디렉터리를 검색합니다. `sys` 모듈의 `path` 변수를 사용하여 검색 경로를 확인할 수 있습니다.


```python

import sys


for path in sys.path:

    print(path)

```


필요에 따라 검색 경로에 새로운 디렉터리를 추가할 수 있습니다.


```python

import sys


sys.path.append('/path/to/my_modules')

```


#### 8.7 표준 라이브러리


파이썬은 다양한 표준 라이브러리를 제공하여 파일 입출력, 문자열 처리, 네트워크 통신 등 다양한 기능을 쉽게 구현할 수 있습니다. 표준 라이브러리는 별도의 설치 없이 바로 사용할 수 있습니다.


```python

# 표준 라이브러리 사용 예제

import math


print(math.sqrt(16))  # 출력: 4.0

```


이상으로, 파이썬에서 모듈과 패키지를 사용하는 방법에 대해 알아보았습니다. 다음 장에서는 파일 시스템과 관련된 작업에 대해 더 자세히 알아보겠습니다. 질문이나 요청사항이 있으시면 댓글로 남겨주세요!


---


이 글의 내용은 GoalKicker.com의 Python Notes for Professionals 책을 참조하였습니다.

댓글