본문 바로가기
TIL: Today I Learned

[TIL] 20210412 자바스크립트란?

by 김알리 2021. 4. 12.

자바 스크립트의 역사

  • 1995년 브렌던 아이크(Brendan Eich)가 개발: 웹페이지의 보조적인 기능을 수행하기 위해 브라우저에서 동작하는 경량 프로그래밍 언어
  • 1999년 Ajax 등장: 서버로부터 필요한 데이터만 전송받아 변경해야 하는 부분만 한정적으로 렌더링 하는 방식이 가능해짐. 웹브라우저에서도 데스크톱 애플리케이션과 유사한 빠른 성능과 부드러운 화면 전환이 가능해짐.
  • V8 엔진 등장: 빠르게 동작하는 자바스크립트 엔진. 과거 웹 서버에서 수행되던 로직들이 대거 클라이언트(브라우저)로 이동함.
  • Node.js 등장: 브라우저의 자바스크립트 엔진에서만 동작하던 자바스크립트를 브라우저 이외의 환경에서도 동작할 수 있도록 자바스크립트 엔진을 브라우저에서 독립시킨 자바스크립트 실행 환경.
  • 2015년 공개된 ECMAScript 6에서 let/const, 화살표 함수, 클래스, 모듈 등 범용 프로그래밍 언어로서 갖춰야 할 기능 대거 도입. 그래서 이전 버전으로 배우면 안됨.

 

자바스크립트의 특징

  • 웹 브라우저에서 동작하는 프로그래밍 언어. 
  • 기본 문법은 C, 자바와 유사하고 셀프(Self)에서는 프로토타입 기반 상속을, 스킴(Scheme)에서는 일급 함수의 개념 차용
  • 인터프리터 언어지만, 모던 자바스크립트 엔진은 인터프리터와 컴파일러의 장점을 결합해 비교적 처리 속도가 느린 인터프리터의 단점을 해결했다. 전통적인 컴파일러 언어처럼 명시적인 컴파일 단계를 거치지는 않지만 복잡한 과정을 거치며 일부 소스코드를 컴파일하고 실행한다. 따라서 현재는 컴파일러와 인터프리터의 기술적 구분이 점차 모호해져 가는 추세다. (인터프리터는 소스코드를 즉시 실행하고 컴파일러는 빠르게 동작하는 머신 코드를 생성하고 최적화 한다.)
  • 명령형, 함수형, 프로토타입 기반 객체지향 프로그래밍을 지원하는 멀티 패러다임 프로그래밍 언어

 

자바스크립트 개발 환경

  • 모든 브라우저와 Node.js는 자바스크립트를 해석하고 실행할 수 있는 자바스크립트 엔진을 내장하고 있다.
  • 브라우저는 HTML, CSS, JS를 실행해 웹페이지를 브라우저 화면에 렌더링하는 것이 주된 목적
  • Node.js는 브라우저 외부에서 자바스크립트 실행 환경을 제공하는 것이 주된 목적
  • 브라우저와  Node.js에서 ECMAScript 이외에 추가로 제공하는 기능은 호환되지 않는다.
  • 웹 애플리케이션의 자바스크립트는 사용자 컴퓨터의 브라우저에서 동작한다. 따라서 보안상의 이유로 브라우저 환경의 자바스크립트는 파일 시스템을 제공하지 않는다.

 

 

 

참고: 『모던 자바스크립트 Deep Dive』