본문 바로가기
Javascript/javascript Core

[Javascript 강의] 1강 Javascript 란?

by 카리3 2021. 9. 11.

Javascript 란?

 

 

프로그래밍이란?

프로그래밍이란 컴퓨터에게 실행을 요구하는 일종의 커뮤니케이션이다. 프로그래밍에 앞서 해결해야 할 문제(요구사항)을 명확히 이해한 후 적절한 문제 해결 방안을 정의할 필요가 있다. 0, 1 밖에 알지 못하는 기계가 실행할 수 있을 정도로 정확하고 상세하게 요구사항을 설명하는 적업이며, 그 결과물이 바로 코드다.

이처럼 문제 해결 능력을 바탕으로 정의된 문제 해결 방안은 컴퓨터에게 전달되어야 한다. 사람이 이해할 수 있는 자연어가 아니라 컴퓨터가 이해할 수 있는 언어, 기계어로 명령을 전달해야 한다. 하지만 사람이 기계어로 직접 명령을 전달하는 것은 매우 어려운 일이다. 기계어로 직접 명령을 전달하는 것을 대신할 가장 유용한 대안은 사람이 이해할 수 있는 약속된 구문으로 구성된 "프로그래밍 언어"를 사용해 프로그램을 작성한 후, 그것을 컴퓨터가 이해할 수 있는 기계어로 변환하는 일종의 번역기 "컴파일러" 혹은 "인터프리터"를 이용하는 것이다.

결국 프로그램은 요구사항의 집합을 분석해서 적절한 자료구조와 함수의 집합으로 변환한 후, 그 흐름을 제어하는 것이다.

자바스크립트란?

1995년 넷스케이프 커뮤니케이션즈에서 웹페이지의 보조적인 기능을 수행하기 위해 브라우저에서 동작하는 경량 프로그래밍 언어인 브렌던 아이크가 개발한 자바스크립트다. 

1996년 8월 마이크로소프트에서 "JScript"를 인터넷 익스플러러 3.0에 탑재했다. 그런데 문제는 JScript와 자바스크립트가 표준화 되지 못하고 적당히 호환되었다는 것이다. 이로 인해 크로스 브라우징 이슈가 발생하기 시작했다.

1996년 11월 넷스케이프는 비영리 표준화 기구인 ECMA 인터네셔널에 자바스크립트의 표준화를 요청한다.

자바스크립트는 일반적으로 프로그래밍 언어로서 기본 뼈대를 이루는 ECMAScript와 브라우저가 별도 지원하는 클라이언트 사이드 WEB API, 즉 DOM, BOM, Canvas, XMLHttpRequest, fetch, requestAnimationFrame, SVG, Web Storage, Web Component, Web Worker 등을 아우르는 개념이다.

자바스크립트의 특징

자바스크립트는 HTML, CSS와 함께 웹을 구성하는 요소 중 하나로 웹 브라우저에서 동작하는 유일한 프로그래밍 언어다. 기본문법은 C/JAVA와 유사하고 셀프에서는 프로토타입 기반 상속을, 스킴에서는 일급 함수의 개념을 차용했다.

개발자가 별도의 컴파일 작업을 수행하지 않는 인터프리터 언어다. 인터프리터는 소스코드를 즉시 실행하고 컴파일러는 빠르게 동작하는 머신코드를 생성하고 최적화한다. 대부분의 모던 자바스크립트 엔진은 인터프리터와 컴파일러의 장점을 결합해 비교적 처리 속도가 느린 인터프리터의 단점을 해결했다.

자바스크립트는 명령형, 함수형, 프로토타입 기반 객체지향 프로그래밍을 지원하는 멀티 패러다임 프로그래밍 언어다.

자바스크립트의 실행환경

브라우저 환경 또는 Node.js 환경에서 실행할 수 있다. 브라우저는 HTML, CSS, 자바스크립트를 실행해 웹페이지를 브라우저 화면에 렌더링하는 것이 주된 목적이지만 Node.js는 브라우저 외부에서 자바스크립트 실행 환경을 제공하는 것이 주된 목적이다. 브라우저는 WEB API를 Node.js 환경은 Node.js Host API를 제공한다. ECMAScript는 교집합이다.