strongly type
reult = 10 + "20" # TypeError!
- 타입 에러를 미연에 방지
- Python, OCaml
statically type
- 코드 작성 시 변수 타입을 반드시 지정 -> compiler 가 타입을 미리 체크
-> 변수의 타입이 compile 시 결정
- Java, OCaml
int base = 10 # 변수 base 는 int 타입으로 고정
base = "hello" # CompileError! string 을 int 변수에 할당 불가
weak type
- 타입간의 변환이 유연 -> 서로 다른 타입간 연산 가능
- 코드가 자동으로 타입을 변환하려 시도함
- JavaScript
- 타입오류가 발생할 확률 높음
dynamically
- 코드 작성 시 변수의 타입을 지정할 필요 없음
- runtime 시 타입 체크 -> execution 동안 에러 발생 확률 높음
- Python