엄격한 프로그래밍 언어는 답답하게 느껴질 수 있다. 러스트와 같은 언어는 심지어 인생과 존재 이유에 대해 의문을 갖도록 만들기도 한다. 타입을 선언하고 필요할 때 명시적으로 변환하는 것은 번거로운 행정 절차처럼 보인다. 예를 들어 자바스크립트에서는 모든 변수, 인수, 멤버의 타입을 선언하지 않아도 된다. 여러 프로그래밍 언어가 타입 없이도 잘 돌아가는데 왜 명시적인 타입으로 스스로에게 부담을 줘야만 할까?
답은 간단하다. 타입을 통해 우리는 더 안전하고, 더 빠르고, 더 쉽게 유지보수할 수 있는 코드를 작성할 수 있다. 변수 타입을 선언하고 클래스에 주석을 달아서 시간을 손해보더라도, 디버깅할 버그가 줄어들고 성능 문제가 덜 발생하기 때문에 잃어버린 시간은 금방 만회할 수 있다.
이러한 명백한 이점 외에도 타입은 약간의 소소한 이점도 추가로 가지고 있다. 함께 알아보자.