모놀리스는 화면, 업무 규칙, 데이터 접근 코드를 한 애플리케이션에서 실행합니다. 기능 간 호출은 같은 프로세스 안에서 일어나므로 배포와 추적이 단순합니다.
데모에서는 한 모듈의 변경이 공통 빌드와 배포 열을 함께 움직입니다. 규모가 커지면 모듈 경계를 지키지 않는 변경이 서로 영향을 줄 수 있으므로 코드 수준의 분리가 중요합니다.
언제 쓰나
운영 복잡도를 낮추고 빠르게 제품을 시작하거나, 강한 트랜잭션 경계가 필요할 때 고려합니다.
기능 여러 개를 하나의 실행·배포 단위로 묶습니다.
<div class="scene"><div class="title">ONE RELEASE UNIT</div><div class="row modules"><div class="tile" id="m1">UI</div><div class="tile" id="m2">ORDERS</div><div class="tile" id="m3">DATA</div></div><div class="release"><span id="source">CHANGE: UI</span><span class="arrow">→</span><span class="tile" id="build">BUILD ALL</span><span class="arrow">→</span><span class="tile" id="deploy">DEPLOY ALL</span></div></div>.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)}}.modules{flex:1}.modules .tile{flex:1;height:70%;display:grid;place-items:center}.release{display:flex;align-items:center;justify-content:space-between;gap:4px}.release .tile{padding:.5em}.arrow{color:var(--accent)}const modules=['m1','m2','m3'];let n=0;function tick(){modules.forEach((id,i)=>document.getElementById(id).classList.toggle('on',i===n%3));document.getElementById('source').textContent='CHANGE: '+['UI','ORDERS','DATA'][n%3];document.getElementById('build').classList.toggle('on',n%2===0);document.getElementById('deploy').classList.toggle('on',n%2===1);n++}tick();setInterval(tick,850)모놀리스는 화면, 업무 규칙, 데이터 접근 코드를 한 애플리케이션에서 실행합니다. 기능 간 호출은 같은 프로세스 안에서 일어나므로 배포와 추적이 단순합니다.
데모에서는 한 모듈의 변경이 공통 빌드와 배포 열을 함께 움직입니다. 규모가 커지면 모듈 경계를 지키지 않는 변경이 서로 영향을 줄 수 있으므로 코드 수준의 분리가 중요합니다.
운영 복잡도를 낮추고 빠르게 제품을 시작하거나, 강한 트랜잭션 경계가 필요할 때 고려합니다.