![](https://grm-project-template-bucket.s3.ap-northeast-2.amazonaws.com/lesson/les_fbBvc_1487900201062/e95bebd1ac2bb7681f0d3d8c256abe295a73b535bd7013266ca107ea3cf41973.jpeg)
자바스크립트(Javascript)는 아주 강력한 프로그래밍 언어입니다. 웹 프로그래밍에 대해 조금이라도 들어보신 분들은 프론트엔드를 얘기할 때 HTML, CSS, JavaScript를 떠올릴 것입니다. HTML은 웹페이지의 큰 뼈대를 제공하고, CSS는 색깔이나 글씨체, 모양과 같은 디자인적인 요소를 관리하며, 자바스크립트는 웹 페이지의 동작을 담당합니다. 즉, 자바스크립트는 동적으로 콘텐츠를 바꾸고, 멀티미디어나 움직이는 이미지 등 웹페이지를 꾸며주도록 도와줍니다.
자바스크립트는 객체 기반의 스크립트 프로그래밍 언어로서 주로 웹 개발에 많이 사용되는 것으로 알려져 있지만, 다른 응용프로그램의 내장 객체에도 접근할 수 있는 기능도 가지고 있기 때문에 응용 범위가 무궁무진합니다. 이 강좌에서 주로 다루게 될 Node.js 또한 자바스크립트를 품고 있는 개발 플랫폼입니다.
자바스크립트는 많은 오해를 받는 언어이기도 합니다. 자바라는 프로그래밍 언어와 이름이 유사하다는 점으로 인해 자바의 웹 버전 정도로 인식되던 때도 있었고, 주로 홈페이지 개발에 많이 쓰였던 역사가 있다 보니 웹 개발자들이나 웹 디자이너들이 다루는 아마추어 개발자들을 위한 언어로 인식되어 무시당하기도 했습니다. 하지만 자바스크립트는 오늘날 가장 강력한 프로그래밍 언어 중 하나로 평가받고 있습니다. 불과 20여 년 정도의 짧은 시간 동안임에도 자바스크립트를 기반으로 하는 훌륭한 기술이 많이 등장했고, 2018년 시행된 스택오버플로우의 설문조사에서 개발자들에게 가장 인기 있는 언어로 뽑힐 정도로 성장했습니다. 물론 18년뿐만이 아니라 최근 몇 년간 계속 1위를 차지해 왔지요. 지금은 각종 분야에서 그 능력과 가치를 인정받고 있습니다.
![](https://grm-project-template-bucket.s3.ap-northeast-2.amazonaws.com/lesson/les_fbBvc_1487900201062/d809a5c2d97efa716dbe4afc38dc7cde2779647efd9eb0a3bbefa56cf01c56b5.png)
![](https://grm-project-template-bucket.s3.ap-northeast-2.amazonaws.com/lesson/les_fbBvc_1487900201062/ad75f6ee2f3297a5ce261901a54ec8af5cfc44182aa8cacf0134c4197437ed03.png)
오늘날 우리가 자주 사용하고 있는 해외의 구글의 각종 서비스, 페이스북, 트위터, 국내의 네이버, 다음 등에서 개발한 각종 웹 애플리케이션 등은 모두 AJAX를 적극적으로 활용한 동적인 웹을 표방하는 훌륭한 서비스들입니다. 초기의 자바스크립트는 브라우저에 내장되어 웹 페이지의 입력 값을 체크하는 정도로만 사용했었으나, 몇 년 전 AJAX라는 테크닉이 소개되면서부터 자바스크립트의 영향력은 눈부시게 증가하기 시작했습니다.
AJAX에 대해서는 뒤에서 또 다루겠지만, Asynchronous JavaScript and XML의 약어로서 그 이름에서 알 수 있듯이 자바스크립트가 중심 역할을 담당하고 있는 기술입니다. 이처럼 자바스크립트는 웹 서비스 또는 웹 애플리케이션 개발에 있어 큰 변혁을 가져다준 프로그래밍 언어입니다.
자바스크립트와 웹 애플리케이션
React Native, PhoneGap, Ionic 등과 같은 하이브리드 모바일 애플리케이션 개발 프레임워크들은 자바스크립트로 작성한 모바일 애플리케이션을 iOS와 Android를 대상으로 동시 동작할 수 있도록 지원해줍니다. 게다가 Unity 3D라고 하는 게임 엔진을 활용하면 자바스크립트를 통해 플랫폼을 가리지 않는 게임 개발이 가능합니다.
자바스크립트의 활용은 여기가 끝이 아닙니다. 마이크로소프트의 경우 안드로이드 장치를 조작할 수 있는 자바 스크립트 기반의 API를 제공하여 사용자의 상태나 취향에 맞춰 안드로이드 장치가 상황에 맞게 자동으로 동작할 수 있도록 하는 플랫폼을 발표하기도 하였습니다. 그 밖에도 React와 Angular JS와 같은 자바스크립트 기반 웹 개발 프레임워크와 라이브러리가 발표되면서 더욱 인기를 끌고 있습니다. 이처럼 자바스크립트는 그 영향력이 다양한 분야에서 강화되고 있고, 어느 분야에 있는 개발자든 누구나 알아야 할 주요한 언어가 되고 있습니다.
![](https://grm-project-template-bucket.s3.ap-northeast-2.amazonaws.com/lesson/les_fbBvc_1487900201062/e7b49eb81faa7b082aa17002ab58f0c3f501d024168d4412b85dd5e6fea179f9.png)