[JavaScript] 1. 자바스크립트 기본 지식 및 역사

keymu·2024년 10월 20일
0

JavaScript의 역사와 발전

1. JavaScript의 탄생

  • 최초 개발: 1994년, 당시 브라우저 시장의 선두주자였던 넷스케이프 커뮤니케이션스에서 개발
  • 목적: 기존의 정적인 HTML 페이지에 동적인 기능을 추가하기 위한 스크립트 언어
    개발자: 브렌던 아이크(Brendan Eich)
  • 현재 운영: 넷스케이프 개발자들이 설립한 모질라 재단에서 JavaScript를 관리
  • 상표권자: 현재 JavaScript의 상표권은 오라클이 소유하고, 모질라 재단과 라이선스 계약을 통해 운영 중
  • JavaScript에 대한 자세한 정보 (MDN)

2. JavaScript와 ECMAScript

  • JavaScript는 ECMAScript라는 표준 스펙을 기반으로 개발되었습니다.

  • ECMAScript(에크마스크립트): JavaScript를 기반으로 한 스크립트 언어의 표준안으로, ECMA-262 명세로 제정되었습니다.

  • 첫 등장: ECMAScript 1은 1997년 7월에 등장.

    TC39: ECMAScript 명세 관리를 담당하는 ECMA의 기술 위원회.
    ECMA: 정보 및 통신 시스템의 국제 표준을 제정하는 기구.

  • 주요 버전:

    ES5 (2009): 대부분의 브라우저에서 지원.
    ES6 (2015): JavaScript의 중요한 변화가 이루어진 버전으로, 현대 JavaScript의 기본 형태를 제공합니다. (단, IE에서는 지원하지 않음)

3. JavaScript와 Java는 다른 언어!

  • JavaScript와 Java는 이름만 비슷할 뿐 완전히 다른 언어입니다. 둘 다 C 언어의 구문을 기반으로 한 점은 유사하지만, 그 외에는 관련이 없습니다.

4. ECMAScript 6 (ES6)

  • ES6: 2015년 도입되었으며, "ES2015"라고도 불립니다.

    • 주요 변화: ES6는 JavaScript의 기능과 문법을 크게 확장했으며, 이후의 JavaScript 발전에 큰 영향을 미쳤습니다.
  • 현대 JavaScript: ES6 이후로 매년 새로운 기능이 추가된 버전이 발표되고 있으며, modern JavaScript는 주로 ES6 이상의 문법을 의미합니다.

  • ES6와 이후 버전의 특징:

    • JavaScript의 최신 프레임워크들은 대부분 ES6 이상의 문법을 요구합니다.
      하지만 기본적인 웹 개발에서는 ES5 정도로도 충분히 가능하므로 상황에 맞게 학습하면 됩니다.

5. JavaScript 엔진과 런타임

  • JavaScript는 엔진과 런타임 환경에서 구동됩니다. 환경에 따라 ECMAScript 규격 지원 범위나 제공되는 객체, 함수가 다를 수 있습니다.
  • V8 엔진: Google에서 개발한 고성능 JavaScript 엔진으로, 크롬 브라우저와 Node.js에서 사용됩니다.

6. 풍부한 라이브러리와 프레임워크

  • JavaScript는 다양한 라이브러리와 프레임워크를 통해 확장성이 매우 뛰어납니다.

  • 라이브러리: jQuery, JSON 등

  • 프레임워크: Vue.js, React.js, Angular.js 등

7. JavaScript의 다양한 사용처

  • JavaScript는 웹 개발뿐만 아니라 다양한 분야에서도 사용됩니다.
    • 타입스크립트(TypeScript): 컴파일 가능한 JavaScript
    • 서버사이드 개발: Node.js
    • 하이브리드 앱: IONIC
    • 크로스플랫폼 앱: React Native
    • 데스크탑 어플리케이션: Electron
    • 게임 개발: PhaserJS, ImpactJS
    • 3D 및 VR: Three.js
    • 증강 현실 (AR): Aframe, AR.js
    • 머신러닝: TensorFlow.js
    • Unity3D 같은 게임 개발 엔진에서도 채택

8. 구형 브라우저 호환성

  • IE9, IE10과 같은 구형 브라우저에서는 ES6의 let, const와 같은 문법을 사용할 수 없습니다.
  • 바벨(Babel): 구형 브라우저에서 최신 JavaScript 문법을 사용할 수 있도록 변환해주는 트랜스파일러.
profile
Junior Backend Developer

0개의 댓글