정적언어 vs 동적언어

문상우·2023년 7월 14일
0
post-thumbnail

타입

❗ 프로그래밍 언어에서 변수, 상수, 함수 등의 식별자에 할당될 수 있는 데이터의 종류

❗ 정적 언어, 동적언어는 프로그래밍 언어에서 타입을 다루는 방식에 따라 구분된다.


정적언어 (Static Language)

❗ 정적언어는 ‘타입’을 컴파일 시에 결정한다.

우리가 알고 있는 C, C#, C++, Java 등의 언어는 변수에 들어갈 값의 형태에 따라 자료형을 지정해주어야 한다.

컴파일시에 자료형에 맞지 않은 값이 들어있으면 컴파일 에러가 발생한다.


[장점]

  • 컴파일 시에 타입에 대한 정보를 결정하기 때문에 속도가 빠르다.
  • 타입 에러로 인한 문제점을 초기에 발견할 수 있기 때문에 타입의 안정성이 높아진다.
  • 가독성이 좋다.
  • 다수의 협업이나 프로젝트를 할

[단점]

  • 코드를 작성할 때, 매번 타입을 지정해주어야 한다.

동적언어 (Dynamic Language)

❗ 동적언어는 컴파일 시 타입을 정하지 않고, 실행(RunTime) 시에 결정한다.

요즘 많이 쓰이는 JavaScript, Rudy, Python, SmallTalk 등이 동적언어이다.

이런 특징을 갖고 있어 동적 언어는 타입을 선언하지 않고도 값을 넣을 수 있다.


[장점]

  • Runtime까지 타입에 대한 결정을 끌고 갈 수 있기 때문에 많은 선택의 여지가 있다.
  • 타입이 없이 선언할 수 있어 배우기가 쉽다.
  • 타입을 매번 지정하지 않아도 되기 때문에, 작성자가 보다 빠르게 코드를 작성할 수 있다.

[단점]

  • 실행 도중에 변수에 예상치 못한 타입이 들어와 Type Error를 던질 수 있다.
  • 코드가 길고 복잡해지는 경우 타입 에러를 찾기 힘들다.
  • 가독성이 떨어진다.

[참고]

정적언어(타입)과 동적언어(타입)

https://itmining.tistory.com/65

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

https://velog.io/@hahan/정적타입-언어-vs-동적타입-언어

GPT

https://chat.openai.com/

profile
평범한 대학생의 코딩일기

0개의 댓글