새소식

JavaScript/JS 문법

[JavaScript] 느슨한 타입(loosely typed)의 동적(dynamic) 언어

  • -

-> JavaScript는 느슨한 타입(loosely typed)의 동적(dynamic) 언어이다. 

 

동적 언어 (Dynamically Typed Language)

  • 런타임에 비로소 타입이 결정 되는 언어 : 소스가 컴파일, 빌드 될때 자료형을 결정하는 것이 아니라 실행할때 결정됨
  • 언어 자체에서 타입을 추론하여 형을 변환함
  • 대표적인 동적언어로는 JaveScript, Ruby, Python이 있다.
  • 변수 생성시 마다 타입을 기재할 필요없기 때문에 빠르고 편하게 코드작성 가능 그러나 실행 하는 도중 변수에 예상치 못한 타입이 들어와 Type Error발생하는 경우가 생길수 있음.
  • 정적언어와는 달리 실행되는 시점에서 오류를 출력함

정적 언어 (Statically Typed Language)

  • 컴파일 시간에 변수의 타입이 결정되는 언어 
  • 대표적인 정적언어로는 C, C++, Java가 있음
  • 변수에 들어갈 값의 형태에 따라 자료형을 지정함 
  • 컴파일시 자료형에 맞지 않는 값이 들어 있을 경우->컴파일 에러가 발생함. 만약 Type Error발생할 코드가 있다면 컴파일 하는 과정에서 오류를 출력함. 컴파일 시간에 변수의 타입을 체크하므로 사소한 버그들을 쉽게 체크. 따라서 에러로 인한 문제점을 초기에 발견할 수 있어 타입안정성이 높음

 

동적 언어의 문제점과 보완하는 방법

JavaScript는 동적인언어이기 때문에 프로젝트의 크기가 크거나, 협업하는 과정에서 변수의 타입이 일치하지 않는 경우가 생길 수 있다.

이러한 JavaScript가 가진 동적 언어의 단점을 보완하는 방법으로는 TypeScript를 사용하는 방법이 있다. 

TypeScript란 JavaScript에서 코드를 입력할 때 타입을 미리 부여하는 기능을 추가한 정적인 타입의 언어이다.

 

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.