자바스크립트(JavaScript)
기존에 정의돼있는 HTML, CSS를 변경할 수 있는 기술이다. 조금 더 덧붙여서 말하자면, 기존에 HTML과 CSS로는 웹페이지에서 할 수 없었던 복잡한 기능을 구현할 수 있도록(동적인 기능을 추가해주는) 도와주는 프로그래밍 언어이다.
동적으로 콘텐츠를 바꾸고, 멀티미디어를 제어하는 등 거의 모든 것을 만들 수 있는 스크립팅 언어이다.
요즘 우리가 보는 웹 페이지의 경우 대부분 자바스크립트가 들어가있다고 생각하면 된다.
자바스크립트는 인터프리터 언어, 스크립트 언어이다.
인터프리터 언어란 무엇일까?
컴파일 언어와는 대비되는 의미로, 컴파일을 할 필요없이 소스코드를 바로 실행할 수 있는 언어를 말한다.
소스코드를 읽어가며 바로 실행한다. 번역과 실행이 동시에 일어나는 것이다.
인터프리터(interpreter) 라는 단어의 사전적 의미는 '통역사'이다. 한 줄씩 해석하기 때문에 이러한 명칭이 붙은 것이다.
코드를 읽고 바로 해석해야 하기 때문에 컴파일러 언어에 비해서는 속도가 느리다는 단점이 있다.
인터프리터 언어의 종류는 자바스크립트, 파이썬, 루비, sql 등이 있다.
컴파일 언어란 그럼 무엇일까?
소스코드를 모두 목적코드로 번역한후 한 번에 실행하는 언어이다.
소스코드는 컴파일러에 의해 컴파일되어 목적코드가 된다. 목적코드란 우리가 어떤 것을 실행하려는 목적을 달성하기 위한 코드라고 생각하면 다소 외우기 편하다(나는 그렇다😊)
컴파일 언어는 C, C++, C#, Go 등이 있다.
소스코드는 결국 사람이 만들어 낸 규칙으로 사람이 작성한 코드이다.
컴퓨터가 이를 해석할 수가 없기 때문에 해석기(컴파일러)로 해석(컴파일)을 한 결과물(목적코드)를 받아서 처리하는 것이다. 컴파일을 하게되면 실행 가능한 파일(프로그램)이 생성된다. 보통 컴퓨터(기계)가 읽을 수 있는 언어로 만들어진 파일이라 해서 바이너리 파일 이라고도 부른다.
그렇다면 바이너리 파일의 의미는 무엇이냐......
바이너리(binary)는 두 조각, 두 부분, 이진법 등을 의미하는데 우리가 집중할 부분은 바로 이진법이다.
이진법은 0,1 두 숫자로만 이루어져있으며 바로 바이너리파일이 이진법에의해 0,1로 이루어진 파일이다.
보통 컴퓨터 언어라고 하면 0,1로 이루어진 기계어라는 말을 많이 들어보았을 것이다. 그래서 컴퓨터가 바이너리파일을 읽을 수 있는 것이다.
자바스크립트의 역사에 대해 간단히 알아보자(Feat. ES6)
처음엔 넷스케이프에서 라이브스크립트라는 이름으로 등장했다. 이를 견제하기 위해 나온것이 MS의 Jscript.
라이브스크립트와 Jscript는 호환되지만 표준화가 되지 않아 많은 불편함이 발생했다.
이후 ECMA에서 이를 표준화하여 ECMAScript로 명명! (ECMA : 정보통신시스템 국제 표준화 기구)
따라서 정식 명칭은 ECMAScript이지만 통상 자바스크립트라고 불린다.
현재는 2015년에 업데이트된 것을 가장 표준으로 사용중이며 이것의 명칭은 ECMA 2015이다.
ECMA 2015...... 줄여서 ES6. 그래서 보통 ES6 라는 표현을 하는 것!
예전에는 순수 자바스크립트 언어만으로는 개발에 시간이 오래걸렸기 때문에 개발을 도와주는 라이브러리, 특히 그 중
Jquery라는 라이브러리가 압도적인 점유율을 가졌다.
하지만, 웹 표준 API가 확장되고 크롬이라는 강력한 브라우저가 등장하며 순수한 자바스크립트로도 빠른 개발이 가능해졌다. 이 때 순수한 자바스크립트가 바로 바닐라스크립트 이다.
자바스크립트는 프론트엔드에서만 쓰일까?(feat. node.js)
자바스크립트는 앞서 작성한 내용을 볼 때 프론트엔드(일반 사용자가 브라우저를 통해 보는 화면)단의 개발을 위한 기술.
이 후 백엔드에서도 자바스크립트를 사용할 수 있는 기술이 등장했으니 그것이 node.js 이다.
자바스크립트는 점유율이 높다보니 점점 백엔드, 모바일 앱 개발 등 사용 범위가 확대되고 있다.
'언어 > JavaScript' 카테고리의 다른 글
[javascript] HTML요소를 선택하여 꾸미는 메서드에 대해서(querySelector, querySelectorAll) (0) | 2022.09.14 |
---|---|
Javascript 함수에 대해서 (0) | 2022.09.14 |
Javascript 조건문에 대해서 (0) | 2022.09.13 |
자바스크립트의 기본 사용 문법, 변수와 자료형에 대해서 (0) | 2022.09.06 |