{"id":1898,"date":"2024-12-29T13:09:30","date_gmt":"2024-12-29T04:09:30","guid":{"rendered":"https:\/\/oboki.net\/workspace\/?p=1898"},"modified":"2025-11-18T23:51:27","modified_gmt":"2025-11-18T14:51:27","slug":"excalidraw","status":"publish","type":"post","link":"https:\/\/oboki.net\/workspace\/tools\/excalidraw\/","title":{"rendered":"Excalidraw"},"content":{"rendered":"<p>\uc2dc\uc2a4\ud15c \ub514\uc790\uc778 \uba74\uc811\ub54c \ub4dc\ub85c\uc789 \ud234\ub85c \uc0ac\uc6a9\ud558\ub294 \uacf3\ub3c4 \uc788\ub2e4\uace0 \ud574\uc11c \ucc3e\uc544\ubd24\ub294\ub370<\/p>\n<blockquote>\n<p><a href=\"https:\/\/excalidraw.com\">excalidraw.com<\/a><\/p>\n<\/blockquote>\n<p>text to mermaid \ub85c \uc2dc\uac01\ud654\uae4c\uc9c0 \ud574\uc900\ub2e4.<\/p>\n<blockquote>\n<p>Currently we use Mermaid as a middle step, so you&#8217;ll get best results if you describe a diagram, workflow, flow chart, and similar.<\/p>\n<\/blockquote>\n<p>\ud504\ub86c\ud504\ud2b8\uc5d0 \ub9c8\uad6c\uc7a1\uc774\ub85c \uc801\uc5b4\ubd24\ub294\ub370 \uadf8\ub7f4\ub4ef\ud558\uac8c \uc798 \uadf8\ub824\uc8fc\ub294 \uac83 \uac19\ub2e4.<\/p>\n<pre><code class=\"language-txt\">\ub2e4\uc74c \uad6c\uc131\uc694\uc18c\ub4e4\uc744 \ud3ec\ud568\ud558\ub294 MLOps \uc2dc\uc2a4\ud15c\n* jupyterhub, jupyter \uae30\ubc18\uc758 \uc2e4\ud5d8\ud658\uacbd\n* airflow \uae30\ubc18\uc758 \uc9c0\uc18d\uc801 \ud559\uc2b5\uc774 \uac00\ub2a5\ud55c \uc6cc\ud06c\ud50c\ub85c\uc6b0 \uc2dc\uc2a4\ud15c\n* gitlab \uae30\ubc18\uc758 onprem \ucf54\ub4dc \uc800\uc7a5\uc18c \ubc0f CI \uc6cc\ud06c\ud50c\ub85c\uc6b0 \uad00\ub9ac\n* mlflow \uae30\ubc18\uc758 \ubaa8\ub378 \ub808\ud3ec\uc9c0\ud1a0\ub9ac\n* fastapi \ub97c \uc774\uc6a9\ud55c \ubaa8\ub378 \uc11c\ube59<\/code><\/pre>\n<p><img decoding=\"async\" src=\"https:\/\/oboki.net\/workspace\/wp-content\/uploads\/2025\/01\/image-1737260699886.png\" alt=\"file\" \/><\/p>\n<p>\uc704 \ud504\ub86c\ud504\ud2b8\ub97c \uc2dc\uac01\ud654 \ud558\uae30 \uc804\uc5d0 \uc911\uac04\ub2e8\uacc4\ub85c \uc0dd\uc131\ud55c mermaid \ucf54\ub4dc<\/p>\n<pre><code class=\"language-txt\">%%{init: {&quot;theme&quot;: &quot;base&quot;, &quot;themeVariables&quot;: {&quot;primaryColor&quot;: &quot;#ffcc00&quot;, &quot;edgeLabelBackground&quot;:&quot;#ffffff&quot;, &quot;tertiaryColor&quot;: &quot;#fff&quot;}}}%%\nflowchart TD\n    Scheduler[Scheduler Microservice]\n    Webserver[Webserver Microservice]\n    Worker[Worker Microservice]\n    RDBMS[(RDBMS Metadata Repository)]\n\n    subgraph Workflow Orchestration System\n        Scheduler ---|uses| Webserver\n        Webserver ---|uses| Worker\n        Worker ---|accesses| RDBMS\n        Scheduler ---|reads\/writes| RDBMS\n        Webserver ---|reads| RDBMS\n    end<\/code><\/pre>\n<p><a href=\"https:\/\/draw.io\">draw.io<\/a> \ubcf4\ub2e4 \uadfc\ubcf8\ub825\uc740 \uc880 \ub5a8\uc5b4\uc9c0\ub294\ub4ef\ud558\uc9c0\ub9cc \uc0ac\uc6a9\uc131\uc774 \uc88b\uc544\uc11c \uc544\uc774\ub514\uc5b4\ub97c \ube60\ub974\uac8c \uc2a4\ucf00\uce58\ud558\ub294\ub370 \uc720\uc6a9\ud560 \uac83 \uac19\uace0 Live collaboration \uae30\ub2a5\uc73c\ub85c \ub2e4\ub978\uc774\ub791 \ub3d9\uc2dc\uc5d0 \ud3b8\uc9d1\ub3c4 \uac00\ub2a5\ud55c\ub370 \uba74\uc811\uc774\ub098 \uc6d0\uaca9 \uadfc\ubb34\ud560\ub54c \ud611\uc5c5\ud558\uae30 \uc88b\uc744 \uac83 \uac19\ub2e4.<\/p>\n<p>vscode \ud655\uc7a5\ub3c4 \uc788\uc5b4\uc11c \ub85c\uceec\uc5d0\uc11c \uc791\uc5c5\ud558\uae30\ub3c4 \ud3b8\ub9ac\ud558\uace0 \uadf8\ub300\ub85c <code>.excalidraw<\/code> \ud655\uc7a5\uc790\ub85c \uc800\uc7a5\ud574\uc11c \ud615\uc0c1 \uad00\ub9ac\ub3c4 \uac00\ub2a5\ud574\uc11c \uc720\uc6a9\ud558\uac8c \uc4f8 \ub4ef.<br \/>\n<a href=\"https:\/\/marketplace.visualstudio.com\/items?itemName=pomdtr.excalidraw-editor\">https:\/\/marketplace.visualstudio.com\/items?itemName=pomdtr.excalidraw-editor<\/a><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/github.com\/excalidraw\/excalidraw-vscode\/raw\/HEAD\/medias\/screenshot.png\" alt=\"\" \/><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\uc2dc\uc2a4\ud15c \ub514\uc790\uc778 \uba74\uc811\ub54c \ub4dc\ub85c\uc789 \ud234\ub85c \uc0ac\uc6a9\ud558\ub294 \uacf3\ub3c4 \uc788\ub2e4\uace0 \ud574\uc11c \ucc3e\uc544\ubd24\ub294\ub370 excalidraw.com text to mermaid \ub85c \uc2dc\uac01\ud654\uae4c\uc9c0 \ud574\uc900\ub2e4. Currently we use Mermaid as a middle step, so you&#8217;ll get best results if you describe a diagram, workflow, flow chart, and similar. \ud504\ub86c\ud504\ud2b8\uc5d0 \ub9c8\uad6c\uc7a1\uc774\ub85c \uc801\uc5b4\ubd24\ub294\ub370 \uadf8\ub7f4\ub4ef\ud558\uac8c \uc798 \uadf8\ub824\uc8fc\ub294 \uac83 \uac19\ub2e4. \ub2e4\uc74c \uad6c\uc131\uc694\uc18c\ub4e4\uc744 \ud3ec\ud568\ud558\ub294 MLOps \uc2dc\uc2a4\ud15c * jupyterhub, [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[165],"tags":[],"class_list":["post-1898","post","type-post","status-publish","format-standard","hentry","category-tools"],"_links":{"self":[{"href":"https:\/\/oboki.net\/workspace\/wp-json\/wp\/v2\/posts\/1898","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/oboki.net\/workspace\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/oboki.net\/workspace\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/oboki.net\/workspace\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/oboki.net\/workspace\/wp-json\/wp\/v2\/comments?post=1898"}],"version-history":[{"count":0,"href":"https:\/\/oboki.net\/workspace\/wp-json\/wp\/v2\/posts\/1898\/revisions"}],"wp:attachment":[{"href":"https:\/\/oboki.net\/workspace\/wp-json\/wp\/v2\/media?parent=1898"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/oboki.net\/workspace\/wp-json\/wp\/v2\/categories?post=1898"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/oboki.net\/workspace\/wp-json\/wp\/v2\/tags?post=1898"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}