동적 타입 언어

IT 위키

동적 타입 언어(Dynamic typing language, 動的 - 語言)은 변수나 표현식의 타입이 실행 시점(runtime)에 결정되는 프로그래밍 언어를 의미한다. 이러한 언어에서는 컴파일 시점에 타입 검사가 이루어지지 않으며, 프로그램 실행 중에 타입 오류가 발생할 수 있다.

1 개요[편집 | 원본 편집]

동적 타입 언어는 개발자가 변수의 타입을 명시하지 않아도 되며, 변수는 다양한 타입의 값을 가질 수 있다. 이는 빠른 프로토타이핑과 유연한 코드 작성을 가능하게 하며, 생산성을 높이는 데 유리하다. 그러나 타입 오류가 실행 중에 발생하므로, 안정성과 성능 면에서는 불리할 수 있다.

2 특징[편집 | 원본 편집]

  • 런타임 시점의 타입 결정
  • 명시적인 타입 선언이 불필요함
  • 타입 오류가 실행 중에 발생할 수 있음
  • 높은 코드 유연성과 간결성
  • 빠른 개발과 프로토타이핑에 적합

3 예시[편집 | 원본 편집]

대표적인 동적 타입 언어에는 다음과 같은 언어들이 있다.

  • Python
  • JavaScript
  • Ruby
  • PHP
  • Perl
  • Lisp

4 장단점[편집 | 원본 편집]

4.1 장점[편집 | 원본 편집]

  • 코드가 간결하고 읽기 쉬움
  • 타입 선언이 없어 빠른 개발 가능
  • 다양한 형태의 데이터 처리에 유연함
  • 프로토타입 제작 및 스크립트 작성에 유리함

4.2 단점[편집 | 원본 편집]

  • 실행 중 타입 오류 발생 가능성 존재
  • 대규모 프로젝트에서 유지보수 어려움
  • 성능 최적화가 어려움
  • 정적 분석 및 리팩토링 도구의 한계

5 동적 타입과 유사한 개념[편집 | 원본 편집]

일부 언어는 동적 타입 기능을 제공하지만 선택적으로 정적 타입 선언도 허용한다. 예를 들어 TypeScript는 JavaScript에 정적 타입 기능을 추가한 언어이며, Python은 타입 힌트 기능을 통해 정적 분석을 도울 수 있다.

6 동적 타입 언어와 정적 타입 언어의 비교[편집 | 원본 편집]

동적 타입 언어는 개발 초기의 생산성과 유연성을 중시하며, 정적 타입 언어는 성능과 안정성을 중시한다. 선택은 프로젝트의 목적, 팀 규모, 유지보수 계획 등에 따라 달라진다.

7 같이 보기[편집 | 원본 편집]

8 참고 문헌[편집 | 원본 편집]

  • Van Roy, Peter and Haridi, Seif. *Concepts, Techniques, and Models of Computer Programming*. MIT Press, 2004.
  • Sebesta, Robert W. *Concepts of Programming Languages*. Pearson, 12th ed., 2019.

9 각주[편집 | 원본 편집]