Python의 어노테이션은 __annotations__에 남고 mypy·pyright·IDE가 읽지만 인터프리터가 강제하지 않아. 매개변수에는 : type, 반환에는 -> type을 쓰고 Python 3.9 이상에서는 list[int] 같은 내장 제네릭을 써.
X | None은 값이 없을 수 있음을, X | Y는 여러 허용 타입을 나타내. Any는 검사를 끄는 탈출구이고 object는 타입을 모르는 채 안전하게 제한하므로 둘을 구분해.