WIPIVERSE

CPAN

CPAN (Comprehensive Perl Archive Network)

개요 CPAN은 펄(Perl) 프로그래밍 언어의 소프트웨어 모듈, 배포판, 문서를 저장하고 배포하는 중앙 집중식 아카이브 네트워크이다. 1995년 10월에 설립되었으며, 펄 커뮤니티의 핵심 인프라로 기능한다. 전 세계 수많은 미러 사이트를 통해 사용자에게 소프트웨어를 제공한다.

주요 기능 및 특징

  • 모듈 배포: 펄 개발자는 CPAN을 통해 재사용 가능한 코드 라이브러리(모듈)를 게시하고 버전을 관리할 수 있다.
  • 의존성 관리: 모듈 간 의존성 정보를 포함하여, 클라이언트 도구(CPAN.pm, CPANPLUS, cpanminus 등)가 자동으로 필요한 모듈을 내려받아 설치할 수 있도록 지원한다.
  • 테스트 인프라: CPAN Testers라는 분산 테스트 네트워크를 통해 업로드된 모듈이 다양한 플랫폼과 펄 버전에서 올바르게 작동하는지 자동으로 테스트하고 결과를 공개한다.
  • 문서화: 각 배포판에는 POD(Plain Old Documentation) 형식의 문서가 포함되어 있으며, 웹 인터페이스(MetaCPAN, search.cpan.org 등)를 통해 열람 가능하다.
  • 네임스페이스 관리: PAUSE(Perl Authors Upload Server) 시스템을 통해 저작자 인증과 모듈 네임스페이스 권한을 관리한다.

주요 클라이언트 도구

  • CPAN.pm: 펄 코어에 포함된 표준 셸 기반 클라이언트.
  • CPANPLUS: CPAN.pm의 대안으로 개발된 모듈식 클라이언트.
  • cpanminus (cpanm): 의존성이 적고 사용이 간편한 경량 설치 도구로, 현재 가장 널리 쓰인다.

관련 웹 서비스

  • MetaCPAN: 현재 가장 널리 사용되는 현대적인 웹 프론트엔드로, API와 검색 기능을 제공한다.
  • search.cpan.org (폐쇄): 과거 표준 웹 인터페이스였으나 2021년 서비스를 종료하고 MetaCPAN으로 통합되었다.

의의 CPAN은 "배터리가 포함된" 펄의 철학을 구현하는 핵심 자산으로 평가받으며, 이후 루비(Ruby)의 RubyGems, 파이썬(Python)의 PyPI, 자바스크립트(Node.js)의 npm 등 타 언어의 패키지 관리 생태계 설계에 큰 영향을 미쳤다.

둘러보기

더 찾아볼 만한 주제

    전체 문서 보기