[ 1-1 자바스크립트란? ]
1. 자바스크립트의 정의
자바스크립트는 웹 페이지에 생동감, 동적인 부분을 담당하는 프로그래밍 언어다. HTML 태그에서 <script> 로 작성할 수 있다. 브라우저뿐만 아니라 서버에서도 실행할 수 있으며 자바스크립트 엔진 프로그램이 있는 모든 디바이스에서 동작한다. Chrome 과 Opera 에서는 자바스크립트 엔진 V8 (Node.js도 V8 엔진을 사용한다) 이 사용되고, Firefox 에서는 SpiderMonkey 가 쓰인다. 엔진의 동작 원리를 간단하게 요약하자면 다음과 같다
- 엔진이 스크립트를 읽는다
- 읽은 스크립트를 기계어로 전환한다
- 기계어로 전환된 코드가 실행된다.
2. 브라우저에서 할 수 있는 일과 없는 일
모던 자바스크립트는 브라우저를 대상으로 만든 언어이기에 메모리나 CPU 같은 저수준 영역의 조작을 허용하지 않는다. 브라우저 환경에서 자바스크립트는 웹페이지를 조작하거나 클라이언트와 서버 사이 상호작용할 수 있는 일에 관여할 수 있다.
반면, 브라우저는 보안을 위해서 자바스크립트 기능에 제약을 걸었다. 예를 들면 다음과 같다
- 웹페이지 내 스크립트는 디스크에 저장된 임의의 파일을 읽기, 쓰기, 복사, 실행에 제약이 걸릴 수 있다.
- 브라우저 내 탭, 창, 다른 주소는 서로의 정보를 알 수 없다. 이를 "Same Origin Policy" 라 불린다. 만약 서로 다른 주소에서 정보를 교환해야 한다면, 데이터 교환에 동의하는 내용과 그에 관련된 자바스크립트 코드를 내포해야 한다.
- 자바스크립트를 이용하면 서버와 쉽게 정보를 주고 받을 수 있다. 단, 다른 사이트나 도메인에서 데이터를 받아오는 것은 불가능하며, 만일 이를 가능하게 하려면 원격 서버에서 명확하게 승인을 해줘야 한다.
3. 자바스크립트의 강점
자바스크립트는 아래와 같은 장점이 있다.
- HTML / CSS 와 완전히 통합할 수 있다
- 간단한 일은 간단하게 처리할 수 있도록 해준다
- 모든 주요 브라우저에서 지원하며 기본 언어로 사용된다
위와 같은 특징으로 자바스크립트는 브라우저 인터페이스르 만들 때 가장 널리 사용되며 자바스크립트를 이용해서 서버나 모바일 앱을 만드는 것 또한 가능하다
4. 자바스크립트 너머의 언어들
자바스크립트의 문법만 갖고서는 모든 개발자의 욕구를 충족시킬 수 없어지자 자바스크립트 기반의 새로운 언어들, 브라우저에서 실행되기 전에 자바스크립트로 Transpile(변환)할 수 있는 언어들이 생겼다.
- CoffeeScript
- TypeScript
: 개발을 단순화 하고 복잡한 시스템을 지원하려는 목적으로 "자료의 명시화"에 집중해서 만든 언어다.
: Microsoft 에서 개발했다 - Flow
- 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
호환성 표
자바스크립트는 계속 업데이트 되고 있다. 신기술을 사용하고자 할 때 브라우저가 그 기능을 지원하는지 표로 알 수 있게 해준다.
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