10분
금요일 저녁, 레거시 코드와의 사투
이 함수 파라미터가 뭐였지? - Type Hints
금요일 저녁, 레거시 코드와의 사투
Python 고급: 제너레이터, 데코레이터, 컨텍스트 매니저, Type Hints > 이 함수 파라미터가 뭐였지? - Type Hints
학습 목표
동적 타이핑의 단점을 체감한다 Type Hints의 필요성을 이해한다
금요일 저녁, 레거시 코드와의 사투
"신입아, 이 함수 좀 수정해줘. data 파라미터에 새 필드 추가해야 해."
에디터 로딩 중...
신입의 머릿속:
- "data가 뭐지? dict? list? 객체?"
- "config에는 어떤 키가 있어야 하지?"
- "options는 뭐가 들어가도 되나?"
- "반환값은 뭐야?"
결국 이렇게 됨...
에디터 로딩 중...
Type Hints가 있었다면?
에디터 로딩 중...
보는 순간 이해 가능!
Type Hints의 장점
| 장점 | 설명 |
|---|---|
| 문서화 | 함수 시그니처만 보고 사용법 파악 |
| IDE 지원 | 자동완성, 타입 에러 실시간 감지 |
| 정적 분석 | mypy로 배포 전 버그 발견 |
| 리팩토링 | 타입 정보로 안전한 코드 변경 |
| 팀 협업 | 코드 의도가 명확해짐 |
오늘의 학습 목표
- 기본 타입 힌트 - int, str, list[int], dict[str, Any]
- 고급 타입 - Optional, Union, Literal, TypeVar
- 제네릭 - Generic, TypeVar로 재사용 가능한 타입
- mypy - 정적 타입 체커 사용법
- 실무 패턴 - Protocol, TypedDict, dataclass
핵심 포인트
- • Type Hints = 선택적 타입 주석 (런타임 영향 없음)
- • IDE 자동완성, 실시간 에러 감지
- • mypy로 배포 전 타입 버그 발견
- • 팀 협업 시 코드 의도 명확화