소프트웨어 공급망 실패는 직접 작성한 코드 밖의 구성요소나 배포 경로가 침해되는 문제입니다. 의존성 패키지, 빌드 시스템, 아티팩트 저장소 어느 곳에서든 오염이 시작될 수 있습니다.
데모는 한 노드의 오염이 뒤쪽 단계로 번지는 모습을 보여줍니다. 버전 고정, 출처 확인, 빌드 격리, 산출물 검증을 함께 운영해야 전파 경로를 줄일 수 있습니다.
언제 쓰나
외부 패키지 도입, CI 설정, 릴리스 파이프라인을 검토할 때 적용합니다.
의존성부터 빌드·배포까지 오염된 구성요소가 제품으로 전파되는 위험입니다.
<div class="sd"><div class="sd-head"><strong>SUPPLY CHAIN</strong><span id="state">live check</span></div><div class="sd-stage"><div class="chain"><div class="tile" id="pkg">package</div><div class="tile" id="build">build</div><div class="tile" id="artifact">artifact</div><div class="tile" id="release">release</div></div></div><div class="sd-foot"><span id="caption">checking boundary</span><span>tap to step</span></div></div>.sd{box-sizing:border-box;width:min(94vw,700px);height:min(86vh,318px);padding:clamp(9px,2.3vmin,18px);border:1px solid var(--line);border-radius:14px;background:var(--surface);color:var(--fg);display:flex;flex-direction:column;gap:clamp(6px,1.8vmin,12px);font:600 clamp(12px,2.6vmin,16px)/1.25 var(--font-sans, sans-serif)}.sd *{box-sizing:border-box}.sd-head,.sd-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:1.25em}.sd-head strong{color:var(--accent);letter-spacing:.06em}.sd-head span,.sd-foot{color:var(--muted)}.sd-foot{font-size:clamp(12px,2.4vmin,14px)}.sd-stage{position:relative;flex:1;min-height:0;display:flex;align-items:center;justify-content:center;gap:clamp(6px,2vmin,18px);overflow:hidden}.sd .mono{font-family:ui-monospace,monospace}.sd .tile{border:1px solid var(--line);border-radius:8px;background:var(--bg);padding:clamp(5px,1.5vmin,10px);text-align:center}.sd .good{color:var(--accent);border-color:var(--accent)}.sd .bad{color:var(--accent-3);border-color:var(--accent-3)}.sd .arrow{color:var(--muted);font-size:clamp(15px,4vmin,28px)}.sd .active{background:color-mix(in srgb,var(--accent) 16%,var(--surface));border-color:var(--accent)}.sd .blocked{background:color-mix(in srgb,var(--accent-3) 13%,var(--surface));border-color:var(--accent-3)}.chain{display:flex;gap:clamp(4px,1.6vmin,12px);width:100%;align-items:center}.chain .tile{flex:1;min-width:0;padding:clamp(5px,1.4vmin,10px) 1px;transition:background .2s}.chain .infected{border-color:var(--accent-3);background:color-mix(in srgb,var(--accent-3) 22%,var(--surface));color:var(--accent-3)}let n=0;function advance(){n=(n+1)%4;['pkg','build','artifact','release'].forEach((id,i)=>document.getElementById(id).classList.toggle('infected',i<=n));document.getElementById('state').textContent='stage '+(n+1)+' / 4';document.getElementById('caption').textContent=['compromised dependency','build consumes dependency','artifact contains change','release reaches users'][n]}advance();setInterval(advance,650);
document.querySelector('.sd').addEventListener('pointerdown',advance);소프트웨어 공급망 실패는 직접 작성한 코드 밖의 구성요소나 배포 경로가 침해되는 문제입니다. 의존성 패키지, 빌드 시스템, 아티팩트 저장소 어느 곳에서든 오염이 시작될 수 있습니다.
데모는 한 노드의 오염이 뒤쪽 단계로 번지는 모습을 보여줍니다. 버전 고정, 출처 확인, 빌드 격리, 산출물 검증을 함께 운영해야 전파 경로를 줄일 수 있습니다.
외부 패키지 도입, CI 설정, 릴리스 파이프라인을 검토할 때 적용합니다.