10

금요일 저녁, 레거시 코드와의 사투

이 함수 파라미터가 뭐였지? - Type Hints

학습 목표

동적 타이핑의 단점을 체감한다 Type Hints의 필요성을 이해한다

금요일 저녁, 레거시 코드와의 사투

"신입아, 이 함수 좀 수정해줘. data 파라미터에 새 필드 추가해야 해."

에디터 로딩 중...

신입의 머릿속:

  • "data가 뭐지? dict? list? 객체?"
  • "config에는 어떤 키가 있어야 하지?"
  • "options는 뭐가 들어가도 되나?"
  • "반환값은 뭐야?"

결국 이렇게 됨...

에디터 로딩 중...

Type Hints가 있었다면?

에디터 로딩 중...

보는 순간 이해 가능!


Type Hints의 장점

장점설명
문서화함수 시그니처만 보고 사용법 파악
IDE 지원자동완성, 타입 에러 실시간 감지
정적 분석mypy로 배포 전 버그 발견
리팩토링타입 정보로 안전한 코드 변경
팀 협업코드 의도가 명확해짐

오늘의 학습 목표

  1. 기본 타입 힌트 - int, str, list[int], dict[str, Any]
  2. 고급 타입 - Optional, Union, Literal, TypeVar
  3. 제네릭 - Generic, TypeVar로 재사용 가능한 타입
  4. mypy - 정적 타입 체커 사용법
  5. 실무 패턴 - Protocol, TypedDict, dataclass
핵심 포인트
  • Type Hints = 선택적 타입 주석 (런타임 영향 없음)
  • IDE 자동완성, 실시간 에러 감지
  • mypy로 배포 전 타입 버그 발견
  • 팀 협업 시 코드 의도 명확화