본문 바로가기
프로그래밍/javascript

[웹 프로그래밍] Javascript란?

by 개발 까마귀 2021. 1. 10.
반응형

Javascript란?

안녕하세요. 개발자 개발 까마귀입니다. 오늘은 javascript가 먼지에 대해 알려드리겠습니다.

여러분은 개발할때 무슨 언어를 쓰시나요? java? python? php? 이렇게 쟁쟁한 언어들을 제치고 1위까지한 javascript 무슨 프로그래밍 언어인지에 대해 알려드리겠습니다. 

 

1. javascript의 역사

 

Javascript의 인기

 

보시는거와 같이 Javascript는 인기가 많습니다. 앞으로도 더욱 인기는 많아질거고요.

일단 왜 이렇게 Javascript가 인기가 많은지 알기전부터 저희는 Javascript가 뭔지 알아야합니다.

 

일단 Javascript의 기본적인 역사를 알아봐야 합니다.

1994년 Netscape navigator라는 Html, Css만으로 만들어진 정적인 웹사이트가 출시가 됩니다.

하지만 동적인 웹 사이트를 만들기위해 scripting 언어를 추가를 하려고합니다.

기존에 있던 scheme언어를 이용해 prototype기반으로 유연한 언어인 mocha라는 언어를 만들었고 추후에 live script로 이름을 지었습니다. 그리고 live script를이해하기위해 Netscape navigator 웹사이트에 interpreter 브라우저 엔진을 담아서 출시를 합니다. 그당시 java가 유행이여서 live script는 java의 인기를 같이 얻기위해 이름을 Live script에서 Javascript로 바꿨습니다.

하지만 이때 마이크로소프트는  Netscape에서 만들은 브라우저와 Javascript를 리버스 엔지니어링(소스 복원 작업)을 하여 그대로 가져와서 이름만 JScript로 바꾼후 인터넷 익스플로러를 출시를 합니다. (여기서가 프론트 엔드 개발자의 시발점이었던거 같네요.)

결국 Netscape에서 만들은 브라우저와 마이크로소프트에서 만들은 브라우저가 서로 너무나 달라서 개발자들이 계속 고생을 하는데 Netscape에서는 이걸 바로잡기 위해 ECMA 단체에 찾아가서 Javascript 표준화를 만듭니다.

그리고 나중에 저희가 흔히 아는 2004년도에 파이어폭스가 출시가 되고, 지금까지도 많이 쓰이는 Ajax 비동기 통신이 도입이 됐습니다. 그 후로 Opera등 많은 브라우저가 나왔지만 계속해서 나오는 브라우저에 맞게 개발을 해야하는 개발자들은 강력한 커뮤니티가 만들어지고 브라우저 API가 필요없이 모든 브라우저에서 적용이되는 라이브러리가 출시가됩니다. 그 라이브러리는 Jquery 입니다. 다른 라이브러리도 나왔지만 Jquery가 제일 인기가 많았고 강력했습니다. 당연히 지금도요. 2008년도 저희 개발자들한테 하나의 빛이죠 또 혁신이기도합니다. Google에서 Chrome 브라우저에 JIT 엔진을 담아 출신을 했습니다. 그 당시 JIT엔진은 다른 브라우저의 엔진과 비교했을때 너무나도 성능이 뛰어났습니다. 그걸 계기로 브라우저는 브라우저끼리 Javascript 표준화를 만듭니다. 그 후로 2015년도에 나온게 ES6인겁니다. 

Javascript Google Chrome 때문에 인기가 많아진 언어이기도 합니다. 그래서 Javascript는 운이 좋은 언어라고도 불리죠

 

2. 웹 브라우저들의 엔진

웹 브라우저는 각각의 엔진들이 있습니다. 이 엔진들이 저희의 Javascript 코드를 읽어서 브라우저의 반영을 하는겁니다. 그래서 Chrome에서는 잘되는 기능들이 인터넷 익스플로러 가면 안되는게 엔진이 달라서입니다. Javascript에서 쓰는 SetTimeout, SetInterval 등 Javascript언어에서 제공하는게 아닌 브라우저가 제공하는 겁니다. 그래서 브라우저 API라고 부릅니다.

 

Chrome - V8

FireFox - SpiderMonkey

Safari - JScore

Ms Edge - Chakra

Opera - carakan

Adobe Flash - Tamarin

 

3. Javascript가 인기가 많은 이유

1. 많은 라이브러리와 프레임워크

 

React

 

Javascript 라이브러리입니다. 프레임워크의 역할을 하지만 라이브러리입니다.

공식 홈페이지에서도 라이브러리라고 소개합니다.

그래서 React에서 Jquery는 정말 마지막 수단으로 사용하는게 좋습니다.

React Jquery를 쓰는거는 가독성도 떨어지고 많이 무거워집니다.

React, Vue 등 SPA를 만들기 쉬워서 사람들이 많이 사용합니다.

그리고 NPM도요 또는 서버사이드렌더링 때문에 Next.js를 쓰기도합니다.

일반적으로 그냥 JS만으로도 SPA는 가능하지만 귀찮고 힘듭니다.

또 React Native로 앱도 만들수있습니다.

 

Nodejs

 

저는 React, Vue 보다 Nodejs 정말 대단한 런타임 언어라고 생각을 합니다.

많은 분들이 Nodejs가 백엔드 언어라고 생각하지만 Nodejs는 javascript 실행기입니다.

그리고 Javascript 실행되는게 V8엔진에서 작동이 되는거고요. Nodejs가 나오기 전 여러분은 Javascript를 실행하려면 

HTML에 인라인 스크립트 코딩을하거나 .js 파일 만들어서 Html에 연결할겁니다.

그 다음 브라우저를 실행 시킨후 결과를 보겠죠 하지만 Nodejs가 출시후 다른 언어들처럼 Javascript 코드를 터미널에서 결과를 바로 볼수있게됐습니다. 한마디로 Node는 어느 브라우저서의 엔진이든 방해를 받지않고 코드를 작성할수있는거죠 그래서 백엔드에서 많이 쓰이는거고요. 엔진의 원리를 이해가 좀 있다면 Node의 강력함을 알겁니다. Node의 라이벌인 Deno도 있는데 저는 애 잘 모릅니다.

 

Electron

 

데스크탑을 프로그램을 만들기위해 출시한 프레임워크입니다.

디스코드도 Electron으로 만들어졌습니다.

 

이 밖에도 Javascript로 딥러닝, 머신러닝도 가능합니다.

또 D3.js로 시각 데이터도 구현할 수 있습니다.

한마디로 Javascript를 배우면 앱, 웹, 백엔드, 데스크탑, 머신러닝&딥러닝, 시각 데이터 등 다 가능하다는겁니다.

 

2. First Class Language

Javascript는 매우 강력한 언어입니다. 함수를 인자로 값으로 넘기고 함수를 변수에 담고하는게 다른 언어에서는 안된다고 알고있습니다. Javascript는 다른 언어에 비해서 매우 자유로운 언어입니다. 그만큼 강력하기도하면서 규칙이 있어야죠 그래서 그 자유로움을 좀 억누르기 위해서 TypeScript가 나온거일수도있습니다. 

 

오늘 Javascript에 강력함과 역사와 인기가 많은 이유에 대해서 조금이라도 도움이됐으면 좋겠네요. 마지막 First Class Language에서는 Javascript 기초에서 다뤄보면서 더욱 깊숙이 들어갈겁니다. 

 

다음에는 Javascript 변수에 대해 알아보겠습니다. 

 

감사합니다.

 

참고

www.youtube.com/watch?v=wcsVjmHrUQg

반응형

댓글