Python함수와 모듈

main guard와 스크립트 시작점

파일을 모듈로 import 할 때와 직접 실행할 때를 구분하는 Python `__name__ == "__main__"` 패턴입니다.

마지막 수정 2026년 3월 19일

기본 패턴

python
def main():
    print("run script")

if __name__ == "__main__":
    main()

설명

  • Python 파일은 다른 파일에서 import 될 수도 있고, 직접 실행될 수도 있습니다.
  • __name__ == "__main__" 조건은 "이 파일이 직접 실행될 때만" 특정 코드를 실행하게 만듭니다.
  • 테스트 코드, 데모 실행, CLI 시작점 같은 로직을 함수 정의와 분리하는 데 유용합니다.
  • 모듈 재사용성과 스크립트 실행 편의성을 함께 유지하는 기본 패턴입니다.

짧은 예제

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

if __name__ == "__main__":
    print(add(2, 3))

빠른 정리

상황__name__
파일 직접 실행"__main__"
다른 모듈에서 import모듈 이름
main guard직접 실행 코드만 분리

공식 참고: main — Top-level code environment, Modules

주의할 점

함수 정의와 실행 코드를 섞어 두면 import 시 의도치 않은 출력이나 부작용이 생길 수 있습니다. 재사용 가능한 파일일수록 main guard를 두는 편이 좋습니다.