파이썬 기본 문법: 사용자 정의 모듈
사용자 정의 모듈을 생성하고 사용하는 방법
모듈(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 utils
시if __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.