본문 바로가기
Dev/Python

[Python] 모듈(Module) & 패키지(Package)

by Yoon_estar 2025. 9. 23.
728x90
반응형

개요

파이썬 개발을 하다 보면 '모듈'과 '패키지'라는 용어를 자주 접하게 됩니다. 이들은 코드를 효율적으로 관리하고 재사용성을 높이는 데 필수적인 개념이죠. 마치 잘 정리된 도구 상자처럼, 필요한 기능을 손쉽게 꺼내 쓸 수 있게 도와줍니다. 이번 글에서는 모듈과 패키지가 무엇인지, 왜 중요한지, 그리고 어떻게 사용하는지 알아보겠습니다.

모듈(Module)

모듈의 정의

모듈은 특정 기능을 가진 코드를 담고 있는 하나의 파일(.py)입니다. 쉽게 말해, 변수, 함수, 클래스 등을 모아 놓은 독립적인 프로그램 단위라고 할 수 있습니다.

우리가 만든 프로그램을 여러 파일로 나누어 관리하면 코드가 훨씬 깔끔해지고, 필요한 기능을 다른 프로그램에서 가져다 쓰기도 쉬워집니다. 마치 레고 블록처럼, 각 모듈이 하나의 기능적 부품이 되는 셈입니다.

파이썬의 모듈은 크게 세 가지로 나뉩니다.

표준 모듈

파이썬이 설치 될 때 기본으로 제공되는 모듈로써 별도 설치 없이 import로 바로 사용할 수 있습니다.

예시 설명
math 수학 함수를 제공합니다.
os 운영체제 기능에 접근하게 해줍니다.
sys 파이선 인터프리터와 관련된 기능입니다.
datetime 날짜와 시간을 처리합니다.

표준 모듈 코드 예시

import math
import os
import sys
from datetime import datetime

print("현재 파이썬 버전 : " , sys.version)

cwd = os.getcwd()
print("현재 폴더는 : " , cwd)

today = datetime.today()
print("현재 날짜 : " , today)

today = datetime.now()
print("오늘은 : " , today.strftime("%Y-%m-%d %H:%M:%S"))

print("pi : " , math.pi)

사용자 정의 모듈

개발자가 직접 작성한 모듈입니다. 본인이 만든 코드를 다른 파일에서 재사용하고 싶을 때 사용합니다. 예를 들어, my_module.py라는 파일을 만들고 그 안에 함수를 정의한 후, 다른 파이썬 파일에서 import my_module을 통해 해당 함수를 불러와 사용할 수 있습니다.

import sys
import os

# 'my_module.py' 파일이 있는 폴더 경로를 추가합니다.
# 예시: 'my_module.py'가 'D:\my_python_projects' 폴더에 있다면 아래와 같이 작성합니다.
module_path = 'C:\\Users\\User\\Desktop' # 이 부분을 실제 경로로 변경하세요.
sys.path.append(os.path.abspath(module_path))

from my_module import hello

message = hello("홍길동")
print(message)

외부 모듈

기본 제공 되지 않지만, pip 같은 패키지 관리 도구로 설치하여 사용하는 모듈입니다.

예시 설명
numpy 수치 계산
pandas 데이터 분석
requests HTTP 요청
flask, django 웹 개발 프레임워크

패키지

패키지 정의

패키지는 묶음으로 파는 상품을 뜻하는 영단어로서 파이써에서는 여러 모듈을 디렉터리 구조로 묶어 놓은 집합 단위를 뜻합니다. 모듈은 파일 단위 코드 묶음이고, 패키지는 디렉터리 단위 코드 묶음을 말합니다.

따라서 모듈의 묶음은 패키지가 되는 것입니다. 파이썬에서 모듈은 함수, 변수, 클래스 등을 포함하는 하나의 .py 파일이고, 패키지는 이런 모듈 여러개를 모아둔 폴더를 의미합니다. 파이썬에서 패키지는 __init__.py 파일을 포함한 디렉터리로 구성됩니다. __init__.py파일은 디렉토리가 패키지라는 사실을 인식 시키는 파일입니다.

사용 이유

  1. 체계적인 코드 관리: 프로젝트의 규모가 커지면 수백 개의 모듈이 생길 수 있습니다. 패키지를 사용하면 관련된 모듈들을 폴더별로 묶어 코드를 훨씬 체계적으로 관리할 수 있습니다.
  2. 이름 충돌 방지: 모듈 이름이 겹치더라도, 패키지 구조를 통해 구분할 수 있어 이름 충돌을 피할 수 있습니다. 예를 들어 a.utils와 b.utils는 서로 다른 모듈로 인식됩니다.
  3. 재사용 및 배포 용이: 잘 만들어진 패키지는 다른 프로젝트에서도 쉽게 재사용하거나 배포하여 공유할 수 있습니다.

 

마무리

모듈과 패키지는 파이썬에서 코드를 효율적으로 구성하고 관리하는 핵심 개념입니다. 모듈은 독립적인 기능을 하는 하나의 코드 파일이고, 패키지는 이러한 모듈들을 모아놓은 폴더 구조입니다. 이 두 개념을 잘 활용하면 코드를 깔끔하게 유지하고, 재사용성을 높이며, 대규모 프로젝트를 성공적으로 이끌 수 있습니다.

반응형