DevOps

Node.js, Nginx 관계

prden 2022. 11. 16. 22:18

1. Node.js란?

Node.js란 Chrome V8 Javascript엔진으로 빌드된 JavaScript 런타임(프로그래밍 언어가 구동되는 환경)이다.
예전에는 자바스크립트 런타임이 브라우저 밖에 존재하지 않았는데 이를 극복하기 위해 Node.js가 나온 것이다.
https://perfectacle.github.io/2017/06/18/what-is-node-js/

Node.js란...?

이 글을 쓰게 된 계기는 다음과 같다. Q: Node.js는 서버인가요?A: 네, 백엔드 개발자들이 Node.js를 씁니다. ‘백엔드 개발자도 쓸 뿐, 프론트 엔드 개발자도 쓸 수 있다’가 내가 내린 결론이고,오늘

perfectacle.github.io

1) Node.js의 특성

가. 비동기 이벤트 기반(event가 동작하면 action 발생 - vs 쓰레드 기반의 동시성 모델)
cf. 쓰레드 기반의 동시성 모델 : 쓰레드 여러 개가 빠른 시간 안에 전환하면서 일처리를 진행- 다수의 작업이 동시에 진행되는 것 처럼
나. 논 블로킹 I/O모델 구현
https://hanamon.kr/nodejs-%EA%B0%9C%EB%85%90-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0/

Node.js 노드 개념 이해하기 자바스크립트 JavaScript 런타임 이벤트

Node.js 노드 개념 이해하기 JavaScript 런타임 - 노드는 다양한 자바스크립트 애플리케이션을 실행할 수 있으며, 서버를 실행하는데 제일 많이 사용된다. 이벤트 기반 이벤트 루프 논블로킹 I/O 싱글

hanamon.kr

이벤트가 발생할 때 미리 지정해둔 작업을 수행하는 방식으로 특정 이벤트가 발생할 때 무엇을 할지 미리 등록해 두고, 이를 이벤트 리스너에 콜백함수로 등록한다. 이벤트가 발생하면 콜백함수를 호출하고 이벤트가 끝난 후 노드는 다음 이벤트가 발생할 때까지 대기한다.
Node.js는 싱글스레드, 논 블로킹 모델로 싱글 스레드가 혼자서 일을 처리하지만 들어오는 요청 순서가 아닌 논 블로킹 방식으로 이전 작업이 완료될 때까지 대기하지 않고 다음 작업을 수행한다.

2) NODE_ENV : production ( 배포 ) 모드, development ( 개발 ) 모드

가. production 모드 일때는
- 파일 캐싱, 에러 메시지 감추기 등 배포의 적합한 환경 설정
나. development 모드 일 때는
- 파일 캐싱 방지, 디버그를 위한 상세한 에러 메시지 보이기 등 개발에 도움을 줄 수 있는 환경으로 설정
다. scripts에 사용

{
  "scripts": {
    "build": "cross-env NODE_ENV=production webpack --config build/webpack.config.js"
  }
}

https://www.npmjs.com/package/cross-env

cross-env

Run scripts that set and use environment variables across platforms. Latest version: 7.0.3, last published: 2 years ago. Start using cross-env in your project by running `npm i cross-env`. There are 5275 other projects in the npm registry using cross-env.

www.npmjs.com


Node.js - Node.js & NPM - https://sjparkk-dev1og.tistory.com/m/38

Node.js - Node.js & NPM

Node.js - Node.js & NPM 정의 (Node.js 공식 사이트) Node.js®는 Chrome V8 JavaScript 엔진으로 빌드된 JavaScript 런타임입니다. Node.js는 이벤트 기반, Non 블로킹 I/O 모델을 사용해 가볍고 효율적입니다. Node.js의

sjparkk-dev1og.tistory.com

라. cross-env
https://inpa.tistory.com/entry/NODE-%F0%9F%93%9A-cross-env-%EB%AA%A8%EB%93%88-%EC%82%AC%EC%9A%A9%EB%B2%95

[NODE] 📚 cross-env 모듈 사용법

노드 env 환경변수 설정 보통 노드 서비스를 개발(development)하고 배포(production)할 때 env 값을 이용해서 구성한다. 예를들어 배포 모드 일 때에는 파일 캐싱, 에러 메세지 감추기 등 배포에 적합한

inpa.tistory.com

2. require(), module.exports(), exports()

1) require() :
node.js에서 모듈을 불러오기 위해 require()함수를 사용한다.

https://medium.com/@chullino/require-exports-module-exports-%EA%B3%B5%EC%8B%9D%EB%AC%B8%EC%84%9C%EB%A1%9C-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0-1d024ec5aca3

require(), exports, module.exports 공식문서로 이해하기

.

medium.com

3. 자바스크립트 런타임 환경

https://hanamon.kr/javascript-%eb%9f%b0%ed%83%80%ec%9e%84-%ec%9e%91%eb%8f%99-%eb%b0%a9%ec%8b%9d-%eb%b9%84%eb%8f%99%ea%b8%b0%ec%99%80-%ec%9d%b4%eb%b2%a4%ed%8a%b8-%eb%a3%a8%ed%94%84/

[JavaScript] 런타임 작동 방식, 비동기와 이벤트 루프 - 하나몬

⚡️ [JavaScript] 런타임 작동 방식, 비동기와 이벤트 루프 ❗️알아볼 키워드 자바스크립트란? 자바스크립트 V8 엔진이란? 자바스크립트 런타임이란? 자바스크립트 싱글 스레드 기반 프로그래밍

hanamon.kr

4. nginx와 node.js의 관계


https://sjparkk-dev1og.tistory.com/53

Nginx - Nginx와 Node.js 환경 서버 구성하기 (feat. Windows)

들어가며 Nginx 이해와 활용 방법에 이어 환경 구성하는 방법을 정리한다. 먼저 운영체제는 Windows 환경에서 진행하였고 우분투와 같이 다른 운영체제에서 사용하시는 분들은 설치 방법등만 차이

sjparkk-dev1og.tistory.com

'DevOps' 카테고리의 다른 글

PM2, Nginx //front app 배포  (0) 2023.06.13
Docker & Kubernetes  (0) 2023.01.29
AWS EC2 + Docker + AWS ECS를 통한 orchestration  (1) 2023.01.23
CI(Continuous Integration)/CD(Continuous Delivery)  (0) 2023.01.11
Infra 인프라  (0) 2022.11.19