자바스크립트는 1995년생이다. 넷스케이프에서 웹 브라우저에 동적인 요소를 추가하고자 발명하게 되었다. 수요가 증가하면서 여러 브라우저에도 자바스크립트를 사용하게 되었다. 이 과정에서 자바스크립트의 파편화(fragmentation)를 방지하기 위해 ECMA라는 비영리 표준기구에서 표준화를 시켰다. 당시 이름을 ECMAScript로 변경하였다.
JavaScript와 ECMAScript는 다르다
JavaScript는 ECMAScript 와 client side web API(HostAPI: DOM, BOM등 여러가지 컴포넌트들)로 합쳐져 있다.
JavaScript = ECMAScript + client side web API
자바스크립트를 공부한다면 ES6라는 말을 많이 들어봤을 것이다. 정식명칭은 ECMAScript 2015 버전이 배포판으로는 이름을 축약시켜 ES로 배포를 하였다. 2015버전이라면 배포판은 ES6이다. 2016년 버전이 업데이트 되었다면 ES7으로 업데이트된다.
ES5가 ES6로 넘어오면서 문법이 대격변 하였다. ES6이후 버전은 약간의 확장성 추가이지 근본적인 문법을 건들이지 않음으로 시중의 책들은 ES6에 맞춰져 있다. 또한 파편화 (fragmentation) 방지를 위해 대다수의 기업들이 ES6에 맞춰 사용하고 있다.
어플이나 웹을 이용해보면 화면이 잘려서 안보이는 이슈가 발생할 때가 있다. 브라우저 별로 버전이 각기 다르기 때문에 프론트 개발자는 소비자의 버전과 종류에 맞춰 정상적으로 동작할 수 있도록 코드를 추가해야한다.
HTML과 CSS의 표준을 관장하는 곳은 W3C이다.
1999년 이 당시 HTML4.0버전을 마지막으로 업데이트하지 않는다고 발표를 하였다.
이러한 단점을 직면하고 HTML은 새로운 해결방향을 찾게된다
HTML을 독자적으로 발전시킨게 HTML5이다. 웹 어플리케이션을 실행하지 못했던 이전과 달리 브라우저에서 실행할 수 있도록 만들었다.
HTML, CSS, JavaScript web API 3가지로 구성된 형태이다.
고로 HTML5 = HTML(25%) + CSS3(5%) + JavaScript web API(70%) 비중으로 구성되어있으며 이로인해 JS의 위상이 올라갔다.
그럼 TS는 또 뭐인가
MicroSoft가 2012년에 만들었다. 메타프로그래밍을 할 수 있는 메타언어이다. 메타프로그래밍은 JS에서 없는 기능을 TS로 구현하여 JS에 적용시켜 기능을 추가할 수 있다. TypeScript는 클래스 타입의 객체지향 언어이며 JavaScript는 프로토타입의 함수형 언어이다.
TypeScript는 ECMAScript의 Superset이다. 고로 ES6를 잘 다루면 TypeScript를 쉽게 배울수 있게된다.
프로그래밍을 처음 배울 때 Java와 JavaScript가 같은 것인 줄 알고 착각하는 경우가 많다. (정말 비슷한 애들인줄 알았음) 수업에서 자바스크립트가 마케팅적으로 잘 알려지기 위해 LiveScript를 JavaScript로 발표했다는 부분이 웃음벨이었다
참고자료
https://takeuu.tistory.com/93
https://velog.io/@dlskaghd234/DOM-BOM이란