정적 타입 언어(Static Type)와 동적 타입 언어(Dynamic Type)

권순성·2022년 6월 21일
1

Javascript

목록 보기
6/28
post-thumbnail

정적 타입 언어(static type)는 변수를 선언할 때 변수에 선언할 값의 종류, 즉 데이터 타입을 사전에 선언해야 한다. 이를 명시적 타입 선언이라고 한다.

정적 타입 언어는 변수의 타입을 변경할 수 없으며, 변수에 선언한 타입에 맞는 값만 할당할 수 있다. 정적 타입 언어는 컴파일 시점에 타입체크(선언한 타입에 맞는 값이 할당되어 있는지 검사)를 실행하여 선언한 타입의 맞는 값이 들어 있지 않다면 에러를 실행시키고 프로그램의 실행 자체를 막는다.

이 때문에 정적 타입 언어는 타입의 일관성을 강제함으로써 더욱 안정적인 코드의 구현을 통해 런타임에 발생하는 에러를 최대한 줄인다.

대표적인 정적 타입 언어로는 C, C++, 자바(Java), 코틀린(Kotlin), 고(Go), 하스켈(Haskell), 러스트(Rust), 스칼라(Scala) 등이 있다.

자바스크립트는 정적 타입 언어와는 다르게 변수를 선언할 때 타입을 선언하지 않고 var, let, const 키워드를 사용하여 변수를 선언한다. 자바스크립트의 경우에는 정적 타입 언어와는 다르게 어떠한 데이터의 값이라도 자유롭게 할당이 가능하다.

자바스크립트의 변수에는 어떤 데이터의 값이라도 할당이 가능하므로 정적 타입 언어에서 말하는 데이터 타입과는 개념이 다르다. 자바스크립트의 변수는 선언이 아닌 할당에 의해 타입이 결정된다. 그리고 재할당에 의해 변수의 타입은 언제든지 동적으로 변할 수 있다.

이러한 특징을 동적 타이핑(dynamic typing) 이라 하며, 자바스크립트를 정적 타입 언어와 구분하기 위해 동적 타입 언어(dynamic type)라고 한다.

대표적인 동적 타입 언어에는 자바스크립트(JavaScript), 파이썬(Python), PHP, 루비(Ruby), 리스프(Lisp), 펄(Perl) 등이 있다.

profile
개발을 즐기는 개발자입미다!

0개의 댓글