프로그래밍에서 정적 타입과 동적 타입은 변수의 타입을 결정하는 방식을 나타낸다.
정적 타입(Static Typing) 언어에서는 변수를 선언할 때 해당 변수의 타입을 명시적으로 지정해야 하지만, 동적 타입(Dynamic Typing) 언어에서는 변수의 타입을 명시적으로 지정하지 않아도 된다.
이 두 타입의 장단점에 대한 정리를 해 보았다.
정적 타입(Static Typing) | 동적 타입(Dynamic Typing) | |
특징 | 변수의 데이터 타입이 compile 시간에 결정되고, runtime 동안에는 변경할 수 없음 | 변수의 데이터 타입이 runtime 동안 결정되고, 동적으로 변경할 수 있음 |
언어 종류 | C, C++, Java, Swift, Kotlin | Python, JavaScript, Ruby, PHP |
장점 | - compile 할 때 type error를 찾을 수 있어 runtime 시 발생할 수 있는 일부 오류를 방지 - 성능 최적화 가능, 코드 실행 전 메모리 할당 및 타입 변환에 대한 최적화 수행 |
- 코드 작성이 간단, runtime 중 유연하게 타입 변경 - 빠르게 prototyping 하거나 작은 규모의 프로젝트를 개발하는데 유용 |
단점 | - 타입 정의를 위한 코드 작성이 필요하여 코드가 더 길어질 수 있음 - 유연성이 감소 |
- runtime 시 타입 오류가 발생할 수 있음, 이는 프로그램이 실행되는 동안에만 발견 - 실행 중 타입 변환에 따른 성능 부담 |
LIST
'Computer Programming > AI' 카테고리의 다른 글
TIL_Generator란? (0) | 2023.11.16 |
---|---|
TIL_Closure란? (1) | 2023.11.16 |
TIL_Interpreter와 Compiler란? (0) | 2023.11.10 |
Python의 parameter와 argument의 차이점은? (0) | 2023.11.10 |
TIL_환경 변수(PATH)란? (0) | 2023.11.08 |