Python

Python - 모듈과 패키지

thebasics 2024. 10. 21. 17:00

목차

  1. 모듈과 패키지란?
  2. 모듈의 주요 기능 및 사용법
    • 모듈 만들기
    • 모듈 불러오기 (import)
    • 모듈 내 특정 기능 불러오기
    • 모듈 별칭 사용하기
  3. 패키지의 주요 기능 및 사용법
    • 패키지 만들기
    • 패키지 불러오기
    • 하위 모듈과 서브패키지 불러오기
  4. 내장 모듈 활용
    • math 모듈
    • random 모듈
    • os 모듈
  5. 사용자 정의 모듈과 패키지
  6. 예시 코드
  7. 결론
  8. 관련 자료 및 추가 학습 자료

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의 모듈과 패키지에 대해 다루었습니다. 모듈의 기본 사용법과 패키지의 구조화 방법, 내장 모듈의 활용 방법을 살펴보았습니다. 신뢰성 있는 자료를 참고하여 모듈과 패키지를 활용한 효율적인 프로그래밍을 연습해보시기 바랍니다.

반응형