동적 타이핑(Dynamically Typed) 언어란?
동적 타이핑 언어는 타입(type)이 런타임 값에 연결되는 프로그래밍 언어를 말합니다. 코드를 작성할 때 변수의 타입을 일일이 지정할 필요가 없으며, 이름 그대로 변수의 타입이 '동적'입니다. 즉, 한 번 특정 타입의 값을 할당한 변수라도 나중에 다른 타입의 값으로 자유롭게 변경할 수 있습니다.
예를 들어 어떤 변수에 처음에는 숫자를 담았다가, 이후에 문자열을 담아도 오류가 발생하지 않습니다. 이러한 유연성 덕분에 개발 속도가 빨라지고 코드가 간결해지는 장점이 있습니다.
대표적인 동적 타이핑 언어로는 Python, Perl, Ruby 등이 있습니다.
무타입(Untyped) 언어란?
무타입 언어는 흔히 동적 타이핑 언어라고도 불리며, 변수의 타입을 미리 정의하도록 강제하지 않는 프로그래밍 언어를 의미합니다.
JavaScript가 대표적인 무타입 언어입니다. JavaScript에서 변수는 어떤 데이터 타입의 값이든 담을 수 있습니다. 변수를 선언할 때는 var 키워드를 사용하는데, 값이 숫자든 문자열이든 상관없이 동일하게 var 키워드로 선언하면 됩니다.
JavaScript에서 숫자 변수 선언하기
var points = 100;
var rank = 5;
위 예제처럼 별도의 타입 표기 없이 var 키워드만으로 변수를 선언하고 값을 할당할 수 있습니다. 참고로 최신 JavaScript(ES6 이상)에서는 let과 const 키워드도 널리 사용되며, 블록 스코프 관리와 상수 선언에 더 적합합니다.
정리
두 용어는 밀접하게 연관되어 있습니다. 동적 타이핑은 타입 검사가 실행 시점에 이루어진다는 개념을 강조하고, 무타입은 개발자가 타입을 명시하지 않아도 된다는 특징을 강조합니다. 결과적으로 두 언어 스타일 모두 유연한 코딩을 가능하게 하지만, 대규모 프로젝트에서는 TypeScript처럼 정적 타입을 도입해 안정성을 높이는 접근도 인기를 얻고 있습니다.