[OpenSource] Nexus

Jimin·2024년 5월 29일
0

오픈소스

목록 보기
1/1
post-thumbnail

Nexus란

Apache Maven 프로젝트와 관련된 중앙 저장소 관리 시스템으로,nexus는 이 프로젝트에 필요한 종속성(의존성) 파일을 저장하고 관리하는 중앙 저장소 역할을 한다.

(Maven은 Java 기반 프로젝트를 빌드하고 관리하기 위한 도구)

소프트웨어 저장소 관리 시스템,
소프트웨어 개발에서 사용되는 다양한 라이브러리, 의존성 및 아티팩트를 효율적으로 관리하고 저장하는데 사용된다.
(Maven, npm, Docker, NuGet 등 다양한 패키지 형식을 지원,
Proxy Repository, Host Repository, 보안 기능 등을 포함한다.)

  • Sonatype에서 만든 저장소 관리자 프로젝트: Nexus Repository Manager
  • 다양한 format의 사설 저장소를 만들 수 있으며 메인 저장소를 Cache할 수 있는 기능 또한 제공하여 저장소를 관리할 수 있도록 도와주는 관리자 도구
  • Maven에서 사용할 수 있는 가장 널리 사용되는 무료 저장소

Nexus의 필요성

사설 리포지토리가 필요한 이유

  1. 회사/단체의 화이트 리스트로 인해 외부 레포지토리에 접속하기 어려운 경우 Proxy의 역할을 한다.
  2. 비상시 외부 인터넷이 느리거나 레포지토리가 다운되는 등 여러 상황에서도 빠르게 받을 수 있다.
  3. 현재 Maven에 올라와 있지 않은 자료들을 효율적으로 관리할 수 있다.
  4. 한 번 다운로드 받은 dependency는 로컬에 저장되어서 협업 시 다른 PC에도 설치해야 한다.
  5. 서버에도 동일한 설정들을 해주어야 하므로 서버 구조가 복잡할 수록 잔업이 증가하게 된다.
  6. 예외 파일로 인한 설정이 줄어들어 전체적인 일관성이 증가하게 된다.
  7. 개발팀에서 사용하는 공통 라이브러리들을 공유할 수 있다.
  8. 특정 솔루션을 사용하기 위한 3rd Party 라이브러리를 관리할 수 있다.

Nexus 기능

  1. 의존성 관리
    Maven 프로젝트에서 필요한 외부 라이브러리 및 플러그인 관리 및 다운 가능
  2. 중앙 저장소
    Nexus는 중앙 위치에 위치하여 여러 프로젝트에서 공유할 수 있는 중앙 저장소 역할을 한다.
  3. 로컬 캐시
    Maven 빌드 작업을 향상시키기 위해 로컬 캐시를 제공하여 반복적인 다운로드를 피할 수 있다.
  4. 보안 및 권한 관리
    사용자에게 적절한 접근 권한 부여 및 저장소 보안 관리
  5. 프록시 기능
    원격 Maven 저장소로부터 필요한 의존성 다운로드할 때 프록시 기능을 통해 속도 향상 가능
  6. 그룹화
    여러 저장소를 그룹화하여 하나의 가상 저장소로 사용할 수 있다.
profile
https://github.com/Dingadung

0개의 댓글