동적언어는 런타임에 타입이 결정되는 언어이다. 즉, 변수 타입을 미리 선언할 필요가 없고, 자료형이 빌드될 때가 아닌 실행 시에 결정된다. 매번 타입을 써줄 필요가 없어 코드를 빠르게 작성 가능하다.
자바스크립트를 비롯해 루비, 파이썬 등이 대표적인 동적 언어이다.
장점만큼 단점도 있다. 실행 도중에 변수에 예상치 못한 타입이 들어와 타입 에러가 발생할 수 있다.
동적 타입 언어의 단점을 보완하기 위해 TypeScript가 등장했다. 타입 스크립트를 활용하면 컴파일을 통해 사전 에러를 발견할 수 있다.
컴파일이란 어떤 언어의 코드 전체를 다른 언어로 바꿔주는 과정이다. (쉽게 말하면 번역인듯하다..)