(준)공식 문서/모던 자바스크립트 튜토리얼

[ Part 1 - 코어 자바스크립트] 소개 1.1 ~ 1.2

Je-chan 2022. 1. 7. 15:43

[ 1-1  자바스크립트란? ]

1. 자바스크립트의 정의

  자바스크립트는 웹 페이지에 생동감, 동적인 부분을 담당하는 프로그래밍 언어다. HTML 태그에서 <script> 로 작성할 수 있다. 브라우저뿐만 아니라 서버에서도 실행할 수 있으며 자바스크립트 엔진 프로그램이 있는 모든 디바이스에서 동작한다. Chrome 과 Opera 에서는 자바스크립트 엔진 V8 (Node.js도 V8 엔진을 사용한다) 이 사용되고, Firefox 에서는 SpiderMonkey 가 쓰인다. 엔진의 동작 원리를 간단하게 요약하자면 다음과 같다

 

  1. 엔진이 스크립트를 읽는다
  2. 읽은 스크립트를 기계어로 전환한다
  3. 기계어로 전환된 코드가 실행된다.
      

2. 브라우저에서 할 수 있는 일과 없는 일

  모던 자바스크립트는 브라우저를 대상으로 만든 언어이기에 메모리나 CPU 같은 저수준 영역의 조작을 허용하지 않는다. 브라우저 환경에서 자바스크립트는 웹페이지를 조작하거나 클라이언트와 서버 사이 상호작용할 수 있는 일에 관여할 수 있다. 

 

  반면, 브라우저는 보안을 위해서 자바스크립트 기능에 제약을 걸었다. 예를 들면 다음과 같다

  1. 웹페이지 내 스크립트는 디스크에 저장된 임의의 파일을 읽기, 쓰기, 복사, 실행에 제약이 걸릴 수 있다. 
  2. 브라우저 내 탭, 창, 다른 주소는 서로의 정보를 알 수 없다. 이를 "Same Origin Policy" 라 불린다. 만약 서로 다른 주소에서 정보를 교환해야 한다면, 데이터 교환에 동의하는 내용과 그에 관련된 자바스크립트 코드를 내포해야 한다.
  3. 자바스크립트를 이용하면 서버와 쉽게 정보를 주고 받을 수 있다. 단, 다른 사이트나 도메인에서 데이터를 받아오는 것은 불가능하며, 만일 이를 가능하게 하려면 원격 서버에서 명확하게 승인을 해줘야 한다.

 

3. 자바스크립트의 강점

  자바스크립트는 아래와 같은 장점이 있다.

  1. HTML / CSS 와 완전히 통합할 수 있다
  2. 간단한 일은 간단하게 처리할 수 있도록 해준다
  3. 모든 주요 브라우저에서 지원하며 기본 언어로 사용된다

  위와 같은 특징으로 자바스크립트는 브라우저 인터페이스르 만들 때 가장 널리 사용되며 자바스크립트를 이용해서 서버나 모바일 앱을 만드는 것 또한 가능하다

 

4. 자바스크립트 너머의 언어들

 

  자바스크립트의 문법만 갖고서는 모든 개발자의 욕구를 충족시킬 수 없어지자 자바스크립트 기반의 새로운 언어들, 브라우저에서 실행되기 전에 자바스크립트로 Transpile(변환)할 수 있는 언어들이 생겼다. 

 

  1. CoffeeScript
  2. TypeScript
    : 개발을 단순화 하고 복잡한 시스템을 지원하려는 목적으로 "자료의 명시화"에 집중해서 만든 언어다.
    : Microsoft 에서 개발했다
  3. Flow
  4. Dart

 

[ 1-2  명세서, 매뉴얼, 호환성 표 ]

  다음 아래의 링크들은 모던 자바스크립트 튜토리얼만으로는 부족한 내용들을 충당하기 위한 매뉴얼, 명세서, 호환성 표 페이지다.

 

ECMA-262 

  자바스크립트와 관련해 가장 심도 있고 상세한 정보를 담고 있는 공식 내용이다.

https://www.ecma-international.org/publications-and-standards/standards/ecma-262/

 

ECMA-262 - Ecma International

ECMAScript® 2020 language specification, 11th edition - ECMAScript is a programming language based on several technologies like JavaScript and JScript.

www.ecma-international.org

 

MDN

  Mozilla 재단이 운영하며 특정 함수나 메소드에 깊이 있는 정보를 얻고 싶을 대 사용하면 좋다. 

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference

 

JavaScript reference - JavaScript | MDN

This part of the JavaScript section on MDN serves as a repository of facts about the JavaScript language. Read more about this reference.

developer.mozilla.org

 

호환성 표

  자바스크립트는 계속 업데이트 되고 있다. 신기술을 사용하고자 할 때 브라우저가 그 기능을 지원하는지 표로 알 수 있게 해준다.

https://caniuse.com/

 

Can I use... Support tables for HTML5, CSS3, etc

 

caniuse.com

[ Reference ] 

https://ko.javascript.info/intro

 

자바스크립트란?

 

ko.javascript.info

 

https://ko.javascript.info/manuals-specifications

 

매뉴얼과 명세서

 

ko.javascript.info