53 lines
5.2 KiB
Plaintext
53 lines
5.2 KiB
Plaintext
<mxfile host="Claude Code" agent="wiki-superpowers + diagram-standards v2 minimalist" version="24.0.0" type="device">
|
|
<diagram name="clean-architecture-concentric" id="clean">
|
|
<mxGraphModel dx="1100" dy="720" grid="0" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1000" pageHeight="760" math="0" shadow="0">
|
|
<root>
|
|
<mxCell id="0" />
|
|
<mxCell id="1" parent="0" />
|
|
|
|
<mxCell id="title" value="Clean Architecture — 4개 동심원과 The Dependency Rule" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=20;fontStyle=1;fontFamily=Pretendard,Helvetica;fontColor=#1F2937;" vertex="1" parent="1">
|
|
<mxGeometry x="40" y="20" width="920" height="32" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="subtitle" value="의존성은 바깥 → 안으로만 향한다. 안쪽 원은 바깥 원의 이름·타입·함수를 전혀 모른다." style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=12;fontStyle=0;fontFamily=Pretendard,Helvetica;fontColor=#6B7280;" vertex="1" parent="1">
|
|
<mxGeometry x="40" y="52" width="920" height="20" as="geometry" />
|
|
</mxCell>
|
|
|
|
<mxCell id="ring4" value="<b>Frameworks & Drivers</b> DB · Web · UI · 외부 기기" style="ellipse;whiteSpace=wrap;html=1;fillColor=none;strokeColor=#57606A;strokeWidth=1.5;fontSize=12;fontFamily=Pretendard,Helvetica;fontColor=#57606A;verticalAlign=top;align=center;spacingTop=8;" vertex="1" parent="1">
|
|
<mxGeometry x="330" y="110" width="540" height="470" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="ring3" value="<b>Interface Adapters</b> Controller · Gateway · Presenter" style="ellipse;whiteSpace=wrap;html=1;fillColor=none;strokeColor=#57606A;strokeWidth=1.5;fontSize=12;fontFamily=Pretendard,Helvetica;fontColor=#57606A;verticalAlign=top;align=center;spacingTop=6;" vertex="1" parent="1">
|
|
<mxGeometry x="400" y="165" width="400" height="360" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="ring2" value="<b>Use Cases</b> application 규칙" style="ellipse;whiteSpace=wrap;html=1;fillColor=none;strokeColor=#57606A;strokeWidth=1.5;fontSize=12;fontFamily=Pretendard,Helvetica;fontColor=#57606A;verticalAlign=top;align=center;spacingTop=6;" vertex="1" parent="1">
|
|
<mxGeometry x="465" y="220" width="270" height="250" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="ring1" value="<b>Entities</b> 핵심 규칙" style="ellipse;whiteSpace=wrap;html=1;fillColor=#EFF6FF;strokeColor=#1F6FEB;strokeWidth=2.5;fontSize=13;fontFamily=Pretendard,Helvetica;fontColor=#1F6FEB;verticalAlign=middle;align=center;" vertex="1" parent="1">
|
|
<mxGeometry x="530" y="290" width="140" height="110" as="geometry" />
|
|
</mxCell>
|
|
|
|
<mxCell id="dep-arrow" value="" style="endArrow=classic;html=1;strokeColor=#1F6FEB;strokeWidth=3;fontSize=11;fontFamily=Pretendard,Helvetica;fontColor=#1F6FEB;" edge="1" parent="1">
|
|
<mxGeometry relative="1" as="geometry">
|
|
<mxPoint x="150" y="345" as="sourcePoint" />
|
|
<mxPoint x="330" y="345" as="targetPoint" />
|
|
</mxGeometry>
|
|
</mxCell>
|
|
<mxCell id="dep-label" value="<b>The Dependency Rule</b> 바깥 → 안으로만" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=11;fontFamily=Pretendard,Helvetica;fontColor=#1F6FEB;" vertex="1" parent="1">
|
|
<mxGeometry x="90" y="285" width="180" height="40" as="geometry" />
|
|
</mxCell>
|
|
|
|
<mxCell id="callout" value="<b>안쪽일수록 순수, 바깥일수록 기술</b> • 제어 흐름(호출)은 바깥→안, 소스 의존성도 바깥→안 (일치) • 흐름과 반대인 곳은 인터페이스(DIP)로 방향을 뒤집는다 • 경계를 넘는 데이터는 단순 구조(DTO 등)로 전달 • Hexagonal 과 규칙은 같고, 링을 4개로 더 세분화한 표현" style="rounded=8;whiteSpace=wrap;html=1;fillColor=#F6F8FA;strokeColor=#57606A;strokeWidth=1.5;fontSize=11;fontFamily=Pretendard,Helvetica;fontColor=#374151;align=left;verticalAlign=top;spacingLeft=12;spacingTop=8;" vertex="1" parent="1">
|
|
<mxGeometry x="120" y="600" width="580" height="130" as="geometry" />
|
|
</mxCell>
|
|
|
|
<mxCell id="leg1" value="파란 원 = Entities (가장 안쪽 · 순수 규칙)" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=11;fontFamily=Pretendard,Helvetica;fontColor=#1F6FEB;" vertex="1" parent="1">
|
|
<mxGeometry x="730" y="610" width="250" height="20" as="geometry" />
|
|
</mxCell>
|
|
|
|
<mxCell id="footer" value="v1 (minimalist) · 2026-07-04" style="text;html=1;strokeColor=none;fillColor=none;align=right;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=10;fontStyle=2;fontFamily=Pretendard,Helvetica;fontColor=#9CA3AF;" vertex="1" parent="1">
|
|
<mxGeometry x="760" y="720" width="220" height="20" as="geometry" />
|
|
</mxCell>
|
|
</root>
|
|
</mxGraphModel>
|
|
</diagram>
|
|
</mxfile>
|