롤백은 오류가 감지된 새 릴리스의 노출을 멈추고 이전 버전으로 되돌리는 복구 절차입니다. 새 버전을 삭제하기보다 먼저 트래픽을 돌리는 방식이면 복구가 빠를 수 있습니다.
데모는 오류 신호가 임계선을 넘은 뒤 라우터가 v2에서 v1로 돌아오는 순서를 보여줍니다. 데이터 형식이나 마이그레이션이 이미 바뀌었다면 앱 버전만 되돌려도 복구되지 않을 수 있습니다.
언제 쓰나
릴리스 오류를 짧은 시간 안에 복구할 수 있도록 배포 전에 준비합니다.
새 릴리스에 문제가 생기면 트래픽이나 실행 버전을 이전 상태로 돌립니다.
<div class="stage" data-phase="0"><div class="title">ERROR SIGNAL → ROUTE BACK</div><div class="spark"><span class="threshold"></span><i></i><i></i><i></i><i></i><i></i></div><div class="row versions"><div class="panel old">v1 stable</div><div class="route">←</div><div class="panel new">v2 live</div></div><div class="sub">keep a known-good path ready</div></div>.stage{width:min(94vw,760px);height:min(88vh,330px);padding:clamp(9px,2.6vmin,20px);border:1px solid var(--line);border-radius:14px;background:var(--surface);font:600 clamp(12px,2.5vmin,16px)/1.3 "Pretendard Variable",Pretendard,-apple-system,BlinkMacSystemFont,"Apple SD Gothic Neo",sans-serif;display:flex;flex-direction:column;gap:clamp(6px,1.7vmin,12px);overflow:hidden;position:relative}.stage *{min-width:0}.stage .title{color:var(--accent);font-weight:800}.stage .sub{color:var(--muted)}.stage .row{display:flex;align-items:center;gap:clamp(5px,1.6vmin,12px)}.stage .panel{border:1px solid var(--line);border-radius:8px;background:var(--bg);padding:clamp(6px,1.6vmin,12px)}.stage .mono{font-family:ui-monospace,SFMono-Regular,monospace;font-size:clamp(12px,2.5vmin,15px)}.stage .grow{flex:1}.stage .on{color:var(--accent)}.spark{height:38%;border-bottom:1px solid var(--line);display:flex;align-items:flex-end;gap:6px;position:relative}.spark i{flex:1;max-width:80px;background:var(--accent);height:20%;transition:height .3s,background .3s}.spark i:nth-of-type(2){height:30%}.spark i:nth-of-type(3){height:45%}.spark i:nth-of-type(4){height:70%}.spark i:nth-of-type(5){height:90%}.threshold{position:absolute;top:38%;left:0;width:100%;border-top:2px dashed var(--accent-3)}.versions{flex:1;justify-content:center}.versions .panel{width:36%;text-align:center}.new{border-color:var(--accent)!important}.route{color:var(--muted);font-size:clamp(22px,5vmin,36px);transform:rotate(180deg);transition:transform .4s}.stage[data-phase="1"] .spark i:nth-of-type(n+4){background:var(--accent-3)}.stage[data-phase="2"] .route{transform:rotate(0);color:var(--accent)}.stage[data-phase="2"] .old{border-color:var(--accent)!important;background:color-mix(in srgb,var(--accent) 18%,var(--surface))}const stage=document.querySelector('.stage');let phase=0;function advance(){phase=(phase+1)%3;stage.dataset.phase=String(phase)}const timer=setInterval(advance,1200);stage.addEventListener('pointerdown',()=>{clearInterval(timer);advance()})롤백은 오류가 감지된 새 릴리스의 노출을 멈추고 이전 버전으로 되돌리는 복구 절차입니다. 새 버전을 삭제하기보다 먼저 트래픽을 돌리는 방식이면 복구가 빠를 수 있습니다.
데모는 오류 신호가 임계선을 넘은 뒤 라우터가 v2에서 v1로 돌아오는 순서를 보여줍니다. 데이터 형식이나 마이그레이션이 이미 바뀌었다면 앱 버전만 되돌려도 복구되지 않을 수 있습니다.
릴리스 오류를 짧은 시간 안에 복구할 수 있도록 배포 전에 준비합니다.