챕터별 상세
00:00
__main__.py의 기본 정의와 동작
__main__.py는 폴더가 파이썬 실행 대상일 때 동작하는 특수 파일이다. 사용자가 터미널에서 'python 폴더이름'을 입력하면 파이썬 인터프리터는 해당 폴더 내부에 __main__.py가 있는지 확인하고 이를 실행한다. 이는 개별 .py 파일을 실행하는 방식과 달리 폴더 전체를 하나의 실행 단위로 취급하게 한다.
bash
python folder_name
python -m folder_name폴더를 파이썬 실행 대상으로 지정하거나 모듈로 실행하는 기본 명령어
00:45
모듈 실행 방식(-m)과 활용 사례
python -m 옵션을 사용하면 파이썬 라이브러리 경로(site-packages)에 설치된 패키지를 이름만으로 실행할 수 있다. pip나 pytest가 대표적인 사례로, 이들은 실제 설치 경로를 몰라도 __main__.py를 통해 터미널에서 즉시 호출된다. 이는 복잡한 경로 관리를 자동화하고 사용자에게 일관된 인터페이스를 제공하는 효과가 있다.
02:07
__init__.py와의 차이점 및 분리 이유
__init__.py는 패키지를 임포트(import)할 때 실행되는 반면, __main__.py는 직접 실행할 때만 동작한다. 만약 실행 로직을 __init__.py에 넣으면 다른 곳에서 해당 패키지를 임포트만 하려 해도 실행 로직이 돌아가는 부작용이 발생한다. 따라서 라이브러리로서의 기능은 __init__.py에, 실행 도구로서의 기능은 __main__.py에 분리하여 관리하는 것이 표준이다.
text
project/
├── __init__.py
└── __main__.py임포트 로직과 실행 로직을 분리하기 위한 패키지 구조 예시
03:03
실무 적용: CLI 앱 제작
직접 CLI(Command Line Interface) 앱을 만들 때 __main__.py를 활용하면 관리가 편해진다. 패키지 구조 내에서 실행 로직을 캡슐화할 수 있으며, 사용자에게는 간단한 실행 명령어를 제공할 수 있다. 이는 오픈소스 라이브러리 설계의 모범 사례로 꼽히며 프로젝트의 전문성을 높여준다.
용어 해설
- 파이썬 모듈 실행 옵션(python -m)
- — 파이썬 인터프리터에서 모듈을 스크립트로 실행하기 위한 옵션이다. sys.path에서 해당 모듈을 찾아 파일 경로 대신 모듈 이름으로 실행할 수 있게 하며, 내부적으로 __main__.py를 찾아 동작시킨다.
- 진입점(Entry Point)
- — 프로그램이 실행을 시작하는 지점을 의미한다. 파이썬 패키지에서는 __main__.py가 해당 패키지를 실행할 때 가장 먼저 호출되는 진입점 역할을 수행한다.
- 명령줄 인터페이스(CLI)
- — 텍스트 터미널을 통해 사용자와 컴퓨터가 상호작용하는 방식이다. pip나 pytest처럼 터미널에서 명령어를 입력하여 도구를 실행하는 환경을 구축할 때 __main__.py가 핵심적으로 사용된다.
언급된 리소스
GitHubmanim-kor GitHub
AI 분석 전체 내용 보기
AI 요약 · 북마크 · 개인 피드 설정 — 무료
출처 · 인용 안내
원문 발행 2026. 02. 22.수집 2026. 02. 22.출처 타입 YOUTUBE
인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.
