Web

동적 타입 언어와 정적 타입 언어

필립 2024. 6. 26. 00:52

오늘은 

타입스크립트를 배우기 전, 자바스크립트가 동적 타입 언어이기 때문에 생길 수 있는 문제점을 배웠습니다. 

제게는 생소한 개념인 동적 타입 언어와 정적 타입 언어에 대해 정리해보고자 합니다.

 

동적 타입 언어와 정적 타입 언어 

변수와 데이터 타입의 처리 방식에 따라 구분됩니다. 


1. 동적 타입 언어 ( 인터프리터 언어 ) 

변수의 타입이 실행 시간(runtime)에 결정됩니다. 변수를 선언할 때 타입을 명시하지 않고, 변수에 값을 할당 할 때 그 값의 타입에 따라 자동으로 변수의 타입이 결정됩니다. 

 

특징 

1. 유연성 : 변수의 타입이 고정되지 않고 필요에 따라 변경됩니다. 

2. 간결한 코드 : 변수 선언 시 타입을 명시할 필요가 없어져서 코드가 간결해집니다. 

3. 런타임 타입 체크 : 변수의 타입이 실행 시간에 체크되므로 타입 오류가 런타임에 발견될 수 있습니다. ( TypeScript를 사용하는 이유 )

4. 빠른 개발 속도 : 개발 속도가 빠르지만, 프로젝트가 커질수록 타입 관련 오류가 발생할 가능성이 있습니다. 

 

동적 타입 언어의 예로는 JavaScript, Python, Ruby 등이 있습니다. 


2. 정적 타입 언어 

변수의 타입이 컴파일 시간에 결정됩니다. 변수를 선언할 때 타입을 명시해야 하며, 한 번 선언된 타입은 변경할 수 없습니다. 

 

특징

1. 명확성 : 변수의 타입이 명시적으로 선언되므로 코드가 명확해지고, 협업 시 다른 이들도 코드를 쉽게 파악할 수 있습니다.

2. 컴파일 시간 타입 체크 : 변수의 타입이 컴파일 시간에 체크되므로 타입 오류를 미리 발견할 수 있습니다.
3. 안정성 : 타입 관련 오류가 줄어들어 코드의 안정성이 높아집니다. 

4. 상대적으로 느린 개발 속도 : 초기 개발 속도가 상대적으로 느리지만, 유지보수 시 이점이 있습니다. 

정적 타입 언어의 예로는 C, C++, Java 등이 있습니다. 


3. 비교

1. 타입 선언 

- 동적 타입 언어 : 변수 선언 시 타입 명시하지 않음

- 정적 타입 언어 : 변수 선언 시 타입 명시 

 

2.타입 체크 시기

- 동적 타입 언어 : 실행 시간에 타입 체크 

- 정적 타입 언어 : 컴파일 시간에 타입 체크 

 

3. 코드 유연성 

- 동적 타입 언어 : 유연하며, 같은 변수에 다양한 타입의 값을 할당할 수 있음

- 정적 타입 언어 : 타입이 고정되어 있어 타입 안정성을 보장

 

4. 개발 속도  

동적 타입 언어 : 초기 개발 속도가 빠르다

정적 타입 언어 : 상대적으로 느리지만, 안정성 덕분에 유지보수 시 이점이 있음


 

'Web' 카테고리의 다른 글

타입스크립트의 고급 타입 정리  (0) 2024.06.28
타입스크립트의 컴파일  (0) 2024.06.27
HTTP 메서드와 상태코드  (0) 2024.06.24
HTTP 메서드가 가지는 의미는 ?  (0) 2024.06.21
웹소켓이란  (0) 2024.06.21