SOCO
자바스크립트 기본 _드림코딩 앨리 본문
html, css, js를 인터넷 강의로 공부하면
바로바로 적용할 수 있어서 흥미를 잃지않는다는 장점이 있다.
하지만 개념을 제대로 익히고 적용을 하는 것이 아니다보디 그냥 넘어가게 되는 부분들이 있었다.
특히 제로초님 강의에서 스코프와 클로저 문제를 배우면서 스스로의 부족한 점을 많이 느꼈다.
찾아보니 드림코딩 엘리님께서 자바스크립트 기초강의를 올려주신 게 있어서
해당 강의 내용을 정리해보고자 한다.
1. 라이브러리의 등장
자바스크립트 사용에 관한 표준사항이 통일되지 않았던 과거에는,
개발자들이 다양한 브라우저에서 동작하는 웹페이지를 만드느라 고생하고 있었다.
웹시장이 증가하고 수요가 많아짐에 따라
많은 개발자들이 웹시장으로 들어왔고, 개발자들 사이에서 강력한 커뮤니티가 형성되었다.
이러한 커뮤니티 사이에서 jQuery, dojo, mootoors와 같은 라이브러리들이 많이 나오게 되었다.
이런 라이브러리들이 공통적으로 목표한 것은
"개발자들이 더이상 다른 브라우저의 구현사항을 신경쓰지 않아도 되게 만드는 것"이었다.
라이브러리가 제공하는 APIs를 사용함으로써
개발자들은 다른 브라우저의 구현사항을 신경쓰지 않을 수 있게 되었다.
그 중에서도 "wirte less, do more"을 강조하는 jQuery가 많은 사랑을 받았다.
Service Layer, Presentation Layer, Business Layer을 만들 때 AIPs를 잘 작성해서
나중에 구현사항이 변경되더라도 이 interface를 사용하고 있는 사용자의 코드는 수정하지 않아도 되도록 해야한다!
2. 표준사항 통일
구글에서 크롬이라는 브라우저를 발표함에 따라
여러 브라우저들 간에 표준사항을 통일해야할 필요성이 커졌다.
결국 구글, 익스플로어, 파이어폭스등 다양한 브라우저들이 모여 ECMAScript5(2009)을 만들었다.
이후 2015년 ECMAScript6가 나오게 되었다
ECMAScript6에서 현재 많이 사용되는 class, arrow function, const, let, default parameter이 정의됨
이제 다양한 브라우저들이 ECMAScript의 표준사항을 잘 따라가고 있으므로,
라이브러리의 도움없이도 모든 브라우저에서 작동하는 웹사이트, 웹 어플리케이션을 만들 수 있게 되었다.
즉, 자바스크립트와 웹 APIs에서 제공하는 APIs만으로도 웹사이트를 만들 수 있게 된 것이다.
(라이브러리에서 제공하는 APIs의 필요성이 줄어듦)
3. 엔진
각각의 브라우저들마다 ECMAScript의 표준안을 따라가는 다양한 엔진들이 존재한다.
크롬은 v8, 파이어폭스는 spiderMonkey, 사파리는 JSCore, 마이크로소프트 엣지에는 Chakra라는
엔진들이 존재했다.
2020년 2월에는 마이크로소프트 엣지도 v8엔진으로 대체하여
v8엔진이 널리 사용되게 되었다.
v8라는 자바스크립트엔진은 nod.js와 electron에서도 이용되어진다.
4. transcompiler
시장에서 사용자들은 다양한 브라우저들을 쓰고 있고,
모든 사용자들이 최신브라우저들을 쓰고있는 것은 아니다.
따라서 개발자들이 개발을 할 때는 최신버전의 ECMAScript를 쓰고
사용자에게 배포할 땐 JavaScripTtransCompiler을 이용한다.
transcompiler의 기능은 ECMAScript의 최신버전을 5,6 버전으로 변환하는 것이다.
이러한 기능이 가능한 것이 바로 babel이다.
5. 현재 동향
최근에는 하나의 페이지 안에서 데이터를 받아와서
"필요한 부분만 부분적으로" 업데이트하는 것이 유행하고 있다.
이를 single page application, SPA라고 한다.
이러한 기능은 js만으로도 구현이 가능하지만
SPA를 쉽게 만들기 위해 react, angular, vue같은 프래임워크가 나오게 되었다.
6. js의 확장
js는 브라우저를 위한 언어이며, 브라우저에서 동적인 요소를 추가하기 위해서 만들어진 언어이다.
최근 js는 기능이 확장되고 있다.
(1)node.js
ECMAScript의 활발한 표준화를 통해서, 강력한 v8 자바스크립트 엔진을 통해서
node.js가 등장했다 .
node.js는 v8 자바스크립트 엔진을 이용하여 백엔드에서 서비스를 구현할 수 있도록 만들어진 프레임워크이다.
(node.js에는 javascript엔진이 있어서 브라우저 없이도 자바스크립트를 실행할 수 있음)
(2)react native
react native를 이용하여 모바일어플리케이션을 만들 수 있다.
(3)electron
electron을 이용하여 데스크탑어플리케이션도 만들 수 있다.
7. 요즘 뜨고 있는 기술
과거에는 브라우저에서 동작할 수 있는 유일한 프로그래밍 언어가 자바스크립트였다.
최근에는 web assembly가 등장함에 따라
C, C++, C#, JAVA, Python등 다양한 언어들을 이용해서 웹 어플리케이션을 만드는 것이 가능해졌다.
8. 타임스크립트?
9. 오해와 학습방향
많은 사람들이 querySelector나 console.log 같은 웹APIs를 js언어로 오해한다.
아무튼 엘리의 js기초 강의에서는
js언어 자체를 먼저 배우고,
그 뒤에 웹 APIs를 배워서 브라우저랑 프론트엔드 상에서 어떻게 더 활용할 수 있는지 공부해본다!
'프론트 > java script 기초지식' 카테고리의 다른 글
변수, 상수, scope, 데이터타입 등 (0) | 2021.06.11 |
---|---|
콘솔에 출력, script async와 defer의 차이점 (0) | 2021.06.10 |
==와 != vs ===와 !== (0) | 2021.06.10 |
자바스크립트로 html에 글쓰기 (0) | 2021.06.06 |
if문 중복 없애기 _if문에 return, break 사용 (0) | 2021.06.05 |