Python 기초집LESSON 12
모듈과 import
난이도입문
예상 시간30분
선수지식이전 강의
12강. 모듈과 import
1. 이번 강의에서 해결할 문제
한 파일이 길어지면 계산 규칙을 찾고 테스트하기 어렵습니다. 관련 함수와 데이터 모델을 모듈로 나누고 진입점을 분리합니다.
2. 학습 목표
3. 핵심 개념
.py 파일 하나가 모듈이고 모듈을 담은 디렉터리가 패키지가 될 수 있습니다. import 시 모듈 최상위 코드는 한 번 실행됩니다. 실행 코드가 import 때 작동하지 않도록 진입점 가드에 둡니다.
4. 단계별 코드 예시
파일 경로: C:\dev\game-log-analyzer\battle_analyzer\stats.py
battle_analyzer/stats.py
def average_damage(damages):
return sum(damages) / len(damages) if damages else 0.0
def win_rate(results):
if not results:
return 0.0
wins = sum(result == "win" for result in results)
return wins / len(results)
파일 경로: C:\dev\game-log-analyzer\battle_analyzer\__init__.py
battle_analyzer/__init__.py
"""게임 전투 로그 분석 패키지."""
파일 경로: C:\dev\game-log-analyzer\main.py
main.py
from battle_analyzer.stats import average_damage, win_rate
def main():
print(f"평균 피해: {average_damage([80, 120, 150]):.1f}")
print(f"승률: {win_rate(['win', 'loss', 'win']):.1%}")
if __name__ == "__main__":
main()
PowerShell · 실행
New-Item -ItemType Directory -Force .\battle_analyzer
New-Item -ItemType File -Force .\battle_analyzer\__init__.py
py -3.13 .\main.py
5. 코드가 동작하는 이유
프로젝트 루트에서 실행하면 Python이 해당 경로에서 battle_analyzer 패키지를 찾습니다. 직접 실행한 main의 __name__은 "__main__"이고 import된 모듈은 정식 모듈명이므로 진입점 코드는 직접 실행할 때만 작동합니다.
6. 자주 하는 실수와 해결법
7. 직접 실습
8. 이해 점검 질문 3개
9. 핵심 요약
MINI QUIZ
0 / 2모듈과 import 미니 퀴즈
선택 즉시 정답과 해설을 확인할 수 있습니다. 결과는 이 브라우저에만 저장됩니다.
LESSON STATUS
12강. 모듈과 import 미완료 상태학습을 마쳤나요?
직접 실습과 점검 질문까지 확인한 뒤 완료로 표시하세요.