파이썬

Python 기초 강의: #7 모듈과 패키지

TitediosKW 2024. 6. 28. 19:00
반응형

파이썬에서 모듈과 패키지는 코드를 구성하고 관리하는 데 중요한 역할을 합니다. 이를 통해 코드를 구조화하고 재사용하여 프로그램의 기능 구현을 빠르게 수행할 수 있습니다. 이번 포스팅에서는 모듈과 패키지의 개념과 사용법에 대해 알아보겠습니다.

1. 파이썬 모듈

모듈은 파이썬 코드를 구성하는 가장 작은 단위로 여러 개의 함수, 변수, 클래스 등을 포함하는 .py 파일을 의미합니다. 모듈을 사용하면 코드를 논리적으로 그룹화하고 재사용할 수 있습니다. 다음 예제를 통해 모듈을 작성해 보겠습니다.

먼저 mymodule.py라는 모듈을 생성합니다:

# mymodule.py

def greet(name):
    return f"Hello, {name}!"

class Animal:
    def __init__(self, name):
        self.name = name

    def speak(self):
        return f"{self.name} makes a sound."


mymodule.py 모듈을 다른 파이썬 파일에서 임포트하여 사용합니다:

# main.py

import mymodule

print(mymodule.greet("앨리스"))  # Hello, 앨리스!

dog = mymodule.Animal("멍멍")
print(dog.speak())  # 멍멍 makes a sound.

mymodule이라는 모듈을 생성하여 greeting 함수와 Animal 클래스를 구현하였습니다. 이제 mymodule을 활용하기 위하여 어떤 프로그램에서 mymodule을 임포트하고 mymodule 내의 greeting 함수와 Animal 클래스를 사용하는 것을 확인하실 수 있습니다.

2. 파이썬 패키지

패키지는 모듈의 집합을 의미하며, 여러 모듈을 디렉토리 구조로 조직하는 방법입니다. 디렉토리 구조를 통해 모듈들을 계층적으로 구성하여 관리하는 데 사용됩니다. 패키지는 모듈을 논리적으로 그룹화하여 더 큰 프로그램을 구성할 수 있게 해줍니다.

패키지 예제를 통해 패키지를 이해해 보도록 하겠습니다.

패키지는 디렉토리 구조를 가지기 때문에 먼저 mypackage라는 디렉토리를 생성하고, 그 안에 init.py 파일을 추가합니다. 이 파일은 해당 디렉토리가 패키지임을 나타냅니다. 예를 들어, 다음과 같은 구조를 가질 수 있습니다:

mypackage/
    __init__.py
    module1.py
    module2.py


각 모듈 파일에 코드를 작성합니다:+

# mypackage/module1.py

def add(a, b):
    return a + b
# mypackage/module2.py

def multiply(a, b):
    return a * b


패키지를 임포트하여 사용합니다:

# main.py

from mypackage import module1, module2

print(module1.add(2, 3))        # 5
print(module2.multiply(2, 3))   # 6

우리가 만들려는 프로그램에서 add와 multiply 기능을 사용하기 위해 mypackage에 있는 mymodule1과 mymodule2를 임포트했습니다. 각각의 모듈에 add와 multiply 함수가 구현되어 있기 때문에 이 함수들을 우리가 추가적으로 개발하지 않고 바로 사용할 수 있습니다. 우리는 벌써 객체지향 프로그래밍을 활용하여 재사용까지 한 셈이 되었습니다ㅎㅎㅎ

결론

모듈하나의 .py 파일로 구성된 파이썬 코드의 단위입니다. 이를 통해 코드를 논리적으로 그룹화하고 재사용할 수 있습니다.
패키지는 여러 모듈을 디렉토리 구조로 조직하는 방법입니다. 이를 통해 더 큰 프로그램을 구성하고, 모듈의 이름 공간이 겹치는 것을 방지할 수 있습니다.

모듈과 패키지를 사용하면 코드의 재사용성과 유지보수성을 크게 향상시킬 수 있습니다. 파이썬의 모듈과 패키지 시스템을 활용하여 더욱 효율적이고 조직적인 코드를 작성해보세요.

감사합니다.

반응형