비교
CRACI와 JFrog Artifactory
Artifactory는 리포지토리를 거쳐 가는 패키지를 봅니다. CRACI는 각 빌드가 실제로 한 일을 봅니다. 이미 Artifactory를 운영하고 있다면 CRACI는 대체재가 아니라 추가 도구입니다.
업데이트
같은 공급망을 보는 두 관점
많은 엔지니어링 조직이 패키지 트래픽을 JFrog Artifactory로 라우팅합니다. 원격 리포지토리는 npm이나 PyPI 같은 공개 레지스트리의 캐싱 프록시 역할을 하며, 필요할 때 패키지를 가져와 사본을 보관합니다. 가상 리포지토리는 여러 소스를 하나의 URL 뒤에 결합합니다. 자사 빌드 결과물은 로컬 리포지토리에 저장됩니다. 이를 통해 회사에 들어오는 것을 한곳에서 보고 관리할 수 있습니다.
CRACI는 다른 위치에 있습니다. CRACI는 GitHub Actions 작업이 실행되는 CI 러너이며, 각 작업이 실행되는 동안 작업이 가져오는 외부 종속성을 기록합니다. Artifactory는 "우리 리포지토리를 거쳐 간 것은 무엇인가?"에 답합니다. CRACI는 "이 특정 빌드가 무엇을 사용했고, 어떤 아티팩트가 만들어졌는가?"에 답합니다.
| 기능 | CRACI | JFrog Artifactory |
|---|---|---|
| 빌드 실행 | 작업이 CRACI 러너에서 실행 | 빌드와 개발자에게 패키지 제공 |
| 빌드별 종속성 기록 | 모든 작업에 자동, 작업 및 캐시별 완전성 | JFrog CLI로 파이프라인에 추가하는 build-info |
| 프록시 바깥의 가져오기 확인 | 패키지 소스에서의 모든 가져오기 기록 | 다른 도구는 build-add-dependencies로 수동 등록 |
| 빌드 네트워크 이그레스 정책 | 기본 거부 또는 허용, 실패 시 차단 | 빌드 네트워크 접근이 아닌 리포지토리를 관리 |
| 패키지 차단 | 현재는 이그레스 정책으로 접근 가능한 소스를 제한 | 원격 리포지토리에서 JFrog Curation, 캐시된 패키지 포함 |
| SBOM 내보내기 | 각 빌드에 대해 CycloneDX 및 SPDX | JFrog Xray를 통한 CycloneDX 및 SPDX |
| 아티팩트와 빌드의 연결 | API로 출처 증명 데이터 제공, 서명 없음 | 추적성과 프로모션을 위한 build-info |
| 취약점 스캔 | 빌드 전반에서 집계, 모니터링 중인 SBOM 재평가 | Xray가 아티팩트와 빌드를 스캔 |
| 아티팩트 저장 및 배포 | 리포지토리 관리자가 아님, 기존 도구 유지 | 핵심 제품, 다양한 패키지 유형 지원 |
| 함께 사용하기 | Artifactory의 npm 및 PyPI 미러는 CRACI 빌드와 함께 작동합니다. | 패키지와 릴리스 바이너리의 기준 원천으로 유지됩니다. |
- 포함
- 일부 지원
- 미포함
- 로드맵에 포함
Artifactory의 강점
Artifactory는 성숙한 리포지토리 관리자입니다. 팀에 업스트림 패키지에 대한 안정적이고 캐시된 접근, 내부 아티팩트의 보관 장소, 다양한 패키지 유형에 대한 단일 통제 지점을 제공합니다. 그 위에 JFrog Platform이 더 많은 기능을 더합니다.
- Build-info. JFrog CLI를 사용하면 명령에 빌드 이름과 번호를 추가하고, 해석된 종속성, 생성된 아티팩트, 환경 변수, Git 세부 정보를 담은 JSON 기록을 게시합니다. 이 기록은 추적성, 빌드 프로모션, Xray 스캔을 지원합니다.
- Xray. 아티팩트와 빌드의 취약점을 스캔하고 SPDX 및 CycloneDX 형식으로 SBOM을 내보냅니다. JFrog의 라이선스 매트릭스에 따르면 Xray는 Pro X, Enterprise X, Enterprise+ 구독에 포함되어 있습니다(2026년 9월 기준).
- Curation. 원격 캐시에 이미 있는 패키지를 포함해, 악성이거나 취약한 패키지가 개발자에게 도달하기 전에 원격 리포지토리에서 차단합니다.
레지스트리에서의 패키지 수준 차단은 분명한 강점입니다. CRACI는 현재 개별 패키지를 차단하지 않으며, 조직 전체의 패키지 차단 목록 기능은 CRACI 로드맵에 있습니다.
CRACI가 더하는 것
라우팅에 의존하지 않는 가시성
Artifactory는 자신을 거쳐 라우팅되는 것만 봅니다. 빌드가 항상 그렇게 동작하는 것은 아닙니다. 작업은 GitHub
릴리스에서 툴체인을 내려받거나, OS 패키지를 설치하거나, 공개 레지스트리에서 베이스 이미지를 가져오거나, 바이너리를
가져오는 스크립트를 실행할 수 있습니다. JFrog 자체 문서에 따르면 다른 도구가 가져온 종속성은
build-add-dependencies로 수동 등록할 수 있으며, 이는 누군가 그 종속성을 알고 있어야 한다는 뜻입니다.
CRACI는 러너에서 기록합니다. 패키지를 인식하는 프록시가 작업 중 패키지 소스로 가는 트래픽을 관찰하며, 대상은 npm, PyPI, RubyGems, Composer, Cargo, Go, Nix, OCI, apt, apk, Git 소스와 다운로드 프리셋입니다. npm이나 PyPI 설치가 Artifactory 미러를 거친다면 그대로 작동하며, CRACI는 그 패키지들도 기록합니다.
추가 단계 없는 빌드별 증거
Build-info는 가치 있지만 각 파이프라인에 추가해야 하는 것입니다. CRACI에서는 러너가 기록을 생성하므로 모든 작업에 기록이 존재합니다. 종속성 증거는 CI 캐시와 함께 전달되므로, 캐시에서 복원된 패키지도 계속 집계됩니다. 모든 SBOM에는 작업별 및 캐시별 완전성 상태(Complete, Complete with connections, Incomplete, Unavailable 또는 Not recorded)가 담깁니다. 기록에 빈틈이 있으면 그렇다고 명시합니다.
빌드를 승인된 경로에 유지
CRACI가 작업을 실행하므로 작업의 네트워크 이그레스 정책을 설정할 수 있습니다. 정책은 기본 거부 또는 기본 허용이며, 24개의 기본 제공 소프트웨어 소스 프리셋, 유형별 사용자 지정 소스(npm, PyPI, apt, apk, Go 프록시, Nix, Cargo, OCI 레지스트리, Git), 그리고 명시적인 TLS, TCP, UDP, ICMP 규칙을 제공합니다. 정책은 작업 시작 전에 검증되고 실패 시 차단됩니다. Artifactory 호스트를 허용하고 공개 레지스트리로의 직접 접근을 거부하는 정책은 빌드가 실제로 관리되는 경로를 사용하도록 하는 데 도움이 됩니다. 작업이 정책을 위반하면 CRACI가 알림을 보냅니다.
Artifactory와 나란히 두는 빌드 증거
API는 SBOM, 네트워크 추적, 출처 증명을 반환합니다. CRACI는 출처 증명에 서명하지 않습니다. 아티팩트는 지금처럼 Artifactory에 저장하고, 빌드가 가져온 내용의 기록은 CRACI에서 얻으세요.
EU Cyber Resilience Act에 대응해야 하는 팀에게 이 기록은 릴리스 수준 증거의 바탕이 됩니다. CRACI는 빌드와 리포지토리 전반의 취약점을 집계하고, 모니터링 중인 SBOM을 지속적으로 재평가하며, 이를 CycloneDX 또는 SPDX로 내보냅니다. CRA 증거와 CRA 컴플라이언스를 참조하세요.
어디에 무엇이 배포되어 있는지에 대한 인벤토리
CRACI의 인벤토리 보기는 어떤 소프트웨어 버전이 어떤 제품에 배포되어 있는지 전 세계적으로 정확히 보여 줍니다. 새로운 취약점이 나타나면 릴리스 노트와 스프레드시트를 짜 맞추는 대신, 어떤 제품이 영향을 받는 버전을 실행하는지 확인할 수 있습니다.
함께 사용하는 방법
- Artifactory는 패키지 프록시, 아티팩트 저장소, 릴리스 배포 지점으로 유지하세요.
-
runs-on을craci로 변경해 GitHub Actions 작업을 CRACI로 옮기세요. 워크플로는 그대로 유지되며, 실행은 여전히 GitHub UI에 표시됩니다. - npm 및 PyPI 설치는 지금처럼 Artifactory 미러를 가리키도록 두세요.
- CRACI 이그레스 정책으로 빌드를 Artifactory를 포함한 승인된 소스에 유지하세요.
- CRACI의 빌드별 SBOM, 출처 증명, 네트워크 추적을 각 릴리스의 증거로 사용하세요.
현재 JFrog build-info나 Curation을 사용하고 있다면 계속 사용하세요. CRACI는 현재 GitHub Actions만 지원하므로(GitLab CI와 Jenkins는 로드맵에 있음), 다른 CI 시스템의 파이프라인은 그대로 유지됩니다.
Artifactory 자체를 대체하려는 경우 JFrog Artifactory 대안을 참조하세요.
자주 묻는 질문
CRACI가 Artifactory를 대체합니까?
아닙니다. CRACI는 리포지토리 관리자가 아닙니다. 패키지나 릴리스 바이너리를 저장하거나 배포하지 않습니다. CRACI는 빌드를 실행하고 그에 대한 증거를 기록합니다.
CRACI는 Xray와 겹칩니까?
일부 겹칩니다. 둘 다 CycloneDX와 SPDX로 SBOM을 내보내며, 둘 다 취약점 추적을 돕습니다. 차이는 입력입니다. Xray는 JFrog가 알고 있는 아티팩트와 빌드를 스캔합니다. CRACI의 SBOM과 취약점 보기는 빌드와 리포지토리 전반에서 각 빌드가 실행되는 동안 가져온 내용에서 나옵니다. Xray가 릴리스 프로세스에 포함되어 있다면 계속 사용하고, CRACI의 빌드별 기록을 두 번째 독립 원천으로 활용하세요.
어떤 Artifactory 리포지토리 유형이 CRACI와 함께 작동합니까?
Artifactory의 npm 및 PyPI 미러는 CRACI 빌드와 함께 작동하는 것이 확인되었습니다. 다른 패키지 유형의 경우, 해당 파이프라인을 옮기기 전에 구성에 대해 문의해 주세요.
빌드 시점 SBOM 생성과 취약점 추적에 대해 자세히 알아보거나, 요금을 확인하세요.
Artifactory 구성에 빌드 증거를 더하세요
Artifactory 미러를 사용하는 GitHub Actions 워크플로 하나를 CRACI에서 실행하고, 생성되는 빌드별 기록을 확인해 보세요.
데모 예약