Nexus 사용 정리
🏢 프로젝트 배경
- 환경: 폐쇄망(인터넷이 연결되지 않은 내부망)
🔒 폐쇄망 환경의 문제점
- 인터넷이 차단되어 있어 외부로부터 라이브러리(dependency) 를 자동으로 다운로드 받을 수 없음
- 예: Gradle, Maven, npm, Docker 등에서 사용하는 의존성 패키지들을 가져올 수 없음
📦 해결 방법 – Nexus 도입
✅ Nexus란?
- Sonatype에서 제공하는 Repository Manager
- 다양한 패키지 매니저(Maven, npm, Docker 등)의 프록시 역할을 해줌
- 내부망에 Nexus를 설치하면 외부에서 미리 받은 라이브러리를 저장해두고
폐쇄망 환경에서도 이를 로컬에서 가져다 쓸 수 있음
🎯 Nexus의 주요 쓰임새
항목 | 설명 |
---|---|
Dependency 저장소 | 외부망에서 미리 다운로드 받은 라이브러리들을(ex. jar파일) 보관 |
폐쇄망 대응 | 내부망에서 의존성 해결 가능 |
프록시 캐시 | 한번 받은 라이브러리는 캐시되어 재사용 가능 |
Docker Registry 기능 | 자체 Docker 이미지 저장소로 활용 가능 |
거의 Dependency 저장소로만 사용했고 사용할 라이브러리들을 remote로 배포시에 각각 올리기로 했음
🐳 Nexus와 Docker
- Nexus는 Docker Registry 기능도 지원함
- 따라서 사내에서 만든 Docker 이미지를 Nexus에 저장해두고
폐쇄망 환경에서 pull/push 가능 - 개발 및 배포 자동화에도 활용 가능
- ex) docker hub 같은 역할 > 다만 private
📝 정리
- 대상 프로젝트는 폐쇄망 환경이라 외부 의존성 사용이 불가능
- 이를 해결하기 위해 Nexus를 사용해 의존성 사용할 수 있도록 함
- Nexus는 Maven/Docker 등 다양한 패키지 관리 시스템과 연동되며
폐쇄망 개발 환경에서 중앙 저장소 역할을 수행