본문 바로가기
BIG DATA/PYTHON

[PYTHON] 파이썬 모듈과 패키지 완벽 정리

by 라일리T 2025. 2. 22.

파이썬 모듈과 패키지 완벽 정리

프로그래밍을 할 때 코드를 모듈화(Modularization) 하면 유지보수와 재사용성이 좋아집니다.
파이썬에서는 **모듈(Module)과 패키지(Package)**를 사용하여 코드를 체계적으로 관리할 수 있습니다.

이번 글에서는 파이썬의 모듈과 패키지 개념, 사용법, 그리고 활용 사례를 배워보겠습니다.


1. 모듈(Module)이란?

1.1 모듈의 개념

**모듈(Module)**은 하나의 .py 파일을 의미하며, 여러 함수와 클래스를 포함할 수 있습니다.
즉, 관련 있는 코드들을 한 파일에 정리하여 재사용할 수 있도록 만들어진 것이 모듈입니다.

1.2 모듈 생성하기

파이썬에서 모듈을 만드는 방법은 간단합니다.

  1. .py 파일을 생성하고
  2. 내부에 함수를 작성한 후
  3. 다른 곳에서 import 해서 사용하면 됩니다.

예제: math_utils.py (모듈 파일 만들기)

# math_utils.py
def add(a, b):
    return a + b

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

1.3 모듈 가져오기 (import)

모듈을 가져와서 사용하는 방법은 import 문을 활용하는 것입니다.

import math_utils  # math_utils 모듈 가져오기

print(math_utils.add(3, 5))  # 8
print(math_utils.subtract(10, 7))  # 3

1.4 특정 함수만 가져오기 (from ... import ...)

모듈에서 특정 함수만 가져올 수도 있습니다.

from math_utils import add

print(add(4, 6))  # 10

1.5 모듈의 별칭 사용 (import ... as ...)

모듈 이름이 길면 짧은 별칭을 줄 수 있습니다.

import math_utils as mu

print(mu.add(2, 3))  # 5

2. 내장 모듈(Built-in Module)

파이썬에는 기본적으로 제공되는 모듈이 많습니다.

2.1 math 모듈 (수학 연산)

import math

print(math.sqrt(16))  # 4.0 (제곱근)
print(math.pi)  # 3.141592653589793

2.2 random 모듈 (난수 생성)

import random

print(random.randint(1, 10))  # 1~10 사이의 난수
print(random.choice(['가위', '바위', '보']))  # 무작위 선택

2.3 datetime 모듈 (날짜 및 시간)

from datetime import datetime

now = datetime.now()
print(now.strftime("%Y-%m-%d %H:%M:%S"))  # 현재 날짜와 시간

3. 패키지(Package)란?

3.1 패키지의 개념

**패키지(Package)**는 여러 개의 모듈을 하나의 폴더에 모아둔 것입니다.
즉, 관련된 모듈을 그룹화하여 관리하는 방식입니다.

3.2 패키지 만들기

패키지는 폴더 안에 여러 모듈 파일을 포함하며, __init__.py 파일이 필요합니다.

📁 프로젝트 구조 예시

my_package/   ← 패키지 폴더
 ├── __init__.py   ← 패키지 초기화 파일
 ├── math_utils.py  ← 모듈1
 ├── string_utils.py  ← 모듈2

📌 __init__.py 파일
패키지를 인식할 수 있도록 빈 __init__.py 파일을 만들어 줍니다.

3.3 패키지 사용하기

패키지를 사용하려면 import 패키지명.모듈명 형식으로 불러옵니다.

from my_package import math_utils

print(math_utils.add(5, 7))  # 12

4. if __name__ == "__main__"의 의미

모듈을 직접 실행할 때와 다른 파일에서 import할 때의 동작을 다르게 하고 싶다면 if __name__ == "__main__"을 사용합니다.

4.1 예제: greetings.py

# greetings.py
def hello():
    print("안녕하세요!")

if __name__ == "__main__":
    hello()  # 직접 실행할 경우에만 출력됨

실행 결과

$ python greetings.py
안녕하세요!

하지만 다른 파일에서 import 하면 실행되지 않습니다.

import greetings  # hello() 함수는 실행되지 않음

5. 서드파티 모듈 사용하기 (pip)

파이썬에서는 기본 제공 모듈 외에도 **다양한 외부 라이브러리(서드파티 모듈)**를 설치하여 사용할 수 있습니다.

5.1 pip를 이용한 패키지 설치

pip install requests  # 예제: requests 모듈 설치

5.2 예제: requests 모듈 사용 (웹 요청)

import requests

response = requests.get("https://www.example.com")
print(response.status_code)  # 200 (정상 응답)

6. 모듈과 패키지의 활용

✅ **모듈(Module)**을 사용하면 관련된 기능을 하나의 파일에 정리할 수 있습니다.
✅ **패키지(Package)**를 사용하면 여러 개의 모듈을 그룹화하여 관리할 수 있습니다.
내장 모듈을 활용하면 추가 설치 없이 다양한 기능을 사용할 수 있습니다.
if __name__ == "__main__"을 사용하면 직접 실행 여부를 확인할 수 있습니다.
pip를 이용해 외부 모듈을 설치하고 활용할 수 있습니다.


7. 결론

이번 글에서는 파이썬의 모듈과 패키지 개념 및 사용법을 배웠습니다.

  • 모듈이란? .py 파일로, 관련된 코드 묶음
  • 모듈 가져오기: import, from ... import ..., import ... as ...
  • 내장 모듈 활용: math, random, datetime 등
  • 패키지란? 여러 개의 모듈을 포함하는 폴더
  • 서드파티 모듈: pip install로 추가 기능 사용

다음 글에서는 파이썬에서 데이터 분석을 위한 NumPy와 Pandas 사용법을 배워보겠습니다! 🚀