TypedDict는 파이썬의 타입 힌트를 위한 기능으로, 딕셔너리의 키와 값에 대한 타입을 명시적으로 지정할 때 사용한다. 일반 dict와 달리, 정해진 키와 그에 해당하는 값의 타입을 강제하여 코드의 안정성과 가독성을 높여준다.
TypedDict란 무엇인가?
TypedDict는 typing 모듈에서 제공하는 클래스로, 딕셔너리의 구조를 미리 정의할 수 있게 해준다. 딕셔너리에 어떤 키가 존재해야 하는지, 그리고 각 키에 해당하는 값의 타입이 무엇인지 명시할 수 있다.
이는 정적 타입 검사 도구(static type checker)가 코드 실행 전에 잠재적인 오류를 발견하도록 돕는다. 예를 들어, 존재하지 않는 키에 접근하거나 잘못된 타입의 값을 할당하려고 할 때 미리 경고를 받을 수 있다.
예제
TypedDict를 사용하는 방법은 클래스를 상속받아 정의하는 것이다.
from typing import TypedDict
# User라는 TypedDict를 정의한다.
class User(TypedDict):
name: str
id: int
is_active: bool
# 정의한 User 타입에 맞는 딕셔셔리 생성
user_a: User = {
"name": "홍길동",
"id": 1001,
"is_active": True
}
# 잘못된 예시 1: 키가 누락된 경우
# user_b: User = {
# "name": "이순신",
# "id": 1002
# }
# mypy와 같은 타입 체커가 "is_active" 키가 없다고 오류를 표시한다.
# 잘못된 예시 2: 값의 타입이 다른 경우
# user_c: User = {
# "name": "강감찬",
# "id": "1003", # id는 int 타입이어야 함
# "is_active": False
# }
# mypy와 같은 타입 체커가 id의 타입이 잘못되었다고 오류를 표시한다.
def get_user_name(user: User) -> str:
return user["name"]
print(get_user_name(user_a))
# 출력: 홍길동
'프로그래밍 > Python' 카테고리의 다른 글
파이썬 - 비동기 컨텍스트 매니저 async with .. as .. (0) | 2025.03.20 |
---|---|
파이썬 - Function annotation ("->") (0) | 2025.03.20 |
파이썬 - Coroutine과 await (0) | 2025.03.20 |
파이썬 - Generator & Iterator (0) | 2025.03.19 |
파이썬 - yield 키워드 (0) | 2025.03.19 |