기술/React

[Node.js] Node.js란?

leedaramji 2024. 1. 15. 14:51

Node.js란?

 

자바스크립트는 웹 브라우저에 내장된 자바스크립트 엔진으로 실행된다. 그래서 자바스크립트를 실행하는 웹 브라우저를 자바스크립트의 구동 환경이라는 뜻에서 '자바스크립트 엔진'이라고도 표현한다. 그렇다면 자바스크립트 생태계에 혁신적인 변화를 가져온 Node.js 등장 이전에는 웹 브라우저 외에서는 사용할 수 없었다. 그러나 독립적인 자바스트립트 런타임인 Node.js가 등장한 이후에는 어떤 환경에서도 자바스크립트를 실행할 수 있게 되었다. 결국 웹 서버나 모바일 애플리케이션을 개발할 때도 자바스크립트를 이용하는 등 언어의 활용 범위가 넓어졌고, 이를 사용하는 개발자도 늘어나게 되었다. 

자바스크립트는 웹 서버 개발도 가능해졌다. 그래서 Node.js를 서버 개발 기술로 잘못 알고 있는 경우가 꽤 있다. 하지만 Node.js는 단순 자바스크립트 런타임이다. 게임과 게임기를 비유하자면 자바스크립트는 게임이고, Node.js는 게임을 구동하는 게임기에 비유할 수 있다.

리액트를 잘 다루기 위해서는 Node.js 학습이 선행되어야 한다. Node.js에는 리액트를 효율적으로 다루는 여러 도구들이 내장되어 있을 뿐만 아니라, 궁극적으로 Node.js가 리액트로 만든 자바스크립트 애플리케이션을 구동하기 때문이다.

 

💡 브라우저는 HTML 기반으로 동작하니까 자바스크립트 언어는 HTML 문서 안에서 사용하데 된다. 그래서 자바스크립트는 버튼 클릭 이벤트를 처리하는 등 웹 사이트의 인터랙션 말고는 할 수 있는 일이 별로 없는 언어였다. 

 

📌 브라우저별 자바스크립트 엔진

Safari - Nitro
Firefox - Spider Monkey
Chrome - v8 (가장 대표적) 
Edge - Chakra
Opera - Presto

 

📌 Node.js 클라이언트와 서버의 관계


브라우저 <---- 요청, 응답() ----> 웹 서버

핸드폰 <---- 요청, 응답(미디어(영상, 이미지, 파일)) ----> 미디어 서버

핸드폰 <---- 요청, 응답(채팅 데이터) ----> 채팅 서버

 

 


 

🖥️ 터미널 명령으로 js 파일 실행

 

  • node sample.js

 

Node.js 패키지

 

복잡한 프로그램을 만들기 위해서는 여러 개의 자바스크립트 파일이 필요하다. 왜 여러 개의 파일이 필요할까? 옷을 구매할 수 있는 쇼핑몰 프로그램을 만든다고 가정해 보자.

 

이 쇼핑몰 프로그램에는아마도 구매, 장바구니, 회원 가입 등과 같은 여러 복잡한 기능들이 필요하다. 이 기능들을 구현하는 코드들을 구현하는 코드를 파일 하나에 모두 작성한다면 코드의 길이가 매우 길어질 것이다. 작성할 때는 문제가 되지 않을 수도 있지만, 수정을 위해 다시 파일을 연다면 수정할 부분을 찾아 한참을 스크롤해야 할지 모른다. 일반적으로 복잡한 프로그램을 구현할 때는 기능별로 파일을 나누어 작성한다.

 

 

패키지 만들기

 

패키지는 여러 파일을 마치 하나의 파일처럼 다룰 수 있게 해주는 관리 단위다. 그런데 패키지 단위로 여러 파일을 관리하려면 최상위 폴더인 '루트 폴더'가 필요하다. 패키지를 생성하려면 npm을 이용해야 한다. npm은 Node Package Manager의 약자로, Node.js 패키지를 관리하는 도구다. npm에서는 패키지를 관리하기 위한 유용하고 간편한 명령어와 기능들을 제공한다. 

npm init는 Node.js 패키지를 초기화하는 명령어다. 초기화란 Node.js 패키지를 구성하는 데 필요한 최소한의 구성 요소를 자동으로 생성하는 과정이다. npm init를 실행하면 패키지 이름을 입력하라는 프롬프트가 나타난다. 폴더 이름과 동일하게 입력하고 Enter 키를 누른다.  계속 Enter를 누르다가 Is This OK?라는 문구와 함께 설정할 패키지의 속성을 보여준다. yes를 입력하고 Enter 키를 눌러 패키지 초기화를 완료한다. 패키지 구성이 완료되면 package.json이라는 파일이 생선된다.

 

  1. npm init
  2. 패키지 이름, 폴더 이름과 동일하게 입력

 

초기화된 패키지의 package.json에는 기본적으로 다음 항목들이 존재한다. package.json은 패키지의 메타 정보를 저장하는 파일이다. Node.js는 package.json에서 패키지 정보를 확인하여 적절한 방식으로 프로그램을 가동한다.

 

  • name: 패키지 이름
  • version: 패키지 버전
  • description: 패키지 설명(보통 패키지로 구성한 프로그램의 목정을 작성)
  • main: 패키지의 소스 코드 파일 중 메인 역할을 담당하는 소스 코드 파일
  • script: 패키지를 쉽게 다루기 위해 지정한 매크로 명령어
  • author: 패키지를 만든 사람
  • license: 패키지의 라이선스

 

 

'기술 > React' 카테고리의 다른 글

[React] 리액트 라이프 사이클 - useEffect  (0) 2024.02.22
[React] List와 key의 중요성  (0) 2024.02.20
[React] 가상 돔 (Virtual DOM)이란 무엇일까?  (0) 2024.02.20
[리액트] create-react-app  (0) 2024.02.05
[React] 리액트란?  (0) 2024.01.16