원인
npm install 실행 시, git:// 프로토콜을 이용하여 Github 저장소에 접근하지 못할 때 발생하는 오류

 

조치 방법

git config --global url."https://".insteadOf git://

 

 

'#DEV > node.js' 카테고리의 다른 글

node 애플리케이션  (0) 2025.10.19

pm2 는 javascript 런타임 node.js 프로세스 관리자이다.
사내 서비스 중에 pm2 가 vue 프로젝트를 실행시키고, nginx 가 reverse proxy 역할만 수행하는 서비스가 있다.
node 앱은 백엔드 서비스만 의미하는 줄 알았는데, FE에서도 쓰이는 용어인지 궁금했다.

결론부터 이야기 하면 vue 로 구현된 서비스도 node 앱이 될 수  있다.

즉, node.js 환경에서 실행되는 서비스이면 node 애플리케이션이다.

라이브러리, 프레임워크와 상관이 없는 것이다.

 

node 앱의 의미에 대해서 알아보자.

 

node 앱이란?

node.js 로 실행되는 프로그램

  • node.js: 브라우저 밖에서 javascript를 실행할 수 있게 만든 런타임 환경. 원래 javascript는 브라우저에서만 동작했지만, node.js는 서버나 터미날에서 js를 동작할 수 있게 한다.
  • node app.js 를 하게 되면, app.js 의 javascript 코드가 node.js 위에서 실행된다.

pm2 실행환경으로 본 정체

pm2 자체가 node.js 에서 실행되는 프로그램, 즉 node 앱.
pm2는 여러 node 앱을 관리하는 node 앱
그렇기 때문에 시스템 내에 node.js 가 반드시 설치되어 있어야 한다.

[시스템] → [Node.js 런타임] → [PM2 CLI 스크립트] → [PM2 Daemon] → [Node.js 앱]

pm2 실행 시 내부 동작 구조

  1. pm2 start app.js 명렁어 실행
  2. 운영체제(OS) 는 $PATH 안에 있는 pm2 실행 파일을 찾음
# pm2 실행 파일 내부
#!/usr/bin/env node
require('../lib/ProcessContainerFork.js');

이 파일은 node.js 로 만든 스크립트
#!/usr/bin/env node : node로 실행하라
즉 pm2는 node.js 인터프리터로 실행

  1. node.js 런타임이 pm2 스크립트 해석 -> pm2 내부에서 "app.js를 백그라운드로 실행"하라는 명령을 daemon에 전달
  2. node.js 는 새로운 node.js 프로세스를 fork(자식 프로세스 실행) 하여 아래와 같이 node.js 런타임 실행
node /path/to/app.js

실제 프로세스 구조 확인

pm2 start app.js
ps -ef | grep node
ubuntu   1234  1  0  pm2: God Daemon (/usr/lib/node_modules/pm2/lib/Daemon.js)
ubuntu   1250 1234 0  node /home/user/app.js

PID 1234 : pm2 daemon으로 실행 -> node로 실행 됨
PID 1250 -> pm2 가 fork한 실제 node 앱 -> node로 실행 됨
즉, node.js 가 pm2 자신과 app.js를 모두 구동

요약 구조

┌──────────────────────────────────────────┐
│              Node.js 런타임              │
│  ┌────────────────────────────────────┐  │
│  │            PM2 CLI                │  │
│  │  (node로 실행됨)                  │  │
│  └──────────────┬────────────────────┘  │
│                 │ IPC 통신 (Unix Socket)│
│  ┌──────────────▼────────────────────┐  │
│  │         PM2 Daemon(Node 앱)       │  │
│  ├──────────────┬────────────────────┤  │
│  │              │ fork()              │
│  └──────────────▼────────────────────┘  │
│          Node 앱들 (app.js 등)         │
└──────────────────────────────────────────┘

Node.js 런타임이 PM2를 실행
PM2가 다시 Node.js를 이용해 앱들을 실행

정리

| 항목                | 내용                                          |
| ----------------- | ------------------------------------------- |
| **PM2 실행 기반**     | Node.js 런타임 위에서 동작                          |
| **Node.js 제공 방식** | 시스템에 설치된 Node.js 실행 파일(`/usr/bin/node`)을 이용 |
| **실행 명령 구조**      | `#!/usr/bin/env node` 로 Node 런타임을 호출        |
| **결과**            | Node.js → PM2 → (다른 Node 앱) 형태로 계층 실행       |

'#DEV > node.js' 카테고리의 다른 글

npm의 git:// 프로토콜 오류  (0) 2025.11.09

+ Recent posts