이번 포스팅에서는 간단한 cs지식들과 함께 Node.js란 무엇인지에 대해 조금 알아보고자 한다.
Node.js 공식 홈페이지에서는 Node.js를 다음과 같이 설명하고 있다.
Node.js는 Chrome V8 JavaScript 엔진으로 빌드된 JavaScript 런타임입니다.
우선 앞부분의 설명을 살펴보면 Chrome 브라우저에서 사용하고 있는 V8 엔진을 가지고 만들어진 것이 Node.js라는 사실은 파악할 수 있다. 그렇다면 JavaScript 런타임이란 말은 무엇을 의미하는 걸까? JavaScript 런타임이란 말을 이해하기 위해 OS(운영체제)와 CLI(Command-line Interface)에 대해 간략하게 알아보자.
우리말로 "운영체제"라고 불리는 OS(Operating System)는 간단하게 컴퓨터를 실행시켜주는 녀석이라고 생각하면된다. 컴퓨터에는 하드웨어와 소프트웨어라는 개념이 존재하는데 하드웨어는 메인보드, 램, 마우스, 키보드 등등 컴퓨터를 구성하고 있는 부품들을 일컫는 말이고 소프트웨어는 컴퓨터 안에서 프로그래밍적으로 돌아가는 것들을 일컫는다.
우리가 마우스를 사용해 클릭을 하거나, 키보드를 이용해 타이핑을 하는 것과 같은 행동들은 단지 컴퓨터의 부품을 건드리는 행위에 지나지 않는다. 우리의 컴퓨터는 사용자가 이러한 입력을 주었을 때 그것을 받아들이고 해석하여 사용자의 입력에 따른 결과물을 출력해주는 과정을 거치게 된다. 이 과정들을 수행해 주는 것이 바로 OS(운영체제)이다. OS는 하드웨어가 실행 가능하게끔 해주는 역할을 한다. 다시말해, 하드웨어에 입력을 주었을 때 해당 입력에 따른 결과물이 출력되게 해주는 것이 바로 OS가 하는 역할이다.
예를 들어, 마우스를 통해 하드웨어에 입력을 주면 OS가 그 입력을 받아서 우리가 보고 있는 모니터에 결과물을 출력해주는 것이라고 생각하면 된다. 입력과 출력을 연결해주는 역할을 수행하고 있으며 하드웨어를 통해 입력을 받으면 그 입력을 받아서 출력해 주는게 우리의 OS가 해주는 역할이라고 보면 된다.
우리에게 너무나도 익숙한 Windows가 바로 이러한 OS(운영체제)인 것이다. OS의 종류에는 Windows 외에도 Mackintosh, Linux, Unix, IOS, Android 와 같은 OS들이 있다.
OS에 따라 컴퓨터를 조작하는 방식이 달라지는데 대표적인 Windows와 Linux를 살펴보도록 하자. Windows의 경우, 컴퓨터를 조작하는 방식이 그래픽 요소를 활용해 조작하는 방식이다. 이러한 방식으로 조작하는 것을 GUI (Graphic User Interface) 라고 한다. 반면에 Linux, Unix와 같은 OS들은 GUI 형태가 아닌 CLI 형태로 컴퓨터를 조작한다. CLI는 Command-line Interface의 약자로 그래픽 요소가 아닌 텍스트 형식로 쓰여진 명령어들을 통해 입력과 출력을 조작하는 방식이다. 쉽게말해, 컴퓨터를 조작할 때 명령어를 이용해 한줄 한줄 작성하여 조작하는 것이라고 보면 된다.
CLI 환경에서 컴퓨터를 조작하다보면 우리가 흔히 이야기하는 프로그램이라는게 어떠한 것을 의미하는지에 대한 느낌을 받아볼 수 있다. 간단하면서도 직관적으로 프로그램이란 것이 무엇인지를 설명해 보자면, 프로그램이란 내가 컴퓨터에 어떠한 것을 입력했을 때 내가 입력한 것을 컴퓨터가 받아서 내가 원하는 결과물을 출력하도록 하는 것이라고 할 수 있다. 프로그램을 만든다는 것은 명령어를 입력하면 해당 명령어에 알맞는 결과물이 출력되는 것을 만드는 것이라고 생각하면 된다.
이제 우리의 본래 목적인 Node.js가 무엇인지 알아보자. JavaScript 런타임이란 쉽게말해 JavaScript 코드실행기 같은 의미로 이해하면 된다. JavaScript 언어로 command 명령어를 만드는 게 바로 Node.js인 것이다. 즉, JavaScript 문법을 통해 컴퓨터의 입력과 출력을 받아서 프로그램을 만들 수 있게 하는 것이 바로 Node.js가 하는 역할인 셈이다.
Node.js를 설치하기 이전에 우리는 브라우저 위에서 JavaScript 코드를 입력하고 우리가 입력한 코드에 해당하는 결과물을 브라우저의 콘솔창을 통해 살펴볼 수 있었다. 이는 브라우저가 JavaScript를 실행해 주었기 때문에 나타난 결과이다. 즉, 브라우저가 JavaScript 언어로 작성된 코드들을 읽어서 해석하고 결과물을 출력해준 것이다. 브라우저를 JavaScript로 작성된 프로그램들을 실행시켜 줄 수 있는 하나의 공간이라고 생각한다면, Node.js는 JavaScript 언어로 작성된 프로그램들이 실행될 수 있는 브라우저와 같은 또 하나의 공간인 셈이다. 내 컴퓨터에 Node.js를 설치하고 사용하게 되면 더 이상 브라우저를 통해서만 JavaScript를 실행할 수 있는 것이 아니라, 내 컴퓨터가 Node.js를 통해 직접 JavaScript를 실행해 줄 수 있게 되는 것이다.
'Node > Node.js' 카테고리의 다른 글
Node.js - modules (모듈) (0) | 2022.02.03 |
---|---|
Node.js 실행하기 (with Visual Studio Code) (0) | 2022.02.02 |
Linux CLI 명령어 정리 (Ubuntu 사용) (0) | 2022.01.25 |
Node.js 설치하기 (Windows - WSL , macOS - Homebrew) (0) | 2022.01.25 |
Node.js 환경설정 (WSL2 설치하기) (3) | 2022.01.25 |