정적언어
정적언어라는 것은 위에서 언급한 '타입' 즉 자료형을 컴파일 시에 결정하는 것 입니다. 우리가 잘 아는('이름을 잘 아는') C, C#, C++, Java 등의 언어가 있습니다. 이들 언어는 변수에 들어갈 값의 형태에 따라 자료형을 지정해주어야 합니다. 컴파일 시에 자료형에 맞지 않은 값이 들어있으면 컴파일 에러가 발생합니다.
예)
[C Language]
int num = 1; // 컴파일 성공
float num2 = 1.03; // 컴파일 성공
bool num3 = 1; // 컴파일 에러
장점 : 컴파일 시에 타입에 대한 정보를 결정하기 때문에 속도↑ , 타입 에러로 인한 문제점을 초기에 발견할 수 있어 타입의 안정성↑
요약 : 정적언어. Java / C / C++ 등.. 메모리 미리 할당받음
(월급을 현금으로만 쓰는 방식. 통장이 빵꾸날일이 없다.)
동적언어
요즘 많이들 쓰시는 JavaScript, Ruby, Python 등이 바로 동적언어입니다. 동적 타입 언어의 자료형은 컴파일 시 자료형을 정하는 것이 아니고 자료형을 실행 시에 결정합니다. 다음과 같이 타입 없이 변수만 선언하여 값을 지정할 수 있습니다.
예)
[Python]
num1 = 10;
name = "Evan Hwang"
장점 : Run time까지 타입에 대한 결정을 끌고 갈 수 있기 때문에 많은 선택의 여지가 있습니다.
단점 : 인터프리터 언어는 배우기는 쉬우나 실행 도중에 변수에 예상치 못한 타입이 들어와 Type Error 를 뿜는 경우가 생길 수 있습니다. 잘 생각해서 사용해야합니다.
요약 : 동적언어. 자바스크립트 등.. 그때그때 메모리를 할당받음.
(월급을 카드로 미리 당겨쓰는 방식 ! 빵꾸날일이 있다! 오버플로우.)
정적언어와 동적언어를 비교하는 100점짜리 답변
정적언어 : 메모리 할당 후 실행 ( 컴파일 )
동적언어 : 실행 후 메모리 할당 ( 인터프리팅 )
그로인한 차이점은 메모리 안정성 !
정적언어는 메모리가 뻑날일이 없음. 동적언어는 대신 코드의 편의를 준다.
'IT 꿀정보' 카테고리의 다른 글
[유용한프로그램] 알씨 : 이름 일괄변경, 포맷변경 ! (0) | 2023.12.21 |
---|---|
VSCode Github personal token 연동 (0) | 2023.10.04 |
초간단 무료 이미지 API 사용하기(unsplash) (0) | 2023.09.15 |
클론코딩 제대로하는 법 feat.노마드코더 (0) | 2023.09.10 |
국비학원 선택 팁 (0) | 2023.08.30 |
댓글