프리뷰 환경은 브랜치나 PR의 코드를 독립 URL에서 실행하게 해 리뷰어가 머지 전에 실제 화면을 확인하도록 돕습니다. 변경이 닫히면 환경도 지워 비용과 오래된 테스트 데이터를 줄입니다.
데모에서는 PR 열기, URL 준비, 리뷰, 환경 삭제가 한 흐름으로 이어집니다. 운영과 다른 설정·데이터를 쓰는 프리뷰는 완전한 운영 검증을 대신하지 않습니다.
언제 쓰나
UI나 API 변경을 머지 전 실제 실행 상태로 검토할 때 사용합니다.
변경 요청마다 임시 실행 환경을 만들고 닫을 때 정리합니다.
<div class="stage" data-phase="0"><div class="title">CHANGE REQUEST · PREVIEW LIFECYCLE</div><div class="flow"><div class="panel pr">PR OPEN<br><b>#42</b></div><div class="branch"></div><div class="panel url">PREVIEW URL<br><b>pending</b></div><div class="branch"></div><div class="panel review">REVIEW<br><b>waiting</b></div></div><div class="panel cleanup">temporary environment</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)}.flow{flex:1;display:flex;align-items:center;gap:4px}.flow .panel{flex:1;text-align:center}.flow b{display:block;color:var(--muted);margin-top:6px}.branch{height:2px;width:8%;background:var(--line)}.cleanup{color:var(--muted)}.stage[data-phase="1"] .url,.stage[data-phase="1"] .branch:first-of-type{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,var(--surface))}.stage[data-phase="1"] .url b{font-size:0}.stage[data-phase="1"] .url b:after{content:'ready';font-size:clamp(12px,2.5vmin,16px);color:var(--accent)}.stage[data-phase="2"] .review{border-color:var(--accent)}.stage[data-phase="2"] .review b{font-size:0}.stage[data-phase="2"] .review b:after{content:'approved';font-size:clamp(12px,2.5vmin,16px);color:var(--accent)}.stage[data-phase="3"] .cleanup{border-color:var(--accent-3);color:var(--accent-3)}.stage[data-phase="3"] .cleanup:after{content:' · deleted'}const stage=document.querySelector('.stage');let phase=0;function advance(){phase=(phase+1)%4;stage.dataset.phase=String(phase)}const timer=setInterval(advance,950);stage.addEventListener('pointerdown',()=>{clearInterval(timer);advance()})프리뷰 환경은 브랜치나 PR의 코드를 독립 URL에서 실행하게 해 리뷰어가 머지 전에 실제 화면을 확인하도록 돕습니다. 변경이 닫히면 환경도 지워 비용과 오래된 테스트 데이터를 줄입니다.
데모에서는 PR 열기, URL 준비, 리뷰, 환경 삭제가 한 흐름으로 이어집니다. 운영과 다른 설정·데이터를 쓰는 프리뷰는 완전한 운영 검증을 대신하지 않습니다.
UI나 API 변경을 머지 전 실제 실행 상태로 검토할 때 사용합니다.