<aside>
💡 모든 언어는 타입시스템을 가지고 있으며 동적 타입과 정적 타입으로 나눠진다.
</aside>
동적타입
- **
런타임**에 모든 변수의 유형을 결정하고 잘못된 경우 예외 발생
- PHP, JS, PYTHON
정적타입
- **
컴파일 타임**에 모든 변수의 유형을 결정하고 잘못된 경우 예외 발생
- C, C++, JAVA
정적 타입시스템의 필요성
정적 타입 시스템은 프로그램의 가독성을 높이고 타입에 대한 에러를 미리 방지할 수 있다.
- 타입을 명시해서 나중에 다른 개발자가 보더라도 어떠한 매개변수를 넣고 이 함수가 어떠한 값을 반환하는지 명시적으로 파악할 수 있게 만든다.
- 어떠한 함수, 또는 API에 대한 여러가지의 타입으로 이루어진 값이 발생될 수 있는데 해당 값들에 대한 대처를 “미리” 할 수 있다. (주로 외부 API에 요청을 하고 그 이후에 로직을 만들 때)
- 매개변수를 잘못 할당하는 등 개발자의 잔실수를 막아주는 역할
<aside>
💡 mypy (파이썬 타입 정적 검사기 모듈)
</aside>