마이크로서비스

Microservices

서비스를 독립 배포 단위로 나누고 네트워크로 연결합니다.

···
html
<div class="scene"><div class="title">INDEPENDENT RELEASES</div><div class="row services"><div class="tile">ORDERS<br><b>v1</b></div><div class="wire">↔</div><div class="tile" id="pay">PAYMENTS<br><b id="version">v1</b></div><div class="wire">↔</div><div class="tile">NOTIFY<br><b>v1</b></div></div><div class="muted" id="releaseNote">Deploy Payments without redeploying others</div></div>
css
.scene{width:min(94vw,760px);height:min(86vh,320px);padding:clamp(10px,2.5vmin,18px);border:1px solid var(--line);border-radius:14px;background:var(--surface);color:var(--fg);font:500 clamp(11px,1.3vw,16px)/1.25 "Pretendard Variable",Pretendard,-apple-system,sans-serif;display:flex;flex-direction:column;gap:clamp(7px,1.6vmin,12px);overflow:hidden}.scene *{box-sizing:border-box}.title{font-weight:750;color:var(--accent)}.muted{color:var(--muted)}.mono{font-family:ui-monospace,monospace}.row{display:flex;align-items:center;justify-content:center;gap:clamp(5px,1.4vmin,12px);flex:1;min-height:0}.tile{border:1px solid var(--line);border-radius:8px;background:var(--bg);padding:clamp(6px,1.6vmin,12px);text-align:center;min-width:0}.on{border-color:var(--accent)!important;background:color-mix(in srgb,var(--accent) 12%,var(--surface))!important}.pulse{animation:pulse 1.6s infinite alternate}@keyframes pulse{to{border-color:var(--accent);transform:translateY(-3px)}}.services .tile{flex:1;min-width:0;padding:clamp(7px,2vmin,20px) 2px}.services b{display:block;color:var(--accent);margin-top:8px}.wire{color:var(--accent);animation:blink 1s infinite alternate}@keyframes blink{to{opacity:.2}}
js
let version=1;function deploy(){version=version===1?2:1;document.getElementById('version').textContent='v'+version;document.getElementById('pay').classList.toggle('on',version===2);document.getElementById('releaseNote').textContent=version===2?'Only Payments is v2':'Orders, Payments, Notify at v1'}deploy();setInterval(deploy,1600)

마이크로서비스는 업무 기능을 별도 프로세스와 배포 단위로 나눕니다. 각 팀은 담당 서비스를 독립적으로 바꿀 수 있지만 서비스 사이의 호출은 네트워크 실패를 고려해야 합니다.

데모는 결제 서비스만 새 버전으로 올리는 동안 주문과 알림 서비스가 그대로 남는 모습을 보여줍니다. 분리 후에는 계약, 관측, 데이터 일관성, 운영 비용이 늘어납니다.

언제 쓰나

서로 다른 기능의 배포 주기와 확장 요구가 실제로 달라졌을 때 검토합니다.

페이지로 열기 ↗