반응형
타입스크립트 강의 1주차
JavaScript가 나온 이유
- - JavaScript는 원래 웹 페이지에 동적인 효과를 주기 위해 만들어진 스크립트 언어다.
- 웹 페이지의 부드러운 상호작용을 위해 HTML과 CSS와 함께 사용되었음
JavaScript의 발전
- 시간이 지나면서 웹 브라우저 내에서 실행되는 JavaScript의 성능을 높이고자 하는 니즈가 생김
- 구글에서 V8 엔진을 공개
- C++로 작성된 Google의 오픈소스 고성능 JavaScript 및 WebAssembly 엔진
- Google Chrome 웹 브라우저에 처음 사용되었으며, 현재는 Node.js, Deno 및 다양한 다른 소프트웨어 프로젝트에서도 널리 사용됨
- 자바스크립트 코드를 실행하기 위해 고성능을 제공하며, 자바스크립트를 직접 기계어로 컴파일하는 Just-In-Time (JIT) 컴파일 방식을 사용한다.
V8의 주요 특징
- 빠른 실행 속도: JIT 컴파일을 통해 자바스크립트 코드를 빠르게 기계어로 변환하고 실행
- 효율적인 메모리 관리: 자동 가비지 컬렉션을 통해 더 이상 사용되지 않는 메모리를 효과적으로 회수
- ECMAScript 표준 지원: 최신 ECMAScript (자바스크립트의 표준화된 버전) 사양을 지원하여 최신 자바스크립트 기능을 사용할 수 있게 함
- 확장성: V8은 다양한 플랫폼과 환경에서 확장 가능하도록 설계됨
Node.js의 등장
V8 엔진을 기반으로 Node.js라는 플랫폼 출시
- JavaScript로도 백엔드를 작성할 수 있게 됨
자바스크립트의 약점
1. 실행 시간에 결정되는 변수 타입
- JavaScript는 변수의 타입이 실행 시간에 결정됨
- 이에 따라 개발자의 실수로 인한 오류가 발생하기 쉽고 찾기도 까다롭다.
- ex) 변수에 잘못된 타입의 값이 할당되어 발생한 오류를 찾기 위해서는 실행 시간에 변수의 값과 타입을 모두 확인해야 하는 번거로움이 존재
2. 타입 체크가 까다롭지 않다(약함)
- let, const와 같이 변수/상수를 구분하는 정도의 키워드만 지원됨
- 예를 들면, let a = 1; a = “Hello”;가 얼마든지 가능한 것이고 이렇게 되면 약간의 실수로 예상하지 않은 동작이 발생할 수 있음
- 숫자였던 a가 갑자기 문자열이 됨
3. 객체가 말랑말랑...
const obj = { latitude: 11.5, longitude: 47.1 };
const result = obj.latitude * obj.longitute; // 보통은 이런 실수는 컴파일러가 잡아줘야 되는데
console.log(result) // NaN이라는 엉뚱한 값 출현!
객체의 성질이 수시로 변화될 수 있기 때문에... 조심해야 함
이런 Javascript의 단점을 보완하며, 모든 기능을 포함해 나온 게...
TypeScript의 등장
TypeScript?
Microsoft에서 개발한 오픈 소스 프로그래밍 언어
JavaScript의 단점을 상쇄하기 위해 등장
반응형
'TIL' 카테고리의 다른 글
JavaScript 기본 문법 : find() (0) | 2024.03.08 |
---|---|
캐시에 대해서 (0) | 2024.03.06 |
Redis에 대해서 (1) | 2024.02.29 |
의존성 주입에 대하여 (0) | 2024.02.27 |
JavaScript의 변수 선언과 구조 분해 할당(destructuring assignment) (0) | 2024.02.21 |