IT

Node Engine 수정하기

紫紅 2022. 12. 10. 13:09
반응형

배경: 나는 http/3를 쓰고 싶었다

나는 nestjs에서 http/3을 사용하고 싶었다. 하지만 현재 node에서 http/3를 지원하지 않으므로 express나 fastify 역시 http/3를 쓸 수 없다.

어쩔 수 없다. 현시점(2022.12.10) http/3를 원하는 경우, Nginx나 Netty외엔 선택지가 없다. 이 이슈가 해결이 된다면, node(express든 fastify든 어디서든)에서도 http/3를 사용할 수 있을 것이다.

Node Engine Customization

실무에서 고작 http/3를 위해 node engine을 수정하고 있을 순 없다. 하지만 개인적으론 욕심이 났다. 나는 node에서 http/3를 쓰고 싶다. 이번에 http/3와 node engine에 대해 자세하게 공부하는 겸, 오픈소스 참여에 도전해보고자 했다.

서론은 이만 줄이고, 엔진을 내 입맛에 맞게 변경하고, 사용하는 방법을 알아보자.

1. Clone Node Project

터미널에서 다음 명령어를 실행시켜서, node 프로젝트를 복사한다.

git clone git@github.com:nodejs/node.git

2. Make Node Engine

터미널에서 다음 명령어를 실행시켜서, node engine을 만들어 본다.

make
# 최초 수행 시간이 좀 오래 걸린다. 다른 걸 하면서 시간을 아끼길 추천
# 끝나면 `out/Release/node`로 엔진을 실행해본다.

3. Project Customization(Example)

node 명령어를 수행하면 나오는 "Welcome to Node.js $version.~" 문구를 수정해보자.

// lib/internal/repl.js line: 41을 확인

... 생략
  esmLoader.loadESM(() => {
    // Node.js -> NodeJS
    // console.log(`Welcome to Node.js ${process.version}.\n` +
    console.log(`Welcome to NodeJS ${process.version}.\n` +
      'Type ".help" for more information.');
... 생략

4. Test My Node Engine

3에서 변경한 내용이 잘 반영 되었는지 확인한다.

# 재빌드. 재빌드는 금방 끝난다.
make
# node 엔진 실행
out/Release/node
# Welcome to NodeJS로 출력되는지 확인

이상으로 node engine 수정 방법을 알아보았다. 이걸 조금 응용하면, 사용자 정의 node engine을 충분히 만들 수 있다.


참고자료

Node.js에서 QUIC 설정/컴파일하기
참고로 위에서 참고하는 프로젝트는 더 이상 업데이트 되지 않는다. 고로 아직 http/3(QUIC)을 지원하지 않음.

반응형