[Python] `__pycache__`란 무엇인가?

2025. 9. 19. 23:41·개발 (Development)/Python

__pycache__는 도대체 무엇이며, Git에 올려도 될까?

Python 프로젝트를 진행하다 보면 __pycache__라는 낯선 폴더를 발견하게 됩니다. 이 폴더는 왜 생기는지, 그리고 Git을 이용해 협업할 때 이 파일을 어떻게 처리해야 할지 궁금해하는 분들이 많습니다. 이번 글에서는 __pycache__의 정체와 올바른 관리 방법에 대해 알아보겠습니다.

__pycache__의 정체는? (feat. 바이트 코드)

__pycache__는 Python이 프로그램의 속도를 향상시키기 위해 사용하는 캐시 폴더입니다. Python은 소스 코드(.py)를 실행하기 전, 바이트 코드(.pyc)라는 중간 단계의 코드로 변환합니다. 이렇게 변환된 .pyc 파일은 __pycache__ 디렉터리에 저장됩니다.

다음 번에 같은 파일을 실행할 때 소스 코드가 변경되지 않았다면, Python은 .pyc 파일을 바로 사용해 컴파일 시간을 절약하고 프로그램 시작 속도를 높입니다. 이 과정은 특히 여러 모듈을 임포트하는 대규모 프로젝트에서 매우 유용합니다.

__pycache__는 Git에 올리는 파일일까?

결론부터 말하면, "아니오"입니다.

__pycache__ 폴더와 그 안의 .pyc 파일은 특정 환경(운영체제, Python 버전)에 따라 생성되는 임시 파일입니다. 다른 개발자의 환경에서는 무용지물이 될 수 있으며, 불필요한 용량을 차지하고 버전 관리 시스템을 복잡하게 만듭니다.

따라서 __pycache__는 .gitignore 파일에 반드시 추가하여 Git이 추적하지 않도록 해야 합니다.

# .gitignore 파일 예시
__pycache__/
*.pyc

이렇게 하면 git status 명령어를 실행했을 때 __pycache__가 변경 사항으로 잡히지 않아, 중요한 소스 코드만 깔끔하게 관리할 수 있습니다.

결론: 깔끔한 프로젝트 관리를 위해

__pycache__는 Python의 성능 최적화를 위한 중요한 역할을 합니다. 하지만 Git과 같은 버전 관리 시스템에서는 제외해야 할 대상입니다. .gitignore 파일에 __pycache__/와 *.pyc를 추가하는 것은 개발자의 기본적인 습관 중 하나입니다. 이 간단한 설정만으로도 프로젝트를 더욱 깔끔하고 효율적으로 관리할 수 있습니다.

반응형

'개발 (Development) > Python' 카테고리의 다른 글

[Python] 데이터프레임에서 열 선택하기: `df.iloc[:, idxs]`의 의미  (0) 2025.09.28
[Python/PostgreSQL] 정규식을 활용해 SQL 쿼리 파라미터(컬럼명)를 자동으로 감싸기  (0) 2025.09.28
[Python] RuntimeError: module compiled against API version 0xf but this version of numpy is 0xe 에러 해결  (0) 2025.09.19
[Python] requests에서 대량 배열 전송 시 403 오류 해결  (0) 2025.09.07
[Python] MAU(Monthly Active Users) 계산 방법  (2) 2025.08.10
'개발 (Development)/Python' 카테고리의 다른 글
  • [Python] 데이터프레임에서 열 선택하기: `df.iloc[:, idxs]`의 의미
  • [Python/PostgreSQL] 정규식을 활용해 SQL 쿼리 파라미터(컬럼명)를 자동으로 감싸기
  • [Python] RuntimeError: module compiled against API version 0xf but this version of numpy is 0xe 에러 해결
  • [Python] requests에서 대량 배열 전송 시 403 오류 해결
LoopThinker
LoopThinker
모르는 것을 알아가고, 아는 것을 더 깊게 파고드는 공간
  • LoopThinker
    CodeMemoir
    LoopThinker
  • 전체
    오늘
    어제
    • 분류 전체보기 (231)
      • 개발 (Development) (165)
        • Algorithm (1)
        • Angular (1)
        • AWS (6)
        • DeepSeek (2)
        • Docker (7)
        • Git (3)
        • Java (34)
        • JavaScript (4)
        • Kafka (5)
        • Kubernetes (4)
        • Linux (7)
        • PostgreSQL (38)
        • Python (31)
        • React (3)
        • TypeScript (3)
        • Vue.js (5)
        • General (11)
      • 데이터 분석 (Data Analysis) (1)
      • 알고리즘 문제 풀이 (Problem Solving.. (27)
      • 자격증 (Certifications) (24)
        • ADsP (14)
        • 정보처리기사 (4)
        • Linux Master (5)
        • SQLD (1)
      • 기술 동향 (Tech Trends) (11)
      • 기타 (Others) (3)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    PostgreSQL
    리눅스 마스터 2급
    python
    자바
    DevOps
    Linux master
    JSON
    오답노트
    Linux
    springboot
    AWS
    timescaledb
    Spring boot
    JPA
    docker
    백준
    Kafka
    MyBatis
    Kubernetes
    백준온라인저지
    데이터분석
    백준자바
    deepseek
    리눅스 마스터 2급 2차
    ADsP
    백준알고리즘
    java
    javascript
    Vue.js
    pandas
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
LoopThinker
[Python] `__pycache__`란 무엇인가?
상단으로

티스토리툴바