← 2026-02-22 목록으로

내 깃허브에 『고수같음』 한방울


핵심 요약

__main__.py 파일은 파이썬 폴더를 직접 실행 대상으로 할 때 사용되며, 특히 python -m 명령어를 통해 모듈로 실행할 때 유용합니다. 이는 라이브러리 설치 관리자 pip이나 테스트 프레임워크 pytest와 같이 깊숙한 경로에 있는 패키지를 쉽게 실행하고, import 용도와 직접 실행 용도 코드를 분리하는 데 도움을 줍니다. 이러한 구조를 활용하면 CLI 앱 개발 시 코드 관리의 편리성과 명확성을 높일 수 있습니다.


주요 내용

__main__.py 파일은 다음과 같은 두 가지 주요 상황에서 활용됩니다.

  1. 폴더를 Python 실행 대상으로 할 때:
    • 일반적으로 python test.py와 같이 .py 파일을 파이썬 실행 대상으로 지정합니다.
    • 하지만 python folder와 같이 폴더 자체를 실행 대상으로 지정할 경우, 해당 folder/ 안에 있는 __main__.py 파일이 실행됩니다.
  2. python -m 명령어로 모듈을 실행할 때:
    • python -m 명령은 파이썬 라이브러리들이 설치된 .../lib/python3.11/site-packages/와 같은 심오한 경로에 있는 모듈을 쉽게 접근하여 실행할 수 있게 해줍니다.
    • 예시로 python -m pip을 실행할 경우, site-packages/pip/ 폴더 안의 __main__.py 파일이 실행되어 라이브러리 설치 등의 기능을 수행합니다.
    • 이는 라이브러리를 코드 내에서 import pip으로 사용하는 것과 달리, 커맨드 라인에서 직접 실행해야 할 때 편리합니다. 심오한 경로를 직접 알 필요 없이 모듈 이름만으로 실행할 수 있게 됩니다.

__main__.py를 사용하는 이유:


핵심 데이터 / 비교표

(영상에 수치, 비교, 통계 자료가 없으므로 해당 섹션을 생략합니다.)


타임스탬프별 핵심 포인트

| 시간 | 핵심 내용 | |—|—| | 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 | pippytest가 파이썬을 모듈로 실행할 때 사용되는 예시 | | 00:59 | python -m 명령어 설명 및 파이썬 라이브러리 경로 (site-packages) 언급 | | 01:10 | import pippython -m pip의 차이 설명 (경로 접근 방식) | | 01:24 | python -m pipsite-packages/pip/__main__.py를 실행하는 과정 설명 | | 01:57 | __main__.py의 두 가지 활용 방식 요약 (폴더 실행, python -m 활용) | | 02:08 | 왜 __main__.py를 쓰는가? (파일 직접 실행 대신) | | 02:20 | __main__.pypytest/ 폴더 내에 위치한 예시 | | 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 애플리케이션을 개발하거나 패키지를 구성할 때 이 규칙을 따르면 유지보수성과 사용 편의성을 크게 개선할 수 있습니다.


추가 학습 키워드


기본 정보

| 항목 | 내용 | |—|—| | 채널 | 임커밋 | | 카테고리 | 프로그래밍 | | 게시일 | 2026-02-22 | | 영상 길이 | 3:36 | | 처리 엔진 | gemini-2.5-flash | | 원본 영상 | YouTube에서 보기 |