5 lines
104 KiB
XML
5 lines
104 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<mxfile host="app.diagrams.net" modified="2026-08-04T00:00:00.000Z" agent="cloud-handson" version="24.2" type="device" compressed="false">
|
|
<diagram id="hmm-overview" name="01 · 전체 구성"><mxGraphModel dx="1600" dy="1000" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1800" pageHeight="1080" background="#FFFFFF" math="0" shadow="0"><root><mxCell id="0"/><mxCell id="1" parent="0"/><mxCell id="hmm-overview_background" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=none;locked=1;" vertex="1" connectable="0" parent="1"><mxGeometry x="0" y="0" width="1800" height="1080" as="geometry"/></mxCell><mxCell id="hmm-overview_v_1" value="HMM AI 데이터 접근 아키텍처" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;fontFamily=Oracle Sans;fontColor=#312D2A;fontSize=25;fontStyle=1;spacingLeft=0;spacingRight=0;" vertex="1" parent="1"><mxGeometry x="36" y="22" width="1728" height="38" as="geometry"/></mxCell><mxCell id="hmm-overview_v_2" value="사용자 Bearer MCP · Select AI · VPD · HR 정책 벡터 검색 · AWS RDS PostgreSQL Federation" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;fontFamily=Oracle Sans;fontColor=#5B5652;fontSize=12;fontStyle=0;spacingLeft=0;spacingRight=0;" vertex="1" parent="1"><mxGeometry x="38" y="60" width="1724" height="28" as="geometry"/></mxCell><mxCell id="hmm-overview_v_3" value="" style="rounded=1;arcSize=8;whiteSpace=wrap;html=1;fillColor=#C74634;strokeColor=#C74634;strokeWidth=1;dashed=0;fontFamily=Oracle Sans;fontColor=#312D2A;fontSize=12;align=center;verticalAlign=middle;spacing=6;" vertex="1" parent="1"><mxGeometry x="36" y="92" width="1728" height="3" as="geometry"/></mxCell><mxCell id="hmm-overview_v_4" value="" style="rounded=1;arcSize=7;whiteSpace=wrap;html=1;fillColor=#FCFBFA;strokeColor=#9E9892;strokeWidth=1;dashed=0;fontFamily=Oracle Sans;fontColor=#312D2A;fontSize=12;align=center;verticalAlign=middle;spacing=6;" vertex="1" parent="1"><mxGeometry x="30" y="120" width="190" height="790" as="geometry"/></mxCell><mxCell id="hmm-overview_v_5" value="<b>HMM 사용자</b>" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;fontFamily=Oracle Sans;fontColor=#312D2A;fontSize=13;fontStyle=0;spacingLeft=0;spacingRight=0;" vertex="1" parent="1"><mxGeometry x="44" y="128" width="162" height="26" as="geometry"/></mxCell><mxCell id="hmm-overview_oci_6" value="" style="group" vertex="1" connectable="0" parent="1"><mxGeometry x="80" y="165" width="76.00000000000007" height="90" as="geometry"/></mxCell><mxCell id="hmm-overview_ociPart_7" style="vsdxID=27;fillColor=none;gradientColor=none;strokeColor=none;spacingTop=-3;spacingBottom=-3;spacingLeft=-3;spacingRight=-3;points=[];labelBackgroundColor=none;rounded=0;html=1;whiteSpace=wrap;" vertex="1" parent="hmm-overview_oci_6"><mxGeometry width="76" height="84" as="geometry"/></mxCell><mxCell id="hmm-overview_ociPart_8" style="vsdxID=28;fillColor=#FFFFFF;gradientColor=none;shape=stencil(pVXbchshDP2afdUgCRA8p+l/ZBqn3qlrZxynTf++UFhYlDEvfQOttEeXo8PCD2/Hp9fDQubtdr38OPxen2/Hhb8sROv5eLiut3Ra+HHhh5fL9fD9enk/P5f761P2zKefl1/5Dx8lzoDhHETmTzGgMf/uX4v3aT3PvANB5L3/t/dr+T3WiOperyLAvpg+qJgISKpTtQhCjNWJi8mDrT6bQSBMgdGA4xHcM/gwgqMHsiO6RzBuRE85WlT4Bqyd4keIYcR3AVgUvkDEEd85iDLi5yzDiO8YeMAfB4UO3BZRA1Kf6X5A7rAMAYggflYhCQiNFYYtqVYgG0BWBfYu1GI4FaPqY6ApOHvwarwI6EZwu+MANQbjCG4tOEWuyQak6dhxBcwsTRc7c7BloDYg8VKvAAKpNH0a0KceMc7AfQQZsV3LZsMWAsW/0De04sjn8WRy8P0upQhRskIQwv2AYHVbE19RJgHcydc2guKsHUmrUM0i7xqPDQmmrX8j7I7WW0sEPI0tyYowHUdOOSpFwiaoDT/2OXd+eDWSmExakZIiTvGj9KFscpyUVpFx0/+uxkmySaHvtI1bc2fz3Ud0i7sf8J/vkvJOh/4AvqynU3k/99/1g5lM5bHlx78=);strokeColor=none;spacingTop=-3;spacingBottom=-3;spacingLeft=-3;spacingRight=-3;points=[];labelBackgroundColor=none;rounded=0;html=1;whiteSpace=wrap;" vertex="1" parent="hmm-overview_ociPart_7"><mxGeometry x="1" y="1" width="74" height="82" as="geometry"/></mxCell><mxCell id="hmm-overview_ociPart_9" style="vsdxID=29;fillColor=#FFFFFF;gradientColor=none;shape=stencil(pVjbVhsxDPyafdWxLV+fKf0PTgklpxQ4Adr076vtrr32uPFC+xaMlLGkkTTOxFcv9zfPh8mol9fT07fDz+Pt6/3EnyZjjo/3h9PxVT5NfD3x1d3T6fD19PT2eLv8/XwzW86fvj/9mL/hvPg5R6xnL6N+LSeGOP45+LzYf3k7LQ569Uiks4fOLtYuJ2eznHhDIa1G6xGTX93OvBo5CmE1Wo/kxIzAfaTgW/BAkVvwoAiwtSpuGTxoir4F15ZUqNEfjo9VqqKhNlNOU+KBvSbvWgdD3o7CC4k8t+E5T0pDfL5LrouUILuBiW0boNek7eULi4fj5sKdQ3dh311YfNYsbhdOuazlwmLloCKS38yQcmFDbkjG6MgBvPCsRY+RNAO6K0cZPSliB+iBVBqhJ7leAPhECnohWWLAF/JxAHyJBMol9UjD7Cchgm3xpSDOAH4g9oCfyETAD138UpBRP9Qe5cSbyw5S3/hf9t2FMCGVh+4jLYMIq1HlbA3dEuRitxYyuQC5qnEGIguFqOmSC0E+TR/jodal+wsPK4bnIWg3hmX4rVnyDJQ7MsDvNaGR1jEAX7X3iiV5txrgq1GxghmpBQ6B8dQSj9DScHdqVRTI1avmpylRWdfet57FOV+x7L6yw3DKt/eVDKeW1jt7xETYO/OecsP4UjYoAc4bEOYSS5pgjcguhfjYko4QHw17kANpaAXZK6nFtooiJNcU4pUmtDmRBRvFSZspETOmXWC79jvi56P2nbiC+6jLX15H+xdjTLNkMACJFSnoOfaUYPFK0aHlmbuJw9noUo2lN6DGbvveXFAhepiAX2m/32WamXG/m9Dkac/BbbpideDh3tFdmaVDR7wQB9UpPZOGDg5mgKR8fKVSyOKw9uqlpSB9CENA+Ai7UMaXh6HsZCkDQ4RZBhgirwAeUmTeNqgMhTWAn8qOrFZSVhXnMnA8jCDZiHa4kmSiphZc1rEHYaSAnL48RzKyKtv5nZqocshzd9DyKW0d8k/mu4Iof1+tDwP0qaiwhHtAoy4QEYsUmIswBBdJ7aAKc3VBloiE73TBNl7KayZ1u2CXgvIAQ10yk9sBfv9UlT7JR+VxYjsqdB0Izz9LNn/vu3pcEqFg7IyniCCA8pnnlL/sEGxpwG0SuoG9RAh01sMQ5hdkHDt0L0ihMGr28jI/bzLZoRbrpKP3BMqVd3SzsLHTSfm6BVtoZuDBoDrRXiuDPDsup+lDumDHWD5sv+3cHR8elp+G6v/jb0FytPyOxNe/AQ==);strokeColor=none;spacingTop=-3;spacingBottom=-3;spacingLeft=-3;spacingRight=-3;points=[];labelBackgroundColor=none;rounded=0;html=1;whiteSpace=wrap;" vertex="1" parent="hmm-overview_ociPart_7"><mxGeometry width="76" height="84" as="geometry"/></mxCell><mxCell id="hmm-overview_ociPart_10" style="vsdxID=30;fillColor=#2c5967;gradientColor=none;shape=stencil(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);strokeColor=none;spacingTop=-3;spacingBottom=-3;spacingLeft=-3;spacingRight=-3;points=[];labelBackgroundColor=none;rounded=0;html=1;whiteSpace=wrap;" vertex="1" parent="hmm-overview_ociPart_7"><mxGeometry x="2" y="2" width="72" height="80" as="geometry"/></mxCell><mxCell id="hmm-overview_v_11" value="<b>팀장 · E1001</b><br>팀원 · E1002~E1007<br>HR 관리자<br><br><font color="#5B5652">같은 질문이라도 역할과 보고 관계에 따라 다른 행을 조회</font>" style="rounded=1;arcSize=8;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#D4CFCA;strokeWidth=1;dashed=0;fontFamily=Oracle Sans;fontColor=#312D2A;fontSize=12;align=center;verticalAlign=middle;spacing=6;" vertex="1" parent="1"><mxGeometry x="54" y="270" width="142" height="150" as="geometry"/></mxCell><mxCell id="hmm-overview_v_12" value="<b>외부 Agent</b><br>AI Database Private<br>Agent Factory<br><br><font color="#5B5652">MCP client</font>" style="rounded=1;arcSize=8;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#D4CFCA;strokeWidth=1;dashed=0;fontFamily=Oracle Sans;fontColor=#312D2A;fontSize=12;align=center;verticalAlign=middle;spacing=6;" vertex="1" parent="1"><mxGeometry x="54" y="465" width="142" height="115" as="geometry"/></mxCell><mxCell id="hmm-overview_v_13" value="<b>공개 HTTPS</b><br><br>hmm.cloud-handson.com<br><br>hmm-backoffice.cloud-handson.com/mcp<br><br><font color="#AE562C">사용자 Bearer Token</font><br><font color="#5B5652">TLS · HttpOnly portal cookie</font>" style="rounded=1;arcSize=8;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#AE562C;strokeWidth=1;dashed=0;fontFamily=Oracle Sans;fontColor=#312D2A;fontSize=12;align=center;verticalAlign=middle;spacing=6;" vertex="1" parent="1"><mxGeometry x="54" y="625" width="142" height="210" as="geometry"/></mxCell><mxCell id="hmm-overview_v_14" value="" style="rounded=1;arcSize=7;whiteSpace=wrap;html=1;fillColor=#FBFAF9;strokeColor=#9E9892;strokeWidth=1;dashed=0;fontFamily=Oracle Sans;fontColor=#312D2A;fontSize=12;align=center;verticalAlign=middle;spacing=6;" vertex="1" parent="1"><mxGeometry x="250" y="120" width="1260" height="900" as="geometry"/></mxCell><mxCell id="hmm-overview_v_15" value="<b>Oracle Cloud Infrastructure</b>" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;fontFamily=Oracle Sans;fontColor=#312D2A;fontSize=13;fontStyle=0;spacingLeft=0;spacingRight=0;" vertex="1" parent="1"><mxGeometry x="264" y="128" width="1232" height="26" as="geometry"/></mxCell><mxCell id="hmm-overview_v_16" value="" style="rounded=1;arcSize=7;whiteSpace=wrap;html=1;fillColor=#F5F4F2;strokeColor=#9E9892;strokeWidth=1;dashed=0;fontFamily=Oracle Sans;fontColor=#312D2A;fontSize=12;align=center;verticalAlign=middle;spacing=6;" vertex="1" parent="1"><mxGeometry x="280" y="165" width="930" height="815" as="geometry"/></mxCell><mxCell id="hmm-overview_v_17" value="<b>OCI Region · ap-seoul-1</b>" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;fontFamily=Oracle Sans;fontColor=#312D2A;fontSize=13;fontStyle=0;spacingLeft=0;spacingRight=0;" vertex="1" parent="1"><mxGeometry x="294" y="173" width="902" height="26" as="geometry"/></mxCell><mxCell id="hmm-overview_v_18" value="" style="rounded=1;arcSize=7;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#AE562C;strokeWidth=1;dashed=1;fontFamily=Oracle Sans;fontColor=#312D2A;fontSize=12;align=center;verticalAlign=middle;spacing=6;" vertex="1" parent="1"><mxGeometry x="315" y="210" width="480" height="320" as="geometry"/></mxCell><mxCell id="hmm-overview_v_19" value="<b>VCN · Public application subnet</b>" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;fontFamily=Oracle Sans;fontColor=#AE562C;fontSize=13;fontStyle=0;spacingLeft=0;spacingRight=0;" vertex="1" parent="1"><mxGeometry x="329" y="218" width="452" height="26" as="geometry"/></mxCell><mxCell id="hmm-overview_oci_20" value="" style="group" vertex="1" connectable="0" parent="1"><mxGeometry x="340" y="265" width="84" height="90" as="geometry"/></mxCell><mxCell id="hmm-overview_ociPart_21" value="" style="group" vertex="1" connectable="0" parent="hmm-overview_oci_20"><mxGeometry y="2.2737367544323206e-13" width="84" height="130" as="geometry"/></mxCell><mxCell id="hmm-overview_ociPart_22" style="vsdxID=53;fillColor=none;gradientColor=none;strokeColor=none;spacingTop=-3;spacingBottom=-3;spacingLeft=-3;spacingRight=-3;points=[];labelBackgroundColor=none;rounded=0;html=1;whiteSpace=wrap;" vertex="1" parent="hmm-overview_ociPart_21"><mxGeometry width="84" height="84" as="geometry"/></mxCell><mxCell id="hmm-overview_ociPart_23" style="vsdxID=54;fillColor=none;gradientColor=none;strokeColor=none;spacingTop=-3;spacingBottom=-3;spacingLeft=-3;spacingRight=-3;points=[];labelBackgroundColor=none;rounded=0;html=1;whiteSpace=wrap;" vertex="1" parent="hmm-overview_ociPart_22"><mxGeometry width="84" height="84" as="geometry"/></mxCell><mxCell id="hmm-overview_ociPart_24" style="vsdxID=55;fillColor=#FFFFFF;gradientColor=none;shape=stencil(lZPRDoIwDEW/Zq9LWUHCs+J/EAVZRCATFP/eYYdsAzW+td2922mzMtxey6zNmYBrp5pzfpfHrmS4Y0LIusyV7HTEMGW4LRqVn1TT10fK22xUjtGluY03DOSLOEajScCDCknC482rsif9oVdkCEggeIjGEfgWGASVwChMmsQchVGgqzBpEvLQfrWStUUJDuKb+QMhuHgz8ERnteDyTnDWVBzcVTiNvnFnCN/o9Cyi2CUEFy8Ab3xWB+hLfOJVxFnuI3+AnA1L6kEsG/HJB1zOxkNfBf39Hf/V62D++4WsKlod+9zfFV2iPcP0CQ==);strokeColor=none;spacingTop=-3;spacingBottom=-3;spacingLeft=-3;spacingRight=-3;points=[];labelBackgroundColor=none;rounded=0;html=1;whiteSpace=wrap;" vertex="1" parent="hmm-overview_ociPart_23"><mxGeometry x="1" y="1" width="82" height="82" as="geometry"/></mxCell><mxCell id="hmm-overview_ociPart_25" style="vsdxID=56;fillColor=#FFFFFF;gradientColor=none;shape=stencil(lZXRdoIwDIafprc9aUMpvXb6Hp6JgzMmHsSNvf1gLbQNCHpX4h/88iehDHe34njNmYRb29Sf+U95aguGb0zK8lLkTdn2J4Z7hrtz3eQfTX2/nOzz9Tgoh9NX/T28obN5BjmqIUvCr41Ijtl/4GD17/fGJgiXoXhiXIYgKdBJJ9IcR5ELJVy6SIdzkQulPMHwz6vyEsIGCRN+JlZpgxRfgFEEN6jJV5ClhDfwCqlqEbgvR8S8VE95e5c0wdU8lTFu77cmtIprEdMGIs+v9GPYIGG5GZQ1SBCzHstZPXI2LDhzCZdnkIzB5sy+qt/aCXihxbBuWaZiyyD2C6hZdAghdmp9YSAi21wWYHTyREInb+J3EQHANro5Sh41R8U7TeQLGy2Ih56BQgXbPJWCVPPcenj9c9thDNcp/U5O3Ry5Um5EjErsXPjorLu5Nrr9wV8E57Kq7D0S/k4vjj5kLx3c/wE=);strokeColor=none;spacingTop=-3;spacingBottom=-3;spacingLeft=-3;spacingRight=-3;points=[];labelBackgroundColor=none;rounded=0;html=1;whiteSpace=wrap;" vertex="1" parent="hmm-overview_ociPart_23"><mxGeometry width="84" height="84" as="geometry"/></mxCell><mxCell id="hmm-overview_ociPart_26" style="vsdxID=57;fillColor=none;gradientColor=none;strokeColor=none;spacingTop=-3;spacingBottom=-3;spacingLeft=-3;spacingRight=-3;points=[];labelBackgroundColor=none;rounded=0;html=1;whiteSpace=wrap;" vertex="1" parent="hmm-overview_ociPart_22"><mxGeometry x="2" y="2" width="80" height="80" as="geometry"/></mxCell><mxCell id="hmm-overview_ociPart_27" style="vsdxID=58;fillColor=#2d5967;gradientColor=none;shape=stencil(lZXLcoMwDEW/xlvGWDzidZr8R6YhhSmFDCEt+ftCbbAkB+Lu/LgyR/IVFrC/ladrIZS89V37WfxU574U8CaUqpqy6Kp+HAk4CNhf2q746Np7czbz62lSTqOv9ns6YTBxOo3SeIpS8mFW5N/saMR11SBxEqlkXft+78zJsdmMI62tOsZyOSgyfdipsrtAd2H5drpOJgmWzra4JIXSO0qFsOcVKSkaqgNQyVO4scZ5RgCZnBPqXSRjSukYONRMueQBXAAOY6OETv+84B6kno9bIBVF1LnLm175AL774KX9XniVGTtzNVzJ38so88puneRSSr2UxihbqK20nCqsszw9hwWvuzCImkV5wmkpKlKE2QQFhPkEBdiVhEPyhoPFWesdB5uUfstxfcDlIwx01+z6EwqKFUF/rgCf/jtgHLj//aWqa/Nc4H3+PoxL5m2Bwy8=);strokeColor=none;spacingTop=-3;spacingBottom=-3;spacingLeft=-3;spacingRight=-3;points=[];labelBackgroundColor=none;rounded=0;html=1;whiteSpace=wrap;" vertex="1" parent="hmm-overview_ociPart_26"><mxGeometry width="80" height="80" as="geometry"/></mxCell><mxCell id="hmm-overview_ociPart_28" style="vsdxID=59;fillColor=#2d5967;gradientColor=none;shape=stencil(pZJbDsIgFERXwy+hQBW/a91Hk1IhIjQUX7sXcmNsNaWx/s1wz32EDGLVoJpeIkqG4N1J3nQbFGJ7RKm2SnodokKsRqzqnJdH7y62Bd83iUzq7K5pwh36SOqg5AGuIOAPgBptR+iruArOoCvB7PosOv0BjkUxpTdYlPOjdxyXf/GCY7qd57/u+ZVfuGeZj+Idl04bA2kb1z/jFZ8gmqx+Ag==);strokeColor=none;spacingTop=-3;spacingBottom=-3;spacingLeft=-3;spacingRight=-3;points=[];labelBackgroundColor=none;rounded=0;html=1;whiteSpace=wrap;" vertex="1" parent="hmm-overview_ociPart_26"><mxGeometry x="11" y="51" width="58" height="17" as="geometry"/></mxCell><mxCell id="hmm-overview_ociPart_29" style="vsdxID=60;fillColor=#2d5967;gradientColor=none;shape=stencil(jVLRDoMgDPwaXg2UOeezc/9hJk4ypwZ107+fpCRClxnf2nLH9eCYzIa66BUDPoyme6qPLseaySsD0G2tjB7XismcyazqjHqYbmpL7PvCIm316t72hhl5MbcU4Au2gmN/Q+x9MggWeJwk0Vk4gggZfAYyWGAjgcNIinGDUxql6Z7yxnADgEheQmV/OzfioW5MZHfNWoUkFCVWiVF/JRkijtokJv2ng9+t6Iv/s0l+tdHt4QSsxRadSjcNJs8/p1FbRxhTmX8B);strokeColor=none;spacingTop=-3;spacingBottom=-3;spacingLeft=-3;spacingRight=-3;points=[];labelBackgroundColor=none;rounded=0;html=1;whiteSpace=wrap;" vertex="1" parent="hmm-overview_ociPart_26"><mxGeometry x="57" y="58" width="4" height="4" as="geometry"/></mxCell><mxCell id="hmm-overview_ociPart_30" style="vsdxID=61;fillColor=#2d5967;gradientColor=none;shape=stencil(pZLbDsIgEES/Zl8JZW3E51r/o0mpEBEa2nr5e0Fi2qrpRd92Z8+QCRnArJFFLYDRpnX2JK6qbCXgHhhTRgqnWj8B5oBZZZ04OtuZMu51Ecgwne0lvHCLvh0nnAcXo/eo0Od2iLBWZgDT38CETqCv4yJ4VdoZePwPHEmyGcFBSSdyp2SL/xl65avhM9Jqw0ykBQY/9NWplNaxecP7e9W8FGuK+QM=);strokeColor=none;spacingTop=-3;spacingBottom=-3;spacingLeft=-3;spacingRight=-3;points=[];labelBackgroundColor=none;rounded=0;html=1;whiteSpace=wrap;" vertex="1" parent="hmm-overview_ociPart_26"><mxGeometry x="11" y="11" width="17" height="17" as="geometry"/></mxCell><mxCell id="hmm-overview_ociPart_31" style="vsdxID=62;fillColor=#2d5967;gradientColor=none;shape=stencil(pZJJDoMwDEVP422UxGXYU3oPJEKJmhIUoMPtm8iqCnSE7vzj920r+oBZVxetAsm73tmDOuuyrwG3IKVuauV07yvAHDCrrFN7Z4emJN0WgQzV0Z7ChAv5BOfBI/mVNKkdoUY3I3QleN/wEp2vXwSvRac/kG6YTCZwikxEH2bHLI3/M4iIJfje8HzSYsOXk34w+OIRmkobQ5kb9+ch808UUMxv);strokeColor=none;spacingTop=-3;spacingBottom=-3;spacingLeft=-3;spacingRight=-3;points=[];labelBackgroundColor=none;rounded=0;html=1;whiteSpace=wrap;" vertex="1" parent="hmm-overview_ociPart_26"><mxGeometry x="31" y="11" width="17" height="17" as="geometry"/></mxCell><mxCell id="hmm-overview_ociPart_32" style="vsdxID=63;fillColor=#2d5967;gradientColor=none;shape=stencil(pZLbDsIgEES/Zl8JZW3E51r/o0mpEBEa2nr5e0Fi2qrpRd92Z8+QCRnArJFFLYDRpnX2JK6qbCXgHhhTRgqnWj8B5oBZZZ04OtuZMu51Ecgwne0lvHCLvh0nnAcXo/eo0Od2iLBWZgDT38CETqCv4yJ4VdoZePwPHEmyGcFBSSdyp2SL/xl65avhM9Jqw0ykBQY/9NWplNaxecP7e9W8FGuK+QM=);strokeColor=none;spacingTop=-3;spacingBottom=-3;spacingLeft=-3;spacingRight=-3;points=[];labelBackgroundColor=none;rounded=0;html=1;whiteSpace=wrap;" vertex="1" parent="hmm-overview_ociPart_26"><mxGeometry x="11" y="31" width="17" height="17" as="geometry"/></mxCell><mxCell id="hmm-overview_ociPart_33" style="vsdxID=64;fillColor=#2d5967;gradientColor=none;shape=stencil(pZJJDoMwDEVP422UxGXYU3oPJEKJmhIUoMPtm8iqCnSE7vzj920r+oBZVxetAsm73tmDOuuyrwG3IKVuauV07yvAHDCrrFN7Z4emJN0WgQzV0Z7ChAv5BOfBI/mVNKkdoUY3I3QleN/wEp2vXwSvRac/kG6YTCZwikxEH2bHLI3/M4iIJfje8HzSYsOXk34w+OIRmkobQ5kb9+ch808UUMxv);strokeColor=none;spacingTop=-3;spacingBottom=-3;spacingLeft=-3;spacingRight=-3;points=[];labelBackgroundColor=none;rounded=0;html=1;whiteSpace=wrap;" vertex="1" parent="hmm-overview_ociPart_26"><mxGeometry x="31" y="31" width="17" height="17" as="geometry"/></mxCell><mxCell id="hmm-overview_ociPart_34" style="vsdxID=65;fillColor=#2d5967;gradientColor=none;shape=stencil(pZJJDoMwDEVP422UxGXYU3oPJEKJmhIUoMPtm8iqCnSE7vzj920r+oBZVxetAsm73tmDOuuyrwG3IKVuauV07yvAHDCrrFN7Z4emJN0WgQzV0Z7ChAv5BOfBI/mVNKkdoUY3I3QleN/wEp2vXwSvRac/kG6YTCZwikxEH2bHLI3/M4iIJfje8HzSYsOXk34w+OIRmkobQ5kb9+ch808UUMxv);strokeColor=none;spacingTop=-3;spacingBottom=-3;spacingLeft=-3;spacingRight=-3;points=[];labelBackgroundColor=none;rounded=0;html=1;whiteSpace=wrap;" vertex="1" parent="hmm-overview_ociPart_26"><mxGeometry x="51" y="11" width="17" height="17" as="geometry"/></mxCell><mxCell id="hmm-overview_ociPart_35" style="vsdxID=66;fillColor=#2d5967;gradientColor=none;shape=stencil(pZJJDoMwDEVP422UxGXYU3oPJEKJmhIUoMPtm8iqCnSE7vzj920r+oBZVxetAsm73tmDOuuyrwG3IKVuauV07yvAHDCrrFN7Z4emJN0WgQzV0Z7ChAv5BOfBI/mVNKkdoUY3I3QleN/wEp2vXwSvRac/kG6YTCZwikxEH2bHLI3/M4iIJfje8HzSYsOXk34w+OIRmkobQ5kb9+ch808UUMxv);strokeColor=none;spacingTop=-3;spacingBottom=-3;spacingLeft=-3;spacingRight=-3;points=[];labelBackgroundColor=none;rounded=0;html=1;whiteSpace=wrap;" vertex="1" parent="hmm-overview_ociPart_26"><mxGeometry x="51" y="31" width="17" height="17" as="geometry"/></mxCell><mxCell id="hmm-overview_v_36" value="" style="rounded=1;arcSize=8;whiteSpace=wrap;html=1;fillColor=#FCFBFA;strokeColor=#D4CFCA;strokeWidth=1;dashed=0;fontFamily=Oracle Sans;fontColor=#312D2A;fontSize=12;align=center;verticalAlign=middle;spacing=6;" vertex="1" parent="1"><mxGeometry x="445" y="260" width="320" height="235" as="geometry"/></mxCell><mxCell id="hmm-overview_v_37" value="<b>Compute VM · 132.226.232.69</b>" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;fontFamily=Oracle Sans;fontColor=#312D2A;fontSize=13;fontStyle=1;spacingLeft=0;spacingRight=0;" vertex="1" parent="1"><mxGeometry x="462" y="274" width="286" height="34" as="geometry"/></mxCell><mxCell id="hmm-overview_v_38" value="<b>Nginx</b> · TLS / reverse proxy" style="rounded=1;arcSize=8;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#D4CFCA;strokeWidth=1;dashed=0;fontFamily=Oracle Sans;fontColor=#312D2A;fontSize=12;align=center;verticalAlign=middle;spacing=6;" vertex="1" parent="1"><mxGeometry x="470" y="320" width="270" height="42" as="geometry"/></mxCell><mxCell id="hmm-overview_v_39" value="<b>AI Web Agent Console</b><br>Streamlit · 질문/근거/감사 UI" style="rounded=1;arcSize=8;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#2F6F8F;strokeWidth=1;dashed=0;fontFamily=Oracle Sans;fontColor=#312D2A;fontSize=12;align=center;verticalAlign=middle;spacing=6;" vertex="1" parent="1"><mxGeometry x="470" y="376" width="270" height="46" as="geometry"/></mxCell><mxCell id="hmm-overview_v_40" value="<b>VPD Backoffice</b><br>Spring Boot · `/mcp` · 권한 관리" style="rounded=1;arcSize=8;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#C74634;strokeWidth=1;dashed=0;fontFamily=Oracle Sans;fontColor=#312D2A;fontSize=12;align=center;verticalAlign=middle;spacing=6;" vertex="1" parent="1"><mxGeometry x="470" y="436" width="270" height="46" as="geometry"/></mxCell><mxCell id="hmm-overview_oci_41" value="" style="group" vertex="1" connectable="0" parent="1"><mxGeometry x="330" y="635" width="83.99999999999994" height="90" as="geometry"/></mxCell><mxCell id="hmm-overview_ociPart_42" style="vsdxID=58;fillColor=none;gradientColor=none;strokeColor=none;spacingTop=-3;spacingBottom=-3;spacingLeft=-3;spacingRight=-3;points=[];labelBackgroundColor=none;rounded=0;html=1;whiteSpace=wrap;" vertex="1" parent="hmm-overview_oci_41"><mxGeometry width="84" height="81" as="geometry"/></mxCell><mxCell id="hmm-overview_ociPart_43" style="vsdxID=59;fillColor=#FFFFFF;gradientColor=none;shape=stencil(pdTNDoMgDADgp+Ha8C+enXsPE3GSOTHo/t5+ErJsM2EbemvhK+mhBbFibKtBI4rHydmjvpp6ahHbIUpN32pnpjlCrESsaKzTB2fPfR3yofLSRyd78S/cQh32FRTfQ0ZwyPeBdqaP0lwCpnHMIZOfnoHgcS+A0U0+U6BU3BPgYpMXBGie0E+q5wSkTOgn1RMOOEvoJ9V/GZycg1Tr8Y9JyAVQnlLwHPI/J3nJE3ZkPZ2D18Y2puvCwr/fLzd8Pgq/Aysf);strokeColor=none;spacingTop=-3;spacingBottom=-3;spacingLeft=-3;spacingRight=-3;points=[];labelBackgroundColor=none;rounded=0;html=1;whiteSpace=wrap;" vertex="1" parent="hmm-overview_ociPart_42"><mxGeometry width="82" height="79" as="geometry"/></mxCell><mxCell id="hmm-overview_ociPart_44" style="vsdxID=60;fillColor=#FFFFFF;gradientColor=none;shape=stencil(pZbbboMwDIafJreWE+dArrvuPSqVDjQGFaU7vP1gUbUShDeXO+N8Dr+NTaJod6kO51IZvAx991p+1MehUvSkjKnbquzrYbQU7RXtTl1fvvTdtT2m5/NhIifrrXufdvhMcdGA01OUwa/kMUDFj+M58U3dsnwk8JEJIIgkCggQsjc48EEUEMCb9QADJm7jeUEeMEgyDmDjJj4EQEY/5fWR8o7viYUeKW8RLMMv9Eh57UEz+S70SHnpyGzlsxG2UMxwXN/bgXkU1WNZ7TquwW7jLQG6/8sR4g5BMyO1UCPlQ2S/aS5HiEfNNrwDtBJeg/H5D8fSOo9z2LKlmcMamRa7LT4E/yEjFrf2u0vSMVM97hd9XkXHnTv53El5JlmeHY3f8/xUN026Dtyv5+f/6Ep3B9p/Aw==);strokeColor=none;spacingTop=-3;spacingBottom=-3;spacingLeft=-3;spacingRight=-3;points=[];labelBackgroundColor=none;rounded=0;html=1;whiteSpace=wrap;" vertex="1" parent="hmm-overview_ociPart_42"><mxGeometry width="84" height="81" as="geometry"/></mxCell><mxCell id="hmm-overview_ociPart_45" style="vsdxID=61;fillColor=#2d5967;gradientColor=none;shape=stencil(nZBLCoAwDERPk31tjuDnHoLVBmsrtf5ub0sQRdzobiZ5ycAA5pOuRwVSTMG7Xq3UBA1YgJRktfIUogIsAfPWedV5N9uG/VgnMqnBLenDxneZEOlGip09u4pRQ/aG/gTPhFf0Gf8J/otGcdXRkjHc5n3/rC+OuHosDw==);strokeColor=none;spacingTop=-3;spacingBottom=-3;spacingLeft=-3;spacingRight=-3;points=[];labelBackgroundColor=none;rounded=0;html=1;whiteSpace=wrap;" vertex="1" parent="hmm-overview_ociPart_42"><mxGeometry x="6" y="35" width="3" height="4" as="geometry"/></mxCell><mxCell id="hmm-overview_ociPart_46" style="vsdxID=62;fillColor=#2d5967;gradientColor=none;shape=stencil(pdTdDoIgFAfwp+GW8aEzr83ew00MlolD+nr7IMpaFnns7vDnB4MxDuLFIKteIEYGa/ROnFRtJeJrxJjqpDDKugrxEvGi0UZsjT50dRj3lZe+2uuj3+Ec1iU4Sf0iRi4hoAwzfks2wbeqi3oCwGPwkd+3modzEE5xCjnJ1MeuOdU5TI/JnJv+0BSkJy8E9pDnX2U4y797shxTEjnHY3IRjtCFEPzD/vWueH7/RrVt6B6v8+/twkWh1fDyCg==);strokeColor=none;spacingTop=-3;spacingBottom=-3;spacingLeft=-3;spacingRight=-3;points=[];labelBackgroundColor=none;rounded=0;html=1;whiteSpace=wrap;" vertex="1" parent="hmm-overview_ociPart_42"><mxGeometry x="6" y="1" width="71" height="71" as="geometry"/></mxCell><mxCell id="hmm-overview_ociPart_47" style="vsdxID=63;fillColor=#2d5967;gradientColor=none;shape=stencil(pZbdboMwDIWfJrdWYueP6657j0qlIxqDitJtffvCsmkrqB4ud8H5TnRiO8iKNqdqdywV6lPfta/lR9r3laInhZiaquxSP6wUbRVtDm1XvnTtudnn7+NuJMfVW/s+nvCZdQbB06hCfcmRQkOIX5HnLKhTwwqM1gz+vfkQzKEzGyK4AFPc5/XDrEXQDDw3Iha4CNoutSOCxYVfL7jtRQv+Bo8GnL9/fgG4Bg8ekMn81IwUR6AgMCPDfQCz3IuQJjCOqWoApHUC8hBxuSEpjsDUaZpJGY3hp6UXWZHiBJ55TzMzMtxEsII2kOIWrKgJxAIHyL1uB3YdXwxXYi48NyQWRAdOkFIpzv/+/sWHxe+QcEh1nWeMv/vToWII5YGEtlc=);strokeColor=none;spacingTop=-3;spacingBottom=-3;spacingLeft=-3;spacingRight=-3;points=[];labelBackgroundColor=none;rounded=0;html=1;whiteSpace=wrap;" vertex="1" parent="hmm-overview_ociPart_42"><mxGeometry x="3" y="7" width="69" height="60" as="geometry"/></mxCell><mxCell id="hmm-overview_ociPart_48" style="vsdxID=64;fillColor=#2d5967;gradientColor=none;shape=stencil(nZLdDsIgDIWfhltS6ULC9ZzvsWRMiDgWhk7fXrAxTk32491p+7Wh9DAsB1P3mgkYYvAnPdomGoZ7JoTtjA42JsWwYli2Puhj8JeuobivM5nV2V/zhBv1KcmhyF0C7pSBZ3Qg2NluAiNXci0LH2ChuFRr4R1secMs/bveLP4q/gUv7LjppxfgJN4Hba1z5Idp/dsAKUXmweoB);strokeColor=none;spacingTop=-3;spacingBottom=-3;spacingLeft=-3;spacingRight=-3;points=[];labelBackgroundColor=none;rounded=0;html=1;whiteSpace=wrap;" vertex="1" parent="hmm-overview_ociPart_42"><mxGeometry x="1" y="76" width="80" height="3" as="geometry"/></mxCell><mxCell id="hmm-overview_ociPart_49" style="vsdxID=65;fillColor=#2d5967;gradientColor=none;shape=stencil(jZTdboMwDIWfJrdWYuf3uuveo1rpQOtKRenG3n5hSQBHarW7cLD9HTsYQbtbe7g2AuVtHPqP5rs7jq2gF4HYXdpm6MZ4ErQXtDv1Q/M+9PfLMT1fD3PkfPrsv+YKU8pzBgLNWSh/suLA+D/lNSW83YeUoZYUV1Ky5BEMJmnCHKXBlqgseQc6SxPlKARrc1SWAgLiln/uLhvDIdY1zLCS8pnd4EF5bjciirdiNwQIvrKrIQRut6AWs3FYpJ7Sw1Kk0E0AbSu6BIWcrhGUroal1lpZQl8SH/ANgTecrzQojo9VTEUH5OyqbzZxfkElMsNMafaBQYxN1QbjgBx3qBVU80EH1nOPRoN33Cf5Ij3A29h6hTcSZHU/85Zozre0fkO0RpGovw++THxW/9i+eFh399Sdz2n1t+/rXY9S+k/Q/hc=);strokeColor=none;spacingTop=-3;spacingBottom=-3;spacingLeft=-3;spacingRight=-3;points=[];labelBackgroundColor=none;rounded=0;html=1;whiteSpace=wrap;" vertex="1" parent="hmm-overview_ociPart_42"><mxGeometry x="46" y="22" width="13" height="21" as="geometry"/></mxCell><mxCell id="hmm-overview_ociPart_50" style="vsdxID=66;fillColor=#2d5967;gradientColor=none;shape=stencil(hZRNcoMwDIVPw1ZjSza212lyj0xDClMKGULa5PY1tSlI05Kd/ZD4HvqhoN21Pl6qAtV1HPr36qs5jXVBLwVi09XV0IzxVNC+oN25H6q3ob91p3S/HKfI6fTRf05vuKc8NODtlIXqkRTngPSPckgJr7chZeglxeeULJUExiTpjkkiBNQ5KksmQJijKEsWXJYeWSIPfpNvA6DjfHRQOs53HjBwvg5gAudrpThdWzDlmt423apcS3y6qy2jToO13KgBLepkSkBh04AibhM9KMeNTpLdosdio4AjKM/p6hc102N1jaCLEj0dkPhSQfYGQuBkDV58d0AoBdkCEYfPDfizO9MYlKw/QUPYrFJEeNEj70Bbbjb2LYhh9nG+xTCvd+m/WgnDz7cvHpbdPTdtm1Z//VzuepTSf4L23w==);strokeColor=none;spacingTop=-3;spacingBottom=-3;spacingLeft=-3;spacingRight=-3;points=[];labelBackgroundColor=none;rounded=0;html=1;whiteSpace=wrap;" vertex="1" parent="hmm-overview_ociPart_42"><mxGeometry x="25" y="22" width="13" height="21" as="geometry"/></mxCell><mxCell id="hmm-overview_ociPart_51" style="vsdxID=67;fillColor=#2d5967;gradientColor=none;shape=stencil(lZTdUoNADIWfhtvMJtnf69q+R8dSYUToUKr49oK7yAanHb1bDkm+k7Ch4N21Ol7KgtR16LvX8qM+DVXBTwVR3VZlXw/TqeB9wbtz15cvfXdrT/H5cpwj59Nb9z5XGGOeDmDcnEXqMypGg+Jv5RATnm99zMAYwAa0SSlJMgzWR2mkKBGCDykqSayBE2vkKCGCXWolSeXspm4zs0oYJYZgHhm1oLX0qR0EJ32iBtz4tA4QpU8icEH69ArQP5wTAgfJDwxkJV+rdQKLJaUk3SiJXgLugE0AthK8llx69GBRYnNzCeQcEP6zbW/Ao6TnA11hxkp+/nE2jf7Qf31zeUH8VGKpmq4M0EO3U4dmM6vpmnraTIvBs3Q7r4mWbvNd4jWK7/v9w/ZNh3V3z3XTxNXP3293fZLif4L3Xw==);strokeColor=none;spacingTop=-3;spacingBottom=-3;spacingLeft=-3;spacingRight=-3;points=[];labelBackgroundColor=none;rounded=0;html=1;whiteSpace=wrap;" vertex="1" parent="hmm-overview_ociPart_42"><mxGeometry x="30" y="49" width="24" height="6" as="geometry"/></mxCell><mxCell id="hmm-overview_ociPart_52" style="vsdxID=68;fillColor=#2d5967;gradientColor=none;shape=stencil(lVjbVhsxDPyavOrYlq/PtP0PTgklpxQ4Adrw99WStS3Psht4WxzLI0ujkcyOr57vrp/2O2eeX46Pv/f/Djcvdzv+tnPu8HC3Px5e5GvH33d8dft43P86Pr4+3Jz/frqedk5ffx7/TiecznY+ki2TlTNv5xWO5Oz7yo+zwc/X49nCziaepl/fTWyzCfm8dHLzLkc8b5pXONFsduJ5jyEf503zEmcyaQudAwU7oqtjKjpb4jTCi9sxjvguU8wjfjBkNm/vApU84ofQwCq+85TziB8thQL4chc/4sdEiS/gZ4h+LFQK4EdiO+InV/Pa8RMZN+InT+w1/v3hQdHFDFQpjrzfctaS5dHXEshAruQQcLWkTqfKC8o8emqNWfeTDY2sznZeWKOV63UwL2XuhKm0kiU/+poDuQC+yhKkNcdquIZfKEBaiyEH+BOHC8TKtWo8NQ6P4H3LCvhEYKgpfWwlsJQZcFq7WAnsKcUvXj4KW+OIr8Na8RNlIIpOUcUvZAEeUj8ypYgAVqX4kFjo7EROYIrma41MpgwCpKkPHNap8hvlJzVceHB2Ua/obuKucbadgrmVYywQK5nRV9mCYn1RrFIgi2KlZLCDG0isltSKL5IOYnVRrKMIPAiQbgOuUdbD5XVLqWBlIdYXm1WQAI3wqgn2qyYoK91OKzp38nPbNTbqkSvaQov3mquOAtSgAUctOaA0UMSX3hv5E5g+L7gJmD7VeljFVAPMR5hjUD4x7nzZYByoouqpjV5z3a+xNFUa9SpJVJCl4gm2dNuoo+TXQZVKEZqwiS+iA1WacusILf2FEqQ/myZyjaexlVfTXzl+k3lMIYzwoutV5xq86VJS4X1rG4oNQMCpRWxqlGfyEH3xGCRq0gPsPbaGtTf+3IWMMZDr8yyUneQLu4nMHSWM8CLiBmckJge3FwF0m9yTuQfgJzX0AK/ajhoGIPXs24D51tmQL03zHpqp0AHHHhHNCNSb6ADX92o+qUv5QoOQ5DvA9zJgw/2FVXGEn7oIwi/Fr+9aF10ovMkE5p7gF9wTH60f4SXUjcZKGjfRMwXsjl2K9NgH6LklrcmObU8Q1Zzd5sgdpe6h8CQeBipP6JiBexIQx4Af+mCslGgTPi4angRkobppMZvIXRfXXz6kFqo/9pVPtAn56K/228P9/fnRr3/HV74snf9DwN//Aw==);strokeColor=none;spacingTop=-3;spacingBottom=-3;spacingLeft=-3;spacingRight=-3;points=[];labelBackgroundColor=none;rounded=0;html=1;whiteSpace=wrap;" vertex="1" parent="hmm-overview_ociPart_42"><mxGeometry x="21" y="16" width="41" height="36" as="geometry"/></mxCell><mxCell id="hmm-overview_ociPart_53" style="vsdxID=69;fillColor=#2d5967;gradientColor=none;shape=stencil(jVLbDoIwDP2avZKtDRKfEf/DyJBFBDJA4e9lKYatBMNbL+fs9HQVmHblrdUCZNfb5qk/Ju9LgRcBYOpSW9PPkcBMYFo0Vj9sM9Q55e3NIV30at7uhZF4sXQUkBOlSlJ+Jex9sARW1E6S6KQWggoZcgRWmGBDGpFjMBhjR3aFLwWACM+hrD/aUpKhaMw0/0p6Cj9R5pO59EfCEHHII3PoL22rMPFd73lk/1mZ+vDfz8F6NIWpKro5v8+PbC7RgWL2BQ==);strokeColor=none;spacingTop=-3;spacingBottom=-3;spacingLeft=-3;spacingRight=-3;points=[];labelBackgroundColor=none;rounded=0;html=1;whiteSpace=wrap;" vertex="1" parent="hmm-overview_ociPart_42"><mxGeometry x="37" y="35" width="8" height="8" as="geometry"/></mxCell><mxCell id="hmm-overview_v_54" value="<b>Vault / Secrets</b><br>DB·OCI 자격증명<br><font color="#5B5652">Git 외부 관리</font>" style="rounded=1;arcSize=8;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#D4CFCA;strokeWidth=1;dashed=0;fontFamily=Oracle Sans;fontColor=#312D2A;fontSize=12;align=center;verticalAlign=middle;spacing=6;" vertex="1" parent="1"><mxGeometry x="420" y="642" width="160" height="76" as="geometry"/></mxCell><mxCell id="hmm-overview_oci_55" value="" style="group" vertex="1" connectable="0" parent="1"><mxGeometry x="330" y="800" width="114" height="90" as="geometry"/></mxCell><mxCell id="hmm-overview_ociPart_56" value="" style="group" vertex="1" connectable="0" parent="hmm-overview_oci_55"><mxGeometry width="114" height="109" as="geometry"/></mxCell><mxCell id="hmm-overview_ociPart_57" style="vsdxID=70;fillColor=none;gradientColor=none;strokeColor=none;spacingTop=-3;spacingBottom=-3;spacingLeft=-3;spacingRight=-3;points=[];labelBackgroundColor=none;rounded=0;html=1;whiteSpace=wrap;" vertex="1" parent="hmm-overview_ociPart_56"><mxGeometry x="15" width="84" height="84" as="geometry"/></mxCell><mxCell id="hmm-overview_ociPart_58" style="vsdxID=71;fillColor=none;gradientColor=none;strokeColor=none;spacingTop=-3;spacingBottom=-3;spacingLeft=-3;spacingRight=-3;points=[];labelBackgroundColor=none;rounded=0;html=1;whiteSpace=wrap;" vertex="1" parent="hmm-overview_ociPart_57"><mxGeometry width="84" height="84" as="geometry"/></mxCell><mxCell id="hmm-overview_ociPart_59" style="vsdxID=72;fillColor=#FFFFFF;gradientColor=none;shape=stencil(lZPRDoIwDEW/Zq9LWUHCs+J/EAVZRCATFP/eYYdsAzW+td2922mzMtxey6zNmYBrp5pzfpfHrmS4Y0LIusyV7HTEMGW4LRqVn1TT10fK22xUjtGluY03DOSLOEajScCDCknC482rsif9oVdkCEggeIjGEfgWGASVwChMmsQchVGgqzBpEvLQfrWStUUJDuKb+QMhuHgz8ERnteDyTnDWVBzcVTiNvnFnCN/o9Cyi2CUEFy8Ab3xWB+hLfOJVxFnuI3+AnA1L6kEsG/HJB1zOxkNfBf39Hf/V62D++4WsKlod+9zfFV2iPcP0CQ==);strokeColor=none;spacingTop=-3;spacingBottom=-3;spacingLeft=-3;spacingRight=-3;points=[];labelBackgroundColor=none;rounded=0;html=1;whiteSpace=wrap;" vertex="1" parent="hmm-overview_ociPart_58"><mxGeometry x="1" y="1" width="82" height="82" as="geometry"/></mxCell><mxCell id="hmm-overview_ociPart_60" style="vsdxID=73;fillColor=#FFFFFF;gradientColor=none;shape=stencil(lZXRdoIwDIafprc9aUMpvXb6Hp6JgzMmHsSNvf1gLbQNCHpX4h/88iehDHe34njNmYRb29Sf+U95aguGb0zK8lLkTdn2J4Z7hrtz3eQfTX2/nOzz9Tgoh9NX/T28obN5BjmqIUvCr41Ijtl/4GD17/fGJgiXoXhiXIYgKdBJJ9IcR5ELJVy6SIdzkQulPMHwz6vyEsIGCRN+JlZpgxRfgFEEN6jJV5ClhDfwCqlqEbgvR8S8VE95e5c0wdU8lTFu77cmtIprEdMGIs+v9GPYIGG5GZQ1SBCzHstZPXI2LDhzCZdnkIzB5sy+qt/aCXihxbBuWaZiyyD2C6hZdAghdmp9YSAi21wWYHTyREInb+J3EQHANro5Sh41R8U7TeQLGy2Ih56BQgXbPJWCVPPcenj9c9thDNcp/U5O3Ry5Um5EjErsXPjorLu5Nrr9wV8E57Kq7D0S/k4vjj5kLx3c/wE=);strokeColor=none;spacingTop=-3;spacingBottom=-3;spacingLeft=-3;spacingRight=-3;points=[];labelBackgroundColor=none;rounded=0;html=1;whiteSpace=wrap;" vertex="1" parent="hmm-overview_ociPart_58"><mxGeometry width="84" height="84" as="geometry"/></mxCell><mxCell id="hmm-overview_ociPart_61" style="vsdxID=74;fillColor=none;gradientColor=none;strokeColor=none;spacingTop=-3;spacingBottom=-3;spacingLeft=-3;spacingRight=-3;points=[];labelBackgroundColor=none;rounded=0;html=1;whiteSpace=wrap;" vertex="1" parent="hmm-overview_ociPart_57"><mxGeometry x="13" y="19" width="56" height="54" as="geometry"/></mxCell><mxCell id="hmm-overview_ociPart_62" style="vsdxID=75;fillColor=#2d5967;gradientColor=none;shape=stencil(lZPLDoMgEEW/hi2BoVZdW/sfJmIhpWJQ+/j7QklTH5Hibpg598IAg1jRi6rjCEg/GH3lD1kPArETApCt4EYONkKsRKxotOEXo8e29uuucqSLbvruHJ5ed8xwmjgVkJfPUIoh/2TOXqBkOxFkKZ7zhxzTAL/ewDrQbZ7Z7ffwFPadZ+3/p+HdNxQhmL/Bgibb1hBNkhmYxHtSEmCXfYXYbzHmDPE3ECJt8PvmjVTKT8m0vhwLm/Ijxco3);strokeColor=none;spacingTop=-3;spacingBottom=-3;spacingLeft=-3;spacingRight=-3;points=[];labelBackgroundColor=none;rounded=0;html=1;whiteSpace=wrap;" vertex="1" parent="hmm-overview_ociPart_61"><mxGeometry x="27" width="28" height="25" as="geometry"/></mxCell><mxCell id="hmm-overview_ociPart_63" style="vsdxID=76;fillColor=#2d5967;gradientColor=none;shape=stencil(lVTRcoMgEPwaXpnjiEWf0/Q/Mo2pTK1miGnj31cC6gEjTd9g3XN3jwMm99fmeKkZwnUw/Wf9o09Dw+QrQ9RdUxs9TCsmD0zuz72pP0x/605ufzlapl199d/2D3dXV4AtQRjdVgiO1QN5c+z3m3F04QgKeKV8iYhr4I4OKhX3yOgRLLndP0gyIXlkV3GRVSclqx/xEopTi6sfEYovuWXE2FDGioMMpclPvYzAGRkxtScT0rOxSYlI24mpQ0xPZiN3cuCt7v4xHtlhgmxDkRdlGArCQBCGIQVzmChLkRWEUEwpvos7SCzNHQT4o3+QFSUqy3WBKOcCLENDrMmY81TWlT53W3ClomtCrIUd38oaSGbnJGBOi/X1Oeu2dY8X/R6/VhPkXjp5+AU=);strokeColor=none;spacingTop=-3;spacingBottom=-3;spacingLeft=-3;spacingRight=-3;points=[];labelBackgroundColor=none;rounded=0;html=1;whiteSpace=wrap;" vertex="1" parent="hmm-overview_ociPart_61"><mxGeometry x="15" y="29" width="24" height="25" as="geometry"/></mxCell><mxCell id="hmm-overview_ociPart_64" style="vsdxID=77;fillColor=#2d5967;gradientColor=none;shape=stencil(lZLLDoMgEEW/ZraEh624tvY/TMRCSsEgff19oaSpNqnK7jJz7mQmXGD1KNtBAMWjd/Ys7qrzEtgBKFVGCqd8UMAaYHVvnTg5ezVdeg9tJKO62Fuc8Ei+okJ7Fl0UP1OFFohU78oxGbQyEwMnqNzNDLxECzzhiObw2QttMKydjP9PxzOQ4AX009wEZy2xAgfx/d5eaZ3SMe3/xiGUUpRY8wI=);strokeColor=none;spacingTop=-3;spacingBottom=-3;spacingLeft=-3;spacingRight=-3;points=[];labelBackgroundColor=none;rounded=0;html=1;whiteSpace=wrap;" vertex="1" parent="hmm-overview_ociPart_61"><mxGeometry width="27" height="25" as="geometry"/></mxCell><mxCell id="hmm-overview_ociPart_65" style="vsdxID=78;fillColor=#2d5967;gradientColor=none;shape=stencil(pZRRc4IwDMc/TV97bUIFn51+D09x9MbAq7jpt7csDNp0sO18S9Jfwj8JF4GbS7U/lwLUpXPtW/lpj10l8EUA2KYqne28JXArcHNqXfnq2mtzJP+878neem8/+go3ylsbmZs+C9SdIlqpL39HeG2bAM8kLNKHq6Pqmp5hgHVMqxtQYHDvg7vOZV4MBMYEjnqhmNenInELjYxK/o8mEnjTU4JO2/rutIg7nyaD6WLwD5v5dZHx3pHTmdT5fPUE958zZmkIQYYeUwqMp5Cx9a+k1vEYgh8OOfTzHFaxTk5znR4ALjSQMSkzTGvQDSYQzkyJa5VPLeFJ3BvTWTjZuqarEr7zM+JDdIJw+wA=);strokeColor=none;spacingTop=-3;spacingBottom=-3;spacingLeft=-3;spacingRight=-3;points=[];labelBackgroundColor=none;rounded=0;html=1;whiteSpace=wrap;" vertex="1" parent="hmm-overview_ociPart_57"><mxGeometry x="2" y="10" width="80" height="72" as="geometry"/></mxCell><mxCell id="hmm-overview_ociPart_66" style="vsdxID=79;fillColor=#2d5967;gradientColor=none;shape=stencil(nZLbDoIwDEC/Zq9ktILwjPAfRIYsIiMDFP9eli5hw1v0re1Ol5O2DLOhKXvBgA+jVmdxk9XYMDwwANk1QstxiRjmDLNaaXHSauoqyvvSkCa6qKv5Yaa+kHPTA/zu5wXBrewc+G80SoIYXPg4abIIfdymsA+ilEoz2JIlwGuYkdJdAJEF0AVeuqWxJ8c/iaWJb8Z9q3V88GyOWwbfTMPX+2klX+AlWDdfy7alw3Hft5eylOjKMH8A);strokeColor=none;spacingTop=-3;spacingBottom=-3;spacingLeft=-3;spacingRight=-3;points=[];labelBackgroundColor=none;rounded=0;html=1;whiteSpace=wrap;" vertex="1" parent="hmm-overview_ociPart_57"><mxGeometry x="2" y="2" width="80" height="5" as="geometry"/></mxCell><mxCell id="hmm-overview_v_67" value="<b>Object Storage</b><br>HR 규정 PDF 원본<br>파일명·생성일 메타데이터" style="rounded=1;arcSize=8;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#D4CFCA;strokeWidth=1;dashed=0;fontFamily=Oracle Sans;fontColor=#312D2A;fontSize=12;align=center;verticalAlign=middle;spacing=6;" vertex="1" parent="1"><mxGeometry x="445" y="804" width="180" height="82" as="geometry"/></mxCell><mxCell id="hmm-overview_oci_68" value="" style="group" vertex="1" connectable="0" parent="1"><mxGeometry x="805" y="225" width="103.99999999999994" height="90" as="geometry"/></mxCell><mxCell id="hmm-overview_ociPart_69" style="vsdxID=21;fillColor=none;gradientColor=none;strokeColor=none;spacingTop=-3;spacingBottom=-3;spacingLeft=-3;spacingRight=-3;points=[];labelBackgroundColor=none;rounded=0;html=1;whiteSpace=wrap;" vertex="1" parent="hmm-overview_oci_68"><mxGeometry x="10" width="84" height="73" as="geometry"/></mxCell><mxCell id="hmm-overview_ociPart_70" style="vsdxID=22;fillColor=#FFFFFF;gradientColor=none;shape=stencil(lVbbVhsxDPyafdWxJF+fKfwHB0Kzp2nCCaGFv6/T9VXZC7xtHMkjj8ZjDXz3tn983Q2k3i7n06/d3/H5sh/4x0A0Hve783iJXwPfD3z3cjrvfp5P78fn6ffr4zXy+vX79Oe6w8eUpy1YvGaR+pxWUKn/vx+m8Kf38xSPKUGB0ikB+wz1QdMCM9iQYtJSCEAuRfG0RAEUpai0FDwos4ZOBN736MEC6x4fAzgBHyuyPXwTlNG7gx/GY8NTEz0tGA2Wl+PVt4KB+h4YBcGv8aDAm54GjRBMT4MB7llgDWgECwQUehp4tf/I4FwP3TSydECDF+DkwMgWGCDTg8eikx6X8GO7scfHRlsZTAEK/Fh4EAI0lfdcEYK2qwJ0wCzgFegg4EORW1EgOHF6jtQLAeaYBfCYYQV4s229fLSNXcj4MnbUDm5ia2DaxNZg+JvgtlrFMngUmMQuuszYHlgozsHqTWvuVYZmQCG36KJenLsRRQIyBCgavmI40TIo++xMsCzTEihhjKpskMu0kRBhjNEjhC07yleg3goGvXopY44VptBctwTlGJR4FbD4YoVnMIKlaBOJuCX4iCXfJFMcsuBrcBLfFUIK/owpbL1KHsHI4/viqxnfu2q12SeiJIRKggLre3wqe80qpc0oCUavJGC1UGFF82+f6l8zXaqe396Uq5kTCs3zCVEYfT06i2eB8PYEWO4Liob7KFvfE24RHIqG18RMeI36uuDanelWyiv4XM+yhN/z1Wakk24ZaJuChXUtC1ZllCoWakHUaznPJtW+NzzUhOr4Gf32zTbRV0W76mTJt+Mq9zGzVG2Ot/GjjsYv4+EwTdbt/3KUjkvTGM73/wA=);strokeColor=none;spacingTop=-3;spacingBottom=-3;spacingLeft=-3;spacingRight=-3;points=[];labelBackgroundColor=none;rounded=0;html=1;whiteSpace=wrap;" vertex="1" parent="hmm-overview_ociPart_69"><mxGeometry width="82" height="71" as="geometry"/></mxCell><mxCell id="hmm-overview_ociPart_71" style="vsdxID=23;fillColor=#FFFFFF;gradientColor=none;shape=stencil(pVnJchs5DP0aXVkkwfWc5T9SiTNWjWOnFCdx/n6g6eb2oCbtyk2iAD4S2wOoE737cf/p+93J6h/Pl6d/736fvzzfn+j9ydrz4/3d5fzMn0704UTvvj5d7v65PP18/LJ9//7pKnn99O3p13WHl03PkzJXJav/bAtWUfp/4eMm/vnnZZM32+9BK+92DQMq+sXuQlEZvwvtS7yyq73QvqKVC7vQvmScimGGzjopjujGKwfw0SidRngTlMmAb1TIgB9UiFN8q4wB/Ciuz1KZAD+pZACflPeAn1f3ZwEP+FWn4ievCPAtg8URPyXlaMS3Wdnc4z+cH7tgSfxz8di2QiV8bspnNs0YXQ7DCxScCjQqVO/eVjDK2FHBlFsdmDBzAI8W9EZlMKBVCeKX495iAEsHNqnjAKqhYeTOLYCq4Sb4MoCDPrZVL14jIJnpaTsVUy0e4njakJWG07IjtR9PG0iEW0bnIr7nAybADwLfs7cy4HdJuYO5oBxYq0kd4DvdComRO+9gxJdF/O6ULbcwWpb356zNUO56y5bcNspCueu9RFKKDvw/BkyvAWxxW17Z+CZxB7trFafh2Liq+EdST1QWSh9BIBpSwY2GIFPY4QCZScZCIpAWvMP04bHuJlF3WSoDvg2LosUkkyEQbbXWLBD44BF4h8E0JCKbhKb4fA2kPWl6toiJAN9KazE1ux1uX4WO3N5VYyP2LeBcXtbg1OrJa8G75D4Gdwr5XmI7hWy/guaeJSyhY20sOmzsdSjXqlGLz6LV4NzygO4FUbmovB3R2VlhBOf6jDzFK/a4MvQKOw4cdiWP+wtisYLYZDzf4BUraKVroAlkbp911XBDf+4aa2wrE4b3oqTOhLl+mb8QXjQ618YNwkerDMzF/Ao5K9tUDnAD0RNLiB0njkfaFKxJvg0yhTVrMHdJiz1LkXl9vei2nXQMElsWqyU4NQo+BpfN7Q1w23j0leBWziYS/MrPWKZlZ2tlpVzwc26DQ1miNnE1MsxYK+vE0/jZ1d6pprQvoXuE70S0W9ko9p1H6w9wLmRmxfZgZXqe98DtJG/PozOQlBMkxa6AauY1XH0sDHooCh77iKmwh3Zv1U3O5a+etH+nkGqVOA6zqlJCXJIiN1gBE0zOI+xUgxmW1Lz/JTkOdfHbiqp4/dB6BL8xDBWZoxATzXfbtPBlllVNphfPgcm97d4hKEKz33h1ofoQUuG7tyGSUnTgdpibO439PHZBQKlrcg3q1ANn6SjvG0cW43CDAAd2OC7Ao4htw0Jt04ybKHD1GjPBzSdDtmuKb0JI2MY4NzV6Da5XPhzJ/XGYBAXdqGBPLujGhbyFFnNholsKs+LYR0NVmKZFCiriUCifsviikJQmihY9cpuJ9WD1OMI6Bt9i5eNM/0h2PJOyFCHne+gwRVbS6HEzz+Hy/Fykl0/N8qWu6fQvdTgAsRTWvP49r43c87e3/lWt0jxO/FxVDHhXC+P2M0Th+WNTLSYO/tD+S/h6fnjY/orof8f/Hnhp+9+CPvwH);strokeColor=none;spacingTop=-3;spacingBottom=-3;spacingLeft=-3;spacingRight=-3;points=[];labelBackgroundColor=none;rounded=0;html=1;whiteSpace=wrap;" vertex="1" parent="hmm-overview_ociPart_69"><mxGeometry width="84" height="73" as="geometry"/></mxCell><mxCell id="hmm-overview_ociPart_72" style="vsdxID=24;fillColor=#2d5967;gradientColor=none;shape=stencil(pVrbctw2DP2afdWIN5B8TtP/yDRO7alrZxyndf6+2llRBHGw4O70zVEgHhDAwU17Cp9+PH75/nDy64/3t9e/Hv59+vr+eAq/nbx/enl8eHt63/46hc+n8Onb69vDn2+vP1++Xv79/ctZ8vzX36//nE/4uLwXl5DOL/n11/6gLPny5PeL/PPTC5N3tFT6fy+ksHjjhfUu4eX8X1x+Fdr88fPtcl/X3ih5f2N/EvcTPvx+RD9zfxJiU2L9CPu1XL/W/iisQlUJ7cIioH3tB+9YLo3YPiN2WmIcsSfAtCQ/Irs6wh5m911XAdvU+NVNYMNuqoc6wtZ+qu9WE+aucOMQllXcuE78HJgb251XAZ0Xl6fQZYllhM6LiRx9P7ZZAq4dmW38EcsCO/mlhBF7tZATM5Pj8j22NzqRgBWYTOIWTHLLWk1MKl2rpsaImV2PzxZcwQLNjH2MXMLG2YN/XVwkNtrYme7dsIOATsBi2sKzCOgkoQlDy5Fp69J907HltbmUhS0ZZV+bkE9lEcipLkkgg72V+Io2n5SojoAcIMYQGT09QY7MQdeQY1xcGJEJUmdkJGnWXm3sLe9UByEu42zLciQKxhbiEj74nmzCIWUnb56XG34cwb0SaGD1zRpw9WRf3XuoGy5Lu7st1gS5vcNSyax4KGRhO6SYUrS2gip8HjxY3WGkh0nAFdkghAwu34q/wN4Kjoy33tW1J3aXNm8Dx7YxM77JPkUFyNAGTl4oLAh2lepiARSp0UQ+w/nRNNFWKMjd9QKrardoRKiRfYO7fTB/AbzsRbPvTBfL+1rSsVdISaFr2t+jzER6vGgC1UO5fjYvJEd/aqmexpkmZEOUlZxdbzLPJiCWdTyxanWT6rT2AnOkJLvzJmiQlDFnC/aDTS19YwrNIot5GSKQQNeeHR0euyMVHPG2MiVrR8nQLwRnEbKCrc4V0tYXR6RNX2mswjJJq0AF9JXGcjNwpaXjx7Z6g1OSzyMyp88xNhkxPmHbyE23juzZeikrYCtk3eDtQgNZcV8I6NKp7w926WQfX6G0zubmAm1AxBaE10d/2HUWE13kWkywtsrhsY29EcabhOwlNn+1NiRbBEpgq+k6h1hV7voqI1EU+tI6zTY0Ay/MDA6PbTsFVi4OY43INcAkaBW3yih5UxDeyaGp+MhQYk32/kQWFRiicbqgCGGWMe/RLQM8TTs5Ub+rM5Vl8m2PJUahLNZnlWDgZpW3eb1YqJwMDRXrqDL4Ht47poE+rYRR5Nrsh0mgH9oGHtwkVdyeeVxx2Lf2yGdmyz77yfRzOCSgSNCcLCK+ym4UYh4mxQrkDwXIz+/TLAexoVgp2MM5rkQC7r8CiyDmNTkrQnQEuXOHvQjukwPuJiLrTA34DLsJwBezKsxJ05Y0ZljJ9ne4wllwiUtdt9cMPuC6UoH3WFTjCqESYKFhtStcvEnPtvZY1KLIdkHZtilLLzAUjDLgp9qTpMODW87DsqDAJ8VSNNk0Rki5jZcHtuKkCptG/ECTzAqTlC7GIaFw5ZUcrH7A6slNNo1Ky+dkylXSfcIOSklkcocB4Ya5JMpvUyKJxaKwAhtNqwVgL+yXKRM1IxiJVlzHYqtHAfwj96FkfutIAZbQx5l97y4TPfkRlnAZSWZIKsPhcWbDwAQvb0u4f532hnw10HtD2dEzM7ZH846LJptnpeciJf9g+qM85yFNvhsqPCRYeys8JMx9Cg9nV1d4SAJb8hB7ceQheHvCwzzZkCs8zDifKjzM9ST9I3m4i9weG1kkKmWplQkIAZ+To7kVng9Xd78wG9+K/cUX+Vlw6lUIWvD7jMLRMmu8FUcUmRCRoQV/0IAULbPcpHC0KI03krSIxKgwdHpxhaIFuwTJ0qKUaaDp6PEJR+tsL6KQtOJWk3fFbYpL2ngieVrlsgMiFLcLVflGnyFJVFk1lfFVXn7GPsu0M+ntj/7DrW9Pz8+X333x/5c/9NoeXX4kFj7/Bw==);strokeColor=none;spacingTop=-3;spacingBottom=-3;spacingLeft=-3;spacingRight=-3;points=[];labelBackgroundColor=none;rounded=0;html=1;whiteSpace=wrap;" vertex="1" parent="hmm-overview_ociPart_69"><mxGeometry x="1" y="1" width="80" height="69" as="geometry"/></mxCell><mxCell id="hmm-overview_v_73" value="" style="rounded=1;arcSize=8;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#C74634;strokeWidth=2;dashed=0;fontFamily=Oracle Sans;fontColor=#312D2A;fontSize=12;align=center;verticalAlign=middle;spacing=6;" vertex="1" parent="1"><mxGeometry x="905" y="220" width="270" height="690" as="geometry"/></mxCell><mxCell id="hmm-overview_v_74" value="<b>Autonomous Database · HMMAIPOC</b>" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;fontFamily=Oracle Sans;fontColor=#312D2A;fontSize=14;fontStyle=1;spacingLeft=0;spacingRight=0;" vertex="1" parent="1"><mxGeometry x="920" y="238" width="238" height="40" as="geometry"/></mxCell><mxCell id="hmm-overview_v_75" value="<b>MCP Tool 계약</b><br>BACKOFFICE_MCP_TOOLS<br><font color="#AE562C">시작 시 USER_AI_AGENT_TOOLS.ENABLED 검증</font>" style="rounded=1;arcSize=8;whiteSpace=wrap;html=1;fillColor=#FFF7F2;strokeColor=#AE562C;strokeWidth=1;dashed=0;fontFamily=Oracle Sans;fontColor=#312D2A;fontSize=12;align=center;verticalAlign=middle;spacing=6;" vertex="1" parent="1"><mxGeometry x="925" y="294" width="230" height="72" as="geometry"/></mxCell><mxCell id="hmm-overview_v_76" value="<b>ADB Agent Tools</b><br>resolve_hr_term<br>search_hr_policy<br><font color="#5B5652">DBMS_CLOUD_AI_AGENT.RUN_TOOL</font>" style="rounded=1;arcSize=8;whiteSpace=wrap;html=1;fillColor=#FCFBFA;strokeColor=#D4CFCA;strokeWidth=1;dashed=0;fontFamily=Oracle Sans;fontColor=#312D2A;fontSize=12;align=center;verticalAlign=middle;spacing=6;" vertex="1" parent="1"><mxGeometry x="925" y="382" width="230" height="78" as="geometry"/></mxCell><mxCell id="hmm-overview_v_77" value="<b>search_hr_data · SELECT_AI</b><br>ADMIN: SHOWSQL 생성/검증<br>CB_ORDS: 읽기 전용 SQL 실행" style="rounded=1;arcSize=8;whiteSpace=wrap;html=1;fillColor=#F4F8FA;strokeColor=#2F6F8F;strokeWidth=1;dashed=0;fontFamily=Oracle Sans;fontColor=#312D2A;fontSize=12;align=center;verticalAlign=middle;spacing=6;" vertex="1" parent="1"><mxGeometry x="925" y="475" width="230" height="80" as="geometry"/></mxCell><mxCell id="hmm-overview_v_78" value="<b>Bearer → Secure Context → VPD</b><br>HMM_ACCESS_CTX<br>HMM_LEAVE_SCOPE_POLICY<br><font color="#C74634">SELF · MANAGED_TEAM · ALL</font>" style="rounded=1;arcSize=8;whiteSpace=wrap;html=1;fillColor=#FFF7F2;strokeColor=#C74634;strokeWidth=1;dashed=0;fontFamily=Oracle Sans;fontColor=#312D2A;fontSize=12;align=center;verticalAlign=middle;spacing=6;" vertex="1" parent="1"><mxGeometry x="925" y="570" width="230" height="92" as="geometry"/></mxCell><mxCell id="hmm-overview_v_79" value="<b>HMM HR 정형 데이터</b><br>직원·팀·휴가·근태<br>역할·그룹·권한·Token hash" style="rounded=1;arcSize=8;whiteSpace=wrap;html=1;fillColor=#FCFBFA;strokeColor=#D4CFCA;strokeWidth=1;dashed=0;fontFamily=Oracle Sans;fontColor=#312D2A;fontSize=12;align=center;verticalAlign=middle;spacing=6;" vertex="1" parent="1"><mxGeometry x="925" y="678" width="230" height="72" as="geometry"/></mxCell><mxCell id="hmm-overview_v_80" value="<b>정책 지식</b><br>Abstract · Tag · Chunk · Embed 4 Vector" style="rounded=1;arcSize=8;whiteSpace=wrap;html=1;fillColor=#FCFBFA;strokeColor=#D4CFCA;strokeWidth=1;dashed=0;fontFamily=Oracle Sans;fontColor=#312D2A;fontSize=12;align=center;verticalAlign=middle;spacing=6;" vertex="1" parent="1"><mxGeometry x="925" y="765" width="230" height="62" as="geometry"/></mxCell><mxCell id="hmm-overview_v_81" value="<b>Federation View</b><br>HMM_RDS_*_V · 선사 배정 View" style="rounded=1;arcSize=8;whiteSpace=wrap;html=1;fillColor=#FCFBFA;strokeColor=#D4CFCA;strokeWidth=1;dashed=0;fontFamily=Oracle Sans;fontColor=#312D2A;fontSize=12;align=center;verticalAlign=middle;spacing=6;" vertex="1" parent="1"><mxGeometry x="925" y="842" width="230" height="52" as="geometry"/></mxCell><mxCell id="hmm-overview_v_82" value="" style="rounded=1;arcSize=7;whiteSpace=wrap;html=1;fillColor=#F5F4F2;strokeColor=#9E9892;strokeWidth=1;dashed=0;fontFamily=Oracle Sans;fontColor=#312D2A;fontSize=12;align=center;verticalAlign=middle;spacing=6;" vertex="1" parent="1"><mxGeometry x="1235" y="165" width="240" height="300" as="geometry"/></mxCell><mxCell id="hmm-overview_v_83" value="<b>OCI Region · us-chicago-1</b>" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;fontFamily=Oracle Sans;fontColor=#312D2A;fontSize=13;fontStyle=0;spacingLeft=0;spacingRight=0;" vertex="1" parent="1"><mxGeometry x="1249" y="173" width="212" height="26" as="geometry"/></mxCell><mxCell id="hmm-overview_oci_84" value="" style="group" vertex="1" connectable="0" parent="1"><mxGeometry x="1260" y="220" width="99.00000000000027" height="90" as="geometry"/></mxCell><mxCell id="hmm-overview_ociPart_85" style="vsdxID=154;fillColor=none;gradientColor=none;strokeColor=none;spacingTop=-3;spacingBottom=-3;spacingLeft=-3;spacingRight=-3;points=[];labelBackgroundColor=none;rounded=0;html=1;whiteSpace=wrap;" vertex="1" parent="hmm-overview_oci_84"><mxGeometry x="10" width="78" height="84" as="geometry"/></mxCell><mxCell id="hmm-overview_ociPart_86" style="vsdxID=155;fillColor=#FFFFFF;gradientColor=none;shape=stencil(lVfbUhsxDP2avGp8vzxT+h9MCSVTSpgQWvj7arvri86y3uFt48g+knx0JB/szevj3cvxYNTr9XL+dfx7ur8+Huy3gzGn58fj5XTlr4O9Pdibh/Pl+PNyfnu+n3+/3E2W09fv85/phPd5n1fkpk1GfcwLWqn/v7/P1j/eLrO5nv92kXRYNmi5Q72bxcZSLocuSzlRTIuVXaw0xbhYLUs5UDIjdJtJJYmeHdkk8W0ipQFfk5HwbGSShE+xOLnAP52eu1QZRcaIXMVELo381ewJZCup6snim/YE3iZNDtzVhrQFd6vVBnqiDNjduQuUpxAAXK1SRV5LaA7cuGHgq3uKgZST2EoCR0vWS2QFsGonYiUxQyz305JNFqgZHHm/F3Aw5POwLih5AGeoKMEDuQjgioKT4EyZLMF9JoEtadnZ18JSQ1Z2bhTvVQmvFXELqJRVpqD3EsVlZYeJWjPDBtIADsywjDMkhmX/wxeIYSIFi8Sofi0rnIKQMV7jJLIx5IbxdgVWwNlZqIRU3SngOpNFCdCUgkRvVlvZ5mu0Er4/uYBF8gaCZxWA4HljAMXkrEWRd0nNXoirjJmxwscVOROt9T2BYnKWIVtcBV46a0kPy6JvW4U2lAHbcYvKEltJYO6oqNTDjupt1YkPydaq0YFAo3XtRBWVG+wX42WBcqBZXRqLQBmCssgrYrCNQWIainqgWYpUgS51NHI1MYKWrvYELVXEjRT09ZMy4i6fYO7YLSMeHwD+kyqaJhHoLX2ptxnHgb7vaghPT9lA+J04lVgVyCarnIWhq9k05dxREAXayWJsPESeVlNEL+rbkXMl6+EckX2dWCp+Jo2Z5/4A+skdzWLmW0P+aCKhBhNfv6O24jBsNL0rpc5YEDBhvi7VSUC3sLYTxqWmh/BrpvB8g60OiRICZRR7JErgIcR+iSjR1H41IEr0FPeJEmORt63AHSlQ0cgeY971atRWJayRQDSrLYFyrYPr9cltrg+gpr2Tti6t5+1tkjJxshwAOQA1rKppmgVvM4/WcFkTI6HVMbsTXJavb6D+GWeH2eoaWuNthE7LfTGAnLaXZuu1MI/B81Wmau+xyx/tnfxwenqan9n9//iu5qX5TW5v/wE=);strokeColor=none;spacingTop=-3;spacingBottom=-3;spacingLeft=-3;spacingRight=-3;points=[];labelBackgroundColor=none;rounded=0;html=1;whiteSpace=wrap;" vertex="1" parent="hmm-overview_ociPart_85"><mxGeometry x="1" y="1" width="74" height="82" as="geometry"/></mxCell><mxCell id="hmm-overview_ociPart_87" style="vsdxID=156;fillColor=#FFFFFF;gradientColor=none;shape=stencil(lVnLchw3DPyavbL4fpwd5z9csRypokguWU6kvw82OyQwjRlSvsk0OU0AjQbAvYRPP+6/fL+7ePvj9eX5r7t/H76+3l/CbxfvH57u714eXumvS/h8CZ++Pb/c/fny/PPp6+3f379cd17/+vv5n+sX3m7nYjO1XE95+35b8SbU/xd+v+3/4+fL7YC7/X/yJubthIMj9s1vm5IJ255tJZiwrbyFbU8xoUP3JePDFLuZlvbYxeQ9dLam1T22oyUAp13e7cFdND5J9MeHJ+Gp0oyte0/FxXWrNbWCqzz7YbtdDezQbck79uh2u5qNTfsL864z/GpyAHynYtWcieAwecsNrAWTIuCv7G/JZA/42Tiwv2WTE+BXkwBebNqWgjPOT+HFmW0pBFMQXlyyc5UuubR+7voGdodmIgJb49oeOFod96qyhHbVfE5UeWKQvbrpba2J4KnsjEeigJtoS8lLP+Vg3NxVmiU5jVybsCSXkTgTmhRrbPlFmhRvMuJrmhS65dr+kk3LU3yRfx2/9gizStASsIUUqQJPD1SCd52pRFCCLr/c8S1ride3DGMpIf7KfjrjG+BnU/weX+7yelfQuxg/tvNskSVl+NBPdYXSqeP2C9dmAjiMPpzhws2PYiuKIJQhIpqdxotqq417eKJwQ3ivqkorKl5U/jPiF1AXxI/kduCr/HKXsqjUTd6y4/uu4R+3n6S0AF+kY7uGjxLS4SlGCaoKfaqL3DtnUJyIq7dDGd4Hv/b3VQeixwP7PgMNdCTgEGDitUt7A10a6isEAfzrvGng37HpDN1qdP5uR+o5JcXAgXfTKHkiF+emB1UKSjQJpNiPlQHuTIPEEpt6IWpmymtxoid6Hq3koJWqAjmOFGLDM2J7U6Zez8MAUYATaCBRGiSYpCiB4TJ+3OyGXaO2p6g8gX3IWc3gm3BWogQJm/zY1EXh3FdzZM2QkFTya4ZQ4xcBWTMkjH79wxQhT3hUHkURMrIuzaZzrc3AiynQphwMEzKW58PEgSwshwnSm+QAXw8TpF12PUyQKLq8MH/PUanUG1LoZeiMKVwBWNp6SX5jRmJO0ViKVVJXqdWkSuUvgooGFaxYuJIP5mKs5IQeYNOhq9Yj/eoJwE4ty0OXumUWzAoc3U4LlfckMQkoEPrKWUBLp8hATqZFCCh1J3tsYg7EU+zhhEgT9ukifrUoTtNFF3HXVFd7UMTRUQe56qY60dixDj45hBkFyqr4BH666Kzzvdacmaz6eB9VfCwgl9HMdWS7h12O+XaPGaJBJ6vJgZjkl/aSNOSpvXFUvI5NpM4AnlUbHp2q2ULaWXLsjl/wGMUHtkSoi8tyzPktDcVbGMT9hVv5iRoVO+9nFS9yGPl0wgtqvTw4CXixaueAFgcjveYFTfSlrOzlTvfU1ThP0/CMvZzI0t7dud4jcu6TkoJS8a4zb9M8AqGWX+Y6XRHfquccodtifAgTYoYx7Y9xuvTnlTNZF0f4Parpec5DrWxRvb9cn8ZALGnqjFOlpnIVIY9bVe8fsuyNXsvu0ZMdj5tDqu20mCZuS7lJgXKasqloeVUvP5TOMf6i5TSVWLRc+LSnYhh6NfAtvs/SpgCOp8C7nSSBhImnokGt+UOVfk6XnOXn9AKBOsgsGvMrhGqZWfLB9jyz5BMgZ9ZIf44NUmWpKxT1AuGSgoWsHKLGDcRbwD0fFFM+wKNxQsPF9Zg6cW34soAQKSuMm0R3fHE6cDztchHwKWKQJ1Q742Q8lidOirO6cOBppauMU+2/NOv8B4ADh/EY/XGmkMp2ZTxlCg3J+IyimEIzcp43vkgValYSvF0dUIWaj1iWllMPaueWCxKct93y9w4uiAmm1AON4F3nj+kNIi+/zIIETKVLemCq/MGR5+bJlCI1ePsqjjWqAghtH+ODhdtSmfBQAJLBd2xdfsIiVFTXEtY+g6MKFUgs+1B0D+Zje+6jxbBLf/Av5d8eHh9vP7TL/8df1mnp9qt8+Pwf);strokeColor=none;spacingTop=-3;spacingBottom=-3;spacingLeft=-3;spacingRight=-3;points=[];labelBackgroundColor=none;rounded=0;html=1;whiteSpace=wrap;" vertex="1" parent="hmm-overview_ociPart_85"><mxGeometry width="78" height="84" as="geometry"/></mxCell><mxCell id="hmm-overview_ociPart_88" style="vsdxID=157;fillColor=#2d5967;gradientColor=none;shape=stencil(lVvZkh01DP2aeXW1l7bdzwH+g4KETBESagiQ/D26TFtSH3npeZvcyFeLtRxJvk/x3V8ff/7z/VPY/vr68uX39/8+//r141P84SmE588f3788f6W/nuKPT/Hdhy8v7397+fL3519f//3nzw/Kx19/fPnn8Q3fXs8dmzv2x6mwfX/9JHsXj/8/+en1wKfnz9MDaXP75cAvf7+8svDnkeh8O+L5jH/95Fs4iXa3lZPo/CgezjeqeFJll+JJdX4Ui8thyr66HK/s4+5yAv6HKxH4k9wF+Cuqxn9zaZ/yV2fOj0JxJQB/JeX5Udhd2Jf6h+hCmfIPbgPz+8NFsH8lZlf2mujkVTdXV+yv7pLpRPve82uji1N5yQHb5bC8G3tQk5e+eN+vApNt0lXevQj3dl3uyDPuexQLnx9tV84pu71eOW9Xtim4N3IlV09wR0qb5o/VxXxlfLgMHvIImnpl7oOrkyvy1R3+ckUk7u5n4vrkdjASeUu9iktxCWZSNGyXcBh/KlNTeU4KHE27A+fYIJCKOyCQtytXCuI8zWHblSWlhgQBrORq97W7eqz0pfRVp+GQXM7AXOVFdv0IzFWGbcHrAsQu0cRL6ro6hjrAkenTNHRFDBXMEeJHFGrSBxeXjpGjy3OnNI6R6QIghsAzMoVUeJp5RvFum+oMnlHYfyeeUbILaaVwIftPC9vuUgXmBxdnzutyie0TquDAnPLrka/chWpkblIU7K2/uemehSpYIRt/lYKa9hyz/aRFMdDsxQdKGB/QefGUtjo/tW+0wOEgcIRZ+eBazlmZ0mO+amhLwlHcFqeBnzgqvguU2CDyU3EeLthvUI/2rcWt1ISTZuRaVDKAt3zryWaX9MaKK/ka7+q2442aa9DgrUlb7Hp3oOE9M2v8HzkLPBszLmQ9AhbNWAPPQnn1EY/uK5GowFOwVGOItUwENbLZVShCfSKAVwAwVc9BxOyrKwXsxVQjgOkdYBf9xSom4LaUjAJvC+aBlfKHyh3N+Cq9Ykyw6VWejkhzN/fLiea5qp4EK1/zXFWXxppTwatTJEQmLQfwV5W08VehLJFTod7qtk4i522NoDlwbTUpE+RrYJHf5jkYV4hXfB2Rl04xgamwdev0AjW0DDLiLyBcuXYGC+9d184QWZRSM2YibB2vFtYn2CXmJYsE9mCwzOhfBKZuAyGYwmmRDyYABXRw4hGUzSrIyzYfyEtHAsp7cGP3TeDSARdMoblDCGn27aPYbqZv4LVHvvnA1edV2b/pcklVNW+dOTBVhKAWSQR02NoXWzLq6kdQNV9juqzasRAEiHm+mwIhoqkC3zPkIM09DhwIQJ1yDPbQPJ3GUM8TylVeyVti38gZWjUpGcpVUi2uBM0MXOgTUARH8qqyLbU9r+WlRIXjEAtCjTuCuEv3vbq7V8MTNvd8OOh3Nut4OOiLGfYQ7I5Yv20XseyudR/h+QxfdLBUwVJFpsKESVRnnPb9V9XmU/fUWuhRU+IZ23xXLgL+EA5O+jwQKFylOOAqYyAeCRww+oEEUbjDawG3uUkJIw4JAtS3T0YJhSL4qt9jJAf5L24MnJt++45okqyL9Su38Ls5CVtiMN8pYBaDkZNHHFbagqujR3UvaSLwOt7efAAKmCo0rPFWZyZJKo2LlSJOgWz35gWhjTMW3dE2n5epVChBjpAi2W4obA4upJPfiahM7Gvz+3q+Z+WNPJkQeVXZGmdAXQ8FA2wTgYO6hvM7GG2MK36CChptv6epJCkFmA50Sj6lmBAnFl475JsPQJ9SzMpi5XO6A/HWmaVPwfn9o7Bhn6KoIlPFiUks7iYbpmmMakQteTfBhKWDu6NFFcR+x50Y+hAshdS8YuCldiQEHqecv5lXNWuyMeFAkjasQkybEDVtGBTpwPOekT+ojtDzmbiUt7Ny67Stxh1B3rX/Xh0+qwyEFfcNfSY1s5Czkhl8KyJJWQlmk0vuUZVTGVgmKLrRtuUCPoQ/NTjAHhCN4W4vV1CTcLclP1WDwDraC04bz4Vx0SFFXHuXh2SjqaK9+rv8cxIM6K1mMuMqyF9ZqfFXu9Sb5s927aGvNbCQuGXSLjJW3zifSV2rWLkGl57n3sSU+ojHM3qcvGOLqqjG42TDHzQsnDO/sysd83m9OuLxjFxJcSCvJoqGaITZDfejrROE+47T77Lx2JC5q7ZCBr47dJCmX4HaG9yWr9aaNkSaA0bFqFYr0Vu8FRtvygoK42K8G/OahnO1DTEt7Q337bTUnW1Ip6WuZoK1xNO1A0/twrwmM0DrbMyzWcou+it94rQ4DsU7yxsT7XZpXjsDNDuQenu030hPkM8SwulAUTx3iOwqlOuQuP3iPQW5OaAFTdX2FBa+LfkfUYYF8gAL13OdBZWGxNFS3X07cljAEANvo5l/NCMN/cpkrD/hkTRNIIeXnZ4gKHz/tpk9MoETD2itqnlO5K+qcwe3169fxsh6EvtFJWS0zndX+14+oMjB5awdRwT7ToFidYfeLCyXwza+pT3T+QixsjTCM/2N90N8r8MVBj5qMHLWn+aqIzzKG1qpT+YZyi47Ac63xrzUNgWYBqyYdxoRGeLNOi0182/cd37bwZ3W6q3irl6tyrsYhGqdBaFPZnjT0Z6o6hQMa7PK4GED59I3FCxVtDd/l3+SV6PeKiZ9IGJxb5Fqsr7tV+vOpOLR88X6dR9a7a7Mao++B3OlZaDAWImHXw1IreqGOiEzmoC+beeY9lFJZmvfL5r8kGFSsx8vSwGVdGq2nn7fZd9ZC+l8KHN1w7+YLs9n3p/eztpqfKeMj1mtt5dStWWsP1Wt+ZrSq2QgRRMfrXv1QkCKNia2zus+Ke23r1+jgdZUyQuQYGUc+t5SebvyjGq5zY4fUHUFqqIhGqE1GJ4toxRmZ6LdaRP2/9vKdZ6MWuWo0QxL5ZYPlmxK6Ty3sCml80zWXmvGKbVpZMVdGvNsnlMqxxu/lup4tFCNIkrFirffLHU5oPJKyHFEL7XvbQoPHh5MMop+TjHOaMuHGjpXevbVgPxV3g1MhWO7jv5zp9eFQq0gsAUyd6+Jho5nQg4GWssQhUKtXOCUK7YFy30YduQWijMYpqnGQGTJvzMSpkbRrFwVWlJdH7C3MMw8mO2wx98oVHmWrFauoD11hrgD72hfV7Wq04DIO6dZB6KpxiB8yZ/OwOVrxeR5Av6+Tdto3IPU1e/beo8UD265J/sA7SJj9Y3zQcFcRwv84tCs05YlU4+GxtlDzxnG6aPTQi/5VxtendRZbXgRFb6Hr50feuArRcPfvgnU7x9lRIgTFKrbFflb/fPqRYeezUjl3nCCY+1PBRY3Tp0JklCN79/jiHQ3Gy895gpWyvEAbal/Z4CYeaU6GyBqcDUeIBZ8U3JjgEhwcIcM0xkgdh65d/Rf1M8bAQsFVL1lPz9Z7PT0CXn0VTCDR45mtUHCXzDsKllEpBpVEIURvP3m8RxBSxkt1c2VZm+jWwTuByukSIQ9gdWeiUbGlw24N18b7AUFK2G0VAPVoXgsPYX+kJ+uf3j+9On1l+/6//Gn7vTR68/k44//AQ==);strokeColor=none;spacingTop=-3;spacingBottom=-3;spacingLeft=-3;spacingRight=-3;points=[];labelBackgroundColor=none;rounded=0;html=1;whiteSpace=wrap;" vertex="1" parent="hmm-overview_ociPart_85"><mxGeometry x="2" y="1" width="73" height="81" as="geometry"/></mxCell><mxCell id="hmm-overview_v_89" value="<b>OCI Generative AI</b><br><br>GPT-5.4 Mini<br><font color="#5B5652">질문 계획 · SQL 생성 · 답변</font><br><br>Cohere Embed 4<br><font color="#5B5652">용어·문서 Vector</font>" style="rounded=1;arcSize=8;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#AE562C;strokeWidth=1;dashed=0;fontFamily=Oracle Sans;fontColor=#312D2A;fontSize=12;align=center;verticalAlign=middle;spacing=6;" vertex="1" parent="1"><mxGeometry x="1260" y="320" width="190" height="110" as="geometry"/></mxCell><mxCell id="hmm-overview_v_90" value="" style="rounded=1;arcSize=7;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#6B7280;strokeWidth=1;dashed=1;fontFamily=Oracle Sans;fontColor=#312D2A;fontSize=12;align=center;verticalAlign=middle;spacing=6;" vertex="1" parent="1"><mxGeometry x="1535" y="120" width="235" height="900" as="geometry"/></mxCell><mxCell id="hmm-overview_v_91" value="<b>3rd Party Cloud · AWS</b>" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;fontFamily=Oracle Sans;fontColor=#6B7280;fontSize=13;fontStyle=0;spacingLeft=0;spacingRight=0;" vertex="1" parent="1"><mxGeometry x="1549" y="128" width="207" height="26" as="geometry"/></mxCell><mxCell id="hmm-overview_v_92" value="<b>AWS RDS PostgreSQL</b><br><br>hmm_demo.carriers<br>carrier_monthly_performance<br><br><font color="#5B5652">가상 선사 8개<br>월간 실적 144행</font>" style="shape=cylinder3;boundedLbl=1;backgroundOutline=1;size=15;whiteSpace=wrap;html=1;fillColor=#F9FAFB;strokeColor=#6B7280;fontFamily=Oracle Sans;fontColor=#312D2A;fontSize=12;spacingTop=12;" vertex="1" parent="1"><mxGeometry x="1570" y="530" width="165" height="180" as="geometry"/></mxCell><mxCell id="hmm-overview_e_93" value="HTTPS · 질문/관리" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#2F6F8F;strokeWidth=2;dashed=0;endArrow=block;endFill=1;fontFamily=Oracle Sans;fontColor=#312D2A;fontSize=11;labelBackgroundColor=#FFFFFF;exitX=1;exitY=0.35;entryX=0;entryY=0.5;" edge="1" parent="1" source="hmm-overview_v_11" target="hmm-overview_v_38"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell><mxCell id="hmm-overview_e_94" value="MCP initialize · tools/list · tools/call" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#C74634;strokeWidth=2;dashed=0;endArrow=block;endFill=1;fontFamily=Oracle Sans;fontColor=#312D2A;fontSize=11;labelBackgroundColor=#FFFFFF;exitX=1;exitY=0.5;entryX=0;entryY=0.5;" edge="1" parent="1" source="hmm-overview_v_12" target="hmm-overview_v_40"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell><mxCell id="hmm-overview_e_95" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#2F6F8F;strokeWidth=2;dashed=0;endArrow=block;endFill=1;fontFamily=Oracle Sans;fontColor=#312D2A;fontSize=11;labelBackgroundColor=#FFFFFF;exitX=0.5;exitY=1;entryX=0.5;entryY=0;" edge="1" parent="1" source="hmm-overview_v_38" target="hmm-overview_v_39"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell><mxCell id="hmm-overview_e_96" value="MCP" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#C74634;strokeWidth=2;dashed=0;endArrow=block;endFill=1;fontFamily=Oracle Sans;fontColor=#312D2A;fontSize=11;labelBackgroundColor=#FFFFFF;exitX=1;exitY=0.5;entryX=1;entryY=0.5;" edge="1" parent="1" source="hmm-overview_v_39" target="hmm-overview_v_40"><mxGeometry relative="1" as="geometry"><Array as="points"><mxPoint x="780" y="399"/><mxPoint x="780" y="459"/></Array></mxGeometry></mxCell><mxCell id="hmm-overview_e_97" value="JDBC · Tool 호출" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#C74634;strokeWidth=2;dashed=0;endArrow=block;endFill=1;fontFamily=Oracle Sans;fontColor=#312D2A;fontSize=11;labelBackgroundColor=#FFFFFF;exitX=1;exitY=0.5;entryX=0;entryY=0.5;" edge="1" parent="1" source="hmm-overview_v_40" target="hmm-overview_v_75"><mxGeometry relative="1" as="geometry"><Array as="points"><mxPoint x="805" y="459"/><mxPoint x="885" y="459"/><mxPoint x="885" y="330"/></Array></mxGeometry></mxCell><mxCell id="hmm-overview_e_98" value="ENABLED" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#2F6B4F;strokeWidth=2;dashed=0;endArrow=block;endFill=1;fontFamily=Oracle Sans;fontColor=#312D2A;fontSize=11;labelBackgroundColor=#FFFFFF;exitX=0.5;exitY=1;entryX=0.5;entryY=0;" edge="1" parent="1" source="hmm-overview_v_75" target="hmm-overview_v_76"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell><mxCell id="hmm-overview_e_99" value="Java Tool" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#2F6F8F;strokeWidth=2;dashed=0;endArrow=block;endFill=1;fontFamily=Oracle Sans;fontColor=#312D2A;fontSize=11;labelBackgroundColor=#FFFFFF;exitX=1;exitY=0.5;entryX=1;entryY=0.5;" edge="1" parent="1" source="hmm-overview_v_75" target="hmm-overview_v_77"><mxGeometry relative="1" as="geometry"><Array as="points"><mxPoint x="1170" y="330"/><mxPoint x="1170" y="515"/></Array></mxGeometry></mxCell><mxCell id="hmm-overview_e_100" value="동일 CB_ORDS session" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#C74634;strokeWidth=2;dashed=0;endArrow=block;endFill=1;fontFamily=Oracle Sans;fontColor=#312D2A;fontSize=11;labelBackgroundColor=#FFFFFF;exitX=0.5;exitY=1;entryX=0.5;entryY=0;" edge="1" parent="1" source="hmm-overview_v_77" target="hmm-overview_v_78"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell><mxCell id="hmm-overview_e_101" value="predicate 자동 적용" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#C74634;strokeWidth=2;dashed=0;endArrow=block;endFill=1;fontFamily=Oracle Sans;fontColor=#312D2A;fontSize=11;labelBackgroundColor=#FFFFFF;exitX=0.5;exitY=1;entryX=0.5;entryY=0;" edge="1" parent="1" source="hmm-overview_v_78" target="hmm-overview_v_79"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell><mxCell id="hmm-overview_e_102" value="PDF ingest · 청킹" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#AE562C;strokeWidth=2;dashed=1;endArrow=block;endFill=1;fontFamily=Oracle Sans;fontColor=#312D2A;fontSize=11;labelBackgroundColor=#FFFFFF;exitX=1;exitY=0.5;entryX=0;entryY=0.5;" edge="1" parent="1" source="hmm-overview_v_67" target="hmm-overview_v_80"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell><mxCell id="hmm-overview_e_103" value="runtime secret" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#9E9892;strokeWidth=2;dashed=1;endArrow=block;endFill=1;fontFamily=Oracle Sans;fontColor=#312D2A;fontSize=11;labelBackgroundColor=#FFFFFF;exitX=0.5;exitY=0;entryX=0;entryY=1;" edge="1" parent="1" source="hmm-overview_v_54" target="hmm-overview_v_36"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell><mxCell id="hmm-overview_e_104" value="모델 호출" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#AE562C;strokeWidth=2;dashed=1;endArrow=block;endFill=1;fontFamily=Oracle Sans;fontColor=#312D2A;fontSize=11;labelBackgroundColor=#FFFFFF;exitX=1;exitY=0.28;entryX=0;entryY=0.55;" edge="1" parent="1" source="hmm-overview_v_73" target="hmm-overview_v_89"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell><mxCell id="hmm-overview_e_105" value="HMM_RDS_PG_LINK · TLS 5432" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#6B7280;strokeWidth=2;dashed=0;endArrow=block;endFill=1;fontFamily=Oracle Sans;fontColor=#312D2A;fontSize=11;labelBackgroundColor=#FFFFFF;exitX=1;exitY=0.5;entryX=0;entryY=0.5;" edge="1" parent="1" source="hmm-overview_v_81" target="hmm-overview_v_92"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell><mxCell id="hmm-overview_v_106" value="<b>읽기 책임 분리</b><br>RDS: 선사 실적 원장<br>ADB: 직원·배정·권한·VPD<br>MCP: 허용된 View만 자연어 조회" style="rounded=1;arcSize=8;whiteSpace=wrap;html=1;fillColor=#F9FAFB;strokeColor=#6B7280;strokeWidth=1;dashed=0;fontFamily=Oracle Sans;fontColor=#312D2A;fontSize=12;align=center;verticalAlign=middle;spacing=6;" vertex="1" parent="1"><mxGeometry x="1545" y="830" width="215" height="105" as="geometry"/></mxCell><mxCell id="hmm-overview_v_107" value="※ hmm-mcp.cloud-handson.com은 공용 호환 게이트웨이입니다. 사용자별 VPD MCP의 기준 주소는 hmm-backoffice.cloud-handson.com/mcp입니다." style="rounded=0;whiteSpace=wrap;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;fontFamily=Oracle Sans;fontColor=#5B5652;fontSize=11;fontStyle=0;spacingLeft=0;spacingRight=0;" vertex="1" parent="1"><mxGeometry x="280" y="985" width="1195" height="24" as="geometry"/></mxCell></root></mxGraphModel></diagram>
|
|
<diagram id="hmm-security-flow" name="02 · MCP 요청과 VPD"><mxGraphModel dx="1600" dy="1000" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1800" pageHeight="1050" background="#FFFFFF" math="0" shadow="0"><root><mxCell id="0"/><mxCell id="1" parent="0"/><mxCell id="hmm-security-flow_background" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=none;locked=1;" vertex="1" connectable="0" parent="1"><mxGeometry x="0" y="0" width="1800" height="1050" as="geometry"/></mxCell><mxCell id="hmm-security-flow_v_1" value="MCP Tool Discovery와 사용자별 VPD 실행 흐름" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;fontFamily=Oracle Sans;fontColor=#312D2A;fontSize=25;fontStyle=1;spacingLeft=0;spacingRight=0;" vertex="1" parent="1"><mxGeometry x="36" y="22" width="1728" height="38" as="geometry"/></mxCell><mxCell id="hmm-security-flow_v_2" value="광고 계약 검증은 시작 시 1회 · 사용자 인증과 Context 설정·SQL 실행·정리는 요청마다 같은 세션에서 수행" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;fontFamily=Oracle Sans;fontColor=#5B5652;fontSize=12;fontStyle=0;spacingLeft=0;spacingRight=0;" vertex="1" parent="1"><mxGeometry x="38" y="60" width="1724" height="28" as="geometry"/></mxCell><mxCell id="hmm-security-flow_v_3" value="" style="rounded=1;arcSize=8;whiteSpace=wrap;html=1;fillColor=#C74634;strokeColor=#C74634;strokeWidth=1;dashed=0;fontFamily=Oracle Sans;fontColor=#312D2A;fontSize=12;align=center;verticalAlign=middle;spacing=6;" vertex="1" parent="1"><mxGeometry x="36" y="92" width="1728" height="3" as="geometry"/></mxCell><mxCell id="hmm-security-flow_v_4" value="" style="rounded=1;arcSize=7;whiteSpace=wrap;html=1;fillColor=#FFF7F2;strokeColor=#AE562C;strokeWidth=1;dashed=0;fontFamily=Oracle Sans;fontColor=#312D2A;fontSize=12;align=center;verticalAlign=middle;spacing=6;" vertex="1" parent="1"><mxGeometry x="35" y="120" width="1730" height="185" as="geometry"/></mxCell><mxCell id="hmm-security-flow_v_5" value="<b>서버 시작 · Tool 광고 전 Fail-Closed Gate</b>" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;fontFamily=Oracle Sans;fontColor=#AE562C;fontSize=13;fontStyle=0;spacingLeft=0;spacingRight=0;" vertex="1" parent="1"><mxGeometry x="49" y="128" width="1702" height="26" as="geometry"/></mxCell><mxCell id="hmm-security-flow_v_6" value="<b>BACKOFFICE_MCP_TOOLS</b><br>공개 이름 · 설명 · 입력 schema<br>AGENT_TOOL targetName" style="rounded=1;arcSize=8;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#AE562C;strokeWidth=1;dashed=0;fontFamily=Oracle Sans;fontColor=#312D2A;fontSize=11;align=left;verticalAlign=middle;spacing=10;spacingLeft=22;spacingRight=8;" vertex="1" parent="1"><mxGeometry x="95" y="185" width="300" height="78" as="geometry"/></mxCell><mxCell id="hmm-security-flow_v_7" value="<b><font color="#FFFFFF">A</font></b>" style="ellipse=1;shape=ellipse;whiteSpace=wrap;html=1;fillColor=#AE562C;strokeColor=#AE562C;fontFamily=Oracle Sans;fontSize=13;align=center;verticalAlign=middle;" vertex="1" parent="1"><mxGeometry x="83" y="195" width="30" height="30" as="geometry"/></mxCell><mxCell id="hmm-security-flow_v_8" value="<b>McpAgentToolStartupValidator</b><br>AGENT_TOOL targetName 중복 제거<br>SELECT_AI는 DB Tool 검증에서 제외" style="rounded=1;arcSize=8;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#AE562C;strokeWidth=1;dashed=0;fontFamily=Oracle Sans;fontColor=#312D2A;fontSize=11;align=left;verticalAlign=middle;spacing=10;spacingLeft=22;spacingRight=8;" vertex="1" parent="1"><mxGeometry x="510" y="185" width="330" height="78" as="geometry"/></mxCell><mxCell id="hmm-security-flow_v_9" value="<b><font color="#FFFFFF">B</font></b>" style="ellipse=1;shape=ellipse;whiteSpace=wrap;html=1;fillColor=#AE562C;strokeColor=#AE562C;fontFamily=Oracle Sans;fontSize=13;align=center;verticalAlign=middle;" vertex="1" parent="1"><mxGeometry x="498" y="195" width="30" height="30" as="geometry"/></mxCell><mxCell id="hmm-security-flow_v_10" value="<b>USER_AI_AGENT_TOOLS</b><br>Tool 존재 + STATUS=ENABLED 확인" style="rounded=1;arcSize=8;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#AE562C;strokeWidth=1;dashed=0;fontFamily=Oracle Sans;fontColor=#312D2A;fontSize=11;align=left;verticalAlign=middle;spacing=10;spacingLeft=22;spacingRight=8;" vertex="1" parent="1"><mxGeometry x="955" y="185" width="330" height="78" as="geometry"/></mxCell><mxCell id="hmm-security-flow_v_11" value="<b><font color="#FFFFFF">C</font></b>" style="ellipse=1;shape=ellipse;whiteSpace=wrap;html=1;fillColor=#AE562C;strokeColor=#AE562C;fontFamily=Oracle Sans;fontSize=13;align=center;verticalAlign=middle;" vertex="1" parent="1"><mxGeometry x="943" y="195" width="30" height="30" as="geometry"/></mxCell><mxCell id="hmm-security-flow_v_12" value="<b>Endpoint Ready</b><br>모두 정상일 때만 tools/list 광고<br><font color="#C74634">누락·비활성·조회 오류는 기동 실패</font>" style="rounded=1;arcSize=8;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#2F6B4F;strokeWidth=1;dashed=0;fontFamily=Oracle Sans;fontColor=#312D2A;fontSize=11;align=left;verticalAlign=middle;spacing=10;spacingLeft=22;spacingRight=8;" vertex="1" parent="1"><mxGeometry x="1400" y="185" width="285" height="78" as="geometry"/></mxCell><mxCell id="hmm-security-flow_v_13" value="<b><font color="#FFFFFF">D</font></b>" style="ellipse=1;shape=ellipse;whiteSpace=wrap;html=1;fillColor=#2F6B4F;strokeColor=#2F6B4F;fontFamily=Oracle Sans;fontSize=13;align=center;verticalAlign=middle;" vertex="1" parent="1"><mxGeometry x="1388" y="195" width="30" height="30" as="geometry"/></mxCell><mxCell id="hmm-security-flow_e_14" value="구성 로드" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#AE562C;strokeWidth=2;dashed=0;endArrow=block;endFill=1;fontFamily=Oracle Sans;fontColor=#312D2A;fontSize=11;labelBackgroundColor=#FFFFFF;" edge="1" parent="1" source="hmm-security-flow_v_6" target="hmm-security-flow_v_8"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell><mxCell id="hmm-security-flow_e_15" value="시작 시 1회 조회" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#AE562C;strokeWidth=2;dashed=0;endArrow=block;endFill=1;fontFamily=Oracle Sans;fontColor=#312D2A;fontSize=11;labelBackgroundColor=#FFFFFF;" edge="1" parent="1" source="hmm-security-flow_v_8" target="hmm-security-flow_v_10"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell><mxCell id="hmm-security-flow_e_16" value="모두 ENABLED" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#2F6B4F;strokeWidth=2;dashed=0;endArrow=block;endFill=1;fontFamily=Oracle Sans;fontColor=#312D2A;fontSize=11;labelBackgroundColor=#FFFFFF;" edge="1" parent="1" source="hmm-security-flow_v_10" target="hmm-security-flow_v_12"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell><mxCell id="hmm-security-flow_v_17" value="" style="rounded=1;arcSize=7;whiteSpace=wrap;html=1;fillColor=#F9FAFB;strokeColor=#9E9892;strokeWidth=1;dashed=0;fontFamily=Oracle Sans;fontColor=#312D2A;fontSize=12;align=center;verticalAlign=middle;spacing=6;" vertex="1" parent="1"><mxGeometry x="35" y="330" width="225" height="665" as="geometry"/></mxCell><mxCell id="hmm-security-flow_v_18" value="<b>MCP Client</b>" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;fontFamily=Oracle Sans;fontColor=#312D2A;fontSize=13;fontStyle=0;spacingLeft=0;spacingRight=0;" vertex="1" parent="1"><mxGeometry x="49" y="338" width="197" height="26" as="geometry"/></mxCell><mxCell id="hmm-security-flow_oci_19" value="" style="group" vertex="1" connectable="0" parent="1"><mxGeometry x="95" y="385" width="76.00000000000007" height="90" as="geometry"/></mxCell><mxCell id="hmm-security-flow_ociPart_20" style="vsdxID=27;fillColor=none;gradientColor=none;strokeColor=none;spacingTop=-3;spacingBottom=-3;spacingLeft=-3;spacingRight=-3;points=[];labelBackgroundColor=none;rounded=0;html=1;whiteSpace=wrap;" vertex="1" parent="hmm-security-flow_oci_19"><mxGeometry width="76" height="84" as="geometry"/></mxCell><mxCell id="hmm-security-flow_ociPart_21" style="vsdxID=28;fillColor=#FFFFFF;gradientColor=none;shape=stencil(pVXbchshDP2afdUgCRA8p+l/ZBqn3qlrZxynTf++UFhYlDEvfQOttEeXo8PCD2/Hp9fDQubtdr38OPxen2/Hhb8sROv5eLiut3Ra+HHhh5fL9fD9enk/P5f761P2zKefl1/5Dx8lzoDhHETmTzGgMf/uX4v3aT3PvANB5L3/t/dr+T3WiOperyLAvpg+qJgISKpTtQhCjNWJi8mDrT6bQSBMgdGA4xHcM/gwgqMHsiO6RzBuRE85WlT4Bqyd4keIYcR3AVgUvkDEEd85iDLi5yzDiO8YeMAfB4UO3BZRA1Kf6X5A7rAMAYggflYhCQiNFYYtqVYgG0BWBfYu1GI4FaPqY6ApOHvwarwI6EZwu+MANQbjCG4tOEWuyQak6dhxBcwsTRc7c7BloDYg8VKvAAKpNH0a0KceMc7AfQQZsV3LZsMWAsW/0De04sjn8WRy8P0upQhRskIQwv2AYHVbE19RJgHcydc2guKsHUmrUM0i7xqPDQmmrX8j7I7WW0sEPI0tyYowHUdOOSpFwiaoDT/2OXd+eDWSmExakZIiTvGj9KFscpyUVpFx0/+uxkmySaHvtI1bc2fz3Ud0i7sf8J/vkvJOh/4AvqynU3k/99/1g5lM5bHlx78=);strokeColor=none;spacingTop=-3;spacingBottom=-3;spacingLeft=-3;spacingRight=-3;points=[];labelBackgroundColor=none;rounded=0;html=1;whiteSpace=wrap;" vertex="1" parent="hmm-security-flow_ociPart_20"><mxGeometry x="1" y="1" width="74" height="82" as="geometry"/></mxCell><mxCell id="hmm-security-flow_ociPart_22" style="vsdxID=29;fillColor=#FFFFFF;gradientColor=none;shape=stencil(pVjbVhsxDPyafdWxLV+fKf0PTgklpxQ4Adr076vtrr32uPFC+xaMlLGkkTTOxFcv9zfPh8mol9fT07fDz+Pt6/3EnyZjjo/3h9PxVT5NfD3x1d3T6fD19PT2eLv8/XwzW86fvj/9mL/hvPg5R6xnL6N+LSeGOP45+LzYf3k7LQ569Uiks4fOLtYuJ2eznHhDIa1G6xGTX93OvBo5CmE1Wo/kxIzAfaTgW/BAkVvwoAiwtSpuGTxoir4F15ZUqNEfjo9VqqKhNlNOU+KBvSbvWgdD3o7CC4k8t+E5T0pDfL5LrouUILuBiW0boNek7eULi4fj5sKdQ3dh311YfNYsbhdOuazlwmLloCKS38yQcmFDbkjG6MgBvPCsRY+RNAO6K0cZPSliB+iBVBqhJ7leAPhECnohWWLAF/JxAHyJBMol9UjD7Cchgm3xpSDOAH4g9oCfyETAD138UpBRP9Qe5cSbyw5S3/hf9t2FMCGVh+4jLYMIq1HlbA3dEuRitxYyuQC5qnEGIguFqOmSC0E+TR/jodal+wsPK4bnIWg3hmX4rVnyDJQ7MsDvNaGR1jEAX7X3iiV5txrgq1GxghmpBQ6B8dQSj9DScHdqVRTI1avmpylRWdfet57FOV+x7L6yw3DKt/eVDKeW1jt7xETYO/OecsP4UjYoAc4bEOYSS5pgjcguhfjYko4QHw17kANpaAXZK6nFtooiJNcU4pUmtDmRBRvFSZspETOmXWC79jvi56P2nbiC+6jLX15H+xdjTLNkMACJFSnoOfaUYPFK0aHlmbuJw9noUo2lN6DGbvveXFAhepiAX2m/32WamXG/m9Dkac/BbbpideDh3tFdmaVDR7wQB9UpPZOGDg5mgKR8fKVSyOKw9uqlpSB9CENA+Ai7UMaXh6HsZCkDQ4RZBhgirwAeUmTeNqgMhTWAn8qOrFZSVhXnMnA8jCDZiHa4kmSiphZc1rEHYaSAnL48RzKyKtv5nZqocshzd9DyKW0d8k/mu4Iof1+tDwP0qaiwhHtAoy4QEYsUmIswBBdJ7aAKc3VBloiE73TBNl7KayZ1u2CXgvIAQ10yk9sBfv9UlT7JR+VxYjsqdB0Izz9LNn/vu3pcEqFg7IyniCCA8pnnlL/sEGxpwG0SuoG9RAh01sMQ5hdkHDt0L0ihMGr28jI/bzLZoRbrpKP3BMqVd3SzsLHTSfm6BVtoZuDBoDrRXiuDPDsup+lDumDHWD5sv+3cHR8elp+G6v/jb0FytPyOxNe/AQ==);strokeColor=none;spacingTop=-3;spacingBottom=-3;spacingLeft=-3;spacingRight=-3;points=[];labelBackgroundColor=none;rounded=0;html=1;whiteSpace=wrap;" vertex="1" parent="hmm-security-flow_ociPart_20"><mxGeometry width="76" height="84" as="geometry"/></mxCell><mxCell id="hmm-security-flow_ociPart_23" style="vsdxID=30;fillColor=#2c5967;gradientColor=none;shape=stencil(nVrbklQ3DPyaeXX5fnkm5D+osIStEJZaIIG/j5wZS3Zrjs8ub8tgj2S51WrJcwlvvn589+Xh4u3Xb89Pfz38+/j+28dL+O3i/ePnjw/Pj9/or0t4ewlvPjw9P/z5/PT98/vrv7+86yv7X38//dO/4cd1X4mm1b7L25/XT7Iz5f8Pfr+u//T4eV1f9uv/+P58NeBuO6qJ4bbj9lFqJuTrRz/89aPqZNXto5RNcLdV4bYqmFRuq24fJW/Kxt8ajY2Lv7TB+s0Bg3Ft2eC88Wl7Qm9cWU9Yh1N8wNxMg/OZ3Nbj5WxKWI8XTKw725kiklfbzniwTfHOeTVujU2r8UT+xNW4PQ5TjCamJUx252a0JsbVTfIAMBCynMXzWSBGgSLiMEbJ7YwHazzEKHGgh3G6shss2Hg1FfDni7FgvKNjgz+XjS2XV+CPNqSEG8o2w1w1ucL5ptwZB3SMt5+CC87DccJkAkBwTwi0AfLljBDIkeZWd2lLhvvoh0qru5nyLK7uumRSA3eD8Vs40I0lIKQcBWc3Y80UNJ8MYLEYSJhcTNtSReK0G6aLhSSQcHqmlwi5ShH0q+VC15B3lq2Ec1gupkIGWkgAKzQ2KEElAHHyBh7T+pvrdscqbO+XVqMrioVkw+Bpx3BnsjRQh6iAjRLJRG0C3Hwh6m4728UEsE2lNEOOEuPoy+fMGJdvhymxboeLx5jn5B+Yp+T3kHNxwFdAL7TI9gn2gD7C/R59TqrfMJ8NMjDlZQTriQMyEZTDjE+QdStMqKwEYCjcoCpGNhXKFQUCGCKQsCmrv8XJlQaufCywxm2xijnCKS0ArCTmrGE+EuKgYBEI0XySMjtBNW8JMgUDh5+/WNRZRvOTk8N8My688vS9GODxnbLfab5eEKsoqIISVCdg6Xp4HOuFYCEeTZDaU6kQKoVo9QSAzKpedNqUWVteqZQP/oJQRWlVC1d6tq+Lf21D6cptuUHgB/abMw5vi44BCrR5Vc07/UE1b0GEjIC1+q39aJBXsZIn44FXOu2j7WnViyrbvOEFxWr85y8tPitsst4x3LABaXTfeAWTAhhhIOzgFZxJi5ZZKE8QiABBuqgG11BEHbB9rwUdiaq9fSuwnRIQa2tRdE2yD/iK2kXsLjrRbBHYwQTtRVeqaTVPKsJCbZ9V74h1lFC+SH7/Qv9+sn6dD1Dv1NbiScp4zUiotnqDN/ti6we+OH60pUD8qO9DBqNVDeATohoQ9FX7amtV+04qfOQ2l9uk2qfeUQGD93IL2ogambjFT4rGQj9C3xzg/FRJbdDnh/TtjQwcPxzfFWVJhLsKO0/7fEJdVANd0tNV+VnQzyZtcbgPE3C1YR/dcbh1tqnC1JEGzlYRCJ4hBKWBToRJKaOK41CB4CW5WNB6GpMLtk5gVFMhIn+oTNGPZDjWUA2uKsokbMJUhZJAMA9gPxVBybCfR9t0hOnErTrbL3ouRaoAzBfubTYpRavqllJoAY6b5m/2HJGmzHtoeCnUKenTbzO6Mwrcfo9rXc0TICwUpChU8EOQFgB8p7ffWRCPb1laTYzqIPwzRod9rzRh4BHVkX3pqn+KSwC+XigA/FN+BlkE2MO8Py0/r65XuGGtiHNPwcnmdtSlNsQKI8A77KEuMCtJQeRVoQWizhGplkQW9BTRDZQdD7RHazKxF/A89XEBrIek0odWcZcqiNqFq49bYADqxuzkuANDBUY9LGR7l7GQbtTDWpjslGkIIfy3n7/20T6Ei5gV9W+vCID3bJWAuNexuuH4C+H1ajyqDSviiZU4vLdP4EVkNUDkn/brVbloQ2ML3hVfkqjOALikqkXW46EK4VPXV1DVOMsHmJ5vkKydxJGtV0VX26uryD0kFt02Ur2xAWagPUqDeeZx9rayIpiGMxmonVad3BQxE7w1uMIpw4U9yCvhsJ+5/2H7TpVWF0eY7098Gx9VHud2z3/EtAGadLSgijcRLXSzs+9CtEyRXsdBhn9YPHuE98W7GIcRnu5OijeOavsqsN+LmzK/44Zpwz343nlZq1Do56yYyjqiwXKfNrVuOPypJ7OvO6FK8mY3KWqQ+FFpXKI4D8b3HPdaTjxfv3IudYAO3q2xCsI7XEakd+W2VRm0BR8FqIIHyGVf5NVEZCK3p6LKUCW7k0QjlegBPF2+4JR9evKXybcDkTPP+Id9FFmnrwJYZ5XD/LIog56pgouu9cC9sxqQl2Scc3WdsWUGgkxDmSPPy9MzCnIv0bF6RnGqTp4B7NWIPN+wYr53emuP34XoLiK9EQTdwFuWyQ30OUUqDzNAUKW7jJn9kXWv2pwuyUGlUx6ohwrsMZ16pMk7LpmWc+Ti2YtShVTv1RdEDiUWFhVq0R2+6ViZRAVcdfykhEV1/mbR40qiT16ybAHjeHhQo/j2t/WzSvI4uKzhUdG/DKhqjp5EMsxw2uIpRfVLqQ5UPTTxEKQiQNxMTfqq5fD0h/ws7MPjp0/XX5XN/48/I6OPrj9BC2//Aw==);strokeColor=none;spacingTop=-3;spacingBottom=-3;spacingLeft=-3;spacingRight=-3;points=[];labelBackgroundColor=none;rounded=0;html=1;whiteSpace=wrap;" vertex="1" parent="hmm-security-flow_ociPart_20"><mxGeometry x="2" y="2" width="72" height="80" as="geometry"/></mxCell><mxCell id="hmm-security-flow_v_24" value="<b>Agent 요청</b><br>initialize<br>tools/list<br>tools/call" style="rounded=1;arcSize=8;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#2F6F8F;strokeWidth=1;dashed=0;fontFamily=Oracle Sans;fontColor=#312D2A;fontSize=11;align=left;verticalAlign=middle;spacing=10;spacingLeft=22;spacingRight=8;" vertex="1" parent="1"><mxGeometry x="70" y="500" width="160" height="100" as="geometry"/></mxCell><mxCell id="hmm-security-flow_v_25" value="<b><font color="#FFFFFF">1</font></b>" style="ellipse=1;shape=ellipse;whiteSpace=wrap;html=1;fillColor=#2F6F8F;strokeColor=#2F6F8F;fontFamily=Oracle Sans;fontSize=13;align=center;verticalAlign=middle;" vertex="1" parent="1"><mxGeometry x="58" y="510" width="30" height="30" as="geometry"/></mxCell><mxCell id="hmm-security-flow_v_26" value="<b>필터링 결과</b><br>허용 행 + 근거만 반환<br>Token·내부 SQL은 미노출" style="rounded=1;arcSize=8;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#2F6B4F;strokeWidth=1;dashed=0;fontFamily=Oracle Sans;fontColor=#312D2A;fontSize=11;align=left;verticalAlign=middle;spacing=10;spacingLeft=22;spacingRight=8;" vertex="1" parent="1"><mxGeometry x="70" y="800" width="160" height="115" as="geometry"/></mxCell><mxCell id="hmm-security-flow_v_27" value="<b><font color="#FFFFFF">10</font></b>" style="ellipse=1;shape=ellipse;whiteSpace=wrap;html=1;fillColor=#2F6B4F;strokeColor=#2F6B4F;fontFamily=Oracle Sans;fontSize=13;align=center;verticalAlign=middle;" vertex="1" parent="1"><mxGeometry x="58" y="810" width="30" height="30" as="geometry"/></mxCell><mxCell id="hmm-security-flow_v_28" value="" style="rounded=1;arcSize=7;whiteSpace=wrap;html=1;fillColor=#FCFBFA;strokeColor=#9E9892;strokeWidth=1;dashed=0;fontFamily=Oracle Sans;fontColor=#312D2A;fontSize=12;align=center;verticalAlign=middle;spacing=6;" vertex="1" parent="1"><mxGeometry x="285" y="330" width="650" height="665" as="geometry"/></mxCell><mxCell id="hmm-security-flow_v_29" value="<b>VPD Backoffice · Spring Boot</b>" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;fontFamily=Oracle Sans;fontColor=#312D2A;fontSize=13;fontStyle=0;spacingLeft=0;spacingRight=0;" vertex="1" parent="1"><mxGeometry x="299" y="338" width="622" height="26" as="geometry"/></mxCell><mxCell id="hmm-security-flow_v_30" value="<b>Bearer 인증</b><br>Token SHA-256 hash<br>만료·회수·재직 상태 검증<br><font color="#C74634">실패: HTTP 401</font>" style="rounded=1;arcSize=8;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#C74634;strokeWidth=1;dashed=0;fontFamily=Oracle Sans;fontColor=#312D2A;fontSize=11;align=left;verticalAlign=middle;spacing=10;spacingLeft=22;spacingRight=8;" vertex="1" parent="1"><mxGeometry x="330" y="400" width="250" height="110" as="geometry"/></mxCell><mxCell id="hmm-security-flow_v_31" value="<b><font color="#FFFFFF">2</font></b>" style="ellipse=1;shape=ellipse;whiteSpace=wrap;html=1;fillColor=#C74634;strokeColor=#C74634;fontFamily=Oracle Sans;fontSize=13;align=center;verticalAlign=middle;" vertex="1" parent="1"><mxGeometry x="318" y="410" width="30" height="30" as="geometry"/></mxCell><mxCell id="hmm-security-flow_v_32" value="<b>MCP Tool Router</b><br>catalog에서 이름·인자 검증<br>AGENT_TOOL / SELECT_AI 분기" style="rounded=1;arcSize=8;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#C74634;strokeWidth=1;dashed=0;fontFamily=Oracle Sans;fontColor=#312D2A;fontSize=11;align=left;verticalAlign=middle;spacing=10;spacingLeft=22;spacingRight=8;" vertex="1" parent="1"><mxGeometry x="650" y="400" width="235" height="110" as="geometry"/></mxCell><mxCell id="hmm-security-flow_v_33" value="<b><font color="#FFFFFF">3</font></b>" style="ellipse=1;shape=ellipse;whiteSpace=wrap;html=1;fillColor=#C74634;strokeColor=#C74634;fontFamily=Oracle Sans;fontSize=13;align=center;verticalAlign=middle;" vertex="1" parent="1"><mxGeometry x="638" y="410" width="30" height="30" as="geometry"/></mxCell><mxCell id="hmm-security-flow_v_34" value="<b>ADB AGENT_TOOL</b><br>resolve_hr_term · search_hr_policy<br>동일 기본 JDBC session<br>SET_USER_BY_BEARER<br>→ RUN_TOOL → CLEAR_USER" style="rounded=1;arcSize=8;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#AE562C;strokeWidth=1;dashed=0;fontFamily=Oracle Sans;fontColor=#312D2A;fontSize=10;align=left;verticalAlign=middle;spacing=10;spacingLeft=22;spacingRight=8;" vertex="1" parent="1"><mxGeometry x="350" y="590" width="250" height="130" as="geometry"/></mxCell><mxCell id="hmm-security-flow_v_35" value="<b><font color="#FFFFFF">4</font></b>" style="ellipse=1;shape=ellipse;whiteSpace=wrap;html=1;fillColor=#AE562C;strokeColor=#AE562C;fontFamily=Oracle Sans;fontSize=13;align=center;verticalAlign=middle;" vertex="1" parent="1"><mxGeometry x="338" y="600" width="30" height="30" as="geometry"/></mxCell><mxCell id="hmm-security-flow_v_36" value="<b>search_hr_data</b><br>ADMIN 생성 세션<br>DBMS_CLOUD_AI.GENERATE<br>action=showsql<br>SELECT/WITH + 승인 객체 검증" style="rounded=1;arcSize=8;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#2F6F8F;strokeWidth=1;dashed=0;fontFamily=Oracle Sans;fontColor=#312D2A;fontSize=11;align=left;verticalAlign=middle;spacing=10;spacingLeft=22;spacingRight=8;" vertex="1" parent="1"><mxGeometry x="650" y="590" width="235" height="125" as="geometry"/></mxCell><mxCell id="hmm-security-flow_v_37" value="<b><font color="#FFFFFF">5</font></b>" style="ellipse=1;shape=ellipse;whiteSpace=wrap;html=1;fillColor=#2F6F8F;strokeColor=#2F6F8F;fontFamily=Oracle Sans;fontSize=13;align=center;verticalAlign=middle;" vertex="1" parent="1"><mxGeometry x="638" y="600" width="30" height="30" as="geometry"/></mxCell><mxCell id="hmm-security-flow_e_38" value="Authorization: Bearer …" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#C74634;strokeWidth=2;dashed=0;endArrow=block;endFill=1;fontFamily=Oracle Sans;fontColor=#312D2A;fontSize=11;labelBackgroundColor=#FFFFFF;" edge="1" parent="1" source="hmm-security-flow_v_24" target="hmm-security-flow_v_30"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell><mxCell id="hmm-security-flow_e_39" value="인증된 employee" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#C74634;strokeWidth=2;dashed=0;endArrow=block;endFill=1;fontFamily=Oracle Sans;fontColor=#312D2A;fontSize=11;labelBackgroundColor=#FFFFFF;" edge="1" parent="1" source="hmm-security-flow_v_30" target="hmm-security-flow_v_32"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell><mxCell id="hmm-security-flow_e_40" value="AGENT_TOOL" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#AE562C;strokeWidth=2;dashed=0;endArrow=block;endFill=1;fontFamily=Oracle Sans;fontColor=#312D2A;fontSize=11;labelBackgroundColor=#FFFFFF;exitX=0.25;exitY=1;entryX=0.5;entryY=0;" edge="1" parent="1" source="hmm-security-flow_v_32" target="hmm-security-flow_v_34"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell><mxCell id="hmm-security-flow_e_41" value="SELECT_AI" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#2F6F8F;strokeWidth=2;dashed=0;endArrow=block;endFill=1;fontFamily=Oracle Sans;fontColor=#312D2A;fontSize=11;labelBackgroundColor=#FFFFFF;exitX=0.75;exitY=1;entryX=0.5;entryY=0;" edge="1" parent="1" source="hmm-security-flow_v_32" target="hmm-security-flow_v_36"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell><mxCell id="hmm-security-flow_v_42" value="" style="rounded=1;arcSize=7;whiteSpace=wrap;html=1;fillColor=#F5F4F2;strokeColor=#C74634;strokeWidth=1;dashed=0;fontFamily=Oracle Sans;fontColor=#312D2A;fontSize=12;align=center;verticalAlign=middle;spacing=6;" vertex="1" parent="1"><mxGeometry x="960" y="330" width="805" height="665" as="geometry"/></mxCell><mxCell id="hmm-security-flow_v_43" value="<b>Autonomous Database · 보안 실행 경계</b>" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;fontFamily=Oracle Sans;fontColor=#312D2A;fontSize=13;fontStyle=0;spacingLeft=0;spacingRight=0;" vertex="1" parent="1"><mxGeometry x="974" y="338" width="777" height="26" as="geometry"/></mxCell><mxCell id="hmm-security-flow_oci_44" value="" style="group" vertex="1" connectable="0" parent="1"><mxGeometry x="995" y="370" width="103.99999999999994" height="90" as="geometry"/></mxCell><mxCell id="hmm-security-flow_ociPart_45" style="vsdxID=21;fillColor=none;gradientColor=none;strokeColor=none;spacingTop=-3;spacingBottom=-3;spacingLeft=-3;spacingRight=-3;points=[];labelBackgroundColor=none;rounded=0;html=1;whiteSpace=wrap;" vertex="1" parent="hmm-security-flow_oci_44"><mxGeometry x="10" width="84" height="73" as="geometry"/></mxCell><mxCell id="hmm-security-flow_ociPart_46" style="vsdxID=22;fillColor=#FFFFFF;gradientColor=none;shape=stencil(lVbbVhsxDPyafdWxJF+fKfwHB0Kzp2nCCaGFv6/T9VXZC7xtHMkjj8ZjDXz3tn983Q2k3i7n06/d3/H5sh/4x0A0Hve783iJXwPfD3z3cjrvfp5P78fn6ffr4zXy+vX79Oe6w8eUpy1YvGaR+pxWUKn/vx+m8Kf38xSPKUGB0ikB+wz1QdMCM9iQYtJSCEAuRfG0RAEUpai0FDwos4ZOBN736MEC6x4fAzgBHyuyPXwTlNG7gx/GY8NTEz0tGA2Wl+PVt4KB+h4YBcGv8aDAm54GjRBMT4MB7llgDWgECwQUehp4tf/I4FwP3TSydECDF+DkwMgWGCDTg8eikx6X8GO7scfHRlsZTAEK/Fh4EAI0lfdcEYK2qwJ0wCzgFegg4EORW1EgOHF6jtQLAeaYBfCYYQV4s229fLSNXcj4MnbUDm5ia2DaxNZg+JvgtlrFMngUmMQuuszYHlgozsHqTWvuVYZmQCG36KJenLsRRQIyBCgavmI40TIo++xMsCzTEihhjKpskMu0kRBhjNEjhC07yleg3goGvXopY44VptBctwTlGJR4FbD4YoVnMIKlaBOJuCX4iCXfJFMcsuBrcBLfFUIK/owpbL1KHsHI4/viqxnfu2q12SeiJIRKggLre3wqe80qpc0oCUavJGC1UGFF82+f6l8zXaqe396Uq5kTCs3zCVEYfT06i2eB8PYEWO4Liob7KFvfE24RHIqG18RMeI36uuDanelWyiv4XM+yhN/z1Wakk24ZaJuChXUtC1ZllCoWakHUaznPJtW+NzzUhOr4Gf32zTbRV0W76mTJt+Mq9zGzVG2Ot/GjjsYv4+EwTdbt/3KUjkvTGM73/wA=);strokeColor=none;spacingTop=-3;spacingBottom=-3;spacingLeft=-3;spacingRight=-3;points=[];labelBackgroundColor=none;rounded=0;html=1;whiteSpace=wrap;" vertex="1" parent="hmm-security-flow_ociPart_45"><mxGeometry width="82" height="71" as="geometry"/></mxCell><mxCell id="hmm-security-flow_ociPart_47" style="vsdxID=23;fillColor=#FFFFFF;gradientColor=none;shape=stencil(pVnJchs5DP0aXVkkwfWc5T9SiTNWjWOnFCdx/n6g6eb2oCbtyk2iAD4S2wOoE737cf/p+93J6h/Pl6d/736fvzzfn+j9ydrz4/3d5fzMn0704UTvvj5d7v65PP18/LJ9//7pKnn99O3p13WHl03PkzJXJav/bAtWUfp/4eMm/vnnZZM32+9BK+92DQMq+sXuQlEZvwvtS7yyq73QvqKVC7vQvmScimGGzjopjujGKwfw0SidRngTlMmAb1TIgB9UiFN8q4wB/Ciuz1KZAD+pZACflPeAn1f3ZwEP+FWn4ievCPAtg8URPyXlaMS3Wdnc4z+cH7tgSfxz8di2QiV8bspnNs0YXQ7DCxScCjQqVO/eVjDK2FHBlFsdmDBzAI8W9EZlMKBVCeKX495iAEsHNqnjAKqhYeTOLYCq4Sb4MoCDPrZVL14jIJnpaTsVUy0e4njakJWG07IjtR9PG0iEW0bnIr7nAybADwLfs7cy4HdJuYO5oBxYq0kd4DvdComRO+9gxJdF/O6ULbcwWpb356zNUO56y5bcNspCueu9RFKKDvw/BkyvAWxxW17Z+CZxB7trFafh2Liq+EdST1QWSh9BIBpSwY2GIFPY4QCZScZCIpAWvMP04bHuJlF3WSoDvg2LosUkkyEQbbXWLBD44BF4h8E0JCKbhKb4fA2kPWl6toiJAN9KazE1ux1uX4WO3N5VYyP2LeBcXtbg1OrJa8G75D4Gdwr5XmI7hWy/guaeJSyhY20sOmzsdSjXqlGLz6LV4NzygO4FUbmovB3R2VlhBOf6jDzFK/a4MvQKOw4cdiWP+wtisYLYZDzf4BUraKVroAlkbp911XBDf+4aa2wrE4b3oqTOhLl+mb8QXjQ618YNwkerDMzF/Ao5K9tUDnAD0RNLiB0njkfaFKxJvg0yhTVrMHdJiz1LkXl9vei2nXQMElsWqyU4NQo+BpfN7Q1w23j0leBWziYS/MrPWKZlZ2tlpVzwc26DQ1miNnE1MsxYK+vE0/jZ1d6pprQvoXuE70S0W9ko9p1H6w9wLmRmxfZgZXqe98DtJG/PozOQlBMkxa6AauY1XH0sDHooCh77iKmwh3Zv1U3O5a+etH+nkGqVOA6zqlJCXJIiN1gBE0zOI+xUgxmW1Lz/JTkOdfHbiqp4/dB6BL8xDBWZoxATzXfbtPBlllVNphfPgcm97d4hKEKz33h1ofoQUuG7tyGSUnTgdpibO439PHZBQKlrcg3q1ANn6SjvG0cW43CDAAd2OC7Ao4htw0Jt04ybKHD1GjPBzSdDtmuKb0JI2MY4NzV6Da5XPhzJ/XGYBAXdqGBPLujGhbyFFnNholsKs+LYR0NVmKZFCiriUCifsviikJQmihY9cpuJ9WD1OMI6Bt9i5eNM/0h2PJOyFCHne+gwRVbS6HEzz+Hy/Fykl0/N8qWu6fQvdTgAsRTWvP49r43c87e3/lWt0jxO/FxVDHhXC+P2M0Th+WNTLSYO/tD+S/h6fnjY/orof8f/Hnhp+9+CPvwH);strokeColor=none;spacingTop=-3;spacingBottom=-3;spacingLeft=-3;spacingRight=-3;points=[];labelBackgroundColor=none;rounded=0;html=1;whiteSpace=wrap;" vertex="1" parent="hmm-security-flow_ociPart_45"><mxGeometry width="84" height="73" as="geometry"/></mxCell><mxCell id="hmm-security-flow_ociPart_48" style="vsdxID=24;fillColor=#2d5967;gradientColor=none;shape=stencil(pVrbctw2DP2afdWIN5B8TtP/yDRO7alrZxyndf6+2llRBHGw4O70zVEgHhDAwU17Cp9+PH75/nDy64/3t9e/Hv59+vr+eAq/nbx/enl8eHt63/46hc+n8Onb69vDn2+vP1++Xv79/ctZ8vzX36//nE/4uLwXl5DOL/n11/6gLPny5PeL/PPTC5N3tFT6fy+ksHjjhfUu4eX8X1x+Fdr88fPtcl/X3ih5f2N/EvcTPvx+RD9zfxJiU2L9CPu1XL/W/iisQlUJ7cIioH3tB+9YLo3YPiN2WmIcsSfAtCQ/Irs6wh5m911XAdvU+NVNYMNuqoc6wtZ+qu9WE+aucOMQllXcuE78HJgb251XAZ0Xl6fQZYllhM6LiRx9P7ZZAq4dmW38EcsCO/mlhBF7tZATM5Pj8j22NzqRgBWYTOIWTHLLWk1MKl2rpsaImV2PzxZcwQLNjH2MXMLG2YN/XVwkNtrYme7dsIOATsBi2sKzCOgkoQlDy5Fp69J907HltbmUhS0ZZV+bkE9lEcipLkkgg72V+Io2n5SojoAcIMYQGT09QY7MQdeQY1xcGJEJUmdkJGnWXm3sLe9UByEu42zLciQKxhbiEj74nmzCIWUnb56XG34cwb0SaGD1zRpw9WRf3XuoGy5Lu7st1gS5vcNSyax4KGRhO6SYUrS2gip8HjxY3WGkh0nAFdkghAwu34q/wN4Kjoy33tW1J3aXNm8Dx7YxM77JPkUFyNAGTl4oLAh2lepiARSp0UQ+w/nRNNFWKMjd9QKrardoRKiRfYO7fTB/AbzsRbPvTBfL+1rSsVdISaFr2t+jzER6vGgC1UO5fjYvJEd/aqmexpkmZEOUlZxdbzLPJiCWdTyxanWT6rT2AnOkJLvzJmiQlDFnC/aDTS19YwrNIot5GSKQQNeeHR0euyMVHPG2MiVrR8nQLwRnEbKCrc4V0tYXR6RNX2mswjJJq0AF9JXGcjNwpaXjx7Z6g1OSzyMyp88xNhkxPmHbyE23juzZeikrYCtk3eDtQgNZcV8I6NKp7w926WQfX6G0zubmAm1AxBaE10d/2HUWE13kWkywtsrhsY29EcabhOwlNn+1NiRbBEpgq+k6h1hV7voqI1EU+tI6zTY0Ay/MDA6PbTsFVi4OY43INcAkaBW3yih5UxDeyaGp+MhQYk32/kQWFRiicbqgCGGWMe/RLQM8TTs5Ub+rM5Vl8m2PJUahLNZnlWDgZpW3eb1YqJwMDRXrqDL4Ht47poE+rYRR5Nrsh0mgH9oGHtwkVdyeeVxx2Lf2yGdmyz77yfRzOCSgSNCcLCK+ym4UYh4mxQrkDwXIz+/TLAexoVgp2MM5rkQC7r8CiyDmNTkrQnQEuXOHvQjukwPuJiLrTA34DLsJwBezKsxJ05Y0ZljJ9ne4wllwiUtdt9cMPuC6UoH3WFTjCqESYKFhtStcvEnPtvZY1KLIdkHZtilLLzAUjDLgp9qTpMODW87DsqDAJ8VSNNk0Rki5jZcHtuKkCptG/ECTzAqTlC7GIaFw5ZUcrH7A6slNNo1Ky+dkylXSfcIOSklkcocB4Ya5JMpvUyKJxaKwAhtNqwVgL+yXKRM1IxiJVlzHYqtHAfwj96FkfutIAZbQx5l97y4TPfkRlnAZSWZIKsPhcWbDwAQvb0u4f532hnw10HtD2dEzM7ZH846LJptnpeciJf9g+qM85yFNvhsqPCRYeys8JMx9Cg9nV1d4SAJb8hB7ceQheHvCwzzZkCs8zDifKjzM9ST9I3m4i9weG1kkKmWplQkIAZ+To7kVng9Xd78wG9+K/cUX+Vlw6lUIWvD7jMLRMmu8FUcUmRCRoQV/0IAULbPcpHC0KI03krSIxKgwdHpxhaIFuwTJ0qKUaaDp6PEJR+tsL6KQtOJWk3fFbYpL2ngieVrlsgMiFLcLVflGnyFJVFk1lfFVXn7GPsu0M+ntj/7DrW9Pz8+X333x/5c/9NoeXX4kFj7/Bw==);strokeColor=none;spacingTop=-3;spacingBottom=-3;spacingLeft=-3;spacingRight=-3;points=[];labelBackgroundColor=none;rounded=0;html=1;whiteSpace=wrap;" vertex="1" parent="hmm-security-flow_ociPart_45"><mxGeometry x="1" y="1" width="80" height="69" as="geometry"/></mxCell><mxCell id="hmm-security-flow_v_49" value="<b>CB_ORDS 동일 JDBC 세션</b><br>CB_ORDS_HANDLER_PKG<br>SET_VPD_CONTEXT<br>Runtime principal·context 일치 검증" style="rounded=1;arcSize=8;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#C74634;strokeWidth=1;dashed=0;fontFamily=Oracle Sans;fontColor=#312D2A;fontSize=11;align=left;verticalAlign=middle;spacing=10;spacingLeft=22;spacingRight=8;" vertex="1" parent="1"><mxGeometry x="1100" y="390" width="285" height="110" as="geometry"/></mxCell><mxCell id="hmm-security-flow_v_50" value="<b><font color="#FFFFFF">6</font></b>" style="ellipse=1;shape=ellipse;whiteSpace=wrap;html=1;fillColor=#C74634;strokeColor=#C74634;fontFamily=Oracle Sans;fontSize=13;align=center;verticalAlign=middle;" vertex="1" parent="1"><mxGeometry x="1088" y="400" width="30" height="30" as="geometry"/></mxCell><mxCell id="hmm-security-flow_v_51" value="<b>Secure Application Context</b><br>HMM_ACCESS_CTX_PKG<br>SET_USER_BY_BEARER<br>EMPLOYEE_ID · CODE · TEAM_ID" style="rounded=1;arcSize=8;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#C74634;strokeWidth=1;dashed=0;fontFamily=Oracle Sans;fontColor=#312D2A;fontSize=11;align=left;verticalAlign=middle;spacing=10;spacingLeft=22;spacingRight=8;" vertex="1" parent="1"><mxGeometry x="1445" y="390" width="270" height="110" as="geometry"/></mxCell><mxCell id="hmm-security-flow_v_52" value="<b><font color="#FFFFFF">7</font></b>" style="ellipse=1;shape=ellipse;whiteSpace=wrap;html=1;fillColor=#C74634;strokeColor=#C74634;fontFamily=Oracle Sans;fontSize=13;align=center;verticalAlign=middle;" vertex="1" parent="1"><mxGeometry x="1433" y="400" width="30" height="30" as="geometry"/></mxCell><mxCell id="hmm-security-flow_v_53" value="<b>읽기 전용 SQL 실행</b><br>CB_ORDS · SET TRANSACTION READ ONLY<br>EXEMPT ACCESS POLICY 없음<br>승인된 HR Table/View만 조회" style="rounded=1;arcSize=8;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#2F6F8F;strokeWidth=1;dashed=0;fontFamily=Oracle Sans;fontColor=#312D2A;fontSize=11;align=left;verticalAlign=middle;spacing=10;spacingLeft=22;spacingRight=8;" vertex="1" parent="1"><mxGeometry x="1100" y="585" width="285" height="125" as="geometry"/></mxCell><mxCell id="hmm-security-flow_v_54" value="<b><font color="#FFFFFF">8</font></b>" style="ellipse=1;shape=ellipse;whiteSpace=wrap;html=1;fillColor=#2F6F8F;strokeColor=#2F6F8F;fontFamily=Oracle Sans;fontSize=13;align=center;verticalAlign=middle;" vertex="1" parent="1"><mxGeometry x="1088" y="595" width="30" height="30" as="geometry"/></mxCell><mxCell id="hmm-security-flow_v_55" value="<b>HMM_LEAVE_SCOPE_POLICY</b><br>SYS_CONTEXT 기반 predicate 자동 적용<br><b>VIEWER → SELF</b><br><b>MANAGER → MANAGED_TEAM</b><br><b>ADMIN role → ALL</b>" style="rounded=1;arcSize=8;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#C74634;strokeWidth=1;dashed=0;fontFamily=Oracle Sans;fontColor=#312D2A;fontSize=11;align=left;verticalAlign=middle;spacing=10;spacingLeft=22;spacingRight=8;" vertex="1" parent="1"><mxGeometry x="1445" y="585" width="270" height="125" as="geometry"/></mxCell><mxCell id="hmm-security-flow_v_56" value="<b><font color="#FFFFFF">8a</font></b>" style="ellipse=1;shape=ellipse;whiteSpace=wrap;html=1;fillColor=#C74634;strokeColor=#C74634;fontFamily=Oracle Sans;fontSize=13;align=center;verticalAlign=middle;" vertex="1" parent="1"><mxGeometry x="1433" y="595" width="30" height="30" as="geometry"/></mxCell><mxCell id="hmm-security-flow_v_57" value="<b>항상 정리</b><br>결과 읽기 → ROLLBACK → CB_ORDS_HANDLER_PKG · CLEAR_VPD_CONTEXT<br><font color="#5B5652">성공·실패와 무관하게 session context와 client identifier 제거</font>" style="rounded=1;arcSize=8;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#2F6B4F;strokeWidth=1;dashed=0;fontFamily=Oracle Sans;fontColor=#312D2A;fontSize=11;align=left;verticalAlign=middle;spacing=10;spacingLeft=22;spacingRight=8;" vertex="1" parent="1"><mxGeometry x="1100" y="805" width="615" height="95" as="geometry"/></mxCell><mxCell id="hmm-security-flow_v_58" value="<b><font color="#FFFFFF">9</font></b>" style="ellipse=1;shape=ellipse;whiteSpace=wrap;html=1;fillColor=#2F6B4F;strokeColor=#2F6B4F;fontFamily=Oracle Sans;fontSize=13;align=center;verticalAlign=middle;" vertex="1" parent="1"><mxGeometry x="1088" y="815" width="30" height="30" as="geometry"/></mxCell><mxCell id="hmm-security-flow_e_59" value="검증된 SQL + 원문 Bearer" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#C74634;strokeWidth=2;dashed=0;endArrow=block;endFill=1;fontFamily=Oracle Sans;fontColor=#312D2A;fontSize=11;labelBackgroundColor=#FFFFFF;" edge="1" parent="1" source="hmm-security-flow_v_36" target="hmm-security-flow_v_49"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell><mxCell id="hmm-security-flow_e_60" value="Agent Tool 결과 · CLEAR_USER" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#2F6B4F;strokeWidth=2;dashed=1;endArrow=block;endFill=1;fontFamily=Oracle Sans;fontColor=#312D2A;fontSize=11;labelBackgroundColor=#FFFFFF;exitX=1;exitY=0.5;entryX=1;entryY=0.5;" edge="1" parent="1" source="hmm-security-flow_v_34" target="hmm-security-flow_v_26"><mxGeometry relative="1" as="geometry"><Array as="points"><mxPoint x="635" y="655"/><mxPoint x="635" y="760"/><mxPoint x="280" y="760"/><mxPoint x="280" y="855"/></Array></mxGeometry></mxCell><mxCell id="hmm-security-flow_e_61" value="SET_USER_BY_BEARER" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#C74634;strokeWidth=2;dashed=0;endArrow=block;endFill=1;fontFamily=Oracle Sans;fontColor=#312D2A;fontSize=11;labelBackgroundColor=#FFFFFF;" edge="1" parent="1" source="hmm-security-flow_v_49" target="hmm-security-flow_v_51"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell><mxCell id="hmm-security-flow_e_62" value="context 확인 후 실행" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#2F6F8F;strokeWidth=2;dashed=0;endArrow=block;endFill=1;fontFamily=Oracle Sans;fontColor=#312D2A;fontSize=11;labelBackgroundColor=#FFFFFF;exitX=0.5;exitY=1;entryX=0.5;entryY=0;" edge="1" parent="1" source="hmm-security-flow_v_49" target="hmm-security-flow_v_53"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell><mxCell id="hmm-security-flow_e_63" value="SYS_CONTEXT" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#C74634;strokeWidth=2;dashed=0;endArrow=block;endFill=1;fontFamily=Oracle Sans;fontColor=#312D2A;fontSize=11;labelBackgroundColor=#FFFFFF;exitX=0.5;exitY=1;entryX=0.5;entryY=0;" edge="1" parent="1" source="hmm-security-flow_v_51" target="hmm-security-flow_v_55"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell><mxCell id="hmm-security-flow_e_64" value="SELECT → predicate 주입" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#C74634;strokeWidth=2;dashed=0;endArrow=block;endFill=1;fontFamily=Oracle Sans;fontColor=#312D2A;fontSize=11;labelBackgroundColor=#FFFFFF;" edge="1" parent="1" source="hmm-security-flow_v_53" target="hmm-security-flow_v_55"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell><mxCell id="hmm-security-flow_e_65" value="허용 행" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#2F6B4F;strokeWidth=2;dashed=0;endArrow=block;endFill=1;fontFamily=Oracle Sans;fontColor=#312D2A;fontSize=11;labelBackgroundColor=#FFFFFF;exitX=0.5;exitY=1;entryX=0.8;entryY=0;" edge="1" parent="1" source="hmm-security-flow_v_55" target="hmm-security-flow_v_57"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell><mxCell id="hmm-security-flow_e_66" value="result set" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#2F6B4F;strokeWidth=2;dashed=0;endArrow=block;endFill=1;fontFamily=Oracle Sans;fontColor=#312D2A;fontSize=11;labelBackgroundColor=#FFFFFF;exitX=0.5;exitY=1;entryX=0.2;entryY=0;" edge="1" parent="1" source="hmm-security-flow_v_53" target="hmm-security-flow_v_57"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell><mxCell id="hmm-security-flow_e_67" value="정제된 Tool 결과" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#2F6B4F;strokeWidth=2;dashed=0;endArrow=block;endFill=1;fontFamily=Oracle Sans;fontColor=#312D2A;fontSize=11;labelBackgroundColor=#FFFFFF;exitX=0;exitY=0.5;entryX=1;entryY=0.5;" edge="1" parent="1" source="hmm-security-flow_v_57" target="hmm-security-flow_v_26"><mxGeometry relative="1" as="geometry"><Array as="points"><mxPoint x="950" y="945"/><mxPoint x="270" y="945"/></Array></mxGeometry></mxCell><mxCell id="hmm-security-flow_v_68" value="<b>보안 불변조건</b><br>• Token 원문은 DB·로그·응답·Git에 저장하지 않음<br>• SQL 생성 ADMIN과 실행 CB_ORDS를 분리<br>• 컨텍스트 설정과 보호 객체 SELECT는 반드시 같은 connection<br>• 권한 또는 메타데이터가 불완전하면 결과를 축소하는 대신 요청/기동 실패" style="rounded=1;arcSize=8;whiteSpace=wrap;html=1;fillColor=#FFF7F2;strokeColor=#C74634;strokeWidth=1;dashed=0;fontFamily=Oracle Sans;fontColor=#312D2A;fontSize=12;align=left;verticalAlign=middle;spacing=10;" vertex="1" parent="1"><mxGeometry x="330" y="790" width="555" height="110" as="geometry"/></mxCell></root></mxGraphModel></diagram>
|
|
</mxfile> |