Python/Python 기초

Dynamic Typing vs Static Typing

데이터 세상 2022. 4. 26. 00:55

Dynamic Typing

동적 타이핑은 코드를 작성하는데 있어서 컴퓨터적 구조를 생략한다.

따라서 변수를 지정할 때 해당 변수의 데이터 타입 등을 명시하지 않아도 컴퓨터가 알아서 해석하도록 둔다.

파이썬에서 a = 15 라는 식으로 변수를 지정할 때 a가 숫자라고 명시 하지 않더라도 컴퓨터는 이를 스스로 숫자라 해석한다.

이러한 방식은 코드를 보다 간결하게 해주며 코드의 로직을 보다 명확히 보여줄 수 있지만,

데이터 타입이 뭔지 파악하는 것을 컴퓨터에게 맡기기 때문에 그 만큼 실행 속도가 느려진다는 단점이 있다.

  • 코드를 작성하는 시간이 빠르다.
  • 코드를 실행하는 속도가 느리다.
  • 코드의 내용, 로직을 파악하기 쉽다.
  • 처음 프로그래밍을 학습하는 사람에게 적합한 언어이다.
  • 속도를 중요시하는 작업에선 사용하기 부적합하지만 작고 단순한 프로젝트를 하기엔 적합하다.
  • 동적 타이핑을 사용하는 언어 - 파이썬, 루비, php 등

 

Static Typing

정적 타이핑은 동적 타이핑과 정반대로 코드를 작성할 때 컴퓨터적 구조를 명시해준다.

즉, int a = 15 라는 식으로 변수의 데이터 타입을 직접 명시하며 컴퓨터가 해야 할 일을 덜어주는 것이다. 

이는 코드를 작성하는데 관련된 작은 정보들까지 개발자가 직접 신경 쓰도록 하는데, 이렇게 되면 코드의 안정성과 정교함이 커진다.

하지만, 코드 구조 자체는 눈에 잘 들어올지라도 코드가 매우 길고 복잡해져서 처음 프로그래밍에 입문하기에 추천되지는 않는다.

  • 코드를 작성하는 시간이 느리다.
  • 코드를 실행하는 속도가 빠르다.
  • 코드의 구조를 파악하기 쉽다.
  • 처음 프로그래밍 언어를 학습하는 사람들에겐 어려울 수 있다.
  • 크고 복잡하며 여러 사람들이 함께 참여하는 프로젝트에 적합하다.
  • 정적 타이핑을 사용하는 언어 - C, C++, 자바 등.
반응형

'Python > Python 기초' 카테고리의 다른 글

[Python] 파이썬 코딩 스타일  (0) 2022.04.26
[Python] 파이썬 문법 기초  (0) 2022.04.26
Object Reference  (0) 2021.02.25
[Python] Python Module  (0) 2021.02.24
[Python] Python Built-in Functions  (0) 2021.02.24