인터프리터 언어는 프로그램의 소스 코드를 한 줄씩 읽고 해석하며 동시에 실행하는 프로그래밍 언어입니다. 이는 컴파일 언어와는 다른 실행 방식을 가지고 있습니다.
일반적으로, 컴파일 언어는 소스 코드를 기계어로 번역하는 컴파일러를 사용하여 전체 소스 코드를 한 번에 번역한 후 실행 가능한 파일을 생성합니다. 이렇게 생성된 실행 파일은 컴퓨터에서 직접 실행됩니다.
반면에 인터프리터 언어는 소스 코드를 한 줄씩 읽고 해석하여 실행합니다. 인터프리터는 소스 코드를 해석하는 동시에 실행하기 때문에, 번역된 실행 파일이 생성되지 않습니다. 인터프리터는 소스 코드를 실행하는 환경에서 동작하며, 소스 코드의 변경사항을 즉시 반영할 수 있습니다.
동적 언어는 프로그램이 실행 중에 타입을 결정하고 변수의 타입을 동적으로 변경할 수 있는 언어를 말합니다. 즉, 변수의 타입을 미리 선언하거나 정적으로 결정하지 않고, 실행 도중에 동적으로 타입을 결정할 수 있는 특징을 갖습니다.
자바스크립트에서는 변수의 타입을 선언하지 않고 사용할 수 있으며, 같은 변수에 다른 타입의 값을 할당할 수도 있습니다. 이는 동적으로 타입이 결정되는 특징을 나타냅니다. 예를 들어, 하나의 변수에 먼저 숫자를 할당하고 나중에 문자열을 할당할 수 있습니다.
정적 프로그래밍 언어는 변수의 타입을 선언하고 컴파일 시점에 타입을 검사하며, 타입 오류를 방지하기 위해 엄격한 타입 체크를 수행합니다. 자바, C++, C#과 같은 언어들이 정적 언어의 예시입니다.
타입스크립트는 변수의 타입을 명시적으로 선언하고 컴파일러가 타입을 검사하여 타입 오류를 사전에 발견할 수 있습니다. 이는 개발자가 코드를 작성하는 도중에 발생할 수 있는 일부 오류를 사전에 예방하고 디버깅 시간을 단축시키는 장점을 제공합니다. 또한, 타입스크립트는 코드의 가독성을 높이고 유지보수를 용이하게 만들어줍니다.
자바스크립트는 다중 패러다임 언어로서 객체 지향 프로그래밍과 함수형 프로그래밍의 특징을 모두 지원합니다. 이는 객체를 생성하고 상속을 통해 코드를 구성하며, 동시에 함수를 값으로 다루고 고차 함수(higher-order function)를 활용하여 함수를 조합하거나 전달할 수 있다는 의미입니다.
DOM (Document Object Model)은 HTML, XML 또는 XHTML 문서의 구조를 표현하는 방법입니다. 웹 페이지의 요소들을 계층적인 트리 구조로 표현하며, 각각의 요소는 객체로서 다룰 수 있습니다.
DOM은 웹 브라우저에서 문서에 접근하고 조작할 수 있는 프로그래밍 인터페이스(API)를 제공합니다. 이를 통해 JavaScript와 같은 스크립트 언어를 사용하여 웹 페이지의 내용, 구조, 스타일 등을 동적으로 변경하거나 상호작용할 수 있습니다.
DOM은 트리 구조로서 요소(element), 속성(attribute), 텍스트(text) 등의 다양한 노드(node)로 구성됩니다. 각 노드는 특정한 태그 이름을 가지며, 부모-자식 관계로 연결됩니다. 이를 통해 웹 페이지의 모든 요소들을 접근하고 조작할 수 있습니다.
예를 들어, DOM API를 사용하여 특정 HTML 요소를 선택하고 해당 요소의 내용을 변경하는 코드는 다음과 같이 작성할 수 있습니다:
// HTML 요소 선택
const myElement = document.getElementById("myElement");
// 내용 변경
myElement.textContent = "새로운 내용";