[Private UPM 개발(2/4)] Verdaccio 레지스트리 서버 구축

2025. 6. 18. 01:11·유니티(Unity)/툴 개발

📌 개요

 

 

이전 포스터에서 오라클 클라우드 인스턴스를 제작하고 연결하는 작업까지 모두 마쳤습니다.

 

이제 본격적으로 인스턴스에 Verdaccio 레지스트리 서버를 구축하도록 하겠습니다.

 

 

 

 

 


📌 Verdaccio란 무엇인가?

 

https://verdaccio.org/docs/what-is-verdaccio/

 

What is Verdaccio? | Verdaccio

Verdaccio is a lightweight private npm proxy registry built in Node.js

verdaccio.org

 

Verdaccio란 무엇인가?

 

verdaccio는 Node.js로 구축된 private npm 레지스트리 서버입니다.

 

사내 또는 개인 프로젝트에서 npm 패키지를 비공개로 배포하거나,

 

npm 캐시 프록시 서버로 활용할 수 있어요.

 

※ Verdaccio에 대해 더 궁금하신 분은 위 공식 문서를 통해 알아보세요!

 

 

 

 

 


📌 npm & node.js 설치하기

 

 

MobaXterm 툴을 통해 가상머신에 접속해주세요.

 

Verdaccio를 설치하기 전에, npm & node.js을 설치해주도록 하겠습니다.

 

차례대로 다음 명령어를 입력합니다.

 

 

1. 시스템 패키지 업데이트

sudo apt update

 

 

2. curl 설치 (URL을 통해 데이터를 받기 위한 용도)

sudo apt install curl -y

 

 

3. nvm 다운로드 및 설치

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash

 

 

4. nvm 설치 확인

nvm --version

 

 

⚠️ 만약 nvm 명령어를 찾지 못한다면?

echo 'export NVM_DIR="$HOME/.nvm"' >> ~/.profile
echo '[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"' >> ~/.profile

 

.profile 파일은 사용자 로그인할 때 실행되는 스크립트입니다.

이 스크립트에 nvm 초기화 코드를 추가하여 세션을 재접속해보세요.

 

 

5. node.js 22 설치

nvm install 22

 

 

6. node.js 설치 확인

node -v
nvm current
npm -v

 

 

위 3개 명령어를 입력하여 버전이 올바르게 출력되는지 확인합니다.

 

 

 

 

 


📌 Verdaccio 설치하기

 

이제 Verdaccio를 설치할 준비가 끝났습니다!

 

다음 명령을 입력하여 Verdaccio를 설치해주세요.

npm install -g verdaccio

 

 

그 후 Verdaccio가 제대로 설치됐는지 확인합니다.

verdaccio

 

 

 

그러면 위처럼 서버 관련 설정 파일(config) 파일과 로컬 호스트 주소를 확인할 수 있습니다.

 

 

 

 

 


📌 Verdaccio 연결을 위한 오라클 클라우드 4873 포트 열기

 

 

 

Verdaccio를 설치했지만, 아직까지 외부에서 통신을 할 수 없습니다.

 

왜냐하면 Verdaccio가 사용하는 포트(4873)을 열어주지 않았기 때문입니다.

 

지금부터 포트를 개방하는 방법에 대해 설명하겠습니다.

 

 

 

먼저 오라클 홈페이지에 접속합니다.

 

그 후 VCN - Security - Default Security List for {name} - Security rules로 들어갑니다.

(위 사진처럼 Default로 3개의 Ingress Rules가 보여야 합니다)

 

그리고 Ingress Rules에서 Add Ingress Rules을 추가합니다.

 

 

 

 

위처럼 설정해주세요. ( Ingress Rule을 추가하여 4873 포트 열기)

 

 

 

 

그러면 위처럼 추가된 것을 확인할 수 있습니다.

 

이러면 준비는 끝났습니다!

 

 

 

 

 


📌 Verdaccio 서버 24시간 백그라운드 가동

 

 

이제 Verdaccio 서버를 열어 외부에서 접근할 수 있는 상태로 만들어봅시다.

 

그전에 config.yaml 파일을 수정하여 외부에서 접근할 수 있도록 세팅하겠습니다.

(npm 설치의 경우 기본 경로: ~/.config/verdaccio/config.yaml)

 

 

config.yaml 파일을 열어 아무 줄에 위처럼 추가해줍니다.

 

이건 어떤 IP든 4873 포트 접근을 허용한다는 의미입니다.

 

 

 

 

이제 터미널로 돌아와 다음 명령어를 차례대로 입력해주세요.

 

 

1. 백그라운드 실행을 위한 pm2 설치

npm install -g pm2

 

 

2. pm2 설치 확인

pm2 -v

 

 

3. verdaccio 위치 확인

which verdaccio

 

이때, 출력되는 경로를 복사해줍니다.

 

 

4. verdaccio 백그라운드 실행

pm2 start {복사한 경로} --name verdaccio -- --listen 0.0.0.0:4873

 

※ 중간에 -- 뒤에 오는 인자는 verdaccio에게 전달됩니다.

즉, verdaccio 서버는 listen 상태로 진입한다는 의미입니다.

 

 

5. 백그라운드에서 잘 작동하는지 확인

pm2 list

 

위처럼 보인다면 백그라운드에서 잘 실행되고 있는 상태입니다-!

 

 

 

(+추가) 가상머신 리부트 시 자동 시작 설정하기

 

오라클 무료 인스턴스는 리소스가 많이 제한됩니다.

따라서 잦은 리부트으로 불편함이 있을 수 있어요.

그래서 자동화를 해두면 편하니 아래 작업을 해주시면 좋습니다.

 

 

1. 자동 시작 명령어 복사 및 실행

pm2 startup

 

출력되는 명령어를 복사한 뒤 그대로 command에 입력해 실행합니다.

 

 

2. 자동 시작 설정 완료 

pm2 save

 

재부팅 후 자동 시작 설정을 완료합니다.

 

 

 

이제 연결을 확인해봅시다!

 

웹 주소에 http://{public IP}:4873을 입력해보세요.

 

 

그러면 위처럼 외부에서도 Verdaccio 서버에 접속할 수 있음을 확인할 수 있습니다.

 

오늘은 여기까지 포스팅하도록 하겠습니다.

 

다음에는 Verdaccio에 npm 패키지를 등록 및 배포 방법에 대해 살펴보도록 하겠습니다.

 

 



 


📌 Verdaccio 서버 연결이 안될 때

 

 

먼저 외부에서 명령 프롬프트(cmd)을 키고,

 

위 사진처럼 ping {공식 IP} 명령을 통해 패킷이 제대로 전송되는지 체크합니다.

 

만약 패킷이 손실된다면, 오라클 홈페이지로 들어가 VCN & 서브넷을 체크해보세요.

 

 

 

공식 IP 연결은 원활하지만, 포트 연결이 안될 때


https://www.yougetsignal.com/tools/open-ports/

 

Open Port Check Tool - Test Port Forwarding on Your Router

 

www.yougetsignal.com

 

 

 

위 사이트로 들어가서 Address에 고정 IP(Public IP)을 입력하고, Port Number는 4873으로 입력합니다.

 

 

위 사진처럼 뜬다면 연결에 성공했다는 의미입니다.

 

만약 포트가 close로 뜬다면 아래 단계로 넘어갑니다.

 

 

 

 

여기서 {공식 IP} 와 포트번호(22)을 체크해보세요.

 

이때 연결이 잘된다면 포트번호(4873)에 대해 방화벽 문제가 있을 수 있습니다.

 

※ 터미널에서 sudo lsof -i :4873 명령을 입력하여 포트가 제대로 열려있는지도 체크합니다.

 

 

 

만약 모든게 완벽한데 안된다?! 그러면 방화벽 문제일 확률이 큽니다.

 

AWS는 초기에 ufw 방화벽만 설정되는 반면, 오라클은 netfilter, iptables를 사용한 방화벽이 더 있기 때문입니다.

 

다음 명렁을 차례대로 수행해 포트를 개방해주세요.

sudo iptables -I INPUT 1 -p tcp --dport 4873 -j ACCEPT
sudo netfilter-persistent save
sudo netfilter-persistent reload

 

또한, sudo ufw status 명령을 통해 ufw가 꺼져있는지도 체크합니다.

 

 

 

 

 

'유니티(Unity) > 툴 개발' 카테고리의 다른 글

[Private UPM 개발(4/4)] UPM 빌드 파이프라인 자동화 (CI/CD)  (1) 2025.06.20
[Private UPM 개발(3/4)] Verdaccio 패키지 등록 및 배포  (0) 2025.06.19
[Private UPM 개발(1/4)] 클라우드 컴퓨팅을 위한 가상머신 생성  (1) 2025.06.17
[Public UPM 개발(3/3)] OpenUPM 빌드 파이프라인 구축  (3) 2025.06.10
[Public UPM 개발(2/3)] Semantic-Release 자동화  (2) 2025.06.08
'유니티(Unity)/툴 개발' 카테고리의 다른 글
  • [Private UPM 개발(4/4)] UPM 빌드 파이프라인 자동화 (CI/CD)
  • [Private UPM 개발(3/4)] Verdaccio 패키지 등록 및 배포
  • [Private UPM 개발(1/4)] 클라우드 컴퓨팅을 위한 가상머신 생성
  • [Public UPM 개발(3/3)] OpenUPM 빌드 파이프라인 구축
게임을 제작하는 사람
게임을 제작하는 사람
안녕하세요, 게임 개발자 천냥입니다! 게임을 제작하는 개발자들에게 도움이 될만한 정보와 지식을 제공하는 블로그입니다 ;)
  • 게임을 제작하는 사람
    천냥의 게임 개발 일지
    게임을 제작하는 사람
  • 전체
    오늘
    어제
    • 분류 전체보기 (92) N
      • 유니티(Unity) (61) N
        • 콘텐츠 개발 (8) N
        • 툴 개발 (11)
        • 이슈 도감 (10)
        • 최적화 기법 (4)
        • 쉐이더 (3)
        • 포톤 (0)
        • 이론 정리 (15)
        • 유용한 패키지 정리 (3)
        • 패키지: Cinemachine 정리 (7)
      • C# (2)
      • IT (29)
        • 기술 정리 (2)
        • 알고리즘 (26)
        • Git (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    오블완
    최적화
    editor
    Cinemachine
    시네머신
    에디터
    C++
    custom package
    무한 플랫포머
    addressable
    upm
    oracle
    코딩 테스트
    openupm
    verdaccio
    upm 개발
    UI
    allin1spriteshader
    쉐이더
    private upm
    Unity
    커스텀 패키지
    카메라
    티스토리챌린지
    패키지 버전 관리
    코테
    유니티
    2d endless platform 구현
    끝 없는 2d 맵
    Shader
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.2
게임을 제작하는 사람
[Private UPM 개발(2/4)] Verdaccio 레지스트리 서버 구축
상단으로

티스토리툴바