본문 바로가기
개발공부일지/JavaScript

Java Script - Java Script 란 무엇인가?

by Hynn1429 2022. 10. 28.
반응형

안녕하세요.

Hynn 입니다.

 

HTML/CSS 에 대한 기본단계, 맛보기가 끝났다면 이제 이 포스팅을 보고 계실 것입니다.

이번 포스팅에서부터는 HTML/CSS 를 통해 웹 페이지를 표시되도록 만들었다면, 이에 그치지 않고 실제 "동작" 하는 페이지로 만드는 과정을 위해 필요한 Java Script 언어를 알아보고 익혀보도록 하겠습니다.

 

꽤나 대장정이 될 수 있지만, 저도 공부하는 과정이고, 혹시라도 이 글을 읽고 계신 독자분들도 같이 배우는 시간이 되기를 기대합니다.

 

 

===========

1. Java Script 는 무엇인가?

2. JavaScript 의 특징 

3. JavaScript 의 사용영역 및 특징  

4. 대표적 영역 

 

==========

 

1. Java Script 는 무엇인가?

 

JavaScript 언어는 상당히 우여곡절이 많은 언어라고 할 수 있습니다.

이 언어는 최초에는 정말 짧은 시간내에 만들어져 배포되었을 정도로 수준이 낮고, 저급한 언어라는 인식이 존재했었습니다.

 

기존의 환경에서는 JavaScript 를 기반으로 이루어진 웹 페이지가 아니라,

주로 Adobe Flash Player 기반의 웹 사이트가 주를 이루었었습니다. 

하지만, Apple 이 개막하게 된 모바일 시대에서 지금은 고인이 되신 Steve Jobs 는 폭탄발언을 하면서 JavaScript 로의 전환을 급격하게 시작하게 되었습니다.

 

바로 기존의 웹 브라우저 환경에서는 Adobe 의 Flash 기반이 대세였습니다.

최초로 Java Script 를 개발하고 이름을 붙였을 당시에도, 오라클의 Java 에서 이름을 따왔다고 할 정도로, 유명세에 묻어가려는 느낌이 있었지만,  지금은 Java 보다 Java Script 가 더 유명하고많이 접해보았으리라 생각됩니다.

 

기존의 조약한 환경에서 발전되어 JavaScript 는 최근에 들어서 크게 발전을 이루기도 했습니다.

2015년도에 발표된 ECMA6 (EM6) , 이후에 ECMA7 을 거치면서 비약적인 발전을 이루어 냈습니다. 

 

 

2. JavaScript 의 특징 

Java Script 의 특징에 앞서, 컴퓨터의 언어들은 몇가지 종류로 나뉘게 됩니다.

 

1. 객체지향 언어

2. 함수형

3. 프로토타입

 

1. 객체지향 언어) 

객체지향언어는 글자 그대로 Object,  이는 명령어들이 각자의 "객체"들의 그룹이 되어 객체간의 메시지를 주고 받음으로서 연결하는 언어라고 정의하면 조금 더 쉽게 이해가 가능합니다. 대표적으로 C++, C+, Java 가 있습니다.

 

2. 함수형 언어)

함수형 언어는 수학적 추상화적인 기반에서 시작된 프로그래밍 언어입니다. 자료처리를 수학적 함수의 계산으로 취급하고, 상태와 가변데이터를 멀리하는 특성을 지닙니다. Haskell, SML, Clojure 가 대표적입니다.

 

3. 프로토타입)

프로토타입 언어가 지금부터 다루게 될 JavaScript 언어가 속한 그룹이라고 할 수 있습니다.

이 언어는 객체지향에서 파생된 언어이기도 하지만,  이 언어는 객체(Object) 를 기반으로 하여, 복제의 과정을 거쳐 동작방식을 다시 사용하는 방식이라고 할 수 있습니다. 

 

3. JavaScript 의 사용영역 및 특징 

 

JavaScript 가 가진 특성적인 작동은 사용자가 명령어를 작성하여 입력을 하면, Runtime, 즉 이 언어를 컴퓨터에게 전달하는 Engine 으로 전달하고, Engine 은 이 언어를 전달하여 처리 후 다시 사용자에게 반환하는 과정을 거칩니다.

 

 

간단하게 단계를 표시했지만, JavaScript 는 사용자가 언어를 작성하면 인터프리터, 즉 언어를 한줄 한줄 해석합니다. 이렇게 하는 경우, 처리해야될 언어의 양이 많아지면 퍼포먼스 측면에서 문제가 발생할 수 있습니다. 이러한 문제로 JavaScript 에서 성능을 비약적으로 향상시키게 된 계기는 엔진 내부에서 컴파일 과정을 같이 거치게 됩니다.

 

이 엔진은 엔진이 실행할 JavaScript 파일을 받은 뒤, 파싱, AST 를 구축하는 과정을 거칩니다.

 

그리고 난 뒤 인터프리터가 코드를 줄 단위로 읽으며 실행합니다. 이를 수행하는 과정에서 최적화 할 수 있는 코드를 컴파일러에게 전달해주고, 반복되서 실행되는 코드 블록을 컴파일이라고 부릅니다. 

 

특징적으로 JavaScript 는 인터프리터 언어로도 불리우지만, 이러한 발전으로 인해 엔진에서, 플랫폼에 따라 인터프리팅과 컴파일이 혼합되어 사용됩니다. 이러한 배경으로 성능적인 측면에서도 비약적인 향상이 이루어 졌습니다. 

 

4. 대표적 영역 

 

JavaScript 는 크게 두가지 영역에서 사용됩니다.

하지만 이 영역에서 사용되는 명령어는 같을수도, 다를수도 있기 때문에, 자신이 사용하고자 하는 환경이 어떠한 환경인지를 반드시 파악해야 합니다.

이를 파악하지 않고 작성을 했다가는, 의도한 동작이 이루어지지 않고 난관에 빠지는 모습을 보시게 될 수 있기 때문에 주의가 필요합니다.

 

핵심은 API 가 다르다는 점이고, 이는 중요한 차이가 존재합니다.  가장 특징적 요소를 살펴보면 아래와 같이 정리가 가능합니다.

 

1) Borwser Area

브라우저에서 사용되는 Java Script 는 아래의 대표적 특성을 지니고 있습니다.

웹 사이트에서 사용하는 JavAScript 는 당연히, 시각적인 표현이 필요합니다. 이는 기존의 HTML/CSS 와 다른 영역의 시각적 표현이고, 예를들면, 일정시간마다 이미지를 바꾸거나, 특정 메뉴를 클릭하거나 커서를 대면 특정한 기능이 표시되는 정보라든지, 이런 것을 HTML/CSS 만으로 하기는 무리일 것입니다.

 

또한 브라우저 단에서는 컴퓨터의 정보, 파일생성, 제어등이 필요하지 않기 때문에 당연히 이러한 기능은 존재하지 않습니다.

 

2) Node.js

반대로 Node.js 는 브라우저와 달리, Back-end 영역에서 사용된다고 이해하면 쉽습니다.

당연히 이러한 사용영역에서는 시각적 표현이 필요하지 않습니다.하지만 반대로 컴퓨터 제어가 필요하고, 파일 생성이나, 정보 확인등의 대한 시스템 측면의 요소가 필요합니다.

이러한 정보는 당연하게도 차이가 발생할 수 밖에 없기 때문에 이에 대한 차이가 존재할 수 밖에 없습니다.

 

 

간단하게 요약하더라도 많은 차이가 존재하는 언어입니다.

작성된 언어 외에도 다양한 언어가 존재하지만, 현재 다루는 언어들은 매우 대표격의 언어라고 할 수 있습니다.

 

다음 포스팅에서는 기초적인 작성에 대해서 배워보도록 하겟습니다. 

 

감사합니다.

반응형

댓글