다재다능 개발자 성장기 🚀
TypeScript - 1주차 본문
JavaScript와 Node.js의 탄생 배경
1) Javascript는 원래 웹 페이지에 동적인 효과를 주기 위해 만들어진 스크립트 언어이다.
2) 이후, 구글에서 v8엔진을 개발함에 따라 백엔드 개발을 할 수 있는 Node.js가 탄생하게 되었다.
하지만, JavaScript는 웹 페이지상에서 사용되기 위해 만들어진 동적 언어였기 때문에 약점을 가지게 되었다.
JavaScript의 약점
1) JavaScript는 개발자의 실수를 프로그램 실행시에 알려준다.
- JavaScript는 변수의 타입이 실행 시간에 결정된다.
- 이에 따라 개발자의 실수로 인한 오류가 발생활 확률이 높아지고, 찾기도 어려워진다는 문제점이 발생한다!
2) 약한 타입 체크
- Java같이 int, String등 변수생성시 바로 타입을 정해주는 것과 달리 JavaScript는 let, const와 같이 변수/상수를 구분하는 정도의 키워드만 지원된다.
- JavaScript에서는 아래와 같이 처음에 숫자형을 할당하였지만, 그 이후 동일한 변수에 문자열을 할당할 수 있다. 이로인해 개발자의 약간의 실수로 서버가 다운되는 등 예상치 못한 동작이 발생할 수 있다.
let test=1
test="문자열"
- 또한, 숫자형과 문자형이 계산되어 버린다(자동으로 형 변환이 일어나서 사칙연산의 결과가 다르게나옴;)
let num = 5;
let str = "10";
let result = num + str;
console.log(result); // "510"
3) 너무나도 물렁한 객체
- 잘못된 코드 예시
const obj = { apple: 1, banana: 2 };
const result = obj.apple * obj.banani; // 보통은 이런 실수는 컴파일러가 잡아줘야 되는데
console.log(result) // NaN이라는 엉뚱한 값 출현!
- JavaScript는 개발자가 마음만 먹으면 객체의 성질을 수시로 변화시킬 수 있다. 이는 에러의 발생 및 서버 다운될 가능성을 높이는 원인이 된다.
TypeScript 의 탄생
이렇듯, 유연하지만 동시에 불안정한 JavaScript를 보완하기 위하여 TypeScript가 탄생하게되었다 👍
TypeScript 란
TypeScript는 Microsoft에서 개발한 오픈 소스 프로그래밍 언어이다.
JavaScript를 보완하는 TypeScript의 장점
JavaScript | TypeScript |
실행 시간에 결정되는 변수 타입 (프로그램 실행 후, 예상치 못한 에러 발생 가능성을 높임) |
- 실행되기 전 컴파일 시간에 변수의 타입을 체크 - VS Code에서 코드를 입력하는 순간 에러 메세지 발생 - 정의되지 않은 프로퍼티를 연산하여 NaN이 되는 현상을 미연에 방지할 수 있음 |
'TIL ⭐' 카테고리의 다른 글
TypeScript - 3주차(변수) (0) | 2024.08.17 |
---|---|
TypeScript - 2주차 (0) | 2024.08.10 |
깃허브 최근 commit/push한 내역 취소하는 방법 ! (0) | 2023.06.04 |
깃허브 - 원격 저장소 삭제 (0) | 2023.01.08 |
로컬 스토리지 vs 세션 스토리지 vs 쿠키 (2) | 2022.12.31 |