[javascript] javascript 정적분석?
JavaScript 정적타입 분석!
JavaScript는 동적타입 언어이다. 즉 프로그램이 실행될 때 타입 분석을 진행하게 되는데 이떄 오류를 발견하기도 하고 예기치 못한 값이 나올 수도 있다. 이를 방지하고자 나온것이 TypeScript이다! ( 실제로 프로젝트를 진행하며 TypeError가 많이 발생했었고 규모자 커지며 더욱 자주 일어났었다. 이때 타입스크립트를 사용해봐야 겠다고 생각했다! )
TypeScript
- 타입을 명시하지 않는 자바스크립트와 달리, 타입스크립트를 통해 정적 타입을 명시할 수 있게 된다.
- 정적 타입 언어는 타입을 명시적으로 선언하며, 타입이 결정된 후에는 타입을 변경할 수 없다.
- 잘못된 타입의 값이 할당 또는 반환되면 컴파일러는 이를 감지해 에러를 발생시키기 때문에 프로젝트가 커질수록 강점이 커지게 된다. (공감)
- 타입스크립트는 컴파일 이후 동적 자바스크립트로 변경된다.
- 타입스크립트 컴파일러는 타입스크립트 코드를 분석하여 타입 정의 파일 또는 소스 맵과 함께 자바스크립트로 컴파일하는 도구
- tsconfig.json 에서 컴파일러 옵션과 파일을 결정
$ tsc 파일명.ts으로 컴파일을 진행할 수 있다 → 타입이 제거됨
정적타입 언어 VS 동적타입 언어
- 프로그램이 실제로 실행 될 때에 타입 분석을 진행하는 동적 타입 언어(dynamically typed language)
- 프로그램을 실행해보지 않고도 런타임 이전에 진행하는 정적 타입 언어(statically typed language)
- 정적타입은 프로그램 실행 이전에 상당수의 오류를 잡아낼 수 있다.
- 코드 에디터가 코드를 실행하지 않고도 훨씬 많은 정보를 얻을 수 있다.