💡 정적 타입 언어
정적타입 언어(Statically typed language)는 타입을 컴파일 시에 결정한다.
C, C#, C++, JAVA가 정적 언어이다.
프로그래머가 변수에 들어갈 값에 따라 변수의 타입을 설정해야 한다.
값과 맞지 않는 타입을 입력하면 컴파일 에러가 발생하게 된다.
ex) int num = 1
정적 언어의 장점
- 타입 에러로 인해 문제점이 생기면 초기에 발견 가능하다.
- 따라서 타입 안정성이 높다.
- 컴파일 시 미리 타입을 결정하기 때문에 실행 속도가 빠르다.
- 타입을 명시하기 떄문에 가독성이 높다.
- 타입을 머리로 계산해서 읽어야하는 동적 타입 언어에 비해 코드의 가독성이 좋다.
- 다수 협업이나 프로젝트의 장기개발, 유지보수에 좋다.
정적 언어의 단점
💡동적 타입 언어
동적 타입 언어는 런타임 시 자료형이 결정된다.
즉, 타입없이 변수만 선언해서 값을 지정할 ㅜㅅ 있다.
JavaScript, Ruby, Python등이 동적 타입 언어이다.
let num = 1;
동적 언어 장점
- 런타임까지 타입에 대한 결정을 끌고 갈 수 있다.
- 따라서 유연성이 높다.
- 컴파일 시 타입을 명시하지 않아도 된다.
- 상대적으로 지켜야할 규칙이 적고 코드가 짧다
동적 언어 단점
- 예상치 못한 타입이 들어올 경우 타입에러가 발생할 수 있다.
- 타입 에러가 발생할 경우 에러를 찾기 어려워진다.
- 이러한 불편함을 해소하기 위해 TypeScript나 Flow등을 사용할 수 있다.
참고
링크텍스트