티스토리 뷰
자바스크립트란?
자바스크립트(JavaScript)는 웹 페이지를 보다 동적이고 상호작용적으로 만들어주는 프로그래밍 언어입니다.
'스크립트'라는 단어가 대본을 떠오르게 하지만, 프로그래밍에서는 조금 다른 의미를 가집니다. 여기서 '스크립트'는 웹 페이지 안에서 실행되는 작은 프로그램이나 명령들을 의미해요. 자, 그러니까 '자바스크립트 기반'이라는 말은 해당 프로그램이 자바스크립트 언어를 사용하여 만들어졌다는 걸 의미합니다.
웹 브라우저는 자바스크립트를 이해하고 실행할 수 있기 때문에, 이런 프로그램은 웹사이트에서 바로 실행되어 여러 가지 기능을 수행할 수 있죠. 예를 들어, 자바스크립트 기반의 보안 프로그램은 웹사이트를 이용할 때 보안을 강화하는 역할을 할 수 있어요. 예를 들면 사용자의 행동을 감지하여 비정상적인 활동이나 해킹 시도를 차단하는 것이죠.
커피 '자바'와 대본 '스크립트'가 만나서 컴퓨터 세계의 슈퍼히어로가 되었다고나 할까요? ㅎㅎ
Node.Js 등장
원래 자바스크립트는 웹 브라우저 내에서만 작동하는 언어로 시작했지만, 이제는 다양한 환경에서 사용할 수 있게 되었어요. 이 변화의 핵심은 'Node.js'라는 플랫폼 덕분입니다. Node.js는 자바스크립트를 브라우저 밖의 세상으로 나오게 해준 아주 강력한 환경이에요.
자바스크립트 공식 문서가 있는 사이트입니다. 문서가 아주 잘 되어있어서 공부하기 좋아요.ㅎㅎ
https://developer.mozilla.org/ko/docs/Web/JavaScript
스크립트 언어
스크립트 언어와 일반 프로그래밍 언어의 차이점에 대해 한번 정리해 볼게요.
일반 프로그래밍 언어
먼저 일반 프로그래밍 언어는,
일반적으로 소스 코드를 기계어로 변환하는 '컴파일' 이라는 과정을 거칩니다. 이 과정은 프로그래머가 작성한 소스코드를 특정 환경에서 실행 가능한 형태로 만들어 주는 과정이며 컴파일되어 코드는 특정 운영체제나 특정 하드웨어에서 직접 실행됩니다. 기계어로 변환하는 과정이므로 기계(보통 CPU)에 맞게 프로그램 파일이 만들어 집니다.
그러니까 우리가 많이 사용하는 컴퓨터 (보통 X86계열)에 윈도우 11 을 위한 프로그램을 만들 것인지 혹은 스마트폰등에 많이 사용되는 ARM에서 리눅스 운영체제를 사용하는 기기에서 동작할 프로그램인지에 따라서 컴파일된 최종 결과물이 달라집니다. 보통 윈도우용으로 만들어진 프로그램은 리눅스에서 동작하지 않습니다. 반대의 경우도 마찬가지구요.
대표적인 컴파일 언어로는 C, C++, Java 등이 여기에 속합니다.
자바와 자바스크립트를 혼동하시는 분들이 있는데 전혀 다른 언어입니다.
일반적으로 컴파일 언어는 더 빠른 실행 속도를 제공합니다. 기계어로 변환되었기 때문에 바로 동작할 수 있는 것이지요. 시스템 프로그래밍 이나, 대규모 소프트웨어 개발, 고성능 필요 작업 등에 주로 사용됩니다.
위 그림은 인공지능이 그려준 일반 프로그래밍 언어의 제작과정인데 이상하니까 그냥 그림으로만 감상해보세요 ㅎㅎㅎ
스크립트 언어
반면 스크립트 언어는 인터프리터 방식이 사용됩니다. 스크립트 언어는 '인터프리터'라는 프로그램을 통해 소스 코드를 바로 실행합니다. 즉, 별도의 컴파일 과정 없이 코드를 한 줄씩 읽고 실행합니다.
대표적으로 JavaScript, Python, Ruby 등이 여기에 해당합니다.
스크립트 언어는 유연하고 개발 속도가 빠릅니다. 소스 코드를 바로 실행할 수 있기 때문에, 개발과 테스트 과정이 빠르고 간편합니다. 이런 스크립트 언어들의 사용분야는 주로 웹 개발, 자동화 스크립트, 데이터 분석 등 다양한 분야에서 널리 사용됩니다.
둘 다 프로그래밍 언어이며, 복잡한 작업을 자동화하고, 소프트웨어 개발에 사용된다는 공통점이 있습니다.
차이점으로는 주로 실행 방식(컴파일 방식 vs 인터프리터 방식), 개발 및 실행 속도, 사용되는 분야에서 차이가 납니다.
이렇게 보면, 스크립트 언어는 좀 더 빠른 개발과 테스트를 가능하게 하는 반면, 일반 프로그래밍 언어는 성능 면에서 우위를 가질 수 있습니다. 물론, 이런 차이는 언어의 특성뿐만 아니라, 사용되는 환경과 요구 사항에 따라 달라질 수 있어요.
"스크립트 언어는 마치 레시피를 따라 요리하는 셰프 같아요. 레시피를 보고 바로 요리를 시작하죠. 반면 일반 프로그래밍 언어는 요리 전에 재료를 준비하고 계획을 세우는 것과 비슷해요. 준비 과정이 필요하지만, 결과적으로 더 효율적일 수 있죠!"