Files
llm-wiki/raw/diagrams/clean-architecture-topic/architecture-clean-concentric-2026-07-04.drawio
T

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="&lt;b&gt;Frameworks &amp; Drivers&lt;/b&gt;&#10;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="&lt;b&gt;Interface Adapters&lt;/b&gt;&#10;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="&lt;b&gt;Use Cases&lt;/b&gt;&#10;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="&lt;b&gt;Entities&lt;/b&gt;&#10;핵심 규칙" 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="&lt;b&gt;The Dependency Rule&lt;/b&gt;&#10;바깥 → 안으로만" 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="&lt;b&gt;안쪽일수록 순수, 바깥일수록 기술&lt;/b&gt;&#10;&#10;• 제어 흐름(호출)은 바깥→안, 소스 의존성도 바깥→안 (일치)&#10;• 흐름과 반대인 곳은 인터페이스(DIP)로 방향을 뒤집는다&#10;• 경계를 넘는 데이터는 단순 구조(DTO 등)로 전달&#10;• 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>