본문 바로가기
카테고리 없음

[파이썬 심화] 파이썬 모듈, 패키지 구조화, 모듈화 실전

by 개발자를 꿈꾸는 사람들과 함꼐 2025. 4. 12.

파이썬 모듈이란 무엇인가?

모듈(Module)은 파이썬에서 함수, 변수, 클래스 등을 정의해 놓은 .py 파일을 말합니다.
코드를 파일 단위로 나눔으로써 재사용성과 가독성을 높일 수 있습니다.

1. 간단한 모듈 예제

📁 calculator.py

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

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

2. 모듈 사용하기

📁 main.py

import calculator

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

해석:

  • import 모듈명을 사용해 다른 파일의 함수나 클래스를 불러옵니다.
  • 모듈명.함수명() 형식으로 호출합니다.

3. 특정 함수만 가져오기

from calculator import add

print(add(1, 2))

필요한 함수만 from ~ import 구문으로 가져와 코드 가독성을 높일 수 있습니다.

패키지와 디렉터리 구조화

패키지(Package)는 모듈을 폴더 단위로 그룹화한 것입니다.
파이썬에서 폴더를 패키지로 인식시키려면 그 안에 __init__.py 파일이 있어야 합니다.

패키지 구조 예시

my_project/
├── main.py
├── math_utils/
│   ├── __init__.py
│   ├── add.py
│   └── subtract.py

1. add.py

def add(x, y):
    return x + y

2. subtract.py

def subtract(x, y):
    return x - y

3. __init__.py

from .add import add
from .subtract import subtract

해석:

  • __init__.py는 해당 폴더를 패키지로 인식시켜줍니다.
  • 여기에서 하위 모듈을 import 해두면 외부에서 math_utils만 import 해도 사용 가능합니다.

4. main.py에서 패키지 사용

from math_utils import add, subtract

print(add(10, 20))      # 30
print(subtract(20, 5))  # 15

정리: 여러 파일로 나눈 기능들을 폴더로 묶고 __init__.py로 연결하면 패키지가 완성됩니다.

모듈화 실전 팁과 프로젝트 구조 예시

1. 큰 프로젝트 예시 구조

my_app/
├── main.py
├── utils/
│   ├── __init__.py
│   ├── file.py
│   └── string.py
├── models/
│   ├── __init__.py
│   └── user.py
├── config/
│   └── settings.py

폴더별 역할:

  • utils/ : 파일 처리, 문자열 처리 등 유틸 함수
  • models/ : 사용자, 제품 등 데이터 구조 정의
  • config/ : 설정 정보, 경로 관리

2. 상대 경로 vs 절대 경로

# 상대 경로 (동일 패키지 내)
from .file import load_file

# 절대 경로 (전체 구조 기준)
from utils.file import load_file

상대 경로는 패키지 내부 모듈 간 호출에 유용하고,
절대 경로는 최상위 기준에서의 import를 명확히 할 수 있어 외부에서 접근할 때 편리합니다.

3. __all__ 정의하기 (선택사항)

__all__ = ["add", "subtract"]

__init__.py 안에 __all__ 리스트를 정의하면
from 패키지 import * 구문 사용 시 가져올 모듈을 제한할 수 있습니다.

 

파이썬의 모듈화와 패키지 구조화는 협업, 유지보수, 확장성을 높이기 위한 필수 기술입니다.
작은 기능부터 모듈로 나누고, 관련 기능끼리 묶어서 폴더(패키지)로 정리하는 습관을 들여보세요.

직관적인 폴더 구조와 깔끔한 import 구문은 프로젝트를 더 전문적이고 관리하기 쉬운 형태로 발전시켜줍니다.
지금부터라도 여러분의 프로젝트를 “모듈 단위”로 정리해보는 연습을 해보세요!