동적 타입 언어
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.