심화된 자바스크립트는 무엇인지 궁금했다. 그런데 사실 별로 심화된 내용이 없었다. 단지 ES6 이후에 추가로 나타난 중요한 문법 위주로 배웠다.
ecma script란?
https://www.ecma-international.org/publications-and-standards/standards/ecma-262/
해당 홈페이지에 들어가서 한번 훑어보면 좋을 것 같다. 자바스크립트는 하나의 엔진이 아니다. 브라우저 회사마다 고유의 엔진을 갖고 있다. 때문에 처리하는 것도 자바스크립트의 문법을 바꾸고 싶어하는 욕망도 다 다르다. 이는 하나의 문법이나 기능이 어느 브라우저에서는 되고 어느 브라우저에서는 적용되지 않는 사태가 빈번하게 발생하게 된다. 이를 위해 ecmascript가 필요하다. 공식적으로 인정을 해주는 거다. 이번주에 배웠던 화살표 함수나 IIFE 등 비교적 최근인 2016년 이후 나온 문법 ES6+에 추가되면서 새로운 문법이 탄생한 것이다. 그중에서도 화살표 함수는 굉장히 많이 나오며 이는 콜백함수에 적용할 때도 많이 유용하기 때문에 반드시 알아야 한다.
이번주 학습 내용중에 가장 재밌었던 것을 꼽아보라고 하면 단연 Node.js다. Node.js는 크롬 기반의 v8엔진을 사용하였는데 재밌는 것은 Node.js가 나오기 이전까지는 자바스크립트는 오로지 브라우저의 것이었다. 즉, 브라우저가 아닌 다른 런타임 환경에서는 사용할 수 없었다. 때문에 대다수의 프로그래머는 자바스크립트가 프로그래밍 언어라고 말할 수 없다고까지 말했다. 지금과는 매우 사뭇 다른 평가이지 않는가.
하지만 노드가 나온 이후 모든 것이 바뀌었다. 노드의 등장 이후로 자바스크립트의 런타임 환경이 브라우저가 아닌 개인 pc에서도 가능하게 된 것이다. 웹이 고도화되고 웹이 사실상 하나의 프로그래밍처럼 작동하는 시대에 이런 언어를 가지고 실제 운영체제에 맞는 프로그램을 만들 수 있게 되었다. 그것이 electron이다. 이렇게 사용 범위가 늘어남에 따라 자바스크립트는 node라는 중요한 기술과 만나 광대한 가능성을 갖게 된 것이다.
때문에 node.js를 설치하고 직접 개인 런타임 환경에서 출력도 해보는 게 재밌었다. 또한 앞으로 노드를 활용해서 서버와 수발신할 것으로 보이는데 매우 재밌어 보인다.
이제 자바스크립트 심화와 노드를 배웠으니 react로 달려가야한다. 리액트는 컴포넌트화하고 코드를 구조화해야되기 때문에 긴장의 끈을 놓으면 안될 것 같다. 그러나! 여기 분야의 최고 권위자인 벨로퍼트님이 강의를 해주시기 때문에 가장 기대되는 것도 사실이다. 앞으로 있을 어려움도 벨로퍼트님과 함께라면 괜찮지 않을까? 매우 설렌다. 두근두근.