변수의 타입이란 int형, String형, float형 과 같은 자료형을 뜻한다.
정적타입 언어(Statically typed language)는 컴파일 시 변수의 타입이 결정되는 언어를 말한다.
따라서, 정적타입언어를 사용할때는 프로그래머가 변수에 들어갈 값의 형태에 따라 직접 변수의 타입을 명시해줘야한다. 이를 정적타이핑(Static Typing)이라고 하는데, 정적타이핑은 코드를 작성하는데 관련된 작은 정보들까지 개발자가 직접 신경써야 하므로 코드의 안정성과 정교함이 커진다.
// 나는 정적타입
int num = 123
char str = 'abc'
하지만 신경쓸 부분이 많은 만큼 당연히 프로그래밍의 난이도 또한 올라가기 때문에, 프로그래밍을 처음 입문하는 사람이 정적타입 언어를 사용하면 많은 어려움을 느낄 수도 있다.
정적타입 언어에는 C, C#, C++, JAVA, Pascal 등이 있다.
동적타입 언어(Dynamically typed languages)는 컴파일 시 자료형을 정하는 것이 아니라 런타임 시 결정된다.
따라서, 동적타이핑(Dynamic Typing)은 컴퓨터적 구조를 생략할 수 있어서 타입 없이 변수만 선언하여 값을 지정할 수 있다.
// 나는 동적타입
const num = 123
let str = 'abc'
num = 123
onbin = 'Atta boy!!'
정적타입 언어보다 코드를 간결하게 만들어 줄 수 있지만, 데이터 타입이 무엇인지 파악하는 작업을 컴퓨터에게 맡기기 때문에, 그 만큼 실행속도가 느려진다.
동적타입 언어에는 JavaScript, Python, Ruby, PHP 등이 있다.