2 minute read

1. 파이썬의 모듈이란?

모듈은 파이썬 코드를 논리적으로 구조화하고 재사용 가능하게 만드는 방법입니다. 모듈은 변수, 함수, 클래스 등을 포함할 수 있는 파이썬 파일 .py 입니다. 모듈을 사용하면 코드를 더 효율적으로 관리하고 유지보수할 수 있습니다.

2. 모듈 만들기

모듈을 만드는 것은 간단합니다. .py 확장자를 가진 파이썬 파일을 생성하고 그 안에 코드를 작성하면 됩니다. 예를 들어, calculator.py 라는 파일을 만들어 봅시다:

# calculator.py

def add(a, b):
    return a + b

def subtract(a, b):
    return a - b

PI = 3.14159

3. 모듈 불러오기

모듈을 사용하기 위해서는 import 문을 사용합니다. 모듈을 불러오는 방법은 여러 가지가 있습니다:

3.1 전체 모듈 불러오기

import calculator

result = calculator.add(5, 3)
print(result)  # 출력: 8
print(calculator.PI)  # 출력: 3.14159

3.2 특정 항목만 불러오기

from calculator import add, PI

result = add(5, 3)
print(result)  # 출력: 8
print(PI)  # 출력: 3.14159

3.3 모든 항목 불러오기 (권장하지 않음)

from calculator import *

result = add(5, 3)
print(result)  # 출력: 8
print(PI)  # 출력: 3.14159

이 방식은 권장되지 않습니다. 그 이유는:

  1. 네임스페이스 오염: 모듈의 모든 이름이 현재 스코프로 직접 가져와져, 의도치 않게 기존 이름을 덮어쓸 수 있습니다.
  2. 코드 가독성 저하: 어떤 함수나 변수가 어느 모듈에서 왔는지 파악하기 어려워집니다.
  3. 예기치 않은 동작: 모듈이 업데이트되면서 새로운 이름이 추가될 경우, 기존 코드의 동작이 예상치 못하게 변경될 수 있습니다.

3.4 모듈에 별명 붙이기

모듈을 import할 때 as 키워드를 사용하여 별명(alias)을 붙일 수 있습니다. 이는 긴 모듈 이름을 짧게 줄이거나, 이름 충돌을 피하는 데 유용합니다.

import calculator as calc

result = calc.add(5, 3)
print(result)  # 출력: 8
print(calc.PI)  # 출력: 3.14159

특정 함수나 변수에도 별명을 붙일 수 있습니다:

from calculator import add as addition, PI as pi_value

result = addition(5, 3)
print(result)  # 출력: 8
print(pi_value)  # 출력: 3.14159

별명을 사용하면 코드의 가독성을 높이고, 다른 모듈과의 이름 충돌을 방지할 수 있습니다. 특히 긴 이름의 모듈이나 자주 사용되는 함수에 대해 간결한 별명을 사용하면 코드 작성이 더 편리해집니다.

4. 모듈의 __name__ 속성

모든 모듈은 __name__이라는 특별한 속성을 가지고 있습니다. 모듈이 직접 실행될 때 __name__"__main__"으로 설정되고, 다른 모듈에서 import 될 때는 모듈의 이름이 됩니다.
이를 이용해 모듈이 직접 실행될 때만 특정 코드를 실행하도록 할 수 있습니다:

# calculator.py

def add(a, b):
    return a + b

def subtract(a, b):
    return a - b

if __name__ == "__main__":
    print("Calculator module is being run directly.")
    print(f"3 + 5 = {add(3, 5)}")

5. 파이썬 표준 라이브러리 모듈

파이썬은 많은 유용한 모듈을 표준 라이브러리로 제공합니다. 몇 가지 예를 들면:

  • math: 수학 함수
  • random: 난수 생성
  • datetime: 날짜와 시간 처리
  • os: 운영 체제와 상호 작용
import math
import random
import datetime

print(math.pi)  # 출력: 3.141592653589793
print(random.randint(1, 10))  # 1부터 10 사이의 랜덤한 정수 출력
print(datetime.datetime.now())  # 현재 날짜와 시간 출력

6. 서드파티 모듈

서드파티 모듈은 파이썬 표준 라이브러리에 포함되어 있지 않지만, pip를 사용해 설치할 수 있는 외부 모듈입니다.

# 서드파티 모듈 설치
pip install requests

설치 후, 해당 모듈을 불러와 사용할 수 있습니다.

import requests

response = requests.get('https://api.github.com')
print(response.status_code)

7. 모듈 검색 경로

파이썬 인터프리터가 모듈을 찾을 때 사용하는 경로는 sys 모듈의 path 변수를 통해 확인할 수 있습니다.

import sys

print(sys.path)

일반적으로 다음 순서로 검색합니다:

  1. 현재 디렉토리
  2. PYTHONPATH 환경 변수에 지정된 디렉토리
  3. 파이썬 설치 시 지정된 기본 디렉토리

필요에 따라 sys.path에 경로를 추가하여 커스텀 모듈을 불러올 수 있습니다.

import sys
sys.path.append('/path/to/your/module')

import your_module

Leave a comment