Notice
Recent Posts
Recent Comments
Link
«   2025/07   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

다재다능 개발자 성장기 🚀

TypeScript - 1주차 본문

TIL ⭐

TypeScript - 1주차

merrytang 2024. 8. 2. 14:02

JavaScriptNode.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이 되는 현상을 미연에 방지할 수 있음