106 lines
9.4 KiB
Plaintext
106 lines
9.4 KiB
Plaintext
<mxfile host="app.diagrams.net" modified="2026-04-28T00:00:00.000Z" agent="Mozilla/5.0" version="24.0.0" type="device">
|
|
<diagram name="04-data" id="data">
|
|
<mxGraphModel dx="1600" dy="900" grid="0" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1600" pageHeight="900" math="0" shadow="0">
|
|
<root>
|
|
<mxCell id="0" />
|
|
<mxCell id="1" parent="0" />
|
|
<mxCell id="grp-app" value="Application" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#EFF6FF;strokeColor=#3B82F6;strokeWidth=1;dashed=0;fontSize=12;fontStyle=1;fontFamily=Pretendard,Helvetica;fontColor=#1E40AF;align=left;verticalAlign=top;spacingLeft=10;spacingTop=6;" vertex="1" parent="1">
|
|
<mxGeometry x="80" y="160" width="320" height="540" as="geometry" />
|
|
</mxCell>
|
|
|
|
<mxCell id="grp-data" value="Data: Postgres + MinIO" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#ECFDF5;strokeColor=#10B981;strokeWidth=1;dashed=0;fontSize=12;fontStyle=1;fontFamily=Pretendard,Helvetica;fontColor=#047857;align=left;verticalAlign=top;spacingLeft=10;spacingTop=6;" vertex="1" parent="1">
|
|
<mxGeometry x="900" y="160" width="660" height="540" as="geometry" />
|
|
</mxCell>
|
|
|
|
<mxCell id="app" value="" style="shape=image;html=1;image=https://www.vectorlogo.zone/logos/springio/springio-icon.svg;imageAspect=1;" vertex="1" parent="1">
|
|
<mxGeometry x="200" y="240" width="80" height="80" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="app-lbl" value="auth-server" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;fontSize=13;fontFamily=Pretendard,Helvetica;fontStyle=1;" vertex="1" parent="1">
|
|
<mxGeometry x="160" y="330" width="160" height="20" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="app-sub" value="JpaUserRepositoryAdapter" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;fontSize=11;fontFamily=monospace;fontColor=#57606A;" vertex="1" parent="1">
|
|
<mxGeometry x="160" y="354" width="160" height="20" as="geometry" />
|
|
</mxCell>
|
|
|
|
<mxCell id="reg" value="" style="shape=image;html=1;image=https://raw.githubusercontent.com/kubernetes/community/master/icons/svg/resources/unlabeled/deploy.svg;imageAspect=1;" vertex="1" parent="1">
|
|
<mxGeometry x="200" y="490" width="80" height="80" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="reg-lbl" value="docker-registry" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;fontSize=13;fontFamily=Pretendard,Helvetica;fontStyle=1;" vertex="1" parent="1">
|
|
<mxGeometry x="160" y="580" width="160" height="20" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="reg-sub" value="registry:2.8.3" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;fontSize=11;fontFamily=monospace;fontColor=#57606A;" vertex="1" parent="1">
|
|
<mxGeometry x="160" y="604" width="160" height="20" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="reg-novol" value="자기 PV 0 · MinIO 위임" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FFF7ED;strokeColor=#FB923C;strokeWidth=2;fontSize=11;fontStyle=1;fontFamily=Pretendard,Helvetica;fontColor=#C2410C;align=center;verticalAlign=middle;" vertex="1" parent="1">
|
|
<mxGeometry x="140" y="630" width="200" height="28" as="geometry" />
|
|
</mxCell>
|
|
|
|
<mxCell id="pg" value="" style="shape=image;html=1;image=https://www.vectorlogo.zone/logos/postgresql/postgresql-icon.svg;imageAspect=1;" vertex="1" parent="1">
|
|
<mxGeometry x="940" y="240" width="80" height="80" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="num1" value="①" style="ellipse;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#047857;fontColor=#047857;fontSize=14;fontStyle=1;fontFamily=Pretendard,Helvetica;strokeWidth=2;" vertex="1" parent="1">
|
|
<mxGeometry x="1000" y="240" width="26" height="26" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="pg-lbl" value="Postgres" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;fontSize=13;fontFamily=Pretendard,Helvetica;fontStyle=1;" vertex="1" parent="1">
|
|
<mxGeometry x="900" y="328" width="160" height="20" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="pg-sub" value="schema: auth
5 마이그레이션 (V1~V5)" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;fontSize=11;fontFamily=monospace;fontColor=#57606A;" vertex="1" parent="1">
|
|
<mxGeometry x="900" y="350" width="160" height="36" as="geometry" />
|
|
</mxCell>
|
|
|
|
<mxCell id="minio" value="" style="shape=image;html=1;image=https://raw.githubusercontent.com/minio/minio/master/.github/logo.svg;imageAspect=1;" vertex="1" parent="1">
|
|
<mxGeometry x="1280" y="490" width="80" height="80" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="num2" value="②" style="ellipse;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#047857;fontColor=#047857;fontSize=14;fontStyle=1;fontFamily=Pretendard,Helvetica;strokeWidth=2;" vertex="1" parent="1">
|
|
<mxGeometry x="1340" y="490" width="26" height="26" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="minio-lbl" value="MinIO Tenant (MinIO Operator)" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;fontSize=13;fontFamily=Pretendard,Helvetica;fontStyle=1;" vertex="1" parent="1">
|
|
<mxGeometry x="1200" y="578" width="240" height="20" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="minio-sub" value="buckets: auth · docker-registry" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;fontSize=11;fontFamily=monospace;fontColor=#57606A;" vertex="1" parent="1">
|
|
<mxGeometry x="1200" y="600" width="240" height="20" as="geometry" />
|
|
</mxCell>
|
|
|
|
<mxCell id="e-app-pg" style="endArrow=classic;html=1;strokeColor=#10B981;strokeWidth=3;fontFamily=Pretendard,Helvetica;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="app" target="pg">
|
|
<mxGeometry relative="1" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="e-app-pg-lbl" value="JPA · SQL" style="text;html=1;align=center;verticalAlign=middle;fontSize=12;fontFamily=Pretendard,Helvetica;fontColor=#047857;fillColor=#FFFFFF;" vertex="1" parent="1">
|
|
<mxGeometry x="540" y="270" width="100" height="22" as="geometry" />
|
|
</mxCell>
|
|
|
|
<mxCell id="e-reg-minio" style="endArrow=classic;html=1;strokeColor=#FB923C;strokeWidth=5;fontFamily=Pretendard,Helvetica;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="reg" target="minio">
|
|
<mxGeometry relative="1" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="e-reg-minio-lbl" value="S3 backend (REGISTRY_STORAGE=s3)" style="text;html=1;align=center;verticalAlign=middle;fontSize=13;fontStyle=1;fontFamily=Pretendard,Helvetica;fontColor=#C2410C;fillColor=#FFFFFF;" vertex="1" parent="1">
|
|
<mxGeometry x="600" y="518" width="280" height="22" as="geometry" />
|
|
</mxCell>
|
|
|
|
<mxCell id="note" value="이미지 push / containerd image pull 은 별도 슬라이드 (S08-B)" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;fontSize=11;fontStyle=2;fontFamily=Pretendard,Helvetica;fontColor=#57606A;" vertex="1" parent="1">
|
|
<mxGeometry x="80" y="700" width="320" height="20" as="geometry" />
|
|
</mxCell>
|
|
|
|
<mxCell id="io-bg" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#FFFBEB;strokeColor=#D97706;strokeWidth=1;" vertex="1" parent="1">
|
|
<mxGeometry x="40" y="744" width="1520" height="56" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="io-in-lbl" value="Input (앱 / 운영자가 호출하는 것)" style="text;html=1;align=left;verticalAlign=top;whiteSpace=wrap;fontSize=12;fontStyle=1;fontFamily=Pretendard,Helvetica;fontColor=#B45309;spacingLeft=20;spacingTop=6;" vertex="1" parent="1">
|
|
<mxGeometry x="40" y="744" width="320" height="20" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="io-in-text" value="userRepository.save(user) · docker push registry.project.com/auth-server:0.1.0" style="text;html=1;align=left;verticalAlign=top;whiteSpace=wrap;fontSize=11;fontFamily=monospace;fontColor=#24292F;spacingLeft=20;" vertex="1" parent="1">
|
|
<mxGeometry x="40" y="766" width="700" height="32" as="geometry" />
|
|
</mxCell>
|
|
|
|
<mxCell id="io-arrow" value="→" style="text;html=1;align=center;verticalAlign=middle;fontSize=24;fontStyle=1;fontFamily=Pretendard,Helvetica;fontColor=#B45309;" vertex="1" parent="1">
|
|
<mxGeometry x="760" y="754" width="40" height="40" as="geometry" />
|
|
</mxCell>
|
|
|
|
<mxCell id="io-out-lbl" value="Output (영속화된 결과)" style="text;html=1;align=left;verticalAlign=top;whiteSpace=wrap;fontSize=12;fontStyle=1;fontFamily=Pretendard,Helvetica;fontColor=#B45309;spacingLeft=20;spacingTop=6;" vertex="1" parent="1">
|
|
<mxGeometry x="800" y="744" width="320" height="20" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="io-out-text" value="Postgres row (auth.users 테이블) · MinIO object (bucket=docker-registry, key=blobs/sha256:...)" style="text;html=1;align=left;verticalAlign=top;whiteSpace=wrap;fontSize=11;fontFamily=monospace;fontColor=#24292F;spacingLeft=20;" vertex="1" parent="1">
|
|
<mxGeometry x="800" y="766" width="760" height="32" as="geometry" />
|
|
</mxCell>
|
|
</root>
|
|
</mxGraphModel>
|
|
</diagram>
|
|
</mxfile>
|