자바스크립트란?
프로그래밍 언어
프로그래밍 언어란, 컴퓨터 프로그램을 작성하기 위한 언어입니다. 즉, 소프트웨어의 동작(알고리즘)을 설명하기 위한 언어입니다. 프로그래밍 언어로 프로그램을 개발하는 행위를 프로그램, 프로그래밍 언어로 작성한 프로그램을 소스 코드라고 합니다.
컴파일 언어와 인터프리터 언어
프로그래밍 언어를 사용하면 사람이 이해할 수 있는 언어로 프로그램을 작성할 수 있습니다. 작성된 프로그램은 기계어로 번역되어 컴퓨터가 실행할 수 있게 됩니다.
소스 코드를 실행하기 위해 기계어로 번역하는 것을 컴파일이라고 하며, 컴파일을 수행하는 소프트웨어를 컴파일러라고 합니다. 소스 코드 여러 개를 하나로 만들어 컴파일 후에 실행하는 프로그래밍 언어를 컴파일 언어라고 합니다. 대표적인 컴파일 언어로는 C, C++, Java, C 등 이 있습니다. 컴파일 언어로 작성한 프로그램은 컴파일하는 데는 시간이 걸리지만 실행되는 속도가 빠릅니다.
반면에 프로그램을 한 줄마다 기계어로 번역해서 실행하는 프로그래밍 언어를 인터프리터 언어라고 하며, 프로그램을 번역해서 실행시키는 소프트웨어를 인터프리터라고 합니다. 대표적인 인터프리터 언어로는 자바스크립트, LISP, Perl, Ruby, Python 등이 있습니다. 인터프리터 언어는 프로그램을 바로 실행할 수 있고 동작을 확인해 가면서 프로그램을 개발할 수 있다는 장점이 있습니다. 대신 프로그램 코드를 한 줄 한 줄 기계어로 번역하면서 실행하기 때문에 컴파일 언어보다는 처리 속도가 비교적 느리다는 단점이 있습니다.
프로그래밍 언어의 유형
프로그램을 작성하는 방식에 따라서도 프로그래밍 언어를 분류할 수 있습니다. 절차를 순서대로 작성해 나가는 절차지향적 언어, 처리와 관련된 데이터와 절차를 하나로 묶어 객체 단위로 관리하는 객체지향적 언어, 프로그램을 함수로 조합하여 구현해 나가는 함수형 언어, 데이터 사이의 관계와 논리를 설명해 나가는 논리형 언어 등이 있습니다.
자바스크립트의 특징
흔히 JS로 약칭되는 자바스크립트는 HTML, CSS와 함께 월드와이드웹의 핵심 기술 중 하나인 프로그래밍 언어입니다. 여러 웹사이트에서 슬라이더, 경고, 클릭 상호작용, 팝업 등 페이지에 상호작용을 추가할 수 있게 해주는데, 이 모든 것이 JavaScript를 사용하여 구축됩니다. 브라우저에서 사용되는 것 외에도 자바스크립트로 서버 측 코드를 작성하는 Node.js, 데스크톱 애플리케이션 작성에 사용되는 일렉트론, 모바일 애플리케이션에 사용되는 리액트 네이티브 등 브라우저 이외의 다른 환경에서도 사용됩니다.
- 인터프리터 언어
- 자바스크립트는 인터프리터 언어로 실행 속도가 느릴 것 같지만 최근 웹 브라우저 대부분에는 실행 시간에 자바스크립트 코드를 컴파일하는 JIT 컴파일러가 내장되어 있어 실행 속도가 매우 빨라졌습니다.
- 동적 프로토타입 기반 객체 지향 언어
- 자바스크립트는 클래스가 아닌 프로토타입을 상속하는 프로토타입 기반 객체 지향 언어입니다.
- 자바스크립트에서는 객체를 생성한 후에도 프로퍼티와 메서드를 동적으로 추가하거나 삭제할 수 있습니다.
- 동적 타입 언어
- 자바스크립트는 변수 타입이 없습니다. 따라서 프로그램을 실행하는 도중에 변수에 저장되는 데이터 타입이 동적으로 바뀔 수 있습니다. 이러한 언어를 동적 타입 언어라고 합니다.
- 함수가 일급 객체
- 자바스크립트의 함수는 객체이며, 함수에 함수를 인수로 넘길 수 있습니다. 이것이 자바스크립트의 함수가 일급 객체인 이유입니다. 이 특성을 활용하여 고차 함수를 구현할 수 있어 함수형 프로그래밍이 가능해집니다.
- 함수가 클로저를 정의
- 자바스크립트의 함수는 클로저를 정의합니다. 클로저로 변수를 은닉하거나 영속성을 보장하는 등 다양한 기능을 구현할 수 있습니다.
자바스크립트의 기술적 요소
자바스크립트는 다음과 같은 기술적 요소로 구성된 언어입니다.
- ECMAScript(코어 언어)
- 자바스크립트의 핵심 기술은 ECMAScript로 규정되어 있습니다. ECMAScript는 ECMA라는 조직의 TC-39 위원회가 표준화 작업을 하고 있고, ECMA-262라는 문서로 공개되고 있습니다.
- 자바스크립트를 배울 때는 먼저 코어 언어의 내용부터 제대로 이해해야 합니다.
- 클라이언트 측의 고유한 기술 요소
- 웹 브라우저에서 동작하는 자바스크립트를 클라이언트 측 자바스크립트라고 합니다.
- 클라이언트 측 자바스크립트는 ECMAScript가 규정한 코어 언어와 웹 브라우저의 API로 구성되어 있습니다.
- 웹 브라우저의 주요 API는 다음과 같습니다.
- Window 인터페이스 : 자바스크립트는 브라우저 또는 창을 조작하는 기능을 제공합니다.
- DOM : 자바스크립트로 HTML 문서의 요소를 제어하는 기능을 제공합니다.
- WXLHttpRequest : 서버와 비동기로 통신하는 기능을 제공합니다.
- 서버 측 자바스크립트의 고유한 기술 요소
- 웹 서버에서 동작하는 자바스크립트를 서버 측 자바스크립트라고 합니다.
Ref.
'🍌JavaScript[자바스크립트]' 카테고리의 다른 글
[JavaScript] 02. 자바스크립트 변수와 값 - Gyunny (0) | 2024.05.03 |
---|