[study] 자바스트립트는 무슨 언어?

김대운·2023년 6월 1일
0

study

목록 보기
5/7

자바스크립트란 무슨 언어인가요 ?

  1. 자바스크립트는 인터프리터 언어로서, 웹 개발을 위해 주로 사용되지만 서버 사이드 개발이나 모바일 애플리케이션 등 다양한 플랫폼에서도 사용됩니다.

  1. 자바스크립트는 클라이언트 측에서 실행되며, 웹 페이지의 동작을 제어하고 상호작용을 가능하게 합니다.

  1. 자바스크립트는 동적 프로그래밍 언어이다.
  1. 자바스크립트는 객체 지향 프로그래밍과 함수형 프로그래밍의 특징을 모두 지원합니다.

  1. 자바스크립트는 브라우저의 기본 기능을 제어하는 DOM(Document Object Model)에 접근할 수 있는 API를 제공합니다.
  1. 자바스크립트는 다양한 라이브러리와 프레임워크를 통해 기능을 확장하고 개발 생산성을 향상시킬 수 있습니다.



꼬리 질문

인터프리터 언어

  • 인터프리터 언어는 프로그램의 소스 코드를 한 줄씩 읽고 해석하며 동시에 실행하는 프로그래밍 언어입니다. 이는 컴파일 언어와는 다른 실행 방식을 가지고 있습니다.

  • 일반적으로, 컴파일 언어는 소스 코드를 기계어로 번역하는 컴파일러를 사용하여 전체 소스 코드를 한 번에 번역한 후 실행 가능한 파일을 생성합니다. 이렇게 생성된 실행 파일은 컴퓨터에서 직접 실행됩니다.

  • 반면에 인터프리터 언어는 소스 코드를 한 줄씩 읽고 해석하여 실행합니다. 인터프리터는 소스 코드를 해석하는 동시에 실행하기 때문에, 번역된 실행 파일이 생성되지 않습니다. 인터프리터는 소스 코드를 실행하는 환경에서 동작하며, 소스 코드의 변경사항을 즉시 반영할 수 있습니다.

동적 프로그래밍 언어란?

  • 동적 언어는 프로그램이 실행 중에 타입을 결정하고 변수의 타입을 동적으로 변경할 수 있는 언어를 말합니다. 즉, 변수의 타입을 미리 선언하거나 정적으로 결정하지 않고, 실행 도중에 동적으로 타입을 결정할 수 있는 특징을 갖습니다.

  • 자바스크립트에서는 변수의 타입을 선언하지 않고 사용할 수 있으며, 같은 변수에 다른 타입의 값을 할당할 수도 있습니다. 이는 동적으로 타입이 결정되는 특징을 나타냅니다. 예를 들어, 하나의 변수에 먼저 숫자를 할당하고 나중에 문자열을 할당할 수 있습니다.

정적 프로그래밍 언어란?

  • 정적 프로그래밍 언어는 변수의 타입을 선언하고 컴파일 시점에 타입을 검사하며, 타입 오류를 방지하기 위해 엄격한 타입 체크를 수행합니다. 자바, C++, C#과 같은 언어들이 정적 언어의 예시입니다.

  • 타입스크립트는 변수의 타입을 명시적으로 선언하고 컴파일러가 타입을 검사하여 타입 오류를 사전에 발견할 수 있습니다. 이는 개발자가 코드를 작성하는 도중에 발생할 수 있는 일부 오류를 사전에 예방하고 디버깅 시간을 단축시키는 장점을 제공합니다. 또한, 타입스크립트는 코드의 가독성을 높이고 유지보수를 용이하게 만들어줍니다.

객체 지향 프로그래밍이란?

  • 객체를 중심으로 프로그램을 구성하는 개념입니다.
  • 프로그램을 객체들의 집합으로 모델링하고, 객체들 간의 상호작용을 통해 문제를 해결합니다.
  • 클래스(class)를 정의하여 객체의 상태(속성)와 행위(메서드)를 캡슐화하고, 이를 기반으로 객체를 생성합니다.
  • 캡슐화, 상속, 다형성과 같은 개념을 활용하여 코드의 재사용성과 유지보수성을 높일 수 있습니다.
  • 대표적인 객체 지향 프로그래밍 언어로는 자바(Java), C++, C# 등이 있습니다.

함수형 프로그래밍이란?

  • 함수를 중심으로 프로그램을 구성하는 개념입니다.
  • 프로그램을 수학적인 함수들의 조합으로 모델링하고, 상태 변경보다는 데이터 변환에 초점을 맞춥니다.
  • 함수를 일급 시민으로 취급하여 함수를 변수에 할당하거나 함수를 다른 함수의 인자로 전달하고 반환할 수 있습니다.
  • 부작용(side effect)을 최소화하여 예측 가능하고 안정적인 코드를 작성하며, 상태 변경을 피하고 불변성(Immutability)을 강조합니다.
  • 순수 함수(pure function)를 통해 입력에 대한 예측 가능한 결과를 보장하고, 공유 상태를 피하는 것을 선호합니다.
  • 대표적인 함수형 프로그래밍 언어로는 Haskell, Scala, Clojure 등이 있으며, 자바스크립트도 일부 함수형 프로그래밍의 특징을 지원합니다.

자바스크립트는 다중 패러다임 언어로서 객체 지향 프로그래밍과 함수형 프로그래밍의 특징을 모두 지원합니다. 이는 객체를 생성하고 상속을 통해 코드를 구성하며, 동시에 함수를 값으로 다루고 고차 함수(higher-order function)를 활용하여 함수를 조합하거나 전달할 수 있다는 의미입니다.

DOM

  • DOM (Document Object Model)은 HTML, XML 또는 XHTML 문서의 구조를 표현하는 방법입니다. 웹 페이지의 요소들을 계층적인 트리 구조로 표현하며, 각각의 요소는 객체로서 다룰 수 있습니다.

  • DOM은 웹 브라우저에서 문서에 접근하고 조작할 수 있는 프로그래밍 인터페이스(API)를 제공합니다. 이를 통해 JavaScript와 같은 스크립트 언어를 사용하여 웹 페이지의 내용, 구조, 스타일 등을 동적으로 변경하거나 상호작용할 수 있습니다.

  • DOM은 트리 구조로서 요소(element), 속성(attribute), 텍스트(text) 등의 다양한 노드(node)로 구성됩니다. 각 노드는 특정한 태그 이름을 가지며, 부모-자식 관계로 연결됩니다. 이를 통해 웹 페이지의 모든 요소들을 접근하고 조작할 수 있습니다.

API

  • API (Application Programming Interface)는 응용 프로그램에서 사용할 수 있는 함수, 클래스, 메서드 등의 집합이며, 이를 통해 프로그래머가 다른 소프트웨어와 상호작용할 수 있습니다. JavaScript에서 DOM API는 웹 브라우저 환경에서 JavaScript 코드가 웹 페이지의 요소와 상호작용할 수 있도록 제공되는 API입니다. DOM API를 사용하면 JavaScript 코드로 웹 페이지의 요소를 선택하고, 속성을 변경하거나 이벤트를 처리할 수 있습니다.

예를 들어, DOM API를 사용하여 특정 HTML 요소를 선택하고 해당 요소의 내용을 변경하는 코드는 다음과 같이 작성할 수 있습니다:

// HTML 요소 선택
const myElement = document.getElementById("myElement");

// 내용 변경
myElement.textContent = "새로운 내용";
  • 위 코드에서 document는 DOM API의 일부인 document 객체를 의미하며, getElementById는 해당 ID를 가진 요소를 선택하는 메서드입니다. 선택된 요소에 접근하여 textContent 속성을 변경함으로써 해당 요소의 내용을 수정할 수 있습니다. 이는 DOM API를 통해 웹 페이지의 동적인 변경이 가능하게 해줍니다.

0개의 댓글