1. 파이썬은 동적 프로그래밍 언어
파이썬은 동적(dynamic) 프로그래밍 언어입니다. 인터프리터(interpreter)가 코드를 실행하면서 타입을 추론하여 체크합니다.
또한, 변수 타입이 고정되어있지 않기 때문에 개발자가 원한다면 변경할 수 있습니다.
num = 1
type(num)
#<class 'int'>
num = "1"
type(num)
#<class 'str'>
위 코드를 보면 알 수 있듯이, 변수 타입이 바뀌었습니다. 정적 프로그래밍 언어에서는 상상하기 힘든 일입니다.
덕분에 파이썬은 다른 언어에 비해 매우 간단명료한 코드 작성이 가능합니다.
하지만, 그와 동시에 약점이 되기도합니다.
소규모 앱개발이나 일회성 스크립트에서는 큰 장점이지만, 규모가 커지면 파이썬의 다이나믹함이 치명적인 버그로 이어질 확률이 높아집니다. 이 때 등장하는 것이 타입힌팅(Type Hinting)입니다.
2. 타입 어노테이션 /힌트
타입 힌팅(Type Hinting) 은 이름에서도 알 수 있듯이, 파라미터와 리턴값의 데이터값을 명시적으로 지정해주는 것입니다.
만약 타입 힌팅이 없었다면, 파이썬 개발자들은 주석(comments)를 사용해야하는데 이는 일반 주석과도 혼동되기 쉽습니다.
#def 함수명 (파라미터1 : 파라미터1 타입 , 파리미터2 : 파라미터2 타입 ) -> 리턴타입 :
#return 리턴값
def word_count(word : str , cnt : int) -> int :
return len(word)*cnt
반면 위와 같은 타입 힌팅은, 타입 어노테이션(annotation)이라는 새로운 방법으로 파이썬 코드의 타입 표시를 표준화합니다.
그로 인해, IDE 에서도 해석되고 자동 완성이나 정적 타입 체킹에도 활용되고 있습니다.
*주의사항: 파이썬 언어 차원에서는 변수나 함수에 추가한 타입 어노테이션이 부정확해도, 어떤 경고나 오류도 발생하지 않는다.
타입 힌팅(type hinting)은 우리가 작성한 코드의 가독성을 높여줄 뿐입니다.
여기서 더 나아가, 코드 품질 향상을 원한다면 타입 체킹(type checking)까지 보시기 권합니다.
참고자료