Dev/JavaScript

[JavaScript] What is JavaScript?

just-e 2020. 11. 4. 12:29

What is JavaScript?

JavaScript는 웹 프로그래밍 언어로서 브라우저의 동적 부분을 조작하기 위해 만들어졌습니다.

1995년 넷스케이프 커뮤니케이션즈의 Brendan Eich가 개발하였으며, 처음부터 JavaScript라고 명명하지 않았습니다.

`Mocha` -> `Liva Script` -> `JavaScript` 순으로 바뀌면서 개발되었습니다.

 

JavaScript는 크로스 플랫폼(cross-platform), 객체지향 언어(OOP)입니다. 

- 크로스 플랫폼(cross-platform): 여러 종류의 컴퓨터 플랫폼에서 동작할 수 있는 것.
- 객체지향(OOP: Object Oriented programming): 실제 세계에 기반한 모델을 만들기 위해 추상화한 것. 여러 개의 객체 단위로 나눠 작업.

기본 JavaScript는 Array, Date, Math 등 기본이 되는 객체들(Core Set of Object)과 연산자, 제어 구조, 문장 등, 언어의 기본 요소들(Core Set of Language Elements)을 포함하고 있습니다.


JavaScript 특징

  1) JavaScript는 웹을 구성하는 요소 중 하나.

  2) JavaScript는 Prototype 기반의 객체지향적 언어.

       -> 재 이용성과 유지보수성이 편함.

  3) Script 언어.

       -> Script 언어란 간편한 코딩을 목적으로 만들어진 프로그래밍 언어를 말합니다.

  4) 인터프리터 언어(Interpreter Language).

       --> 별도의 컴파일 작업 수행 X.

             프로그램을 처음부터 일일이 해석해 컴퓨터가 이해할 수 있는 형식으로 번역해서 실행합니다.

             컴파일 언어에 비하여 동작이 느리다는 문제점이 있지만,

             컴파일과 같은 특별한 절차가 없다라는 장점이 있습니다.

             코드를 작성하여 바로 그 자리에서 손쉽게 실행할 수 있다는 점이 인터프리터 언어의 매력입니다.

  5) 몇 개의 부분 분류.

       --> 1. JavaScript Core

                 : 환경에 의존하지 않은 JavaScript로 언어로서의 표준적인 기능을 제공.

            2. BOM(Browser Object Model)

                 : 브라우저 상에서의 조작을 JavaScript로부터 실행하기 위한 기능.

            3. DOM(Document Object Model)

                 : 도큐먼트를 동적으로 조작할 수 있음.

            4. XMLRequest

                 : Ajax의 핵심적인 주요 기능.


ECMAScript?? JavaScript?? 는 무엇이죠?

ECMAScript는 Ecma International에 의해 제정된 Ecma-262 기술 규격에 의해 정의된 범용 스크립트 언어입니다.

쉽게 말해 자바스크립트의 표준화된 버전이며, JavaScript는 ECMAScript 사양을 준수하는 범용 스크립팅 언어입니다.

프로그래밍 언어의 타입, 값, 객체와 프로퍼티, 함수, 빌트인 객체 등 핵심 문법을 규정합니다. 각 브라우저 제조사는 ECMAScript를 준수하여 브라우저에 내장되는 자바스크립트 엔진을 구현합니다.


JavaScript는 웹 클라이언트만 지원하나요?

처음에는 웹 브라우저에서 클라이언트 측만 구현되었지만,, 이제는 JavaScript 엔진이 웹 서버 및 데이터베이스의 서버 측 등, 다양하게 JavaScript로 사용할 수 있습니다. 

 

! 클라이언트 JavaScript
  내장객체와 DOM(Document Object Model)을 제어할 수 있는 개체들을 제공함으로써 기본 언어를 확장.
   ex) 클라이언트 쪽 확장 기능은 응용 프로그램이 HTML 폼에 요소를 두어, 사용자 이벤트에 반응.
        (마우스 클릭이나 폼 입력, 페이지 이동 등)
! 서버 JavaScript
  서버에서 JavaScritp를 실행하는데 연관되는 개체들을 제공함으로써 기본 언어를 확장.
   ex) 서버 쪽 확장 기능은 응용 프로그램이 관계형 DB와 통신할 수 있게 하고 호출들 사이에 연속성 제공, 서버에서 파일 조작 수행.

Java !== JavaScript

JavaScript는 처음에는 다른 이름(Liva Script)이었습니다.

그러나 당시 Java가 많은 인기를 가지고 있었고 새로운 언어를 `Java의 동생`이라는 의미에서 JavaScript가 된 것입니다.

JavaScript와 Java 사이에 유사점이 있지만, 다른 언어입니다.

ex) Java와 JavaScript를 인도와 인도네시아의 관계에 비유해서 표현하기도 한다고 합니다.

 

JavaScript는 Prototype 기반의 객체지향이며, Java는 Class 기반의 객체지향입니다.

무엇보다 Java에서 쓰는 웹 기술은 서버 측 기술이며, JavaScript는 클라이언트 측 기술입니다.

그렇지만 요즘은 JavaScript로 서버까지 개발(NodeJS 이용)할 수 있습니다.

 

JAVA JavaScript
Java는 OOP(Object Oriented Programming) 프로그래밍의 대표적인 언어로 Class 기반의 객체지향 언어. JavaScript는 객체지향이지만 Class 기반이 아닌 Prototype 기반의 객체지향 언어.
변수 자료형이 반드시 선언되어야 하며, 컴파일 과정을 거친다. 변수 자료형을 미리 선언하지 않아도 브라우저가 자동으로 파악하며, 인터프리터 언어로서 컴파일 과정을 거치지 않는다.

 

 

참고 자료

- JavaScrip + jQuery 입문

- 인사이드 자바스크립트

- JavaScript 마스터북

- MDN