📋 학습 목표 달성 현황
- ✅ 프로젝트 메타데이터 분석 완료
- ✅ 빌드 설정 이해 완료
- ✅ 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의 존재 이유
- 과거 문제점: 설정 파일 분산 (setup.py, setup.cfg, .flake8, .isort.cfg 등)
- 해결책: 하나의 파일로 모든 도구 설정 통합
- 표준화: PEP 518에 의한 Python 커뮤니티 표준
중요한 오해 해결
- ❌ 잘못된 이해: pyproject.toml만 있으면 자동으로 검사됨
- ✅ 올바른 이해: 단순한 설정 파일, 별도 도구 설치 및 실행 필요
실제 동작 과정
- 도구 설치:
pip install black isort mypy
- 수동 실행:
black ., isort ., mypy .
- 자동화: 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 - 환경설정 파일들 분석