# Phase 1.2: pyproject.toml 분석 학습 정리

문건희·2025년 8월 2일

insurance

목록 보기
1/1

📋 학습 목표 달성 현황

  • ✅ 프로젝트 메타데이터 분석 완료
  • ✅ 빌드 설정 이해 완료
  • ✅ Poetry 설정 파악 완료

🔍 pyproject.toml 파일 분석

파일 기본 정보

  • 위치: 프로젝트 루트 디렉토리
  • 크기: 매우 작음 (개발 도구 설정만 포함)
  • 특징: Poetry 미사용, 전통적인 pip 기반 프로젝트

파일 내용 구조

[tool.black]
line-length = 120

[tool.isort]
profile = "black"
line_length = 120
src_paths = ["src", "."]

[tool.mypy]
ignore_missing_imports = true

[tool.mypy.simplejson]
ignore_missing_imports = true

🛠️ 각 도구별 역할과 설정

1. Black (코드 포맷터)

  • 목적: Python 코드 자동 포맷팅
  • 핵심 설정: line-length = 120 (기본 88자 → 120자로 확장)
  • 특징: "타협하지 않는 포맷터", 일관성 중시

2. isort (Import 정렬)

  • 목적: import 문 자동 정렬 및 그룹화
  • 핵심 설정:
    • profile = "black": Black과 호환성 보장
    • line_length = 120: Black과 동일한 줄 길이
    • src_paths = ["src", "."]: 소스 코드 경로 지정

3. mypy (정적 타입 검사)

  • 목적: 타입 힌트 검증으로 런타임 오류 예방
  • 핵심 설정: ignore_missing_imports = true (타입 스텁 없는 라이브러리 허용)
  • 특별 설정: simplejson 모듈 별도 예외 처리

💡 핵심 학습 내용

pyproject.toml의 존재 이유

  1. 과거 문제점: 설정 파일 분산 (setup.py, setup.cfg, .flake8, .isort.cfg 등)
  2. 해결책: 하나의 파일로 모든 도구 설정 통합
  3. 표준화: PEP 518에 의한 Python 커뮤니티 표준

중요한 오해 해결

  • ❌ 잘못된 이해: pyproject.toml만 있으면 자동으로 검사됨
  • ✅ 올바른 이해: 단순한 설정 파일, 별도 도구 설치 및 실행 필요

실제 동작 과정

  1. 도구 설치: pip install black isort mypy
  2. 수동 실행: black ., isort ., mypy .
  3. 자동화: pre-commit, IDE 설정, CI/CD 파이프라인

🔗 프로젝트 내 연관 파일들

requirements.txt 연관성

black==25.1.0      # 코드 포맷터
isort==6.0.1       # import 정렬
mypy==1.15.0       # 타입 검사
pre-commit==4.2.0  # Git 훅 자동화

.pre-commit-config.yaml 자동화

  • Git 커밋 시 자동으로 black, isort, mypy 실행
  • pyproject.toml 설정을 읽어서 적용
  • 코드 품질 자동 보장

📊 프로젝트 특징 분석

의존성 관리 방식

  • Poetry 미사용: 전통적인 pip + requirements.txt 방식
  • 점진적 개선: 개발 도구 설정만 pyproject.toml로 통합
  • 안정성 우선: 검증된 방식 유지

개발 워크플로우

코드 작성 → mypy 타입 체크 → isort import 정렬 → black 포맷팅 → Git 커밋

팀 협업 장점

  • 모든 개발자가 동일한 코드 스타일 사용
  • 설정 파일 하나로 일관성 보장
  • 새 팀원 온보딩 시간 단축

🎯 주요 학습 포인트

기술적 개념

  • TOML 형식: 설정 파일 표준 형식
  • 정적 분석: 코드 실행 전 오류 검출
  • 코드 포맷팅: 가독성과 일관성 향상
  • 타입 힌팅: Python의 점진적 타이핑 시스템

실무 적용 가치

  • 코드 리뷰 시간 단축 (스타일 논쟁 제거)
  • 버그 예방 (타입 체크로 오류 사전 발견)
  • 유지보수성 향상 (일관된 코드 스타일)
  • 자동화 지원 (CI/CD 파이프라인 통합)

🚀 다음 단계 준비

Phase 1.3 예고

  • 환경설정 파일들 분석 (.env, .gitignore 등)
  • Docker 관련 파일 탐색
  • 프로젝트 전체 설정 체계 파악

연관 학습 포인트

  • Git 워크플로우와 코드 품질 도구 연동
  • IDE 설정과 개발 도구 통합
  • CI/CD 파이프라인에서의 자동화 적용

📝 WBS 진행 현황

  • Phase 1: 프로젝트 설정 및 환경 구성 (2/3 완료)
  • 다음 세션: Phase 1.3 - 환경설정 파일들 분석

0개의 댓글