[우타스] 타입스크립트는 좋은 선택지

함민혁·2024년 8월 7일
0

우타스

목록 보기
1/5

앞으로 우타스를 읽으면서 중요한 내용들을 내 말로 적어놓을 계획!...

타입스크립트의 등장

먼저...

웹개발 역사를 간략히 알아보자!

JS가 어떻게 브라우저에서 널리 사용되기 시작했을까?

두 경쟁 업체에서 각자의 브라우저에 새로운 기능을 빠르게 늘리기 시작.
추가된 기능은 각자의 브라우저에서만 동작(다르게 동작 or 크로스 브라우징 이슈).
따라서 개발자는 따로 개발해야하는 어려움이 있었고, 따라서 JQuery와 같이 호환성 고민필요없는 라이브러리가 유행하게됨

하지만 이런 라이브러리에 기댈 수는 없었고 표준화된 JS의 필요성이 제기됨
ECScript라는 이름으로 자바스크립트 표준화를 공식화

웹사이트에서 웹 애플리케이션으로의 전환

웹사이트

수집된 데이터 및 정보를 특정 페이지에 표시하기 위한 정적인 웹
단뱡향으로 정보 제공, 상호작용X, 콘텐츠가 동적으로 업데이트X

웹 애플리케이션

쌍방향 소통의 웹

웹 서비스는 점차 페이지에서 애플리케이션의 특성을 가지게됨
이유 : 디바이스 댜양성 증가. 데이터 폭발적 증가. UI/UX 다양 및 복잡

그리하여 CBD방법론이 등장

컴포넌트 베이스 개발 : 재사용할 수 잇는 컴포넌트를 개발 또는 조합해서 개발

여튼 이런 개발 생태계 발전과 동적 웹서비스의 수요 증가로 인해 JS개발자가 증가하게 됐다~

JS의 한계

동적 타입 언어
변수에 타입을 명시적으로 지정하지 않고 코드가 실행되는 런타임에 변숫값이 할당될 때 해당 값의 타입에 따라 변수 타입이 결정됨

뭔말이냐하면
변수 a의 타입이 number인지 string인지는 실제 코드가 동작할 때 a에 값이 할당되는 그 순간에 그 값이 1인지 '1'인지에 따라 결정된다는 거임

const sumNumber = (a,b) =>{
	return a + b;
}

sumNumber(100) // NaN
sumNumber('a','b') // ab

JS에서는 해당 코드가 오류가 안난다. 왜? 동적 타입 언어니까.
subNumber함수를 호출할 때 사용되는 인수 값에 따라 ab의 타입이 결정됨.
심지어 하나만 전달했을때는 나머지 하나를 적절한 타입인 NaN으로 형변환한 후에 실행해버림

해당 함수를 짠 개발자의 의도는 두 숫자의 합을 구하는 함수이다.
그러나 하나의 숫자만 전달해도 오류없이 NaN값을 뱉고, 문자열의 합을 구하는데에도 쓰임 -> 개발자의 의도와 다르게 동작할 수 있음

이러한 문제들을 다양한 방법으로 해결하려고 했고 여러 해결방안 뒤에
.
.
.
JS의 슈퍼셋 언어인 타입스크립트가 등장함

책에서 말하기를 '자바스크립트는 사용하면 안 된다. 무조건 타입스크립트를 사용해야 한다'라는 의미로 받아들이지 말라고 한다.

단지 좋은 선택지가 될 수 있다는 것을 의미

.
.
.

출처: 우아한 타입스크립트 with 리엑트

profile
Born to be FE developer 🧑🏻‍💻

0개의 댓글