개발의변화
타입스크립트 정리 1. 자바스크립트의 역사와 한계 본문
자바스크립트 역사
자바스크립트는 빠르게 시장 반응을 확인할 수 있는 프로토타입 언어로 출시되어 10일 만에 개발되었다. ->넷스케이프
브라우저에 새로운 기능을 빠르게 늘리면서 추가된 기능은 각자의 브라우저에만 동작했고
특히 각기 다른 브라우저에서 동작하지 않는 크로스 브라우징 이슈가 발생함
결국, 자바스크립트의 변화를 브라우저가 버티지 못했고 이에 따라 폴리필과 트랜스파일 같은 개념이 등장했다.
- polyfill: 브라우저가 지원하지 않는 코드를 브라우저에서 사용할 수 있도록 변환한 코드조각이나 플러그인을 말한다. -> cores.js, polyfill.io
- transfile: 최신 버전의 코드를 예전 버전의 코드로 변환하는 과정 -> 바벨
크로스 브라우징을 해결하기 위해 Ecma 인터네셔널에 자바스크립트 표준화를 위한 기술 규격이 지정되었고
자바스크립트가 표준화되자 정적이던 웹 사이트에서 동적인 웹 애플리케이션으로의 전환이 가속
웹사이트와 웹 애플리케이션의 차이
웹 사이트: 수집된 데이터 및 정보를 특정 페이지에 표시하기 위한 정적인 웹
웹 애플리케이션: 사용자와 상호작용하는 쌍방향 소통의 웹
개발 생태계의 발전
Ajax의 등장 -> 페이지 전체를 새로고침하지 않아도 자바스크립트의 비동기 요청을 사용해서 페이지의 일부 데이터를 로드할 수 있게되어 -> 사용자마다 다른 화면을 렌더링 할 수 있게 되었고
다양한 전자매체의 등장: PC,모바일,노트북,패드 등 최적화된 UX/UI를 기대하게 됨
CBD컴포넌트 방법론 등장: 서비스에서 다루는 데이터를 구분하고 그에 맞는 UI를 표현할 수 있게 컴포넌트 단위로 개발하는 접근 방식
자바스크립트의 한계
동적타입언어
변수에 타입을 명시적으로 지정하지 않고 코드가 실행되는 런타임에 변숫값이 할당될 때 해당 값의 타입에 따라 변수 타입이 결정된다는 것을 의미한다.
동적 타이핑 시스템의 한계
개발자의 의도와 다르게 코드가 작성되어도 문제 없이 실행된다 -> 동적 타입 언어라는 특성 떄문에 사용되는 인수 값에 따라 타입이 결정되기 때문이다.
또한 undefinde와 같은 값에 피연산자가 들어와도 NaN으로 형변환을 이어가는 등 타입에 대한 관대함이 엄청나다.
이에 따라 타입스크립트가 등장하기 시작했다.