LYnLab

블로그취미로그

게시물의 썸네일 이미지

GitHub Package Registry 소개

GitHub는 2019년 5월 10일, 별도의 설치나 셋팅 없이 npm, maven, rubygems, NuGet 패키지 및 Docker 이미지를 배포할 수 있는 GitHub Package Registry 서비스를 공개했습니다.

2019-05-11#프로그래밍

💡 이 글은 작성된지 1년 이상 지났습니다. 정보글의 경우 최신 내용이 아닐 수 있음에 유의해주세요.

GitHub는 2019년 5월 10일, GitHub Package Registry 서비스를 공개했습니다.

GitHub Package Registry 메인 화면

GitHub Package Registry는 별도의 설치나 셋팅 없이 npm, maven, rubygems, NuGet 패키지 및 Docker 이미지를 배포할 수 있는 서비스입니다. 지원하는 언어는 점점 추가될 예정입니다.

GitHub Package Registry에 배포한 패키지는 퍼블릭으로 공개할 수도 있고, 같은 organization의 구성원들에게만 제한적으로 공개할 수도 있습니다. 또한 각종 웹훅과 GitHub Actions과 연동하여 더욱 자동화된 CI/CD 프로세스를 작성할 수도 있습니다.

패키지 접근 제어를 위한 강력한 서비스의 등장

GitHub Package Registry is compatible with common package management clients, so you can publish packages with your choice of tools. If your repository is more complex, you’ll be able to publish multiple packages of different types.
ㅡ The GitHub Blog

이번 서비스의 소개글 중에서 가장 핵심이 되는 문장입니다. GitHub Package Registy는 오픈 소스 소프트웨어보다는 사설(private) 환경에서 훨씬 유용하게 사용될 것이라고 생각됩니다.

에를 들어 A사가 Kotlin, Python, Ruby로 소프트웨어를 개발하고, 이를 Docker 이미지로 빌드해 배포, 운영하고 있다고 생각해봅시다. 최근에는 많은 회사들이 자사의 라이브러리나 도구 등을 오픈 소스로 공개하고 있지만, 당연히 이는 누구에게나 쉬운 일은 아닙니다. 때문에 A사는 사내 공용 라이브러리를 배포하기 위해 사설 레포지토리를 사용해야합니다.

문제는 각 언어, 환경마다 서로 다른 레포지토리 구축이 필요하다는 점입니다. A사는 Kotlin를 위한 Maven, Python용 PyPi, 그리고 Ruby용 gem 저장소 등을 구축해야합니다. 공개 서비스가 아니니 접근 제어도 필요하구요, 빌드 결과물을 배포를 위한 Docker 이미지 저장소 또한 구축해야합니다. Docker Hub를 이용할 수도 있겠으나 여러 측면에서 보안이 썩 믿을만한 서비스는 아니거든요.

당연히 이들은 각각이 이질적이기 때문에 개별적인 운영 노하우가 필요한데다가, 심지어 이렇게 구축해놓은 서비스들을 24시간 안정적인 운영까지 해야합니다. 사설 패키지 저장소는 개발자들이 근무하는 시간에만 잘 떠있으면 되는 것 아니냐구요? 컨테이너 환경에서는 언제 어떻게 배포가 일어날지 모르잖아요. 아무튼 상상만 해도 피곤하고 머리가 지끈거리는 일입니다.

GitHub Package Registry는 이러한 운영 리스크를 대신해줍니다. 일단 모든 접근 제어는 GitHub 계정 인증을 통해 이루어집니다.

$ npm login --registry=https://npm.pkg.github.com --scope=@ORGANIZATION
> Username: USERNAME
> Password: TOKEN
> Email: PUBLIC EMAIL ADDRESS

GitHub는 2FA, SAML SSO 등 꽤나 훌륭한 접근 제어 시스템을 갖추고 있으니, 이를 활용하면 충분히 안전한 환경을 구성할 수 있습니다. GitHub에서 빠르고 신뢰할 수 있는 backed by GitHub 서비스임을 자신있게 내세우고 있는건 덤입니다.

베타 프로그램 참여

GitHub Package Registry 베타 프로그램 참여 화면

현재 GitHub Pakcage Registry는 제한적 베타로 운영되고 있습니다. 서비스에 관심이 있으신 분들은 베타 프로그램 참여를 신청해보시기 바랍니다.

관련된 글

Rails와 GitHub Actions에 커버리지 레포트를 달아보자

이 블로그의 CMS이기도 한 Shiori를 대폭 리팩토링하면서 테스트가 얼마나 잘 작성되어있는지 궁금해졌습니다.

Rails Global ID로 전역 객체 식별하기

Global ID는 Rails의 모든 객체를 식별할 수 있는 URI(Uniform Resource Identifier)입니다.

Ruby on WebAssembly: 살짝 맛보기

Ruby 3.2에 추가된 WebAssembly 지원을 간단하게 테스트해봅시다.

작성한 댓글은 giscus를 통해 GitHub Discussion에 저장됩니다.

크리에이티브 커먼즈 라이선스크리에이티브 커먼즈 저작자표시크리에이티브 커먼즈 동일조건변경허락

본 사이트의 저작물은 별도의 언급이 없는 한 크리에이티브 커먼즈 저작자표시-동일조건변경허락 4.0 국제 라이선스에 따라 이용할 수 있습니다.

© 2011 - 2024 Hoerin Doh, All rights reserved.

LYnLab 로고GitHubTwitterInstagram