본문 바로가기
웹/Node.js

Node.js

by 코낄2 2023. 11. 3.

우선 Node.js를 살펴기 앞서...

서버란?

요청을 받으면 요청한 내용을 보내주는 프로그램입니다.

요청에는 4개 방식이 있습니다.

읽기(GET) 쓰기(POST) 수정(PUT) 삭제(DELETE) 입니다.

 

원래 JavaScript의 해석은 브라우저의 역할입니다. 하지만 Node.js를 이용하면 브라우저 내에서 말고도 다른 환경에서도 JavaScript 실행할 수 있게 됩니다. 즉 Node.js는 JavaScript를 실행할 수 있게 해주는 환경입니다. JavaScript를 프로그래밍 언어처럼 쓸 수 있게 해줍니다.


1. Node.js

Node.js는 JavaScript 런타임 환경으로, 서버 측 애플리케이션을 개발하기 위한 오픈 소스 환경입니다. Node.js는 비동기 프로그래밍을 강조하며, 이벤트 기반 아키텍처를 사용합니다. 이를 통해 여러 작업을 효율적으로 처리하고 확장성 있는 서버를 개발할 수 있습니다.
1. 빠른 실행: V8 JavaScript 엔진을 기반으로 하며, 코드 실행이 빠르고 효율적입니다.
2. 단일 스레드: Node.js는 단일 스레드를 사용하며, 이벤트 루프와 비동기 프로그래밍을 통해 동시성을 처리합니다.
3. 모듈 시스템: CommonJS 모듈 시스템을 지원하며, 코드를 모듈로 구성하여 재사용과 유지보수를 용이하게 합니다.
4. 크로스 플랫폼: Node.js는 다양한 운영 체제에서 실행되며, 크로스 플랫폼 개발을 지원합니다. (C++ 과 호환 가능)
5. 강력한 커뮤니티: Node.js는 활발한 커뮤니티와 생태계를 가지고 있으며, 지속적인 업데이트와 지원을 제공합니다.

Node.js는 이러한 특징을 통해 서버 측 백엔드 개발 및 네트워크 애플리케이션을 구축하는 데 사용되며, 많은 기업과 웹 서비스에서 널리 사용되고 있습니다.

https://nodejs.org/

 

Node.js

Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine.

nodejs.org

다운로드

- LTS(가장 안정적인 버전) 선택
- Add to PATH 자동 설치
- C, C++과 연동해서 작업 할지 여부도 물어봄
- 설치 후 CMD 에서 node -v하면 버전 확인 가능
- nodejs 사용시 파일 이름은 한글이나 특수문자 금지

2. 패키지 관리자(Node Package Manager)

`npm`은 Node.js 패키지 관리자(Node Package Manager)의 약자입니다. Node.js 환경에서 JavaScript 패키지(라이브러리, 모듈)를 설치, 관리 및 공유하는 도구입니다. 
- 패키지 설치 및 관리: `npm`은 Node.js 애플리케이션 개발에서 필요한 패키지 및 라이브러리를 쉽게 설치하고 관리하는데 사용됩니다. 이로써 개발자는 기존 코드를 재사용하고, 쉽게 확장 가능한 애플리케이션을 개발할 수 있습니다.
- 의존성 해결: `npm`은 프로젝트의 의존성을 정확하게 관리하며, 프로젝트에서 필요한 패키지 및 해당 버전을 신속하게 해결할 수 있습니다.
- 버전 관리: `npm`을 사용하여 패키지의 버전을 명확하게 지정하고, 버전 충돌 문제를 방지하며, 프로젝트의 안정성을 유지할 수 있습니다.
- 패키지 공유 및 커뮤니티 기여: `npm`을 통해 패키지를 게시하고 다른 개발자와 공유함으로써, JavaScript 생태계에 기여하고 커뮤니티에 참여할 수 있습니다.
- 프로젝트 스크립트 및 자동화: `npm` 스크립트를 사용하여 프로젝트 빌드, 테스트, 실행 및 배포와 같은 작업을 자동화하고 단순화할 수 있습니다.
`npm`은 Node.js 생태계에서 필수적이며, 패키지 관리와 개발 프로세스를 효과적으로 지원하는 도구로 큰 역할을 합니다.

 

 ✔ 필요 라이브러리 서치 사이트https://www.npmjs.com/

 

npm | Home

Bring the best of open source to you, your team, and your company Relied upon by more than 17 million developers worldwide, npm is committed to making JavaScript development elegant, productive, and safe. The free npm Registry has become the center of Java

www.npmjs.com

 ✔ 라이브러리 설치
npm install 패키지명
npm i 패키지명
- 설치하면 nodemodules 폴더 생성함

3. Package.json

'package.json'은 Node.js 프로젝트의 구성 정보를 담고 있는 JSON 형식의 파일로 해당 정보들을 담고 있습니다.
- 프로젝트 정보: 이름, 버전, 설명 등.
- 의존성: 프로젝트에 필요한 패키지 및 버전.
- 스크립트: 프로젝트 관련 작업을 자동화하는 사용자 정의 스크립트.
- 버전 관리: 프로젝트와 패키지의 버전 정보.
- 라이선스 정보: 사용 조건 및 라이선스 정보.
- 기타 메타데이터: 추가 프로젝트 정보.

간단하게 어떤 라이브러리를 설치했는지 기록을 해주는 패키지라고 생각해볼 수 있습니다.

데이터를 주고받기위해 만들어진 환경 변수 관련 텍스트 파일로 json도 형식이 있고 규칙이 있어서 학습이 필요합니다. 터미널에서 만들때는 워킹디렉토리 폴더 전체가 유기적으로 연결된 하나의 패키지로 판단됩니다.

 ✔ package.json 만들기

npm init (이런 형식이면 옵션 하나하나 지정해줘야함)
npm init -y (모든 옵션이 기본값으로 생성)

4. Nodemon

'nodemon'은 Node.js 개발에서 사용하는 도구로, 코드 수정 시 자동으로 서버를 재시작해주는 도구입니다.(html의 live server같은 역할) 개발자는 코드를 변경하고 저장할 때마다 서버를 수동으로 다시 시작할 필요가 없으며, 더 빠르게 개발할 수 있습니다. 코드 변경 감지와 자동 재시작을 간편하게 제공하여 개발 생산성을 향상시키는 데 도움이 됩니다. nodemonpackage.jsonscripts 섹션에서 사용자 정의 스크립트를 실행할 수 있습니다. 예를 들어, npm run dev 명령을 사용하여 nodemon으로 애플리케이션을 개발 서버로 실행할 수 있습니다.

 

 ✔ nodemon 설치
npm i nodemon --save-dev ( --save-dev : 개발할 때만 저장하고 배포할땐 필요없다는 뜻)

 

( package.json"start": "nodemon 4.http" 추가하면 npm start시 해당 페이지의 실행이 끝나지 않고 대기하며, 수정하면 바로 반영됩니다.)


*** 라이브러리와 프레임워크 차이
라이브러리는 집을 만들 때 도구를 빌려주는 역할. 라이브러리에서 여러 도움을 받을 수 있음. 프레임워크는 이미 건축 뼈대가 만들어져 있는 상태. 그 상태에서 그 환경에 맞춰 집을 짓는게 프레임 워크의 개념. 
라이브러리는 개발자에게 도우미 기능을 제공하고, 개발자는 라이브러리의 기능을 필요에 따라 선택하여 사용할 수 있습니다. 반면에 프레임워크는 애플리케이션의 구조와 흐름을 정의하고, 개발자는 프레임워크가 제시한 규칙을 따라가며 애플리케이션을 개발합니다.

' > Node.js' 카테고리의 다른 글

http모듈/ 템플릿 엔진  (0) 2023.11.13