자바스크립트 ( JavaScript ) 란?
자바스크립트(JavaScript) 는 웹 브라우저에서 동작하는 스크립트 언어 중 하나이다. HTML, CSS와 함께 웹 프로그래밍을 할 수 있도록 고안되었으며, 다양한 용도로 사용된다. 자바스크립트는 기본적으로 클라이언트 측에서 실행되는 스크립트 언어로, 웹 페이지를 동적으로 만들고, 사용자와 상호 작용하는 기능을 구현할 수 있다. 예를 들어, HTML 요소의 속성 값을 변경하거나, 이벤트 핸들러를 등록 하여 사용자의 동작에 따라 새로운 기능을 수행하도록 할 수 있다. 또한, AJAX를 이용하여 서버와 비동기적으로 데이터를 주고받는 기능을 구현할 수도 있다. 자바스크립트는 브라우저를 제어하는 데 주로 사용되지만, Node.js와 같은 서버 측 프레임워크를 이용하여 서버 측에서도 사용될 수 있다. 이러한 이유로, 자바스크립트는 현재 가장 널리 사용되는 언어 중 하나이며, 다양한 분야에서 사용되고 있다.
컴파일러 vs 인터프리터
인터프리터 언어는 실행 시간에 소스 코드를 해석하여 실행하는 언어로, 코드를 컴파일하지 않고 바로 실행한다. JavaScript 엔진은 소스 코드를 바로 실행할 수 있는 중간 코드로 변환하는 Just-In-Time 컴파일러를 사용하여 코드를 해석하고 실행한다.
그러나 최근 JavaScript 엔진은 기계어 코드를 생성하는 옵티마이저를 갖추고 있어, 컴파일러 언어와 유사한 성능을 낼 수 있다. 이러한 이유로 일부 전문가들은 JavaScript를 컴파일 언어로 분류하기도 한다.
결론적으로, JavaScript는 일반적으로 인터프리터 언어로 분류되지만, 최근의 개발 동향으로 봤을 때 컴파일러 언어와의 경계가 점점 흐려지고 있다.
컴파일 언어에 동작 흐름
Java 언어에서 컴파일러의 정식 명칭은 "Java 컴파일러 (Java Compiler)"이다.
Java 컴파일러는 Java 소스 코드를 컴파일하여 바이트 코드(Bytecode)를 생성한다. 이 바이트 코드는 Java 가상 머신(Java Virtual Machine, JVM)에서 실행된다.
Java 컴파일러는 JDK(Java Development Kit)의 일부로 제공되며, javac라는 명령어를 사용하여 컴파일할 수 있다. javac 명령어는 Java 소스 코드 파일을 컴파일하여 클래스 파일을 생성합니다. 이후에는 java 명령어를 사용하여 생성된 클래스 파일을 실행할 수 있다.
인터프리터 언어의 동작 흐름
인터프리터 언어의 경우, 코드를 실행하기 위해 컴파일 단계가 없다. 대신, 소스 코드가 런타임에 직접 해석되고 실행된다.
- 소스 코드 해석: 인터프리터 언어의 실행환경은 소스 코드를 한 줄씩 읽고 해석한다. 이것은 컴파일 단계 없이 직접 이루어진다.
- 실행: 코드가 해석되면 즉시 실행된다. 각각의 코드 라인은 실행 환경에서 해석되고 해당 작업이 수행된다.
- 실행 결과: 코드가 실행되면서 결과가 바로 나타난다. 이 결과는 종종 변수, 함수, 또는 다른 데이터 구조에 저장된다.
인터프리터 언어는 컴파일 언어와 달리 실행 환경에서 소스 코드를 직접 해석하기 때문에 소스 코드 수정 및 실행이 빠르게 반영된다. 그러나 이로 인해 실행 시간에 일부 성능 저하가 발생할 수 있다.
요약
자바스크립트는 웹 개발에서 핵심적인 역할을 하는 스크립팅 언어이다. 우리가 자바 스크립트를 배워야 하는 이유는 브라우저 호환성, 동적인 사용자 인터페이스, 비동기 처리, 프론트엔드 및 백엔드 개발, 다양한 라이브러리와 프레임워크, 크로스 플랫폼 개발 등에 활용 되지만 우리의 1차 목표는 웹 페이지에서 사용자와 상호 작용하는 똑똑한 웹 페이지를 구축하기 위해 사용해보도록 한다.
'JS' 카테고리의 다른 글
JS - 점검 5 ( Browser Object Model ) (0) | 2024.07.26 |
---|---|
JS - 점검 4 ( Document Object Model ) (0) | 2024.07.26 |
JS - 점검 3 ( 함수의 이해와 활용 ) (1) | 2024.07.26 |
JS - 점검 2 ( 객체와 배열 ) (0) | 2024.07.26 |
JS - 점검 1 ( 데이터 타입 및 연산 ) (0) | 2024.07.19 |