(JS 학습) 자바스크립트란?
모던 자바스크립트 Deep Dive책 기반으로 학습했습니다.
Deep Dive 01장 ~ 02장 기준
목차
[프로그래밍이란?]
프로그래밍이란 컴퓨터에게 실행을 요구하는 일종의 커뮤니케이션이다.
0과 1밖에 알지 못하는 기계가 실행할 수 있을 정도로 정확하고 상세하게 요구사항을 설명하는 작업이며, 그 결과물이 바로 코드다.
[프로그래밍 언어]
컴퓨터가 이해할 수 있는 기계어로 변환하는 인종의 번역기 역할을 함.
기계어로 직접 명령을 전달하는 것을 대신할 가장 유용한 대안은 사람이 이해할 수 있는 약속된 구문syntax(문법)으로 구성된 “프로그래밍 언어programming language”를 사용해 프로그램을 작성한 후, 그것을 컴퓨터가 이해할 수 있는 기계어로 변환하는 일종의 번역기를 이용하는 것이다. 이 일종의 번역기를 컴파일러compiler 혹은 인터프리터interpreter라고 한다.
프로그래밍 언어는 구문과 의미의 조합으로 표현된다.
쉽게 설명하자면, 컴파일러 혹은 인터프리터는 개발자가 작성한 코드를 기계어로 변환해주는 번역기 역할을 해준다.
[자바스크립트의 표준화]
자바스크립트는 모든 브라우저의 표준 프로그래밍 언어로 자리 잡았다.
넷스케이프 커뮤니케이션즈와 마이크로소프트는 자사 브라우저의 시장 점유율을 높이기 위해 자사 브라우저에서만 동작하는 기능을 경쟁적으로 추가했다.
이로 인해 브라우저에 따라 웹페이지가 정상적으로 동작하지 않는 크로스 브라우징 이슈가 발생하기 시작했고, 모든 브라우저에서 정상적으로 동작하는 웹페이지를 개발하기 어려워졌다.
그에 따라 자바스크립트의 파편화 방지 및 표준화된 자바스크립트의 필요성이 대두됐다. 이를 위해 넷스케이프 커뮤니케이션즈는 컴퓨터 시스템의 표준을 관리하는 비영리 표준화 기구인 ECMA 인터내셔널에 자바스크립트의 표준화를 요청한다.
ECMA-262라 불리는 표준화된 자바스크립트 초판 사양이 완성되었고, 상표권 문제로 자바스크립트는 ECMAScript로 명명되었다.
[자바스크립트와 ECMAScript]
ECMAScript는 자바스크립트의 표준 사양인 ECMA-262를 말하며, 프로그래밍 언어의 값, 타입, 객체와 프로퍼티, 함수, 표준 빌트인 객체 등 핵심 문법을 규정한다.
각 브라우저 제조사는 ECMAScript 사양을 준수해서 브라우저에 내장되는 자바스크립트 엔진을 구현한다.
자바스크립트는 일반적으로 프로그래밍 언어로서 기분 뼈대를 이루는 ECMAScript와 브라우저가 별도 지원하는 클라이언트 사이드 Web API, 즉 DOM, Canvase, XMLHttpRequest, fetch 등을 아우르는 개념이다.
- 자바스크립트 안에 ECMAScript가 포함됨. 자바스크립트는 일반적으로 ECMAScript를 아우르는 개념.
[자바스크립트의 특징]
자바스크립트는 명령형, 함수형, 프로토타입 기반 객체지향 프로그래밍을 지원하는 멀티 패러다임 프로그래밍 언어다. 프로토타입 기반의 객체지향 언어다.
**패러다임이란?
어떤 한 시대 사람들의 견해나 사고를 지배하고 있는 이론적 틀이나 개념의 집합체.
**멀티 패러다임 프로그래밍 언어란?
다중 패러다임 이라고도 불린다.
여러 패러다임을 지원하는 프로그래밍 언어를 뜻한다.
JS는 mdn문서에 따르면 객체지향형, 명령형, 선언형(함수형 프로그래밍 등) 스타일을 지원한다.
참고 문서 :
1) 모던 자바스크립트 Deep Dive