정적 타입 언어 vs 동적 타입 언어

이지영·2024년 5월 27일

💡 정적 타입 언어

정적타입 언어(Statically typed language)는 타입을 컴파일 시에 결정한다.
C, C#, C++, JAVA가 정적 언어이다.
프로그래머가 변수에 들어갈 값에 따라 변수의 타입을 설정해야 한다.
값과 맞지 않는 타입을 입력하면 컴파일 에러가 발생하게 된다.

ex) int num = 1

정적 언어의 장점

  • 타입 에러로 인해 문제점이 생기면 초기에 발견 가능하다.
  • 따라서 타입 안정성이 높다.
  • 컴파일 시 미리 타입을 결정하기 때문에 실행 속도가 빠르다.
  • 타입을 명시하기 떄문에 가독성이 높다.
  • 타입을 머리로 계산해서 읽어야하는 동적 타입 언어에 비해 코드의 가독성이 좋다.
  • 다수 협업이나 프로젝트의 장기개발, 유지보수에 좋다.

정적 언어의 단점

  • 매번 변수마다 타입을 설정해야 한다.

💡동적 타입 언어

동적 타입 언어는 런타임 시 자료형이 결정된다.
즉, 타입없이 변수만 선언해서 값을 지정할 ㅜㅅ 있다.
JavaScript, Ruby, Python등이 동적 타입 언어이다.

let num = 1;

동적 언어 장점

  • 런타임까지 타입에 대한 결정을 끌고 갈 수 있다.
  • 따라서 유연성이 높다.
  • 컴파일 시 타입을 명시하지 않아도 된다.
  • 상대적으로 지켜야할 규칙이 적고 코드가 짧다

동적 언어 단점

  • 예상치 못한 타입이 들어올 경우 타입에러가 발생할 수 있다.
  • 타입 에러가 발생할 경우 에러를 찾기 어려워진다.
  • 이러한 불편함을 해소하기 위해 TypeScript나 Flow등을 사용할 수 있다.

참고
링크텍스트

0개의 댓글