[Programming] Dynamic / Static Typing

kdh10806·2022년 5월 1일
0
post-thumbnail

1. Dynamic Typing

동적타이핑은 코드를 작성하는데 있어서 컴퓨터적 구조를 생략한다.
따라서 변수를 지정할 때 해당 변수의 데이터 타입 등을 명시하지 않아도 컴퓨터가 알아서 해석하도록 한다.
예컨대 Python에서 a = 15 라는 식으로 변수를 지정할 때 a가 숫자라고 명시 하지 않더라도 컴퓨터는 이를 스스로 숫자라 해석한다.
이러한 방식은 코드를 보다 간결하게 해주며 코드의 로직을 보다 명확히 보여줄 수 있지만,
데이터 타입이 뭔지 파악하는 것을 컴퓨터에게 맡기기 때문에 그 만큼 실행속도가 느려진다는 단점이 있다.
ex) Python, Ruby, php ...

2. Static Typing

정적타이핑은 동적타이핑과 정반대로 코드를 작성할 때 컴퓨터적 구조를 명시해준다.
즉, int a = 15 라는 식으로 변수의 데이터 타입을 직접 명시하며 컴퓨터가 해야할 일을 덜어주는 것이다.
이는 코드를 작성하는데 관련된 작은 정보들까지 개발자가 직접 신경쓰도록 하는데, 이렇게 되면 코드의 안정성과 정교함이 커진다.
하지만, 코드 구조 자체는 눈에 잘 들어올지라도 코드가 매우 길고 복잡해져서 처음 프로그래밍에 입문하기에 추천되지는 않는다.
ex) C, C++, JAVA ...

int var = 10;
float pi = 3.14;
char str = 'a';

3. 둘의 차이점

동적타이핑 (Dynamic typing)

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

정적타이핑 (Static typing)

  • 코드를 작성하는 시간이 느리다.
  • 코드를 실행하는 속도가 빠르다.
  • 코드의 구조를 파악하기 쉽다.
  • 처음 프로그래밍 언어를 학습하는 사람들에겐 어려울 수 있다.
  • 크고 복잡하며 여러 사람들이 함께 참여하는 프로젝트에 적합하다.
profile
빽빽한 빽엔드

0개의 댓글