관리 메뉴

Jerry

[JAVASCRIPT.INFO/Series #1]자바스크립트란? (What is Javascript) 본문

Front/JavaScript

[JAVASCRIPT.INFO/Series #1]자바스크립트란? (What is Javascript)

juicyjerry 2021. 5. 30. 23:42
반응형

 

 

 

 

 

제목에서 느꼈을 수도 있는데, 필자는 1일 1 커밋 운동처럼 1일 1 JAVASCRIPT.INFO 정리 글을 적어보려고 한다.

 

공부한 내용을 적어보는 거라 글의 형식이 파괴될 수 있으며 전문성 또한 떨어질 수 있다. 

 

하지만, 개인적으로 너무 욕심내지 않고 중요한 부분 위주로 이해가 쉽게 가도록 정리를 해보려고 한다. 

 

그러니 너그럽게 봐주길 바란다. 

 

 


 

자바스크립트란? 무엇일까?

필자는 이 제목을 보고 끌려서 글까지 적기로 생각을 했다. 

 

개인적으로 자바스크립트는 '기존의 정적인 HTML 환경에서 동적인 기능을 추가하고 싶어서 생긴 언어가 자바스크립트다.'라고 정도로 알고 있었다. 아무래도 깊게 자바스크립트에 대해 알지 못하더라도 "자바스크립트가 무엇이죠?"라는 질문을 받았다고 생각을 해보니, 클릭이 저절로 된 거 같다. 

 

여기서 이야기하는 자바스크립트도 방금 전 필자가 이야기했듯이,

 

 

자바스크립트의 정의를

'웹페이지에 생동감을 불어넣기 위해 만들어진 프로그래밍 언어'

라고 한다. 

 

(미적지근한 느낌이다...)

그렇다고 한다.

 

여기서, 자바스크립트로 작성한 프로그램을 스크립트(script)라고 부르며, 스크립트는 웹페이지를 불러올 때 자동으로 실행이 된다.

 

이 부분에 대해서는 생각을 안 해본 터라 "그랬구나!" 생각이 들었다. 평소에 HTML 안에 <script></script> 태그를 넣을 줄만 알지, 이게 무슨 의미하는지 몰랐던 것이다.

 

 

또한, 스크립트는 특별한 준비나 컴파일 없이 보통의 문자 형태로 작성할 수 있고, 실행도 가능하다고 한다. 

 

이런 점에서 자바와는 매우 다른 언어라고 할 수 있다!

자바스크립트가 아닌 자바의 공식 홈페이지에서는 이렇게 이야기하고 있다.

 

 

 

 

 

 

 

 

 

Key differences between Java and JavaScript:

  • Java is an OOP programming language while Java Script is an OOP scripting language.
  • Java creates applications that run in a virtual machine or browser while JavaScript code is run on a browser only.
  • Java code needs to be compiled while JavaScript code are all in text.
  • They require different plug-ins.

출처: 자바 | https://bit.ly/3fXqIGu

 


 

  • 자바는 OOP 프로그래밍 언어이며, 자바스크립트는 OOP 스크립트 언어다.
  • 자바는 브라우저나 가상 머신(virtual machine)에서 작동하는 애플리케이션을 만들며, 자바스크립트는 브라우저에서만 동작한다.
  • 자바 코드는 컴파일되어야 하며, 자바스크립트 코드는 모두 텍스트다.
  • 서로 다른 플러그인을 필요로 한다.

 

라고 이야기하고 있다. 자세한 내용은 MDN(링크)를 누르고 봐도 좋을 거 같다. 

 

 


 

여기서
프로그래밍 언어는 '컴퓨터 시스템을 작동시키는 소프트웨어를 만들기 위한 언어'라고 하며,

스크립트 언어는 '기존에 이미 존재하는 소프트웨어(애플리케이션)를 제어하기 위한 용도나 인터프리터 형식 같이 수정이 빈번하게 일어나는 곳에 쓰이는 언어'라고 한다. 

 

참고로, 컴파일러는 한꺼번에 컴파일한다. 인터프로터는 라인별로 컴파일한다.라는 특징이 있다. 

 

출처: 배움이 즐거운 개발자 | https://galid1.tistory.com/193

 

 

참고로 알 사람은 알겠지만, 처음 자바스크립트가 만들어졌을 때 이름은 'LiveScript'라고 불려졌다고 한다. 그러다 자바의 인기의 파도에 득(?)을 보려고 의도적으로 자바스크립트라고 부르기도 했다고 알려져 있다.

 

 


 

아무튼, 자바스크립트 서버에서도 실행할 수 있다. 

또한, 자바스크립트 엔진이라 불리는 특별한 프로그램이 들어 있는 모든 디바이스에서 동작한다.

브라우저에는 '자바스크립트 가상 머신'이라 불리는 엔진이 내장되어 있다.

 

엔진의 종류는 아래와 같이 있으며, 대표적인 브라우저만 적어보았다.

  • V8 - Chrome / Opera
  • SpiderMonkey - Firefox
  • IE - Trident나 Chakra

 

엔진의 동작 원리는 계속 공부를 하고 있고, 앞으로도 꾸준히 해야 된다고 느끼는 것 중 하나인데, 이 글에서 언급하여 간단히 적어보았다. 

 

엔진이 스크립트를 읽는다 (파싱이라고 부른다).

읽어 들인 스크립트를 기계어로 전환한다 (컴파일이라고 부른다).

기계어로 전환된 코드가 실행된다 (기계어로 전환되어 속도가 증가한다).

 

엔진은 프로세스 단계마다 최적화를 진행하며, 컴파일이 끝나고 실행 중인 코드를 감시하면서

코드로 흘러가는 데이터를 분석하고 분석한 결과를 가지고 기계어로 전환된 코드를 다시 최적화한다고 한다. 

이런 과정을 겪으면서 속도는 증가한다.

 

(엔진이란.. 무엇일까...)

 

 

자바스크립트의 강점

  • HTML/CSS와 완전히 통합할 수 있음
  • 간단한 일은 간단하게 처리할 수 있게 해 줌
  • 모든 주요 브라우저에서 지원하고, 기본 언어로 사용됨

 

이 세 가지 모두 지원하는 브라우저 연관 기술은 자바스크립트 밖에 없다고 한다!

이런 특징 때문에 브라우저 인터페이스 제작에 자바스크립트가 널리 사용되고 있다!

 

 

자바스크립트와 트랜스 파일

자바스크립트가 아무리 좋아도, 자바스크립트 문법이 모든 욕구를 만족시키지 못한다.

각기 원하는 기능이 있기 때문이다. 그래서, 근래엔 브라우저에서 실행되기 전에 자바스크립트로 트랜스 파일(변환) 할 수 있는 새로운 언어들이 등장을 했다.

 

  • CoffeeScript: 자바스크립트를 위한 '문법적 설탕(syntactic sugar)'
  • TypeScript: 자료형의 명시화(strict data typing)에 집중해서 만든 언어 (마소 개발)
  • Flow: 이 친구도 typescript처럼 자료형을 강제하지만 다른 방식이라고 한다 (페북 개발)
  • Dart: 브라우저가 아닌 환경에서 동작하는 고유의 엔진을 가진 언어 (구글 개발)

 

각 트랜스 파일이 가능한 언어를 자세히 살펴보진 않았지만, 결국엔 자바스크립트로 변환된다는 것을 알게 되었다. 

무엇보다도, 타입스크립트가 저런 목적에 의해 만든 트랜스 파일 언어라는 것을 알게 되어서 기쁘다. ㅎㅎ

 

위에서 언급한 각기 원하는 기능이 뭐길래.. 트랜스 파일 언어를 만들었는지도 사실 궁금하다. 

 

 

 

요약

  • 자바스크립트는 '웹페이지에 생동감을 불어넣기 위해 만들어진 프로그래밍 언어'로 브라우저에서만 쓸 목적으로 고안된 언어지만, 다양한 환경에서 쓰이고 있다.
  • 또한, 자바스크립트로 트랜스 파일을 할 수 있는 언어가 있다. 각 트랜스 파일 언어가 지닌 고유한 기능이 있다.

 

 

 

 

 

출처 : JAVASCRIPT.INFO | https://ko.javascript.info/intro

 

반응형