Language/└JavaScript

[JavaScript] 자바스크립트(JavaScript)란? | Yoon's Dev

Yooniron 2021. 5. 15. 20:38

자바스크립트(JavaScript)란? 

 



자바스크립트(JavaScript)란?

 

■ 자바스크립트(JavaScript)란?

 

✓ 자바스크립트(JavaScript)는 객체(object) 기반의 스크립트 언어이다.

HTML에서 웹 내용을 작성하고, CSS로는 웹을 디자인하고, JavaScript로는 웹의 동작을 구현할 수 있다.

자바스크립트는 주로 웹 브라우저에서 사용되나, Node.js 같은 프레임워크를 사용하면 서버 측에서도 사용 가능하다.

 


1. 자바스크립트의 역사

 

■ 자바스크립트(JavaScript)의 역사

 

✓ 1995년에 넷스케이프(Netscape)의 브렌던 아이크(Brenden Eich)에 의해 만들어졌다.

모카(Mocha)라는 이름으로 처음에 개발되었으나, 그 후에 라이브스크립트(LiveScript), 최종적으로 자바스크립트(JavaScript)로 이름이 변경되었다.

 


 

2. 자바스크립트의 특징

 

■ 자바스크립트(JavaScript)의 역사

 

✓ 자바스크립트는 객체 기반의 스크립트 언어이다.

✓ 자바스크립트는 동적이며, 타입을 명시할 필요가 없는 인터프리터 언어이다.

✓ 자바스크립트는 객체 지향형 프로그래밍과 함수형 프로그래밍을 모두 표현할 수 있다.

 

 


 

3. 자바와 자바스크립트의 차이

 

■ 자바와 자바스크립트의 차이

자바 (JAVA) 자바스크립트 (JavaScript)
컴파일 언어 인터프리터 언어
타입 검사가 엄격함 타입을 명시하지 않음
클래스(class) 기반의 객체 지향 언어 프로토타입(prototype) 기반의 객체 지향 언어

 

4. 자바스크립트 표준

 

■ 자바스크립트(JavaScript) 표준안

 

ECMAScript: 넷스케이프가 인터넷 상의 다양한 스크립트 언어를 하나로 묶기 위해 제시한 표준안.

이 스펙을 구현한 JavaScript 구현체로는 구글의 V8 엔진, 모질라의 SpiderMonkey, Microsoft의 Chakra 등이 있다.

실제로 JavaScript에만 적용되는 표준안이 아니라, IE의 JScript나 Adobe Flash ActionScript의 표준이기도 하다.

 

현재는 ECMAScript 2020의 표준 (ES11)까지 나와있으며, 대부분의 JavaScript 런타임에서는 이 표준을 모두 구현한 상태는 아니다. 2018년 현재는 IE등의 구형 브라우저를 제외하고는 ES2016 표준까지는 적당히 구현이 되어있는 상태.

또한, 구현이 안된 브라우저를 지원하기 위해서 Babel 등의 Transpiler를 사용해서 ES2015 이상의 기능을 어느 정도 사용할 수 있다

 

 

5. 주요 라이브러리

 

  • jQuery: DOM Manipulating 라이브러리. 사실상 자바스크립트 개발에 필수였던 라이브러리였으나 리액트, 앵귤러 등의 프레임워크의 생산성이 워낙 높다 보니 2010년대 후반부터는 사실상 레거시가 되었으며 아주 간단한 웹사이트에서만 쓰이고 안 쓰는 추세다. 기본적으로 document.querySelectorAll('oooo')를 $('oooo')로 쓸 수 있는 등의 기능이 있다.
  • AngularJS: 구글에서 제작한 프론트엔드용 클라이언트 사이드 JavaScript 프레임워크. Angular 1으로도 불린다. 백엔드, 프런트엔드를 동시에 작업할 수 있다. MongoDB, Express, AngularJS, Node.js를 함께 사용하여 MEAN Stack으로 많이 사용한다. Angular 2 이후로는 이건 TypeScript를 이용한다. 기본적으로 많은 기능들이 내재되어 있다.
  • React: Facebook에서 만든 프론트엔드용 오픈소스 라이브러리다. 단방향 데이터 흐름과, Virtual DOM 개념을 도입한 UI 컴포넌트 라이브러리. 생산성이 높고, DOM 업데이트에 있어서 성능이 매우 빨라 동적인 웹 애플리케이션 구성에 유리하다. 그리고 이러한 동적 웹이 모던 웹 애플리케이션의 필수 요소가 되어버린 만큼 출시 이후 꾸준히 점유율을 늘려가며 업계 표준 라이브러리 중 하나로 자리 잡았다. 최근에는 React Hooks이라 불리는 메서드가 지원되면서 생산성이 더 좋아졌다. html로 뷰를 작성해야 하는 Angular와는 다르게 JSX라는 문법을 지원하면서 JavaScript만으로 애플리케이션을 작성하는 게 가능하다. 기존 문서에는 MVC의 V(View)를 담당하는 라이브러리라고 되어 있었으나 리액트는 MVC framework가 아니며 View뿐만 아니라 Controller 부분까지도 리액트 컴포넌트 내에서 작성이 가능하므로 정확한 설명이 아니다.
  • Vue.js: 중국계 미국인 에반 유가 만든 사용자 인터페이스를 만들기 위한 프론트엔드용 프레임워크이다. 굉장히 자유롭고 유연하게 추가 기능들을 불러올 수 있다는 특징이 있으나 추가 기능들을 무분별하게 사용하는 경우 안정성을 떨어뜨릴 수 있다.
  • Node.js: 브라우저 안에서만 작동하던 JavaScript를 브라우저 외의 환경에서 작동할 수 있게 만들어 준 런타임 환경이다.
  • Express.js: Node.js를 위한 웹 애플리케이션 프레임워크. 주로 Node로 백엔드 개발할 때 사용된다.
  • Deno: Node.js의 개발자 Ryan Dahl이 Node.js의 아쉬운점을 개선한 JavaScript 엔진이다.