본문 바로가기
카테고리 없음

node.js - 자바스크립트 기본 형태? 그런거 없어요.

준비중인 책자 중 일부 내용 공유드립니다 :)

대부분의 컴퓨터언어는 시작하기 위해 기본적인 형태가 있게 마련입니다.
아래는 간단히 Hello World! 라는 결과를 출력하기 위한 각 언어의 기본 소스인데요.
최소 이런 구성이 이루어져야 결과를 뽑아볼 수 있습니다.

C#

using System;
 
namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");
        }
    }
}

 

C++

#include <iostream>
 
int main()
{
    std::cout << "Hello World!\n";
}

 

Visual Basic.NET

Imports System
 
Module Program
    Sub Main(args As String())
        Console.WriteLine("Hello World!")
    End Sub
End Module


하지만 자바스크립트는 단 한줄의 소스로 결과를 출력합니다.

console.log(“Hello, World!”);


보통 이러한 컴퓨터 언어를 인터프리터(Interpreter) 언어라 부릅니다.
인터프리터는 명령어를 실시간으로 해석하는데요 자바스크립트만 그런 것은 아닙니다.
피에이치피(PHP)나 파이썬(Python), 클래식 베이직(BASIC-엑셀의  VBA언어) 등
많은 언어들이 있지요.
인터프리터 언어는 미리 명령해석을 하는 컴파일(Compile) 언어에 비해 느린 단점이 있습니다.

하지만 2015년 크롬브라우저에 도입된 V8엔진은 자바스크립트를 실행하는 부분에 있어 훨씬 빠른 속도를 자랑했고, 현재 MS의 엣지 브라우저까지 도입되기에 이르렀습니다

V8엔진이 빠른 이유는 처음 자바스크립트를 만났을때 인터프리터로 해석하나,
이 후 동일 스크립트를 만났을 때는 해석된 코드를 사용하기 때문입니다.

요새 컴퓨터언어들은 인터프리터와 컴파일러 경계가 모호해졌습니다.
PHP도 그렇고 JIT(just-in-time) 라는 기술이 적용되어 처음에 한번만 인터프리터 해석이 되고 나중에는 컴파일된 코드를 사용하는 것이지요. 물론 스크립트가 수정된 경우 다시 해석을 하긴 합니다.

하여간 자바스크립트는 그리 느리지 않습니다. 물론 최강속도 C, C++에 비교할 수는 없지요.

// 1부터 10000000(천만)까지 수를 모두 합하는 소스 -> 0.135초만에 계산!

sum
=0; starttime=new Date().getTime();

for(let i=1;i<=10000000; ++i)sum+=i;
endtime=new Date().getTime();
console.log(endtime-starttime + "밀리초");
console.log("합계" + sum);
 
// 합계 : 50000005000000
//
계산에 걸린 시간 : 135밀리초

 요지는 빠르다 느리다를 논하자는 것이 아닙니다.

우리가 자바스크립트의 기초를 학습할 때 인터프리터 방식으로 학습이 가능하다는  것인데요.
인터프리터는 명령을 내리면 실시간으로 처리가 됩니다. 그 장점을 이용하는 것이지요.

단지 명령어 한개를 테스트하기 위해서 이것 저것 준비하고 소스를 저장하고 웹브라우저를 새로고침하는 과정이 필요없다는 것이지요.

 


기초편인데 좀 이해가 수월하실까 모르겠습니다.
필요하신 분께 도움이 되셨으면 하는 바램입니다.
오늘도 읽어 주셔서 감사합니다~

도움이 되셨다면 공감 한방, 댓글은 굿잡!
감사합니다~


다음 게시글 : https://itadventure.tistory.com/471

 

node.js - 02. 비장의 기술 개발자 도구!

준비중인 Node.js 책자 일부입니다. node.js 는 자바스크립트로 작동하는 언어라 자바스크립트를 잘 알면 이해가 수월한데요. 자바스크립트를 연습하기 위한 준비물이 그리 거창하지 않습니다. 2가

itadventure.tistory.com