프로그래밍 언어/python

정적 타입 언어, 동적 타입 언어 :: Python?

벌게진눈 2019. 8. 27. 00:47
반응형

타입이란 자료형입니다. int형, float형, double형, string형, 객체 등이 있습니다.

정적 타입 언어

타입(자료형)이 고정된 언어입니다. 정적언어는 자료형을 컴파일 시에 결정하는 것입니다.
따라서 소스코드 상에 자료형을 지정해줍니다. 정적언어의 대표적인 종류는 C, C#, C++, JAVA 등이 있습니다. 컴파일 시 자료형에 맞지 않은 값이 저장되면 컴파일 에러가 발생합니다.

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

동적 타입 언어

타입(자료형)이 동적으로 변하는 언어입니다. 동적언어의 자료형은 실행될 때 결정됩니다.
정수형으로 선언되었던 변수가 문자형으로도 저장되고 객체로도 저장될 수 있습니다.
요즘 많이 사용하는 Python, JavaScript, Ruby 등의 언어가 동적언어입니다.

동적언어는 타입을 덜 신경써도 되므로 간단한 프로그램을 만들때 개발 속도 면에서 유리한 장점이 있습니다.

Python 은 동적타입의 강타입 언어입니다.
그렇다면 강타입이란 무엇일까요?

  • 약타입 언어 : 자료형이 맞지 않을 시에 암묵적으로 타입을 변환하는 언어
  • 강타입 언어 : 자료형이 맞지 않을 시에 에러 발생, 암묵적 변환을 지원하지 않음

예를들어 1 + "1"을 계산하면 약타입 언어인 자바스크립트에서는 "11"로 타입을 변환하여 계산되지만 Python 의 경우에는 TypeError 가 발생하게 됩니다.

Python 은 3.6 버전부터 정적타입도 지원하고 있습니다. 하지만 Python을 정적타입 언어로 사용하는 문화가 없으니 협업할 때 동료들의 불편함을 유발 시킬 수 있고 해당 기능이 안정적인 버전이 아니라고 하여 모든 프로젝트에 해당 기능을 대입하기는 이르다고 합니다. 이러한 기능이 3.6버전부터 생겼다 정도만 인지하고 다음 시간에 유익한 내용으로 찾아오겠습니다.

반응형