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

파이썬 코드를 한번 작성해두고 여러번 쓸 수 있는법!

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 구문은 프로젝트를 더 전문적이고 관리하기 쉬운 형태로 발전시켜줍니다.
지금부터라도 여러분의 프로젝트를 “모듈 단위”로 정리해보는 연습을 해보세요!