내 깃허브에 『고수같음』 한방울
핵심 요약
__main__.py 파일은 파이썬 폴더를 직접 실행 대상으로 할 때 사용되며, 특히 python -m 명령어를 통해 모듈로 실행할 때 유용합니다. 이는 라이브러리 설치 관리자 pip이나 테스트 프레임워크 pytest와 같이 깊숙한 경로에 있는 패키지를 쉽게 실행하고, import 용도와 직접 실행 용도 코드를 분리하는 데 도움을 줍니다. 이러한 구조를 활용하면 CLI 앱 개발 시 코드 관리의 편리성과 명확성을 높일 수 있습니다.
주요 내용
__main__.py 파일은 다음과 같은 두 가지 주요 상황에서 활용됩니다.
- 폴더를 Python 실행 대상으로 할 때:
- 일반적으로
python test.py와 같이.py파일을 파이썬 실행 대상으로 지정합니다. - 하지만
python folder와 같이 폴더 자체를 실행 대상으로 지정할 경우, 해당folder/안에 있는__main__.py파일이 실행됩니다.
- 일반적으로
python -m명령어로 모듈을 실행할 때:python -m명령은 파이썬 라이브러리들이 설치된.../lib/python3.11/site-packages/와 같은 심오한 경로에 있는 모듈을 쉽게 접근하여 실행할 수 있게 해줍니다.- 예시로
python -m pip을 실행할 경우,site-packages/pip/폴더 안의__main__.py파일이 실행되어 라이브러리 설치 등의 기능을 수행합니다. - 이는 라이브러리를 코드 내에서
import pip으로 사용하는 것과 달리, 커맨드 라인에서 직접 실행해야 할 때 편리합니다. 심오한 경로를 직접 알 필요 없이 모듈 이름만으로 실행할 수 있게 됩니다.
__main__.py를 사용하는 이유:
- Import 용도와 직접 실행 용도의 코드 분리: 파이썬 패키지(폴더)가 라이브러리로 import될 때는
__init__.py파일만 실행되도록 하고,python -m으로 직접 실행될 때는__main__.py의 코드가 실행되도록 하여 용도를 명확히 분리할 수 있습니다. pytest와 같은 라이브러리도 이 방식을 사용하여pytest/폴더 안에__main__.py와__init__.py파일을 두어 관리합니다.- 이는 CLI 앱을 만들 때 코드 관리를 편하게 하고, 사용자에게 명확한 실행 인터페이스를 제공하는 데 유용합니다.
핵심 데이터 / 비교표
(영상에 수치, 비교, 통계 자료가 없으므로 해당 섹션을 생략합니다.)
타임스탬프별 핵심 포인트
| 시간 | 핵심 내용 |
|—|—|
| 00:00 | 영상 시작 및 __main__.py 파일 소개 |
| 00:06 | __main__.py의 동작 방식 소개 (폴더를 Python 대상으로 할 때 실행) |
| 00:13 | __main__.py의 역할과 활용 사례(pip, pytest) 소개 |
| 00:17 | __main__.py의 첫 번째 규칙: 폴더가 Python 대상일 때 실행 |
| 00:36 | __main__.py의 활용 사례 시작 (pip 예시) |
| 00:40 | pip과 pytest가 파이썬을 모듈로 실행할 때 사용되는 예시 |
| 00:59 | python -m 명령어 설명 및 파이썬 라이브러리 경로 (site-packages) 언급 |
| 01:10 | import pip과 python -m pip의 차이 설명 (경로 접근 방식) |
| 01:24 | python -m pip이 site-packages/pip/__main__.py를 실행하는 과정 설명 |
| 01:57 | __main__.py의 두 가지 활용 방식 요약 (폴더 실행, python -m 활용) |
| 02:08 | 왜 __main__.py를 쓰는가? (파일 직접 실행 대신) |
| 02:20 | __main__.py가 pytest/ 폴더 내에 위치한 예시 |
| 02:27 | __main__.py를 사용하는 이유: import와 직접 실행의 분리 |
| 02:33 | 라이브러리 용도 (__init__.py만 실행)와 python -m 실행 (__main__.py 실행)의 분리 |
| 02:52 | .py 파일은 import 때도 실행, python -m 때도 실행되므로 분리가 어려움 |
| 03:04 | __main__.py의 기능 최종 정리: 폴더 실행 시, 설치된 패키지에 적용 |
| 03:20 | CLI 앱 개발 시 __main__.py 활용의 유용성 (관리 편의성, 역할 분리) |
결론 및 시사점
__main__.py 파일은 파이썬 프로젝트에서 모듈의 실행 방식과 import 방식을 명확하게 분리할 수 있게 해주는 중요한 메커니즘입니다. 특히 pip이나 pytest와 같이 깊숙한 곳에 설치된 라이브러리를 사용자가 간편하게 python -m <module_name> 형태로 실행할 수 있도록 인터페이스를 제공하는 데 핵심적인 역할을 합니다. 이를 통해 개발자는 라이브러리의 코드와 직접 실행 코드를 분리하여 모듈성을 높이고, 사용자는 복잡한 경로 지정을 피하고 모듈 이름만으로 기능을 수행할 수 있게 되어 사용자 경험을 향상시킬 수 있습니다. 직접 CLI 애플리케이션을 개발하거나 패키지를 구성할 때 이 규칙을 따르면 유지보수성과 사용 편의성을 크게 개선할 수 있습니다.
추가 학습 키워드
- Python 패키지 구조
__init__.pypython -m- CLI 애플리케이션 개발 (Python)
- 모듈 임포트 메커니즘
기본 정보
| 항목 | 내용 | |—|—| | 채널 | 임커밋 | | 카테고리 | 프로그래밍 | | 게시일 | 2026-02-22 | | 영상 길이 | 3:36 | | 처리 엔진 | gemini-2.5-flash | | 원본 영상 | YouTube에서 보기 |