자바스크립트란?
구글에 자바스크립트를 검색하면 위키백과에 아래와 같이 뜬다.
자바스크립트는 객체 기반의 스크립트 프로그래밍 언어이다. 이 언어는 웹 브라우저 내에서 주로 사용하며, 다른 응용 프로그램의 내장 객체에도 접근할 수 있는 기능을 가지고 있다. 또한 Node.js와 같은 런타임 환경과 같이 서버 프로그래밍에도 사용되고 있다.
자바스크립트는 객체지향 스크립트 프로그래밍 언어로 웹 브라우저 내에서 주로 사용되므로 웹 개발하는데에 사용된다.
웹의 프론트엔드를 개발하기 위해서 필요한 기술들은 기본적으로 HTML, CSS, JavaScript가 있다. 이 중에서 가장 핵심이 되는 기술이 자바스크립트이다. 자바스크립트 없이 웹 프로그래밍을 한다는 것은 거의 불가능에 가까운 일이 되었고, 언어가 가진 수 많은 한계를 극복하기 위해 다양한 프레임워크와 라이브러리들도 나오고 있다. 자바스크립트는 클라이언트와 서버사이드를 아우르는 프로그래밍의 표준으로 자리 잡았다고 해도 과언이 아니다.
기존에 브라우저의 언어로만 여겨졌던 자바스크립트는 구글로 인해 V8 자바스크립트 엔진이 오픈소스화가 되었고 이 V8를 활용하여 Node.js가 개발되면서 서버 사이드 개발까지 가능해졌다. 이제는 자바스크립트 개발자 한 명이 프론트엔드와 백엔드까지 모든 영역을 소화할 만큼 그 영역이 포괄적이고 방대해졌다.
자바스크립트의 프레임워크와 라이브러리
라이브러리 |
제이쿼리(jQuery) | 현재까지 가장 인기있는 자바스크립트 라이브러리이다. 순수 자바스크립트로 코딩하는 것보다 10배 이상의 생산성을 보여주며 표준에 가까운 점유율을 보인다. |
리액트(React.js) | 최근 가장 큰 관심을 받고 있는 페이스북 오픈소스 프로젝트 라이브러리이다. 빠른 성능과 가벼운 용량이 특징이다. 프레임워크라기보다는 뷰(view)라이브러리에 가깝고, 리덕스(Redux)라고 하는 React + Flux 데이터 처리 라이브러리를 활용하여 데이터 전송 및 관리를 한다. | |
프레임워크 |
백본(Backbone.js) | 프론트엔드에서 웹 페이지 전체를 구현해낼 수 있는 프레임워크이다. 여타 프레임워크와 비교하여 백본은 용량이 매우 작고, 가볍고 속도도 빠르다. 다만 서비스 구조를 직접 설계해야 하므로 서비스 확장에 따라 고급 설계 기술이 필요하다. 템플릿 엔진을 포함하지 않으므로 Handlebars와 같은 템플릿 라이브러리를 같이 조합하여 사용해야 하는 번거로움이 있다. |
앵귤러(Angular.js) | 구글의 오픈소스 프로젝트인 앵귤러는 현재 가장 대중화된 싱글 페이지 프레임워크이다. 투웨이 바인딩 기술이 구현되어 강력한 템플릿 엔진이 장착되어 있다. 손쉽게 싱글 페이지 애플리케이션 개발이 가능하므로 초보 개발자부터 고급 개발자까지 폭 넓게 활용되고 있다. | |
엠버(Ember.js) | 국내에서 대중화되지 않은 프레임워크이다. 초기에 CLI를 제공하여 콘솔명령어로 쉽게 초기 파일을 자동구성할 수 있다. addon 시스템이 도입되어 설치 명령어를 통해 서비스를 추가하기 쉽다. |
자바스크립트를 활용한 서버사이드 개발
Node.js
기존에 웹 브라우저 내에서 활용되던 클라이언트용 자바스크립트를 Node.js 활용을 통해 서버상에서도 사용가능하게 되었다. 2009년 라이언 달이라는 프로그래머가 개발한 서버 개발 환경으로, 구글에서 개발한 V8 자바스크립트 엔진을 기반으로 한 매우 빠르고 고성능인 소프트웨어 플랫폼이다.
Node.js의 사용으로 인해 웹 애플리케이션이 더욱 발전하였고, 정적인 홈페이지 뿐만 아니라 데이터가 변하는 동적인 사이트도 구현이 가능하다. 또한 안드로이드 폰, 아이폰, 윈도우, 맥 할 것 없이 플랫폼에 제약없이 실행할 수 있다.
하지만 Node.js 자체로 서버단 모두를 개발하려면 많은 부분을 자체 제작해야 하므로 여러 프레임워크와 라이브러리를 활용하여 개발한다. 또한 Node.js 서버의 성능은 파일을 쓰고 읽는 데에 취약하기 때문에 기존의 자바로 만들어진 서버를 대체하는 수단으로 쓰기에는 부족하다. 따라서 채팅 서버와 같이 가벼운 서버를 구성하는데에 주로 사용된다.
참고 자료
'Front-End: Web > JavaScript' 카테고리의 다른 글
Three.js 2: PCD(Point Cloud Data)Loader (0) | 2021.05.16 |
---|---|
Three.js 1: 시작하기 (0) | 2021.05.16 |
JSON와 JSON 메서드 (0) | 2021.04.16 |
JSON과 Javascript Object의 차이 (0) | 2021.04.16 |
객체와 생성자 함수 (0) | 2021.04.16 |