안녕하세요. 백엔드 개발자 쥬디입니다.
오늘은 백엔드 시스템 개발언어중 Node(JavaScript)와 Node 기반 웹개발 프레임워크인 Node Express 기반으로
백엔드 시스템을 개발하기 위해 개발자 컴퓨터에  개발환경을 구축하는 기초적인 방법을 안내해드립니다.

일반적으로 본인의 컴퓨터에서 특정 개발언어를 기반으로 원하는 어플리케이션(웹,모바일,데스크탑)을 개발하려면
개발툴 설치와 함께 개발된 소스를 실행해볼수 있는 실행환경(런타임환경)을 구성해줘야합니다.


1) VSCode 코드 에디터 설치하기
일반적으로 Node.js, JavaScript와 같은 인터프리팅 언어를 이용해 어플리케이션을 개발하는경우 글로벌하게 오픈소스 코드에디터인
VSCode를 설치해서 코드 개발을 진행합니다.

VSCode 설치에 대한 자세한 안내는 아래 블로그 링크를 참고해주시기 바랍니다.
https://mixedcode.com/blog/detail?pid=10

2) Node 기반 실행환경 구성하기
Node 와 Node Express 웹 개발 프레임워크를 이용해 웹 기반 시스템(프론트엔드/백엔드)을 개발하려면
먼저 개발환경 컴퓨터에 Node Framework을 설치후에 추가적으로 Node Express 웹 개발프레임워크 패키지를 추가로 설치해줍니다.

먼저 여러분 컴퓨터에 Node Framework 등이 설치되어 있는지 사전 확인해보도록 하겠습니다.
윈도우즈 컴퓨터 검색란에 cmd를 입력해 명령프롬프트를 오픈합니다.

명령 프롬프트에 아래 명령어를 입력해 봅니다.
node -v

아래와 같이 v로 시작하는 특정버전이 나온다면 해당 버전의 Node Framework가 이미 설치되어 있는것입니다.
v20.10.0



특정버전의 Node Framework 설치는 아래 NVM을 통한 Node Framework 관리기법 링크를 참고바랍니다.
https://mixedcode.com/blog/detail?pid=19


A. Node Framework 설치하기
처음 여러분의 컴퓨터에 Node Framework를 설치하는거라면 아래 링크를 통해 설치 프로그램을 다운로드해 설치를 진행해줍니다.
아래 링크를 통해 최신버전의 Node Framework LTS버전을 다운로드 받아 설치를 진행해줍니다.

https://nodejs.org/ko/
- 20.14.0 LTS 다운로드 설치 진행 -2024.06.08 기준
- 오픈소스는 되도록 최신버전의 LTS(Long Term Support)버전설치 필수 3년간 안정적 사용환경지원


3) Node Framework 간략소개
Node Framework는 자바스크립트 언어로 코딩된 소스를 Node Framework가 설치된 모든 컴퓨터 환경에서 실행할수 있는 런타임환경을 제공해
Node Framework가 설치된 개발자컴퓨터,서버컴퓨터등에서 여러분이 자바스크립트로 개발한소스를 실행하여 서비스할수 있는 기초환경을 제공하며
특히 개발자 컴퓨터에서 설치해 React,Vue와 같은 추가 프론트엔드 라이브러리,프레임워크를 설치하고 자바스크립트로 프론트엔드 어플리케이션을
개발할수 있는 환경도 제공해줍니다.


A. Node.js
노드는 구글의 크롬 웹브라우저에 탑재하기 위해 개발한  v8 자바스크립 엔진을 바탕으로하는 자바스크립트 런타임환경(실행환경)을 기본 제공합니다.

-런타임이란?  특정 개발언어로  만든 프로그램을 실행할 수 있는 환경
-노드는 자바스크립트로 개발된 프로그램을 각종 컴퓨터(서버포함)에서 실행할 수 있게 런타임 환경 지원
-2008년 구글이 V8 자바스크립트 엔진을 이용 크롬 브라우저를 출시 이후 ,오픈소스화
-2009년 V8엔진 기반 노드 프로젝트 시작

B) 노드 주요 특징
-이벤트 기반 개발 모델 / 논 블록킹 I/O 모델 제공
-가볍고 효율적인 자바스크립트 기반 프론트엔드/백엔드 개발 기반 프레임워크
-자바스크립트 기반 각종 인터넷 오픈소스 패키지(라이브러리) 저장소(노드 패키지 저장소) 생태계 제공
-Node 설치시 함께 설치되는 NPM(Node Package Manager) SW를 통해 노드 패키지 저장소의 각종 오픈소스패키지를 로컬개발환경/서버서비스환경/개발프로젝트등에 설치 가능한 기능제공