안녕하세요.
오늘은 각종 스크립트 언어의 종류와 용도 그리고 웹 기반 시스템 개발시 주로 사용하는 자바스크립트언어에 대해 이해하는 시간을 가져보도록 하겠습니다.

웹개발 서적이나 블로깅등에서 ES6,ECMAScript란 용어들을 많이 접해보셨을거라 생각합니다.
자바스크립트(JavaScript) 언어와 ECMAScript의 용어의 차이에 대해 하나씩 알아가 보도록 하겠습니다.

먼저 JavaScript나 ECMAScript나 두가지 용어 모두 뒤에 Script라는 용어가 들어가는데요
Script언어에 대해 먼서 설명드립니다.


1) Script 언어 

Script언어는 개발언어의 한 종류로 일반적으로 이미 존재하는 소프트웨어나 개발/서비스 환경을 손쉽고 빠르게 제어하기 위해 나온 개발언어 입니다.
대부분의 개발언어들이 자체 컴파일 환경(프로그래밍언어를 기계어로 변환해주는 환경)을 기반으로 작동한다면 스크립트 언어는 이미 개발이나 서비스하는 SW가 존재하고
해당 SW를  스크립트언어를 통해 매우 빠르게 배우고 쉽게 작성하여 기존에 존재하는 SW를 작동시키기 위해 고안되었으며 재사용 가능한 소스 코드조각(Snippet) 파일이나 간단한 컴퓨터 프로그래밍 개발 및 제어에  주로사용됩니다.

대표적인 스크립트 언어들로는 아래와 같은 언어들이 존재합니다.

A) JavaScript
웹브라우저의 자바스크립트 엔진(SW)기반에서 손쉽게 HTML,CSS를 제어하는 웹 프론트엔드드 어플리케이션 개발이나 ,서버기반에서 NodeFramework(SW) 기반에서 백엔드 어플리케이션등을 개발할때 사용하는 웹 개발 스크립트 언어(ECMAScript)


B) ShellScript
유닉스,리눅스 기반의 명령어 기반 시스템 제어 스크립트언어.
쉘(shell)이란 운영체제에서 제공하는 명령어을 실행하는 프로그램을 말합니다. 유닉스,리눅스 OS SW 시스템을 제어하는 명령어들의 집합을 묶어서 프로그램화한 시스템 제어 스크립트언어로  확장자로 .sh 를 사용합니다.
주로 리눅스 시스템에서 파일제어, 프로그램 실행, 문자열 출력,배치 처리, 어플리케이션 배포,서비스 실행등을 위한 다양한 목적으로 사용됩니다.


C) Vanilla JS
바닐라 자바스크립트(Vanilla JS)는 외부의 라이브러리나 프레임워크를 이용하지 않고 순수 자바스크립트 언어를 이용해 프로그램을 개발하는 문화 또는 그 방법론을 말합니다.
별도의 프로그래밍 언어나 문법이 존재하는것이 아닌 순수 자바스크립만을 이용해  목표하는 어플리케이션,시스템을 개발하는 개발방법론을 말합니다.

바닐라 스크립트 방법론을 사용하는 이유는 자바스크립트 기반 라이브러리나(Packages,JQuery),프레임워크(React,Vue,Angular..)들을 이용해 개발하는 것보다 그 실행속도와 성능, 디버깅에 유리하기 때문입니다.
또하나의 이유는 각종 자바스크립트 라이브러리를 이용하다보면  자바스크립트 본연의 기능,문법을 이해 못한 상태에서 프레임워크,라이브러리 종속적으로 개발하기 때문에 개발언어에 대한 이해도나 낮아지는 문제점들이 발생하기 때문입니다.


D) TypeScript 
2012년 마이크로소프트가 발표한 자바스크립트 기반 데이터의 형식(타입)을 정의하여 사용하는  정적타입 문법 기능을 제공하여 자바스크립트의 동적타입,느슨한 타입 이슈들에 대한 문제를 해결할수 있는 환경을 제공해주는 자바스립트 기본 문법 기반에 타입스크립트문법을 추가한 자바스크립트 슈퍼셋 스크립트 언어입니다.

.ts 확장자를 가지며 타입스크립트로 컴파일해 순수 자바스크립트 파일 .js 를 생성하는 패턴을 사용합니다.
타입스크립트는 객체지향 프로그래밍 기법을 완벽 지원합니다.


E) VBScript(Visual Basic Script=VBS):
마이크로소프트가 만든 언어로 과거 인터넷 익스플로러 웹브라우저,윈도우즈(서버) OS에서 JavaScript를 대체하는 웹 스크립트 언어로 사용되었으며 윈도우즈서버 상의 작업 자동화를 위해, 윈도우즈서버에서 서버 프로그래밍(백엔드) 언어로 사용되다 현재는 주로 MS Office SW(Excel) 업무 자동화 스크립트 언어로 그 명맥을 유지하고 있으며
조만간 서비스 중단 예정 입니다.

https://www.theregister.com/2023/10/10/microsoft_says_vbscript_will_be/ 



F) CoffeeScript
프로그래밍 언어로, 자바스크립트의 여러 단점을 해결하기 위해 제안되었다. 커피스크립트는 자신의 언어로 작성된 프로그램을 자바스크립트로 변환할 수 있는(소스 대 소스 컴파일) 컴파일러를 제공하기 때문에 개발할 때 자바스크립트를 쉽게 대체하여 사용할 수 있다.

커피스크립트는 2013년 3월 기준 깃허브에서 11번째로 널리 사용되는 언어이다.
2021년 4분기에는 순위가 37위까지 하락하였으며 현재는 그 사용이 미미하다.
https://ko.wikipedia.org/wiki/커피스크립트



2) JavaScript 와 ECMAScript(에크마) 이해 

JavaScript 언어는 Node Framework가 나오기 전까지는 웹브라우저 환경에서 주로 HTML/CSS언어로 구성된 웹페이지를 제어하기 위한 클라이언트/프론트엔드 웹 프로그래밍 언어로만 사용되다
Node Framework 출시 이후 Node Framwork가 설치된 모든 컴퓨터 OS(서버OS/ClientOS)에서 실행 가능한 객체 지향언어로 현재 발전해가고 있습니다.

과거 주로(2010년 이전까지) 웹 브라우저 기반에서  웹페이지 HTML/CSS 제어 및 기능 구현 언어로 사용되다 최근엔 서버측  동적 웹 프로그래밍(Node.js) 및 다양한 분야(IoT,모바일 앱 개발,AI)에서 사용되고 있습니다.

ECMA스크립트(ECMAScript, 또는 ES)란  ECMA 인터내셔널(정보 통신에 대한 표준을 제정하는 비영리 표준화 기구)의 ECMA-262 기술 규격을 기반으로 자바 스크립트 언어를 표준화하기 위해 만든 스크립트 프로그래밍언어를 말합니다.

흔히 말하는 자바스크립트나 ECMAScript는 동일한 의미를 가지며 자바스크립트 개발언어의 버저닝 공식명칭이라고 이해하면 좋을듯합니다.

HTML,CSS언어들이 발전하면서 각각의 언어 버전명(버저닝)을 HTML1,2,3,4,5 버전으로 CSS1,2,3로 명칭한것과는 다르게 자바스크립트는 위와 같은 사유로 ECMAScript(ES)라는 명칭을 이용해 언어의 버전명을 붙여 사용합니다.
자바스크립트언어의 기술 표준을 관리하는 기관명이 ECMA Internation여서  자바스크립트 개발언어 기본 버전명을 ECMAScript 또는 ES로 사용하고 있으며 2015년 이전 까지는 ES1,2,3,4,5 로 명명해오다 2015년도 이후 자바스크립트의 신규 문법들이 대거 추가되고 매년 새로운 기능들이 추가/변경 됨에 따라 버저닝 명명규칙을 숫자형태에서 년도식 표기법으로 현재까지 변경해서 사용하고 있습니다.

ES1,2,3,4,5 -> ES2015(ES6) -> ES2016.-->..ES2024 


HTML,CSS 의 국제기술표준을 관리하는 W3C와 마찮가지로 요즘 대부분의 웹 개발 기술,개발언어들은  국제 표준기구나 특정 기업 컨소시엄등에서 관리되어 지고 있으니
아래 참고링크를 참고하시며 좋을듯합니다.

다음 시간에는 ECMAScript 주요 문법들의 사용법에 대해 실습을 통해 알아보도록 하겠습니다.
감사합니다.

https://ko.wikipedia.org/wiki/표준화_기구
https://ko.wikipedia.org/wiki/Ecma_인터내셔널