-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathNexa.drawio
More file actions
216 lines (216 loc) · 18.6 KB
/
Nexa.drawio
File metadata and controls
216 lines (216 loc) · 18.6 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
<mxfile host="app.diagrams.net" agent="Codex" pages="2">
<diagram id="body-content-type-flow" name="Body ContentType Flow">
<mxGraphModel dx="1800" dy="1000" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="900" pageHeight="1200" background="none" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="100" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;fontSize=18;fontStyle=1;fontColor=#1F2328;" value="개선 전" vertex="1">
<mxGeometry x="392" y="24" width="120" height="28" as="geometry" />
</mxCell>
<mxCell id="101" parent="1" style="rounded=1;arcSize=20;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#D8E0EA;strokeWidth=2;" value="" vertex="1">
<mxGeometry x="250" y="60" width="404" height="520" as="geometry" />
</mxCell>
<mxCell id="102" parent="1" style="rounded=1;arcSize=18;whiteSpace=wrap;html=1;fillColor=#EAF2FF;strokeColor=#0A84FF;strokeWidth=2;fontColor=#0B1F33;fontStyle=1;fontSize=18;" value="Raw Body 설정" vertex="1">
<mxGeometry x="334" y="106" width="236" height="58" as="geometry" />
</mxCell>
<mxCell id="103" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;fontSize=11;fontColor=#6B7280;" value="payload 저장" vertex="1">
<mxGeometry x="414" y="182" width="76" height="20" as="geometry" />
</mxCell>
<mxCell id="104" parent="1" style="rounded=1;arcSize=18;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#A7B4C6;strokeWidth=2;fontColor=#1F2328;fontStyle=1;fontSize=18;" value="Payload 저장" vertex="1">
<mxGeometry x="334" y="222" width="236" height="58" as="geometry" />
</mxCell>
<mxCell id="105" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;fontSize=11;fontColor=#6B7280;" value="header 동시 설정" vertex="1">
<mxGeometry x="396" y="298" width="112" height="20" as="geometry" />
</mxCell>
<mxCell id="106" parent="1" style="rounded=1;arcSize=18;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#A7B4C6;strokeWidth=2;fontColor=#1F2328;fontStyle=1;fontSize=18;" value="Content-Type 헤더 설정" vertex="1">
<mxGeometry x="302" y="338" width="300" height="58" as="geometry" />
</mxCell>
<mxCell id="107" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;fontSize=13;fontStyle=1;fontColor=#C2410C;" value="payload와 header 책임 결합" vertex="1">
<mxGeometry x="342" y="470" width="220" height="22" as="geometry" />
</mxCell>
<mxCell id="108" parent="1" style="rounded=1;arcSize=18;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#A7B4C6;strokeWidth=2;fontColor=#1F2328;fontStyle=1;fontSize=16;" value="설정 의도를 API 이름만으로
직관적으로 구분하기 어려움" vertex="1">
<mxGeometry x="318" y="506" width="268" height="58" as="geometry" />
</mxCell>
<mxCell id="109" edge="1" parent="1" source="102" target="104" style="endArrow=blockThin;endFill=1;endSize=16;html=1;rounded=1;strokeColor=#5E6AD2;strokeWidth=3;">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="110" edge="1" parent="1" source="104" target="106" style="endArrow=blockThin;endFill=1;endSize=16;html=1;rounded=1;strokeColor=#0A84FF;strokeWidth=3;">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="111" edge="1" parent="1" source="106" target="108" style="endArrow=blockThin;endFill=1;endSize=16;html=1;rounded=1;strokeColor=#5E6AD2;strokeWidth=3;">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="200" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;fontSize=18;fontStyle=1;fontColor=#1F2328;" value="개선 후" vertex="1">
<mxGeometry x="392" y="626" width="120" height="28" as="geometry" />
</mxCell>
<mxCell id="201" parent="1" style="rounded=1;arcSize=20;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#D8E0EA;strokeWidth=2;" value="" vertex="1">
<mxGeometry x="40" y="662" width="824" height="420" as="geometry" />
</mxCell>
<mxCell id="202" parent="1" style="rounded=1;arcSize=14;whiteSpace=wrap;html=1;fillColor=#F8FAFC;strokeColor=#B8C4D6;strokeWidth=2;" value="" vertex="1">
<mxGeometry x="68" y="760" width="338" height="276" as="geometry" />
</mxCell>
<mxCell id="203" parent="1" style="rounded=1;arcSize=14;whiteSpace=wrap;html=1;fillColor=#F8FAFC;strokeColor=#B8C4D6;strokeWidth=2;" value="" vertex="1">
<mxGeometry x="498" y="760" width="338" height="276" as="geometry" />
</mxCell>
<mxCell id="216" parent="1" style="rounded=1;arcSize=18;whiteSpace=wrap;html=1;fillColor=#EAF2FF;strokeColor=#0A84FF;strokeWidth=2;fontColor=#0B1F33;fontStyle=1;fontSize=18;" value="Raw Body 요청 구성" vertex="1">
<mxGeometry x="302" y="704" width="300" height="56" as="geometry" />
</mxCell>
<mxCell id="204" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;fontSize=14;fontStyle=1;fontColor=#6B7280;" value="Header" vertex="1">
<mxGeometry x="196" y="768" width="80" height="22" as="geometry" />
</mxCell>
<mxCell id="205" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;fontSize=14;fontStyle=1;fontColor=#6B7280;" value="Payload" vertex="1">
<mxGeometry x="624" y="768" width="80" height="22" as="geometry" />
</mxCell>
<mxCell id="206" parent="1" style="rounded=1;arcSize=18;whiteSpace=wrap;html=1;fillColor=#EAF2FF;strokeColor=#0A84FF;strokeWidth=2;fontColor=#0B1F33;fontStyle=1;fontSize=18;" value="Media Type 설정" vertex="1">
<mxGeometry x="88" y="800" width="298" height="56" as="geometry" />
</mxCell>
<mxCell id="207" parent="1" style="rounded=1;arcSize=18;whiteSpace=wrap;html=1;fillColor=#EAF2FF;strokeColor=#0A84FF;strokeWidth=2;fontColor=#0B1F33;fontStyle=1;fontSize=18;" value="Raw Body 설정" vertex="1">
<mxGeometry x="518" y="800" width="298" height="56" as="geometry" />
</mxCell>
<mxCell id="208" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;fontSize=11;fontColor=#6B7280;" value="header 반영" vertex="1">
<mxGeometry x="196" y="874" width="82" height="20" as="geometry" />
</mxCell>
<mxCell id="209" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;fontSize=11;fontColor=#6B7280;" value="payload 반영" vertex="1">
<mxGeometry x="624" y="874" width="82" height="20" as="geometry" />
</mxCell>
<mxCell id="210" parent="1" style="rounded=1;arcSize=18;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#A7B4C6;strokeWidth=2;fontColor=#1F2328;fontStyle=1;fontSize=18;" value="Content-Type 헤더 설정" vertex="1">
<mxGeometry x="78" y="914" width="318" height="58" as="geometry" />
</mxCell>
<mxCell id="211" parent="1" style="rounded=1;arcSize=18;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#A7B4C6;strokeWidth=2;fontColor=#1F2328;fontStyle=1;fontSize=18;" value="Payload 저장" vertex="1">
<mxGeometry x="528" y="914" width="278" height="58" as="geometry" />
</mxCell>
<mxCell id="212" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;fontSize=13;fontStyle=1;fontColor=#15803D;" value="header 책임 분리" vertex="1">
<mxGeometry x="142" y="996" width="190" height="22" as="geometry" />
</mxCell>
<mxCell id="213" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;fontSize=13;fontStyle=1;fontColor=#15803D;" value="payload 책임 분리" vertex="1">
<mxGeometry x="570" y="996" width="194" height="22" as="geometry" />
</mxCell>
<mxCell id="214" edge="1" parent="1" source="206" target="210" style="endArrow=blockThin;endFill=1;endSize=16;html=1;rounded=1;strokeColor=#5E6AD2;strokeWidth=3;">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="215" edge="1" parent="1" source="207" target="211" style="endArrow=blockThin;endFill=1;endSize=16;html=1;rounded=1;strokeColor=#0A84FF;strokeWidth=3;">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="217" edge="1" parent="1" source="216" target="206" style="endArrow=blockThin;endFill=1;endSize=16;html=1;rounded=1;strokeColor=#5E6AD2;strokeWidth=3;">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="237" y="780" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="218" edge="1" parent="1" source="216" target="207" style="endArrow=blockThin;endFill=1;endSize=16;html=1;rounded=1;strokeColor=#0A84FF;strokeWidth=3;">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="667" y="780" />
</Array>
</mxGeometry>
</mxCell>
</root>
</mxGraphModel>
</diagram>
<diagram id="trailing-slash-flow" name="Trailing Slash Flow">
<mxGraphModel dx="2828" dy="1522" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="900" pageHeight="1200" background="none" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="300" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;fontSize=18;fontStyle=1;fontColor=#1F2328;" value="개선 전" vertex="1">
<mxGeometry height="28" width="120" x="392" y="24" as="geometry" />
</mxCell>
<mxCell id="301" parent="1" style="rounded=1;arcSize=20;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#D8E0EA;strokeWidth=2;" value="" vertex="1">
<mxGeometry height="490" width="404" x="250" y="60" as="geometry" />
</mxCell>
<mxCell id="302" parent="1" style="rounded=1;arcSize=18;whiteSpace=wrap;html=1;fillColor=#EAF2FF;strokeColor=#0A84FF;strokeWidth=2;fontColor=#0B1F33;fontStyle=1;fontSize=18;" value="Base Path + Request Path
문자열 정리" vertex="1">
<mxGeometry height="58" width="268" x="318" y="104" as="geometry" />
</mxCell>
<mxCell id="304" parent="1" style="rounded=1;arcSize=18;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#A7B4C6;strokeWidth=2;fontColor=#1F2328;fontStyle=1;fontSize=18;" value="끝 슬래시 의미 소실" vertex="1">
<mxGeometry height="58" width="268" x="318" y="222" as="geometry" />
</mxCell>
<mxCell id="306" parent="1" style="rounded=1;arcSize=18;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#A7B4C6;strokeWidth=2;fontColor=#1F2328;fontStyle=1;fontSize=18;" value="서버가 기대한 Path와
다를 수 있음" vertex="1">
<mxGeometry height="58" width="268" x="318" y="338" as="geometry" />
</mxCell>
<mxCell id="308" parent="1" style="rounded=1;arcSize=18;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#A7B4C6;strokeWidth=2;fontColor=#1F2328;fontStyle=1;fontSize=16;" value="단순 trim 방식만으로는
Path 예외를 처리하기 어려움" vertex="1">
<mxGeometry height="58" width="268" x="318" y="468" as="geometry" />
</mxCell>
<mxCell id="309" edge="1" parent="1" source="302" style="endArrow=blockThin;endFill=1;endSize=16;html=1;rounded=1;strokeColor=#5E6AD2;strokeWidth=3;" target="304">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="310" edge="1" parent="1" source="304" style="endArrow=blockThin;endFill=1;endSize=16;html=1;rounded=1;strokeColor=#0A84FF;strokeWidth=3;" target="306">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="311" edge="1" parent="1" source="306" style="endArrow=blockThin;endFill=1;endSize=16;html=1;rounded=1;strokeColor=#5E6AD2;strokeWidth=3;" target="308">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="400" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;fontSize=18;fontStyle=1;fontColor=#1F2328;" value="개선 후" vertex="1">
<mxGeometry height="28" width="120" x="392" y="566" as="geometry" />
</mxCell>
<mxCell id="401" parent="1" style="rounded=1;arcSize=20;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#D8E0EA;strokeWidth=2;" value="" vertex="1">
<mxGeometry height="368" width="824" x="40" y="602" as="geometry" />
</mxCell>
<mxCell id="402" parent="1" style="rounded=1;arcSize=14;whiteSpace=wrap;html=1;fillColor=#F8FAFC;strokeColor=#B8C4D6;strokeWidth=2;" value="" vertex="1">
<mxGeometry height="150" width="338" x="68" y="700" as="geometry" />
</mxCell>
<mxCell id="403" parent="1" style="rounded=1;arcSize=14;whiteSpace=wrap;html=1;fillColor=#F8FAFC;strokeColor=#B8C4D6;strokeWidth=2;" value="" vertex="1">
<mxGeometry height="150" width="338" x="498" y="700" as="geometry" />
</mxCell>
<mxCell id="404" parent="1" style="rounded=1;arcSize=18;whiteSpace=wrap;html=1;fillColor=#EAF2FF;strokeColor=#0A84FF;strokeWidth=2;fontColor=#0B1F33;fontStyle=1;fontSize=18;" value="Path 병합" vertex="1">
<mxGeometry height="56" width="300" x="302" y="627" as="geometry" />
</mxCell>
<mxCell id="405" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;fontSize=14;fontStyle=1;fontColor=#6B7280;" value="Base Path" vertex="1">
<mxGeometry height="22" width="80" x="196" y="708" as="geometry" />
</mxCell>
<mxCell id="406" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;fontSize=14;fontStyle=1;fontColor=#6B7280;" value="Request Path" vertex="1">
<mxGeometry height="22" width="110" x="612" y="708" as="geometry" />
</mxCell>
<mxCell id="407" parent="1" style="rounded=1;arcSize=18;whiteSpace=wrap;html=1;fillColor=#EAF2FF;strokeColor=#0A84FF;strokeWidth=2;fontColor=#0B1F33;fontStyle=1;fontSize=18;" value="슬래시 중복만 방지" vertex="1">
<mxGeometry height="56" width="298" x="88" y="740" as="geometry" />
</mxCell>
<mxCell id="408" parent="1" style="rounded=1;arcSize=18;whiteSpace=wrap;html=1;fillColor=#EAF2FF;strokeColor=#0A84FF;strokeWidth=2;fontColor=#0B1F33;fontStyle=1;fontSize=18;" value="끝 슬래시 보존" vertex="1">
<mxGeometry height="56" width="298" x="518" y="740" as="geometry" />
</mxCell>
<mxCell id="409" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;fontSize=11;fontColor=#6B7280;" value="join 규칙 적용" vertex="1">
<mxGeometry height="20" width="78" x="250" y="802" as="geometry" />
</mxCell>
<mxCell id="410" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;fontSize=11;fontColor=#6B7280;" value="/users/ 와 / 예외 유지" vertex="1">
<mxGeometry height="20" width="146" x="550" y="802" as="geometry" />
</mxCell>
<mxCell id="411" parent="1" style="rounded=1;arcSize=18;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#A7B4C6;strokeWidth=2;fontColor=#1F2328;fontStyle=1;fontSize=18;" value="최종 URL에 의도한 Path 반영" vertex="1">
<mxGeometry height="58" width="348" x="278" y="866" as="geometry" />
</mxCell>
<mxCell id="412" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;fontSize=13;fontStyle=1;fontColor=#15803D;" value="후행 슬래시 의미 보존" vertex="1">
<mxGeometry height="22" width="220" x="342" y="936" as="geometry" />
</mxCell>
<mxCell id="413" edge="1" parent="1" source="404" style="endArrow=blockThin;endFill=1;endSize=16;html=1;rounded=1;strokeColor=#5E6AD2;strokeWidth=3;entryX=0.886;entryY=-0.027;entryDx=0;entryDy=0;entryPerimeter=0;exitX=0.165;exitY=1.005;exitDx=0;exitDy=0;exitPerimeter=0;" target="407">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="414" edge="1" parent="1" source="404" style="endArrow=blockThin;endFill=1;endSize=16;html=1;rounded=1;strokeColor=#0A84FF;strokeWidth=3;entryX=0.075;entryY=-0.012;entryDx=0;entryDy=0;entryPerimeter=0;exitX=0.797;exitY=1.001;exitDx=0;exitDy=0;exitPerimeter=0;" target="408">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="415" edge="1" parent="1" source="407" style="endArrow=blockThin;endFill=1;endSize=16;html=1;rounded=1;strokeColor=#5E6AD2;strokeWidth=3;edgeStyle=orthogonalEdgeStyle;" target="411">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="330" y="831" />
<mxPoint x="452" y="831" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="416" edge="1" parent="1" source="408" style="endArrow=blockThin;endFill=1;endSize=16;html=1;rounded=1;strokeColor=#0A84FF;strokeWidth=3;edgeStyle=orthogonalEdgeStyle;" target="411">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="570" y="831" />
<mxPoint x="452" y="831" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="303" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;fontSize=11;fontColor=#6B7280;" value="슬래시 일괄 제거 후 병합" vertex="1">
<mxGeometry height="20" width="156" x="374" y="172" as="geometry" />
</mxCell>
<mxCell id="305" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;fontSize=11;fontColor=#6B7280;" value="/users/ 또는 / 예외 발생" vertex="1">
<mxGeometry height="20" width="160" x="368" y="293" as="geometry" />
</mxCell>
<mxCell id="307" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;fontSize=13;fontStyle=1;fontColor=#C2410C;" value="끝 슬래시 의미를 안정적으로 보존하지 못함" vertex="1">
<mxGeometry height="22" width="320" x="292" y="416" as="geometry" />
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>