정적 타입 언어

정적 타입 언어는 자료형이 고정된 언어입니다. 정적 언어는 자료형을 컴파일 시에 결정합니다. 따라서 소스코드 상에 자료형을 지정해줍니다. 정적 언어의 대표적인 종류는 C, C#, C++, JAVA 등이 있습니다.

정적언어는 컴파일 시 타입에 대한 정보를 결정하기 때문에 속도가 빠르고, 타입 에러로 인한 문제점을 초기에 발견할 수 있으므로 타입의 안정성이 올라갑니다.

동적 타입 언어

동적 타입 언어는 타입이 동적으로 변하는 언어입니다. 동적 언어의 자료형은 실행될 때 결정됩니다. 정수형으로 선언된 변수가 문자형으로도 저장되고 객체로도 저장될 수 있습니다. Python, Javascript 등의 언어가 있습니다. (파이썬은 3.6 버젼부터 정적타입도 지원)

C++, C
int a = 9;

Javascript
let i = 0;
i = "Hello world!"

강타입 언어

강타입 언어는 자료형이 맞지 않을 시에 에러를 발생 시키며 암묵적 변환을 지원하지 않습니다.

약타입 언어

약타입 언어는 자료형이 맞지 않을 시에 암묵적으로 타입을 변환하는 언어입니다.

약타입 Javascript

1 + "1" (O)
1 + [] (O) 결과 '1'

약타입 C++

int a = 10;
unsigned int b = a;

강타입 Python

1 + "1" (X)

강타입 Go

var num1 int = 17
var num2 float32 = 13.3
var num3 float32 = num1 + num2 (X) 컴파일 에러