Nexus Repository Manager의 Raw Repository 기능을 이용하여 VSCode 플러그인(VSIX)을 자동 수집하고 중앙 저장소로 관리하는 방법을 설명합니다. 폐쇄망 환경, 사내 개발환경 표준화, VSCode 확장 프로그램 자동 배포 구축에 활용할 수 있습니다.

Nexus3를 활용한 VSCode 플러그인(VSIX) 자동 수집 및 중앙 저장소 구축 방법
사내망 또는 인터넷 접근이 제한된 환경에서는 VSCode Marketplace에 직접 접속하여 플러그인을 설치하기 어려운 경우가 많습니다. 특히 금융권, 공공기관, 제조업 등의 폐쇄망 환경에서는 개발자가 필요한 확장 프로그램을 개별적으로 다운로드하기 어렵기 때문에 별도의 중앙 저장소가 필요합니다.
이 글에서는 Nexus Repository Manager의 Raw Repository 기능을 활용하여 VSCode 플러그인(VSIX)을 자동 수집하고 중앙 저장소 형태로 관리하는 방법을 소개합니다. 이를 통해 최신 플러그인을 자동으로 수집하고 사내 개발자들이 동일한 버전의 확장 프로그램을 사용할 수 있도록 구성할 수 있습니다.
왜 Nexus로 VSCode 플러그인을 관리해야 할까
일반적으로 VSCode 플러그인은 Marketplace에서 직접 설치합니다.
하지만 다음과 같은 환경에서는 문제가 발생할 수 있습니다.
환경문제점
| 폐쇄망 | Marketplace 접근 불가 |
| 보안망 | 외부 다운로드 제한 |
| 대규모 개발 조직 | 플러그인 버전 불일치 |
| 표준 개발 환경 구축 | 플러그인 목록 통제 필요 |
Nexus를 활용하면 다음과 같은 장점이 있습니다.
- VSCode 플러그인 중앙 관리
- 폐쇄망 환경에서도 설치 가능
- 최신 버전 자동 수집
- 개발 환경 표준화
- 설치 이력 및 버전 관리
- 다른 설치 파일과 함께 통합 관리 가능
현재 스크립트 동작 방식
자동 수집 스크립트는 다음과 같은 구조로 동작합니다.
저장 경로
pds/vsix/{카테고리}/{publisher.extension-version}.vsix
예시
pds/vsix/01-basic/continue.continue-0.0.412.vsix
pds/vsix/02-git/mhutchie.git-graph-1.30.0.vsix
pds/vsix/04-java/vscjava.vscode-java-debug-0.59.0.vsix
처리 과정
- plugins.txt 읽기
- Marketplace 최신 VSIX 다운로드
- VSIX 내부 version 정보 추출
- 최종 파일명 생성
- Nexus 동일 파일 존재 여부 확인
- 없으면 업로드
- 있으면 업로드 생략
플러그인 목록 파일 구성
작업 디렉터리 생성
mkdir -p ~/scripts/vscode-plugin-sync
cd ~/scripts/vscode-plugin-sync
플러그인 목록 파일 생성
vi plugins.txt
기본 예시
01-basic|continue.continue
02-git|mhutchie.git-graph
04-java|vscjava.vscode-java-debug
05-springboot|vmware.vscode-spring-boot
지원 형식
기본 카테고리 사용
publisher.extension
자동으로 01-basic 카테고리가 적용됩니다.
카테고리 지정
category|publisher.extension
예시
04-java|vscjava.vscode-java-debug
경로 방식
category/publisher.extension
예시
04-java/vscjava.vscode-java-debug

플러그인 분류 예시
01-basic|esbenp.prettier-vscode
02-git|mhutchie.git-graph
03-vue|vue.volar
04-java|vscjava.vscode-java-debug
05-springboot|vmware.vscode-spring-boot
07-docker|ms-azuretools.vscode-docker
08-php|xdebug.php-debug
99-etc|alefragnani.bookmarks
카테고리를 미리 분류해두면 개발 환경별 플러그인 관리가 훨씬 쉬워집니다.
자동 다운로드 및 Nexus 업로드
동기화 스크립트 생성
vi sync-vscode-plugins.sh
실행
chmod +x sync-vscode-plugins.sh
./sync-vscode-plugins.sh
실행 시 plugins.txt에 등록된 모든 플러그인을 대상으로 최신 버전을 확인합니다.
신규 버전이 존재하면 다운로드 후 Nexus에 업로드합니다.
동일 버전 파일이 이미 존재하는 경우에는 업로드를 건너뜁니다.
Nexus에서 플러그인 관리
업로드가 완료되면 Nexus Browse 화면에서 카테고리별로 플러그인을 확인할 수 있습니다.
예시 구조
vsix
├─ 01-basic
├─ 02-git
├─ 03-vue
├─ 04-java
├─ 05-springboot
├─ 07-docker
├─ 08-php
└─ 99-etc
버전별 파일이 그대로 보관되므로 이전 버전으로 롤백도 가능합니다.
VSCode 플러그인 다운로드
필요한 VSIX 파일을 다운로드합니다.
예시
wget <NEXUS_URL>/repository/pds/vsix/01-basic/continue.continue-0.0.412.vsix
wget <NEXUS_URL>/repository/pds/vsix/04-java/vscjava.vscode-java-debug-0.59.0.vsix
브라우저에서도 동일하게 다운로드할 수 있습니다.
VSCode 플러그인 설치
다운로드한 VSIX 파일은 CLI로 설치 가능합니다.
Continue 설치
code --install-extension continue.continue-0.0.412.vsix
Java Debug 설치
code --install-extension vscjava.vscode-java-debug-0.59.0.vsix
파일명에 버전이 포함되므로 실제 다운로드한 파일명을 사용해야 합니다.
자동 실행(Cron)
매일 새벽 4시 30분에 최신 플러그인을 자동 수집하도록 설정할 수 있습니다.
Crontab 편집
crontab -e
등록
30 4 * * * cd ~/scripts/vscode-plugin-sync && ./sync-vscode-plugins.sh >> sync.log 2>&1
이를 통해 운영자가 별도로 관리하지 않아도 최신 플러그인이 지속적으로 수집됩니다.
운영 시 참고 사항
plugins.txt 항목 수만큼 처리
플러그인 처리 건수는 plugins.txt의 유효한 항목 수와 동일합니다.
중복 업로드 방지
동일 버전 파일이 Nexus에 존재하면 업로드를 건너뜁니다.
신규 버전 자동 적재
새 버전이 배포되면 다른 파일명으로 저장됩니다.
예시
continue.continue-0.0.412.vsix
continue.continue-0.0.413.vsix
continue.continue-0.0.414.vsix
기존 버전은 유지되므로 필요 시 특정 버전으로 롤백할 수 있습니다.
마무리
Nexus Repository Manager의 Raw Repository 기능을 활용하면 VSCode 플러그인(VSIX)을 중앙 저장소 형태로 관리할 수 있습니다. 특히 폐쇄망 환경이나 사내 개발환경 표준화가 필요한 조직에서는 Marketplace 의존성을 줄이고 안정적인 개발 환경을 구축할 수 있습니다.
또한 VSCode 플러그인뿐만 아니라 JDK, Node.js, Docker Desktop, 데이터베이스 클라이언트, 개발 도구 설치 파일까지 함께 관리할 수 있어 사내 소프트웨어 자료실(PDS) 구축에도 매우 유용합니다.
플러그인 자동 수집과 Nexus 연계를 통해 개발 환경 구축 시간을 줄이고 운영 효율성을 높여보시기 바랍니다.
FAQ
Nexus Raw Repository를 사용하는 이유는 무엇인가요?
별도의 패키지 저장소 형식이 필요 없으며 단순 파일 저장이 가능하기 때문입니다. VSIX 파일 관리에 가장 간단한 방식입니다.
Marketplace에 접속할 수 없는 환경에서도 사용할 수 있나요?
가능합니다. 인터넷이 연결된 서버에서 수집한 후 Nexus에 업로드하면 폐쇄망 개발자는 Nexus에서 다운로드하여 설치할 수 있습니다.
기존 버전도 유지되나요?
파일명에 버전이 포함되므로 기존 버전은 삭제되지 않고 함께 보관됩니다.
VSCode 외 다른 프로그램도 관리할 수 있나요?
가능합니다. JDK, Node.js, Maven, Gradle, DBeaver, Docker Desktop 등 다양한 설치 파일을 함께 관리할 수 있습니다.
'서버 & 인프라' 카테고리의 다른 글
| Nexus3 Raw Repository로 VSCode 설치파일 및 VSIX 플러그인 사내 자료실 구축하기 (0) | 2026.06.15 |
|---|---|
| Apache에서 HTTP Method 차단 테스트 시 반드시 확인해야 할 사항 (0) | 2026.06.05 |
| GitLab Runner를 이용한 Spring Boot 자동 배포 구축하기 (AlmaLinux 9) (1) | 2026.06.05 |
| AlmaLinux 9에서 Spring Boot 서비스 등록 및 운영하기 (systemd + Apache Reverse Proxy) (0) | 2026.06.05 |
| DDNS란 무엇인가? 유동 IP 환경에서 꼭 필요한 이유와 활용 방법 (0) | 2026.06.04 |
