본문 바로가기
소프트웨어 개발

맥에 홈브루로 NodeJs 설치하고 NodeJs 버전 관리하기

by Endi Yoo 2023. 4. 11.
반응형

이번 글에서는 맥오에스에서 홈브루로 NodeJs를 설치하고 버전 관리를 하는 방법을 알아보겠습니다. 요즘 백엔드 개발을 NodeJs로 하는 것이 아주 큰 흐름으로 자리 잡고 있는 것 같습니다. 개발환경으로 맥북이나 아이맥을 사용하는 경우 노드를 설치하게 되는 것은 기본이 되겠죠. 그리고 여러 프로젝트를 하다 보면 여러 개의 노드 버전을 사용하게 되고요. 이 두 경우 홈브루를 사용해서 어떻게 관리를 할 수 있는지가 이번 글의 주제입니다.

 

1. 홈브루 NodeJs 버전 확인

NodeJs는 어떤 버전이 있는지 확인해 보고 홈브루는 어떤 버전을 지원하고 있는지를 확인해 보려고 합니다.

1.1. NodeJs 버전 종류

NodeJs의 버전은 크게 현재(Current) 버전과 LTS(Long Term Support) 버전으로 나뉩니다. 이는 NodeJs 공식 홈페이지에 가서 보면 확인을 할 수 있는데요. 이 글을 쓰는 현재 LTS버전은 18.15.0버전이고 Current 버전은 19.8.1입니다. 실제로는 NodeJs는 버전을 Current,  Active LTS, Maintenance 3가지 종류로 구분해서 관리하고 있습니다.

1.1.1. Current

메이저 변경사항이 아니고 버전 호환성을 망가트리는 변경이 아닌 내용이 적용되고 있는 버전입니다. NodeJs 소스의 main 브랜치의 내용이 반영되는 버전이라고 할 수 있습니다. 버전의 라이프 사이클이 비교적 짧게 유지됩니다. 19.x 버전의 경우 2022-10-18에 시작을 해서 2023-06-01까지 밖에 버전관리를 하지 않습니다. 그래서 가능하면 상용버전에는 사용하지 않는 것이 좋습니다.

1.1.2. Active LTS

LTS 팀에서 검토한 새로운 기능, 버그 수정 등이 포함된 버전입니다. 기능이나 수정사항이 적절한지 판단이 되고 안정적이라는 것이 확인이 된 경우 포함이 됩니다. 또한 버전을 유지하는 기간도 깁니다. 18.x 버전의 경우 2022-04-19에 시작을 해서 2025-04-30까지 버전을 관리합니다. 상용 소프트웨어를 개발하는데 사용하기 적적한 버전입니다. 참고로 LTS 버전은 짝수로 되어 있습니다. 홀수 버전은 LTS 버전으로 승격이 되지 않습니다.

1.1.3. Maintenance

LTS 버전이 Actvie한 기긴을 지나게 되면 Maintenance 기간으로 들어가게 됩니다. 이때는 심각한 버그에 대한 수정 사항과 보안 관련 업데이트만 추가가 됩니다. 간혹 새로운 기능도 추가되는 경우가 있지만 다음 버전으로 마이그레이션을 하는데 도움이 되는 경우 미리 추가하는 경우가 대부분입니다.


전체적으로 버전의 라이프 사이클을 볼 수 있는 그래프를 공식 홈페이지에서 가져왔습니다.

NodeJs 버전 라이프 사이클

 

1.2. 홈브루에서 지원하는 NodeJs 버전 확인

앞서 알아본 NodeJs 버전은 공식 홈페이지에서 확인한 버전이었는데요. 홈브루에서는 어떤 버전을 설치할 수 있을지는 홈브루 명령어를 사용해서 알 수 있습니다. 터미널에서 brew search node라고 명령어를 실행합니다.

 

ken@kMac ~ % brew search node
==> Formulae
libbitcoin-node       node-build            node@14               nodebrew
linode-cli            node-sass             node@16               nodeenv
llnode                node@10               node@18               nodenv
node                  node@12               node_exporter         ode

==> Casks
capslocknodelay              nodebox                      nodeclipse

 

실행한 결과에서 보면 node라고 되어 있는 것이 있고 node 뒤에 @가 붙어서 node@18로 보이는 것이 있습니다. 그냥 node로 되어 있는 것은 최신버전으로 Current 버전을 말하고 @뒤에 붙어 있는 숫자는 특정 NodeJs 버전을 의미합니다. 터미널 명령어 결과에서 보시면 알겠지만 홈브루에서는 Current 버전과 짝수 버전(LTS 버전)만 지원하고 있습니다.

2. 맥에서 홈브루로 NodeJs 설치

맥에서 홈브루로 NodeJs를 설치하는 것은 아주 간단합니다. brew install 명령어만 입력하면 되니까요.

2.1. 홈브루로 NodeJs 설치하기

첫번째로 홈르루에서 지원하는 최신버전 NodeJs를 설치해 보겠습니다. 터미널에 brew install node를 실행합니다.

 

ken@kMac ~ % brew install node
Running `brew update --auto-update`...
==> Auto-updated Homebrew!
Updated 1 tap (homebrew/core).
==> New Formulae
arjun                 thriftgo              trust-dns             wxlua

==> Fetching node
==> Downloading https://ghcr.io/v2/homebrew/core/node/manifests/19.8.1
######################################################################## 100.0%
==> Downloading https://ghcr.io/v2/homebrew/core/node/blobs/sha256:baaac8a39fb91928842b74890985fbb176f9c5769
==> Downloading from https://pkg-containers.githubusercontent.com/ghcr1/blobs/sha256:baaac8a39fb91928842b748
######################################################################## 100.0%
==> Pouring node--19.8.1.ventura.bottle.tar.gz
🍺  /usr/local/Cellar/node/19.8.1: 2,357 files, 56.7MB
==> Running `brew cleanup node`...
Disable this behaviour by setting HOMEBREW_NO_INSTALL_CLEANUP.
Hide these hints with HOMEBREW_NO_ENV_HINTS (see `man brew`).

 

 

설치되는 과정이 보이는데요. 지금 글을 쓰고 있는 현재의 최신버전인 19.8.1 버전의 node가 설치되는 것을 알 수 있습니다. 설치된 node의 버전을 확인해 봅니다.

 

ken@kMac ~ % node -v
v19.8.1

 

예상대로 버전은 19.8.1입니다.

2.2. 홈프루로 다른 버전 NodeJs 설치하기

홈브루에서 node의 다른 버전을 설치할 수 있습니다. 특히나 상용으로 운영될 소프트웨어를 개발하고 있다면 Active LTS 버전을 설치해서 실행하는 것이 좋습니다. 우선 설치 가능한 버전을 알아보기 위해서 brew search node 명령어를 실행해 봅니다. 이 글에선 18.x 버전을 설치해 보겠습니다.

 

ken@kMac ~ % brew install node@18 
==> Downloading https://formulae.brew.sh/api/formula.jws.json
######################################################################## 100.0%
==> Fetching node@18
==> Downloading https://ghcr.io/v2/homebrew/core/node/18/manifests/18.15.0-1
Already downloaded: /Users/ken/Library/Caches/Homebrew/downloads/4b9fd970d9076f6842dfa69804d5c7e23c2008da12f36d600539c60f13982057--node@18-18.15.0-1.bottle_manifest.json
==> Downloading https://ghcr.io/v2/homebrew/core/node/18/blobs/sha256:971d9e3c187e07010cace1ed4060fea6e1e399
Already downloaded: /Users/ken/Library/Caches/Homebrew/downloads/50a0bc2b58a49f6ab48969827d437bb854f109a8e40035e8a490ad48bccc1c51--node@18--18.15.0.ventura.bottle.1.tar.gz
==> Pouring node@18--18.15.0.ventura.bottle.1.tar.gz
==> Caveats
node@18 is keg-only, which means it was not symlinked into /usr/local,
because this is an alternate version of another formula.

If you need to have node@18 first in your PATH, run:
  echo 'export PATH="/usr/local/opt/node@18/bin:$PATH"' >> ~/.zshrc

For compilers to find node@18 you may need to set:
  export LDFLAGS="-L/usr/local/opt/node@18/lib"
  export CPPFLAGS="-I/usr/local/opt/node@18/include"
==> Summary
🍺  /usr/local/Cellar/node@18/18.15.0: 2,343 files, 56.6MB
==> Running `brew cleanup node@18`...
Disable this behaviour by setting HOMEBREW_NO_INSTALL_CLEANUP.
Hide these hints with HOMEBREW_NO_ENV_HINTS (see `man brew`).

 

설치된 노드를 확인해 보겠습니다.  명령어는 /usr/local/opt/node@18/bin/node -v 입니다.

 

ken@kMac ~ % /usr/local/opt/node@18/bin/node -v
v18.15.0

 

3. 맥에서 NodeJs 버전관리

앞서서 node 19.x 버전과 18.x 버전을 설치해 보았습니다. 하지만 18.x 버전을 실행하기 위해서는 그냥 node라고 명령어를 치는 대신에 /usr/local/opt/node@18/bin/node라고 길게 명령어를 쳐야 합니다. 이렇게 되면 개발하는 동안에 괭장히 귀찮겠죠. 만일 새로 설치한 버전을 기본 node로 사용하고 싶다면 PATH 환경변수를 설정해 줘야 합니다.

우선 현재 맥에서 사용하고 있는 shell이 무엇인지 확인해 봅니다. 명령어는 echo $0입니다.

 

ken@kMac ~ % echo $0
-zsh

 

 

제 맥은 zsh를 사용하고 있습니다. 에디터로 ~/. zshrc를 열어 아래 라인을 추가합니다.

사용하시는 쉘에따라서 파일이 좀 다릅니다.
bash: ~/.bashrc
zsh: ~/.zshrc
ksh: ~/.profile

 

export PATH="/usr/local/opt/node@18/bin:$PATH"

 

그리고 source ~/.zshrc 를 실행합니다. ~/. zshrc는 새로 터미널을 열거나 새로 로그인할 때 자동으로 실행되므로 매번 해 줄 필요는 없습니다.

 

이제 node를 실행해 보니다. 새로 설치된 NodeJs 버전이 표시되는 것을 알 수 있습니다.

반응형