[JavaScript] 1. History

Nam_JU·2022년 7월 5일
0

KaKao Cloud School

목록 보기
1/19
post-thumbnail



1. JavaScript의 역사

자바스크립트는 1995년생이다. 넷스케이프에서 웹 브라우저에 동적인 요소를 추가하고자 발명하게 되었다. 수요가 증가하면서 여러 브라우저에도 자바스크립트를 사용하게 되었다. 이 과정에서 자바스크립트의 파편화(fragmentation)를 방지하기 위해 ECMA라는 비영리 표준기구에서 표준화를 시켰다. 당시 이름을 ECMAScript로 변경하였다.

JavaScript ? ECMAScript?

JavaScript와 ECMAScript는 다르다
JavaScript는 ECMAScript 와 client side web API(HostAPI: DOM, BOM등 여러가지 컴포넌트들)로 합쳐져 있다.

  • DOM Document Object Model(문서 객체 구조) :
    html과 js를 연결해주는 통역사 같은 역할
  • BOM Browser object Model (브라우저 객체 모델):
    웹페이지의 내용을 제외한 브라우저 창에 포함된 모든 객체 요소들을 의미한다

JavaScript = ECMAScript + client side web API

ECMAScript

자바스크립트를 공부한다면 ES6라는 말을 많이 들어봤을 것이다. 정식명칭은 ECMAScript 2015 버전이 배포판으로는 이름을 축약시켜 ES로 배포를 하였다. 2015버전이라면 배포판은 ES6이다. 2016년 버전이 업데이트 되었다면 ES7으로 업데이트된다.

왜 하필 ES6가 유명한가요?

ES5가 ES6로 넘어오면서 문법이 대격변 하였다. ES6이후 버전은 약간의 확장성 추가이지 근본적인 문법을 건들이지 않음으로 시중의 책들은 ES6에 맞춰져 있다. 또한 파편화 (fragmentation) 방지를 위해 대다수의 기업들이 ES6에 맞춰 사용하고 있다.

파편화 Fragmentation

어플이나 웹을 이용해보면 화면이 잘려서 안보이는 이슈가 발생할 때가 있다. 브라우저 별로 버전이 각기 다르기 때문에 프론트 개발자는 소비자의 버전과 종류에 맞춰 정상적으로 동작할 수 있도록 코드를 추가해야한다.


난항을 겪게된 HTML

HTML과 CSS의 표준을 관장하는 곳은 W3C이다.
1999년 이 당시 HTML4.0버전을 마지막으로 업데이트하지 않는다고 발표를 하였다.

  • HTML은 정형성이 없다 (문법이 틀려도 큰 문제가 없다)
  • 이는 유지보수가 어렵다는 소리
  • 언어의 확장성이 없다 (새로운 태그를 만드는등 할 수 없으니 제약적)

이러한 단점을 직면하고 HTML은 새로운 해결방향을 찾게된다


HTML5

HTML을 독자적으로 발전시킨게 HTML5이다. 웹 어플리케이션을 실행하지 못했던 이전과 달리 브라우저에서 실행할 수 있도록 만들었다.
HTML, CSS, JavaScript web API 3가지로 구성된 형태이다.
고로 HTML5 = HTML(25%) + CSS3(5%) + JavaScript web API(70%) 비중으로 구성되어있으며 이로인해 JS의 위상이 올라갔다.

TypeScript

그럼 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이란

profile
개발기록

0개의 댓글