스노우보드 참 좋아하는데 맨날 키보드 앞에만 있네

[JavaScript] JavaScript 개요 본문

개발/Javascript

[JavaScript] JavaScript 개요

워너-비 2017. 10. 30. 12:52

<!-- 본 포스팅은 개인공부를 위한 용도로 잘못된 정보가 있을 수 있습니다. 오류 발견시 댓글 환영합니다. -->

JavaScript




오늘부터 자바스크립트 공부를 시작했다.

한국은 자바스크립트에 대한 관심이 외국에 비해 적은 편인데다가 IE 웹부라우저를 고집하는 국가이므로.. 웹 분야에 뒤처져 있었지만,

최근 동향을 봤을때 발전하고 있으니 제대로 학습해 보려한다. 시간이 많기도 하고 ...

일주일에 최소 3회는 포스팅을 하길바라며, 시작 !



자바스크립트란?


자바스크립트는 웹 브라우저에서 많이 사용하는 프로그래밍 언어다.

2010년 이전까지만 해도 자바스크립트는 웹 클라이언트 개발에 보조적인 기능을 위해 쓰였고, 이 시절 자바스크립트는 중요한 역할을 담당하지 못했었다.

그러다 웹이 점차적으로 발전하여 서버, 게임, 스마트폰, 어플리케이션, 데스크탑 어플리케이션 개발 등에 사용할 수 있게 되면서 다양한 일을 할 수 있게 되었다.

현재 자바스크립트는 github 프로젝트 중 가장 많이 사용되는 언어로 꼽힌다.



자바스크립트 활용 범위


자바스크립트는 다양한 용도로 쓰인다.


1. 웹 클라이언트 어플리케이션 개발

자바스크립트로 인해 마우스 클릭과 같은 이벤트 처리가 가능해졌다.

▶  문서의 내용을 동적으로 처리

ex) 구글 독스, 마이크로소프트 오피스 온라인 : 별도의 설치 없이 웹 브라우저만으로도 어플리케이션을 사용할 수 있다.



2. 웹 서버 어플리케이션 개발 : Node.js

과거에는 웹클라이언트 어플리케이션을 자바스크립트로 개발하고, 웹서버 어플리케이션은 C#, JAVA, RUBY, PYTHON 등의 언어로 개발했었다.

그러나 Node.js의 등장으로 자바스크립트로도 웹 서버 어플리케이션을 개발할 수 있게 되었다.

웹페이지를 직접 출력하지 않아도 웹 프로토콜(http, https)을 활용하면 웹 서버라 한다.


Node.js는 웹서버 어플리케이션을 개발할 때 꼭 필요한 모듈만을 제공한다. 따라서 다른 언어와 프레임워크를 사용할 때보다 데이터 처리와 예외 처리가 조금 복잡해진다.

그러나 Node.js로 개발한 서버 어플리케이션은 서버 구매비용과 유지비용은 1/10으로 줄일 수 있다는 장점이 있다.

Node.js를 일부만 활용 하기도 한다. 트위터는 기존의 JAVA, RUBY로 개발했으나 검색 기능 속도를 높이기 위해 검색 기능 부분만 Node.js로 교체했다.



3. 모바일 어플리케이션 개발

많은 사람들이 안드로이드는 JAVA, 아이폰은 Swift라는 언어로 개발한다. 이렇게 스마트폰에 최적화된 언어로 개발한 프로그램을 네이티브 어플리케이션이라 한다.

그런데 모든 스마트폰에서 JavaScript를 공통으로 인식한다. JavaScript를 사용하여 만든 어플리케이션은 모든 스마트폰에서 동작할 수 있다.

이를 하이브리드 어플리케이션이라 한다. 하이브리드 앱은 초창기 인기가 많았으나, 속도가 느리다는 이유로 개발하기 꺼려했다.

페이스북에서는 JavaScript로 네이티브 어플리케이션을 개발할 수 있는 React Native를 만들어 공개했다.

React Native를 활용하여 JavaScript만으로 모든 운영체제에서 빠르게 동작하는 네이티브 어플리케이션을 만들 수 있다.



4. 데스크탑 어플리케이션 개발

모바일 어플리케이션을 JavaScript로 만드는 일이 흔해지자 NW.js 모듈 등으로 데스크탑 어플리케이션 개발에 JavaScript를 활용하기 시작했다.

그러다 GitHub에서 JavaScript 개발 전용 텍스트 에디터인 아톰(Atom)을 배포했다. 그리고 Atom을 개발할 때 활용한 일렉트론(Electron)이라는 모듈을 공개하면서 많은 개발자들이 JavaScript로 데스크탑 어플리케이션을 개발할 수 있게 했다.



5. 게임 개발

본래의 게임 서버, 클라이언트 모두 C++로 만들었었다. 그런데 스마트폰의 확산으로 고사양 게임이 아닌 한번에 여러 스마트폰 운영체제에서 실행할 수 있는 어플리케이션을 만드는 것이 유행이 되었다.

초기에 플래시게임과 같은 모든 운영체제에서 실행할 수 있는 플랫폼을 활용했다. 플래시는 JavaScript를 기반으로 만든 액션스크립트 언어를 사용한다.

이때 유니티(Unity) 게임엔진 회사에서 엔진을 개인 개발자에게 배포하기 시작하여, 수많은 스마트폰 게임이 양산되었다. 유니티는 자바스크립트, C# 언어를 사양해 윈도우, 플래시, 안디로이드, 아이폰 등 모든 플랫폼에서 동작하는 게임을 개발할 수 있다.


게임 서버 어플리케이션 개발도 모바일게임과 같은 소규모 게임들이 많이 개발된다. 이러한 게임의 서버 어플리케이션은 스크립트 언어로 만들 수 있고, 생산성이 높다. 대부분의 프로그램이 적은 서버 용량으로 빠른 통신을 요구하기 때문에 Node.js를 활용한다.



6. 데이터베이스 관리

데이터베이스는 SQL이라는 언어를 사용하여 관리한다. 그런데 2010년부터 SQL은 복잡하고 무겁다는 이유로 간단하고 사용하기 쉬운 데이터베이스들이 등장하면서, 자바스크립트를 활용한 NoSQL 데이터베이스를 사용하기 시작했다.

대표적으로 MongoDB는 데이터베이스를 관리할 때 자바스크립트를 활용하는 NoSQL 데이터베이스이다.




자바스크립트의 버전


유럽 컴퓨터 제조 협회에서 자바스크립트를 ECMAScript라는 이름으로 표준화했다.


버전 

표준 발표 시기 

 ECMAScript 1

 1997년 6월 

 ECMAScript 2

 1998년 6월

 ECMAScript 3

 1999년 12월

 ECMAScript 4

 2008년 10월

 ECMAScript 5

 2009년 12월 

 ECMAScript 5.1

 2011년 6월 

 ECMAScript 6

 2015년 6월 

 ECMAScript 7

 2016년 6월 


자바스크립트를 사용하는 분야에 따라 사용할 수 있는 버전이 달라진다.

최신 브라우저들은 ECMAScript 7까지의 기능을 지원하지만, 인터넷 익스플로러는 ECMAScript 6 이하를 사용하는 것을 권장한다.

Node.js를 활용할 때는 최신 버전의 자바스크립트를 모두 활용할 수 있다.


'개발 > Javascript' 카테고리의 다른 글

[JavaScript] 객체(Object)  (1) 2017.10.31
[JavaScript] 클로저 (closure)  (0) 2017.10.31
[JavaScript] var 와 let 그리고 const  (0) 2017.10.31
[JavaScript] 출력  (0) 2017.10.30
[JavaScript] JavaScript의 데이터 타입과 연산자 1  (0) 2017.10.30
Comments