Post

파이썬 기본 문법: 사용자 정의 모듈

사용자 정의 모듈을 생성하고 사용하는 방법

모듈(Module)은 관련된 코드를 하나의 파일로 묶어 재사용성을 높이고 코드를 깔끔하게 관리하는 데 사용됩니다. 이번 글에서는 사용자 정의 모듈을 생성하고 사용하는 방법을 알아보겠습니다.

1. 모듈이란?

  • 모듈(Module): 파이썬 코드를 담고 있는 파일로, 다른 프로그램에서 불러와 사용할 수 있습니다.
  • 확장자: .py
  • 파이썬에서는 기본 모듈(math, random 등)뿐 아니라, 사용자가 직접 작성한 모듈도 활용할 수 있습니다.

2. 사용자 정의 모듈 생성하기

1) 모듈 작성

  • 파이썬 파일(.py)에 함수를 작성하면 그것이 모듈이 됩니다.
1
2
3
4
5
6
7
# utils.py (사용자 정의 모듈)

def greet(name):
    return f"Hello, {name}!"

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

2) 모듈 불러오기

  • import 키워드를 사용하여 작성한 모듈을 불러올 수 있습니다.
1
2
3
4
5
6
# main.py (모듈 사용 예제)
import utils

# 모듈 내 함수 호출
print(utils.greet("Alice"))  # 출력: Hello, Alice!
print(utils.add(5, 7))       # 출력: 12

3. 모듈 활용 방법

1) 특정 함수만 불러오기

  • from ... import ... 구문을 사용해 특정 함수만 가져올 수 있습니다.
1
2
3
from utils import greet

print(greet("Bob"))  # 출력: Hello, Bob!

2) 별칭(alias) 사용

  • 모듈이나 함수 이름이 길 경우, 별칭을 지정하여 간단히 사용할 수 있습니다.
1
2
3
import utils as ut

print(ut.add(3, 4))  # 출력: 7

3) 모든 함수 불러오기

  • *를 사용하여 모듈의 모든 함수를 가져올 수 있습니다.
    그러나, 네임스페이스 충돌 가능성이 있어 권장되지 않습니다.
1
2
3
4
from utils import *

print(greet("Charlie"))  # 출력: Hello, Charlie!
print(add(8, 2))         # 출력: 10

4. 모듈의 위치와 임포트

1) 현재 디렉토리에서 모듈 불러오기

  • 같은 디렉토리에 있는 파일을 모듈로 불러올 수 있습니다.

2) 다른 디렉토리의 모듈 불러오기

  • sys.path를 수정하거나, PYTHONPATH 환경 변수를 설정해 다른 디렉토리의 모듈을 사용할 수 있습니다.
1
2
3
4
import sys
sys.path.append("/path/to/your/modules")

import your_module

5. __name__ 변수 이해

파이썬 모듈에는 특별한 변수인 __name__이 있습니다. 이 변수는 모듈이 직접 실행될 때와 다른 프로그램에서 불러올 때의 동작을 구분할 수 있게 합니다.

예제

1
2
3
4
5
6
# utils.py
def greet(name):
    return f"Hello, {name}!"

if __name__ == "__main__":
    print(greet("Alice"))
  • 직접 실행: python utils.py 실행 시 __name__ == "__main__" 이므로 Hello, Alice! 출력.
  • 임포트: 다른 모듈에서 import utilsif __name__ == "__main__": 부분은 실행되지 않음.

6. 패키지와 모듈

패키지(Package): 여러 모듈을 폴더 구조로 관리하기 위한 방법입니다.

  • 패키지의 폴더에는 반드시 __init__.py 파일이 있어야 합니다(파이썬 3.3 이상에서는 선택 사항).

예제: 패키지 구조

1
2
3
4
mypackage/
    __init__.py
    math_utils.py
    string_utils.py
1
2
3
# mypackage/math_utils.py
def add(a, b):
    return a + b
1
2
3
4
# main.py
from mypackage import math_utils

print(math_utils.add(2, 3))  # 출력: 5

7. 사용자 정의 모듈의 활용 사례

1) 유틸리티 모듈 작성

  • 자주 사용하는 함수를 모듈로 만들어 어디서든 쉽게 불러올 수 있습니다.
1
2
3
4
5
6
7
# utils.py
def greet(name):
    return f"Welcome, {name}!"

# main.py
import utils
print(utils.greet("Developer"))  # 출력: Welcome, Developer!

2) 프로젝트의 코드 관리

  • 프로젝트의 코드를 여러 모듈로 나누어 관리하면 유지보수가 용이해집니다.
1
2
3
4
5
6
7
# 프로젝트 구조 예시
project/
    main.py
    utils/
        __init__.py
        math_utils.py
        file_utils.py

정리

  • 사용자 정의 모듈은 재사용 가능한 코드를 작성하는 데 유용합니다.
  • import를 사용해 작성한 모듈을 다른 프로그램에서 불러올 수 있습니다.
  • 패키지를 활용하면 대규모 프로젝트의 코드를 체계적으로 관리할 수 있습니다.

다음 글 예고:
이제 파이썬 파일을 효율적으로 관리하는 “파일 처리” 방법을 배워보겠습니다. 파일 읽기, 쓰기, CSV와 JSON 데이터 다루는 법을 살펴보세요!

This post is licensed under CC BY 4.0 by the author.