[Python] 모듈(Module)

hengu·3일 전

📘 모듈이란?

  • 하나의 파이썬 파일이 하나의 모듈이 됨(.py)
  • 파일 안에 함수나 변수를 정의해놓고, 다른 파일에서 이를 가져와(import) 사용
# 모듈의 기본 구조
# exmodule.py (모듈 예시)
def add(a, b):
	return a + b
    
def sub(a, b):
	return a - b

PI = 3.141592

🔎 모듈 불러오기(import)

  • 모듈을 사용하기 위해서는 import 키워드를 사용

1. 모듈 사용

# main.py (모듈 사용 예시)
import exmodule

result = exmodule.add(3, 5)
print(result)       # >>> 8
print(exmodule.PI)  # >>> 3.141592

2. 특정 함수나 변수만 가져오기

  • 모듈 전체가 아닌 특정 함수나 변수만 가져오고 싶다면 from 구문을 사용
from exmodule import add, PI

print(add(10, 20))  # >>> 30
print(PI)           # >>> 3.141592

3. 모듈 이름에 별칭(alias) 사용하기

  • 모듈 이름이 길거나 더 짧은 이름으로 사용하고 싶다면 import 모듈명 as 별칭
import exmodule as em
from exmodule import add as plus

print(em.add(2, 2))  # >>> 4

🔎 파이썬 표준 라이브러리(내장 모듈) 사용하기

  • 파이썬은 매우 풍부한 표준 라이브러리를 제공
  • 별도 설치없이 다양한 기능의 모듈을 사용할 수 있음
# math 모듈은 수학 관련 함수와 상수를 제공
import math

print(math.sqrt(16))  	    # >>> 4.0
print(math.sin(math.pi/2))  # >>> sin(90°) = 1.0

# random 모듈은 난수를 생성하는 기능
import random

print(random.randint(1, 10))  # >>> (1 부터 10 사이의 정수 난수 출력)

# datetime 모듈은 날짜와 시간을 다루는 기능을 제공
from datetime import datetime

now = datetime.now()
print(now)  # >>> (현재 날짜와 시간 출력)

🔎 외부 모듈(서드 파티 라이브러리) 설치 및 사용하기

  • 표준 라이브러리 외에 다른 개발자가 만들어 배포한 외부 모듈을 설치하여 사용할 수도 있음
  • pip을 통해 쉽게 설치 가능
# 터미널(명령 프롬프트)에서 실행
pip install pandas
import pandas as pd

# 딕셔너리 형태로 데이터 생성
data = {
    "name": ["Alice", "Bob", "Charlie", "David", "Eva"],
    "age": [25, 32, 18, 47, 29],
    "city": ["Seoul", "Busan", "Incheon", "Daegu", "Seoul"],
    "score": [85, 92, 78, 64, 90]
}

# DataFrame 만들기
df = pd.DataFrame(data)

print(df)  # >>> (페이지 소스 출력)

🔎 모듈 검색 경로

  • 파이썬이 모듈을 찾는 순서
    1. 현재 스크립트가 위치한 디렉토리
    2. PYTHONPATH 환경 변수를 통해 설정된 경로
    3. 파이썬이 설치된 site-packages 디렉토리 (외부 라이브러리)
    4. 파이썬 표준 라이브러리가 있는 디렉토리
    - 모듈이 해당 경로 중 어디에도 없으면 ModuleNotFoundError 발생

🔎 패키지(Package)와 모듈

  • 모듈이 하나의 .py 파일이라면, 패키지는 모듈을 모아놓은 디렉토리
  • 패키지는 모듈들을 계층적으로 관리하기 위해 사용
  • __init__.py 파일을 포함한 디렉토리를 하나의 패키지로 인식
  • 패키지를 사용하면 코드 구조를 더 체계적으로 관리할 수 있음
mypackage/
	__init__.py
    exmodule.py
    utils.py

import mypackage.exmodule
from mypackage import utils

❗ 모듈 작성 시 주의할 점

  • 의미있는 이름으로 짓기
  • 최소한의 기능 단위로 분리

⚙️ 모듈 작성 팁

▪`if name == "main":

  • 파이썬에서 하나의 .py 파일은 직접 실행될 수도 있고, 다른 파일에서 import 되어 모듈로 사용될 수도 있음
  • 파일이 모듈로 사용될 때와, 직접 실행될 때를 구분하기 위해 사용
# exmodule.py

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

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

# 모듈 테스트용 코드
if __name__ == "__main__":
    print(add(1, 2))
    print(sub(5, 3))
profile
안낭하삽나까

0개의 댓글