Basic/프로그래밍 기초

정적언어(타입)과 동적언어(타입)

에반황 2017. 1. 9. 17:28


이 글은 PC 버전 TISTORY에 최적화 되어있습니다.


타입

 타입이란, 한글로 자료형입니다. int형, short형, float형, bool형, 객체 등이 있습니다.

int a = 10;
bool isKilled = false;
Character human = new Character( );

와 같이 변수를 선언할 때 앞에 붙여 사용합니다.

정적언어, 정적타입 모두 같은 의미로 쓰이고 있습니다. 쉬운 개념이므로 이 단어가 나왔을 때 쫄지 않기 위해 알아보도록 하겠습니다. ^^





정적언어

 정적언어라는 것은 위에서 언급한 '타입' 즉 자료형을 컴파일 시에 결정하는 것 입니다. 우리가 잘 아는('이름을 잘 아는') C, C#, C++, Java 등의 언어가 있습니다. 이들 언어는 변수에 들어갈 값의 형태에 따라 자료형을 지정해주어야 합니다. 컴파일 시에 자료형에 맞지 않은 값이 들어있으면 컴파일 에러가 발생합니다.

[C Language]

int num = 1; // 컴파일 성공
float num2 = 1.03; // 컴파일 성공
bool num3 = 1; // 컴파일 에러

장점 : 컴파일 시에 타입에 대한 정보를 결정하기 때문에 속도↑ , 타입 에러로 인한 문제점을 초기에 발견할 수 있어 타입의 안정성↑





동적언어

 요즘 많이들 쓰시는 JavaScript, Ruby, Python, SmallTalk 등이 바로 동적언어입니다. 동적 타입 언어의 자료형은 컴파일 시 자료형을 정하는 것이 아니고 실행 시에 결정합니다. 다음과 같이 타입 없이 변수만 선언하여 값을 지정할 수 있습니다.

[Python]

num1 = 10;
name = "Evan Hwang"


장점 : Run time까지 타입에 대한 결정을 끌고 갈 수 있기 때문에 많은 선택의 여지가 있습니다.
단점 : 인터프리터 언어는 배우기는 쉬우나 실행 도중에 변수에 예상치 못한 타입이 들어와 Type Error 를 뿜는 경우가 생길 수 있습니다. 잘 생각해서 사용해야합니다.


반응형