{"id":5403,"date":"2025-12-23T15:57:38","date_gmt":"2025-12-23T15:57:38","guid":{"rendered":"https:\/\/blog.ggonggong.com\/?p=5403"},"modified":"2025-12-23T15:57:38","modified_gmt":"2025-12-23T15:57:38","slug":"%eb%a8%b8%eb%a9%94%ec%9d%b4%eb%93%9c-%ec%b0%a8%ed%8a%b8-%ec%99%84%ec%a0%84-%eb%b6%84%ec%84%9d-%eb%8d%b0%ec%9d%b4%ed%84%b0-%ec%8b%9c%ea%b0%81%ed%99%94%eb%a5%bc-%ec%9c%84%ed%95%9c-%ec%b5%9c%ea%b3%a0","status":"publish","type":"post","link":"https:\/\/blog.ggonggong.com\/?p=5403","title":{"rendered":"\uba38\uba54\uc774\ub4dc \ucc28\ud2b8 \uc644\uc804 \ubd84\uc11d: \ub370\uc774\ud130 \uc2dc\uac01\ud654\ub97c \uc704\ud55c \ucd5c\uace0\uc758 \ub3c4\uad6c \ud65c\uc6a9\ubc95"},"content":{"rendered":"<div style=\"font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Noto Sans KR', sans-serif;line-height: 1.8;color: #374151;max-width: 800px;margin: 0 auto;padding: 2em 1em\">\n<h1 style=\"font-size: 2em;font-weight: bold;margin-top: 1em;margin-bottom: 0.5em;border-bottom: 2px solid #eee;padding-bottom: 0.3em;color: #111827\">\uba38\uba54\uc774\ub4dc \ucc28\ud2b8 \uc644\uc804 \ubd84\uc11d: \ub370\uc774\ud130 \uc2dc\uac01\ud654\ub97c \uc704\ud55c \ucd5c\uace0\uc758 \ub3c4\uad6c \ud65c\uc6a9\ubc95<\/h1>\n<h2 style=\"font-size: 1.5em;font-weight: bold;margin-top: 0.8em;margin-bottom: 0.4em;color: #1f2937\">\uc11c\ub860: \ub3c4\ud45c \ud601\uba85\uc758 \uc2dc\uc791, \uba38\uba54\uc774\ub4dc\ub97c \ub9cc\ub098\ub2e4<\/h2>\n<blockquote style=\"border-left: 4px solid #3b82f6;padding: 0.75em 1.25em;margin: 1.5em 0;background-color: #f9fafb;color: #4b5563;font-style: italic;border-radius: 0 4px 4px 0\">\n<p style=\"margin-bottom: 1em;line-height: 1.8;color: #374151\">\u201c\ud55c \uc904\uc758 \ucf54\ub4dc\uac00 \ucc9c \ub9c8\ub514 \uc124\uba85\uc744 \ub300\uc2e0\ud55c\ub2e4.\u201d<\/p>\n<\/blockquote>\n<p style=\"margin-bottom: 1em;line-height: 1.8;color: #374151\">\uac1c\ubc1c\uc790, \uae30\ud68d\uc790, \ud14c\ud06c\ub2c8\uceec \ub77c\uc774\ud130\ub77c\uba74 \ub204\uad6c\ub098 <strong style=\"font-weight: 700;color: #111827\">\ubcf5\uc7a1\ud55c \uac1c\ub150\uc744 \uc2dc\uac01\ud654\ud558\ub294 \uace0\ubbfc<\/strong>\uc744 \ud574\ubd24\uc744 \uac81\ub2c8\ub2e4. \uae30\uc874 \ub3c4\uad6c\ub294 \uc124\uce58\uac00 \ubc88\uac70\ub86d\uac70\ub098 \ud611\uc5c5\uc774 \uc5b4\ub824\uc6e0\uc8e0. <strong style=\"font-weight: 700;color: #111827\">\uba38\uba54\uc774\ub4dc(Mermaid.js)<\/strong> \ub294 \uc774\ub7ec\ud55c \ubb38\uc81c\ub97c \ud574\uacb0\ud55c <strong style=\"font-weight: 700;color: #111827\">\ud14d\uc2a4\ud2b8 \uae30\ubc18 \ub2e4\uc774\uc5b4\uadf8\ub7a8 \uc0dd\uc131 \ub3c4\uad6c<\/strong>\ub85c, \ub2e8\uc21c\ud55c \ubb38\ubc95\uc73c\ub85c \ub2e4\uc591\ud55c \ucc28\ud2b8\ub97c \ucf54\ub4dc\ub85c \uc791\uc131\ud560 \uc218 \uc788\ub294 \uc624\ud508\uc18c\uc2a4 \ub77c\uc774\ube0c\ub7ec\ub9ac\uc785\ub2c8\ub2e4. VS Code, Notion, GitHub, GitLab\ub4f1\uacfc \uc644\ubcbd\ud788 \uc5f0\ub3d9\ub418\uc5b4 \uc5b4\ub514\uc11c\ub098 \uc190\uc27d\uac8c \ud65c\uc6a9 \uac00\ub2a5\ud569\ub2c8\ub2e4. \uba38\uba54\uc774\ub4dc\uac00 \uc65c \uac1c\ubc1c \ucee4\ubba4\ub2c8\ud2f0\uc5d0\uc11c \uc5f4\uad11\uc801\uc778 \uc9c0\uc9c0\ub97c \ubc1b\ub294\uc9c0, \uadf8 \ube44\ubc00\uc744 \ub2e4\uc591\ud55c \ucc28\ud2b8 \uc720\ud615 \ud0d0\uad6c\ub97c \ud1b5\ud574 \ud568\uaed8 \uc54c\uc544\ubcf4\uaca0\uc2b5\ub2c8\ub2e4.<\/p>\n<hr>\n<h2 style=\"font-size: 1.5em;font-weight: bold;margin-top: 0.8em;margin-bottom: 0.4em;color: #1f2937\">\ubcf8\ubb38: \uba38\uba54\uc774\ub4dc\uc758 \ud575\uc2ec \ucc28\ud2b8 \uc720\ud615 \uc2ec\uce35 \ubd84\uc11d<\/h2>\n<h3 style=\"font-size: 1.25em;font-weight: bold;margin-top: 0.6em;margin-bottom: 0.3em;color: #374151\">1\ufe0f\u20e3 \ud50c\ub85c\uc6b0 \ucc28\ud2b8 (Flowchart) : \ud504\ub85c\uc138\uc2a4 \uc2dc\uac01\ud654\uc758 \ud575\uc2ec<\/h3>\n<p style=\"margin-bottom: 1em;line-height: 1.8;color: #374151\"><strong style=\"font-weight: 700;color: #111827\">\ud504\ub85c\uc138\uc2a4 \uc774\ud574\uc758 \ucd08\uc11d<\/strong>\uc73c\ub85c \uac00\uc7a5 \uae30\ubcf8\uc801\uc774\uba74\uc11c\ub3c4 \uac15\ub825\ud55c \ub3c4\uad6c\uc785\ub2c8\ub2e4.<\/p>\n<p style=\"margin-bottom: 1em;line-height: 1.8;color: #374151\"><strong style=\"font-weight: 700;color: #111827\">MERMAID_BLOCK_0<\/strong><\/p>\n<ul style=\"margin-bottom: 1em;padding-left: 2em;list-style-type: disc\">\n<li style=\"margin-bottom: 0.5em;line-height: 1.8\"><strong style=\"font-weight: 700;color: #111827\">\uae30\ubcf8 \uad6c\uc131\uc694\uc18c:<\/strong>\n<ul style=\"margin-bottom: 1em;padding-left: 2em;list-style-type: disc\">\n<li style=\"margin-bottom: 0.5em;line-height: 1.8\"><code style=\"background-color: #f6f8fa;padding: 2px 6px;border-radius: 3px;font-family: 'Courier New', 'Fira Code', monospace;font-size: 0.9em;color: #0969da\">graph [\ubc29\ud5a5]<\/code>: <code style=\"background-color: #f6f8fa;padding: 2px 6px;border-radius: 3px;font-family: 'Courier New', 'Fira Code', monospace;font-size: 0.9em;color: #0969da\">TD<\/code>(Top Down), <code style=\"background-color: #f6f8fa;padding: 2px 6px;border-radius: 3px;font-family: 'Courier New', 'Fira Code', monospace;font-size: 0.9em;color: #0969da\">LR<\/code>(Left Right) \ub4f1 \ubc29\ud5a5 \uc124\uc815<\/li>\n<li style=\"margin-bottom: 0.5em;line-height: 1.8\">\ub178\ub4dc: <code style=\"background-color: #f6f8fa;padding: 2px 6px;border-radius: 3px;font-family: 'Courier New', 'Fira Code', monospace;font-size: 0.9em;color: #0969da\">[\uc0ac\uac01\ud615]<\/code>, <code style=\"background-color: #f6f8fa;padding: 2px 6px;border-radius: 3px;font-family: 'Courier New', 'Fira Code', monospace;font-size: 0.9em;color: #0969da\">(\ub465\uadfc \uc0ac\uac01\ud615)<\/code>, <code style=\"background-color: #f6f8fa;padding: 2px 6px;border-radius: 3px;font-family: 'Courier New', 'Fira Code', monospace;font-size: 0.9em;color: #0969da\">{\ub9c8\ub984\ubaa8}<\/code>, <code style=\"background-color: #f6f8fa;padding: 2px 6px;border-radius: 3px;font-family: 'Courier New', 'Fira Code', monospace;font-size: 0.9em;color: #0969da\">((\uc6d0))<\/code><\/li>\n<li style=\"margin-bottom: 0.5em;line-height: 1.8\">\ub9c1\ud06c: <code style=\"background-color: #f6f8fa;padding: 2px 6px;border-radius: 3px;font-family: 'Courier New', 'Fira Code', monospace;font-size: 0.9em;color: #0969da\">--&gt;<\/code> (\uc2e4\uc120), <code style=\"background-color: #f6f8fa;padding: 2px 6px;border-radius: 3px;font-family: 'Courier New', 'Fira Code', monospace;font-size: 0.9em;color: #0969da\">-.-&gt;<\/code> (\uc810\uc120), <code style=\"background-color: #f6f8fa;padding: 2px 6px;border-radius: 3px;font-family: 'Courier New', 'Fira Code', monospace;font-size: 0.9em;color: #0969da\">==&gt;<\/code> (\ub450\uaebc\uc6b4 \uc120), <code style=\"background-color: #f6f8fa;padding: 2px 6px;border-radius: 3px;font-family: 'Courier New', 'Fira Code', monospace;font-size: 0.9em;color: #0969da\">--&gt;|\ud14d\uc2a4\ud2b8|<\/code> (\ub77c\ubca8 \ucd94\uac00)<\/li>\n<\/ul>\n<\/li>\n<li style=\"margin-bottom: 0.5em;line-height: 1.8\"><strong style=\"font-weight: 700;color: #111827\">\ud65c\uc6a9 \ubd84\uc57c:<\/strong>\n<ul style=\"margin-bottom: 1em;padding-left: 2em;list-style-type: disc\">\n<li style=\"margin-bottom: 0.5em;line-height: 1.8\">\uc0ac\uc6a9\uc790 \uc5ec\uc815\ub3c4(User Journey Map)<\/li>\n<li style=\"margin-bottom: 0.5em;line-height: 1.8\">\uc2dc\uc2a4\ud15c\/\uc571 \uc6cc\ud06c\ud50c\ub85c\uc6b0 \uc124\uba85<\/li>\n<li style=\"margin-bottom: 0.5em;line-height: 1.8\">\uc758\uc0ac \uacb0\uc815 \ud2b8\ub9ac(Decision Tree)<\/li>\n<li style=\"margin-bottom: 0.5em;line-height: 1.8\">\uc54c\uace0\ub9ac\uc998 \ud45c\ud604<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h3 style=\"font-size: 1.25em;font-weight: bold;margin-top: 0.6em;margin-bottom: 0.3em;color: #374151\">2\ufe0f\u20e3 \uc2dc\ud000\uc2a4 \ub2e4\uc774\uc5b4\uadf8\ub7a8 (Sequence Diagram): \uc2dc\uac04 \ud750\ub984\uc5d0 \ub530\ub978 \uc0c1\ud638\uc791\uc6a9<\/h3>\n<p style=\"margin-bottom: 1em;line-height: 1.8;color: #374151\"><strong style=\"font-weight: 700;color: #111827\">\uc2dc\uc2a4\ud15c \uad6c\uc131 \uc694\uc18c \uac04\uc758 \ub3d9\uc801 \uc0c1\ud638\uc791\uc6a9<\/strong>\uacfc <strong style=\"font-weight: 700;color: #111827\">\uba54\uc2dc\uc9c0 \uad50\ud658 \uc21c\uc11c<\/strong>\ub97c \uba85\ud655\ud788 \ubcf4\uc5ec\uc90d\ub2c8\ub2e4.<\/p>\n<p style=\"margin-bottom: 1em;line-height: 1.8;color: #374151\"><strong style=\"font-weight: 700;color: #111827\">MERMAID_BLOCK_1<\/strong><\/p>\n<ul style=\"margin-bottom: 1em;padding-left: 2em;list-style-type: disc\">\n<li style=\"margin-bottom: 0.5em;line-height: 1.8\"><strong style=\"font-weight: 700;color: #111827\">\ud575\uc2ec \uc694\uc18c:<\/strong>\n<ul style=\"margin-bottom: 1em;padding-left: 2em;list-style-type: disc\">\n<li style=\"margin-bottom: 0.5em;line-height: 1.8\"><code style=\"background-color: #f6f8fa;padding: 2px 6px;border-radius: 3px;font-family: 'Courier New', 'Fira Code', monospace;font-size: 0.9em;color: #0969da\">participant<\/code>: \uc561\ud130\/\uac1d\uccb4 \uc815\uc758 (<code style=\"background-color: #f6f8fa;padding: 2px 6px;border-radius: 3px;font-family: 'Courier New', 'Fira Code', monospace;font-size: 0.9em;color: #0969da\">as<\/code>\ub85c \ubcc4\uce6d \ubd80\uc5ec \uac00\ub2a5)<\/li>\n<li style=\"margin-bottom: 0.5em;line-height: 1.8\">\ud654\uc0b4\ud45c: <code style=\"background-color: #f6f8fa;padding: 2px 6px;border-radius: 3px;font-family: 'Courier New', 'Fira Code', monospace;font-size: 0.9em;color: #0969da\">-&gt;&gt;<\/code> (\uc2e4\uc120), <code style=\"background-color: #f6f8fa;padding: 2px 6px;border-radius: 3px;font-family: 'Courier New', 'Fira Code', monospace;font-size: 0.9em;color: #0969da\">--&gt;&gt;<\/code> (\uc810\uc120), <code style=\"background-color: #f6f8fa;padding: 2px 6px;border-radius: 3px;font-family: 'Courier New', 'Fira Code', monospace;font-size: 0.9em;color: #0969da\">-&gt;&gt;<\/code> (\uba54\uc2dc\uc9c0 \ub3d9\uc2dc\uc131)<\/li>\n<li style=\"margin-bottom: 0.5em;line-height: 1.8\">\ub8e8\ud504: <code style=\"background-color: #f6f8fa;padding: 2px 6px;border-radius: 3px;font-family: 'Courier New', 'Fira Code', monospace;font-size: 0.9em;color: #0969da\">loop<\/code> \/ <code style=\"background-color: #f6f8fa;padding: 2px 6px;border-radius: 3px;font-family: 'Courier New', 'Fira Code', monospace;font-size: 0.9em;color: #0969da\">end<\/code><\/li>\n<li style=\"margin-bottom: 0.5em;line-height: 1.8\">\uc561\ud2f0\ubca0\uc774\uc158 \ubc15\uc2a4: <code style=\"background-color: #f6f8fa;padding: 2px 6px;border-radius: 3px;font-family: 'Courier New', 'Fira Code', monospace;font-size: 0.9em;color: #0969da\">activate<\/code> \/ <code style=\"background-color: #f6f8fa;padding: 2px 6px;border-radius: 3px;font-family: 'Courier New', 'Fira Code', monospace;font-size: 0.9em;color: #0969da\">deactivate<\/code><\/li>\n<\/ul>\n<\/li>\n<li style=\"margin-bottom: 0.5em;line-height: 1.8\"><strong style=\"font-weight: 700;color: #111827\">\ud65c\uc6a9 \ubd84\uc57c:<\/strong>\n<ul style=\"margin-bottom: 1em;padding-left: 2em;list-style-type: disc\">\n<li style=\"margin-bottom: 0.5em;line-height: 1.8\">API \ud638\ucd9c \ud750\ub984 \ubd84\uc11d<\/li>\n<li style=\"margin-bottom: 0.5em;line-height: 1.8\">\ub9c8\uc774\ud06c\ub85c\uc11c\ube44\uc2a4 \uc544\ud0a4\ud14d\ucc98 \ud1b5\uc2e0 \uc2dc\uac01\ud654<\/li>\n<li style=\"margin-bottom: 0.5em;line-height: 1.8\">\uba40\ud2f0\uc2a4\ub808\ub4dc \uc560\ud50c\ub9ac\ucf00\uc774\uc158 \ub3d9\uc791<\/li>\n<li style=\"margin-bottom: 0.5em;line-height: 1.8\">\uc0ac\uc6a9\uc790-\uc2dc\uc2a4\ud15c \uc0c1\ud638\uc791\uc6a9 \uc2dc\ub098\ub9ac\uc624<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h3 style=\"font-size: 1.25em;font-weight: bold;margin-top: 0.6em;margin-bottom: 0.3em;color: #374151\">3\ufe0f\u20e3 \ud074\ub798\uc2a4 \ub2e4\uc774\uc5b4\uadf8\ub7a8 (Class Diagram): \uac1d\uccb4 \uc9c0\ud5a5 \uad6c\uc870\uc758 \uccad\uc0ac\uc9c4<\/h3>\n<p style=\"margin-bottom: 1em;line-height: 1.8;color: #374151\"><strong style=\"font-weight: 700;color: #111827\">\uc2dc\uc2a4\ud15c\uc758 \uc815\uc801 \uad6c\uc870(\ud074\ub798\uc2a4, \uc18d\uc131, \uba54\uc11c\ub4dc, \uad00\uacc4)<\/strong> \ub97c \ud45c\ud604\ud558\uc5ec OOP \uc124\uacc4\ub97c \uba85\ud655\ud788 \ud569\ub2c8\ub2e4.<\/p>\n<p style=\"margin-bottom: 1em;line-height: 1.8;color: #374151\"><strong style=\"font-weight: 700;color: #111827\">MERMAID_BLOCK_2<\/strong><\/p>\n<ul style=\"margin-bottom: 1em;padding-left: 2em;list-style-type: disc\">\n<li style=\"margin-bottom: 0.5em;line-height: 1.8\"><strong style=\"font-weight: 700;color: #111827\">\uc8fc\uc694 \ud45c\ud604\ubc95:<\/strong>\n<ul style=\"margin-bottom: 1em;padding-left: 2em;list-style-type: disc\">\n<li style=\"margin-bottom: 0.5em;line-height: 1.8\">\ud074\ub798\uc2a4: \uc774\ub984, \uc18d\uc131(<code style=\"background-color: #f6f8fa;padding: 2px 6px;border-radius: 3px;font-family: 'Courier New', 'Fira Code', monospace;font-size: 0.9em;color: #0969da\">+<\/code> public, <code style=\"background-color: #f6f8fa;padding: 2px 6px;border-radius: 3px;font-family: 'Courier New', 'Fira Code', monospace;font-size: 0.9em;color: #0969da\">-<\/code> private, <code style=\"background-color: #f6f8fa;padding: 2px 6px;border-radius: 3px;font-family: 'Courier New', 'Fira Code', monospace;font-size: 0.9em;color: #0969da\">#<\/code> protected), \uba54\uc11c\ub4dc<\/li>\n<li style=\"margin-bottom: 0.5em;line-height: 1.8\">\uad00\uacc4:\n<ul style=\"margin-bottom: 1em;padding-left: 2em;list-style-type: disc\">\n<li style=\"margin-bottom: 0.5em;line-height: 1.8\">\uc0c1\uc18d: <code style=\"background-color: #f6f8fa;padding: 2px 6px;border-radius: 3px;font-family: 'Courier New', 'Fira Code', monospace;font-size: 0.9em;color: #0969da\">&lt;|--<\/code> (\uc790\uc2dd &#8211;|&gt; \ubd80\ubaa8)<\/li>\n<li style=\"margin-bottom: 0.5em;line-height: 1.8\">\uad6c\uc131: <code style=\"background-color: #f6f8fa;padding: 2px 6px;border-radius: 3px;font-family: 'Courier New', 'Fira Code', monospace;font-size: 0.9em;color: #0969da\">*--<\/code> (Has-a, \uac15\ud55c \uc18c\uc720) \/ \uc9d1\ud569: <code style=\"background-color: #f6f8fa;padding: 2px 6px;border-radius: 3px;font-family: 'Courier New', 'Fira Code', monospace;font-size: 0.9em;color: #0969da\">o--<\/code> (Weak Has-a)<\/li>\n<li style=\"margin-bottom: 0.5em;line-height: 1.8\">\uc5f0\uad00: <code style=\"background-color: #f6f8fa;padding: 2px 6px;border-radius: 3px;font-family: 'Courier New', 'Fira Code', monospace;font-size: 0.9em;color: #0969da\">--&gt;<\/code> (\ub2e8\uc21c \uc5f0\uacb0, \ud654\uc0b4\ud45c \ubc29\ud5a5 \uc911\uc694)<\/li>\n<li style=\"margin-bottom: 0.5em;line-height: 1.8\">\uc758\uc874: <code style=\"background-color: #f6f8fa;padding: 2px 6px;border-radius: 3px;font-family: 'Courier New', 'Fira Code', monospace;font-size: 0.9em;color: #0969da\">..&gt;<\/code> (\uc0ac\uc6a9, \uc784\uc2dc\uc801 \uad00\uacc4)<\/li>\n<li style=\"margin-bottom: 0.5em;line-height: 1.8\">\ub2e4\uc911\uc131: <code style=\"background-color: #f6f8fa;padding: 2px 6px;border-radius: 3px;font-family: 'Courier New', 'Fira Code', monospace;font-size: 0.9em;color: #0969da\">&quot;1&quot;<\/code>, <code style=\"background-color: #f6f8fa;padding: 2px 6px;border-radius: 3px;font-family: 'Courier New', 'Fira Code', monospace;font-size: 0.9em;color: #0969da\">&quot;*&quot;<\/code>, <code style=\"background-color: #f6f8fa;padding: 2px 6px;border-radius: 3px;font-family: 'Courier New', 'Fira Code', monospace;font-size: 0.9em;color: #0969da\">&quot;0..1&quot;<\/code>, <code style=\"background-color: #f6f8fa;padding: 2px 6px;border-radius: 3px;font-family: 'Courier New', 'Fira Code', monospace;font-size: 0.9em;color: #0969da\">&quot;1..*&quot;<\/code> \ub4f1 \uba85\uc2dc<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<li style=\"margin-bottom: 0.5em;line-height: 1.8\"><strong style=\"font-weight: 700;color: #111827\">\ud65c\uc6a9 \ubd84\uc57c:<\/strong>\n<ul style=\"margin-bottom: 1em;padding-left: 2em;list-style-type: disc\">\n<li style=\"margin-bottom: 0.5em;line-height: 1.8\">\uc18c\ud504\ud2b8\uc6e8\uc5b4 \uc124\uacc4 \ubb38\uc11c\ud654<\/li>\n<li style=\"margin-bottom: 0.5em;line-height: 1.8\">\ub370\uc774\ud130 \ubaa8\ub378\ub9c1 (Database ERD \uac04\uc18c\ud654 \ub300\uccb4)<\/li>\n<li style=\"margin-bottom: 0.5em;line-height: 1.8\">\ub77c\uc774\ube0c\ub7ec\ub9ac\/API \uc2a4\ud399 \uc124\uba85<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h3 style=\"font-size: 1.25em;font-weight: bold;margin-top: 0.6em;margin-bottom: 0.3em;color: #374151\">4\ufe0f\u20e3 \uc0c1\ud0dc \ub2e4\uc774\uc5b4\uadf8\ub7a8 (State Diagram): \uac1d\uccb4\uc758 \uc0dd\uba85\uc8fc\uae30 \ud328\ud134<\/h3>\n<p style=\"margin-bottom: 1em;line-height: 1.8;color: #374151\"><strong style=\"font-weight: 700;color: #111827\">\ud558\ub098\uc758 \uac1d\uccb4\uac00 \uac00\uc9c8 \uc218 \uc788\ub294 \ub2e4\uc591\ud55c \uc0c1\ud0dc(State)\uc640 \uadf8 \uc0c1\ud0dc \uac04 \uc804\uc774(Transition) \uc870\uac74<\/strong>\uc744 \ud45c\ud604\ud569\ub2c8\ub2e4.<\/p>\n<p style=\"margin-bottom: 1em;line-height: 1.8;color: #374151\"><strong style=\"font-weight: 700;color: #111827\">MERMAID_BLOCK_3<\/strong><\/p>\n<ul style=\"margin-bottom: 1em;padding-left: 2em;list-style-type: disc\">\n<li style=\"margin-bottom: 0.5em;line-height: 1.8\"><strong style=\"font-weight: 700;color: #111827\">\uad6c\uc131 \uc694\uc18c:<\/strong>\n<ul style=\"margin-bottom: 1em;padding-left: 2em;list-style-type: disc\">\n<li style=\"margin-bottom: 0.5em;line-height: 1.8\"><code style=\"background-color: #f6f8fa;padding: 2px 6px;border-radius: 3px;font-family: 'Courier New', 'Fira Code', monospace;font-size: 0.9em;color: #0969da\">state<\/code>: \uc8fc\uc694 \uc0c1\ud0dc (\uc0ac\uac01\ud615 \ub465\uadfc \ubaa8\uc11c\ub9ac)<\/li>\n<li style=\"margin-bottom: 0.5em;line-height: 1.8\"><code style=\"background-color: #f6f8fa;padding: 2px 6px;border-radius: 3px;font-family: 'Courier New', 'Fira Code', monospace;font-size: 0.9em;color: #0969da\">[*]<\/code>: \uc2dc\uc791\uc810 \/ \uc885\ub8cc\uc810<\/li>\n<li style=\"margin-bottom: 0.5em;line-height: 1.8\">\uc804\uc774: <code style=\"background-color: #f6f8fa;padding: 2px 6px;border-radius: 3px;font-family: 'Courier New', 'Fira Code', monospace;font-size: 0.9em;color: #0969da\">\uc0c1\ud0dcA --&gt; \uc0c1\ud0dcB : \uc804\uc774\uc870\uac74\/\uc561\uc158<\/code><\/li>\n<li style=\"margin-bottom: 0.5em;line-height: 1.8\">\ud558\uc704 \uc0c1\ud0dc: <code style=\"background-color: #f6f8fa;padding: 2px 6px;border-radius: 3px;font-family: 'Courier New', 'Fira Code', monospace;font-size: 0.9em;color: #0969da\">state \ub0b4\ubd80\uc5d0 state<\/code> \uc911\ucca9 \uac00\ub2a5 (Compound State)<\/li>\n<\/ul>\n<\/li>\n<li style=\"margin-bottom: 0.5em;line-height: 1.8\"><strong style=\"font-weight: 700;color: #111827\">\ud65c\uc6a9 \ubd84\uc57c:<\/strong>\n<ul style=\"margin-bottom: 1em;padding-left: 2em;list-style-type: disc\">\n<li style=\"margin-bottom: 0.5em;line-height: 1.8\">\ubcf5\uc7a1\ud55c UI \ucef4\ud3ec\ub10c\ud2b8 \uc0c1\ud0dc \uad00\ub9ac (e.g., \ud3fc \uc81c\ucd9c, \uba40\ud2f0\uc2a4\ud0ed \ud504\ub85c\uc138\uc2a4)<\/li>\n<li style=\"margin-bottom: 0.5em;line-height: 1.8\">\uc8fc\ubb38 \ucc98\ub9ac, \uacb0\uc81c \uc2dc\uc2a4\ud15c \ub4f1\uc758 \uc0dd\uba85\uc8fc\uae30<\/li>\n<li style=\"margin-bottom: 0.5em;line-height: 1.8\">\uac8c\uc784 \uce90\ub9ad\ud130\/\uac1d\uccb4 \uc0c1\ud0dc \ubcc0\ud654 \uc2dc\ubbac\ub808\uc774\uc158<\/li>\n<li style=\"margin-bottom: 0.5em;line-height: 1.8\">\uc2dc\uc2a4\ud15c \uc7a5\uc560 \ubcf5\uad6c \uc808\ucc28 \ubaa8\ub378\ub9c1<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h3 style=\"font-size: 1.25em;font-weight: bold;margin-top: 0.6em;margin-bottom: 0.3em;color: #374151\">5\ufe0f\u20e3 \uac04\ud2b8 \ucc28\ud2b8 (Gantt Chart): \ud504\ub85c\uc81d\ud2b8 \uad00\ub9ac\ub97c \uba85\ud655\ud558\uac8c<\/h3>\n<p style=\"margin-bottom: 1em;line-height: 1.8;color: #374151\"><strong style=\"font-weight: 700;color: #111827\">\uc791\uc5c5 \uc77c\uc815\uc744 \ub9c9\ub300 \uadf8\ub798\ud504 \ud615\ud0dc\ub85c \uc2dc\uac01\ud654<\/strong>\ud558\uc5ec \ud504\ub85c\uc81d\ud2b8 \uae30\uac04, \ub2e8\uacc4, \uc758\uc874\uad00\uacc4\ub97c \ud55c\ub208\uc5d0 \ud30c\uc545\ud569\ub2c8\ub2e4. MS Project \ub300\uccb4\uc81c\ub85c \uac15\ub825\ud569\ub2c8\ub2e4.<\/p>\n<p style=\"margin-bottom: 1em;line-height: 1.8;color: #374151\"><strong style=\"font-weight: 700;color: #111827\">MERMAID_BLOCK_4<\/strong><\/p>\n<ul style=\"margin-bottom: 1em;padding-left: 2em;list-style-type: disc\">\n<li style=\"margin-bottom: 0.5em;line-height: 1.8\"><strong style=\"font-weight: 700;color: #111827\">\ud575\uc2ec \uc124\uc815:<\/strong>\n<ul style=\"margin-bottom: 1em;padding-left: 2em;list-style-type: disc\">\n<li style=\"margin-bottom: 0.5em;line-height: 1.8\"><code style=\"background-color: #f6f8fa;padding: 2px 6px;border-radius: 3px;font-family: 'Courier New', 'Fira Code', monospace;font-size: 0.9em;color: #0969da\">section<\/code>: \uc791\uc5c5 \uc601\uc5ed \uadf8\ub8f9\ud654<\/li>\n<li style=\"margin-bottom: 0.5em;line-height: 1.8\">\uc791\uc5c5: <code style=\"background-color: #f6f8fa;padding: 2px 6px;border-radius: 3px;font-family: 'Courier New', 'Fira Code', monospace;font-size: 0.9em;color: #0969da\">\uc791\uc5c5\uba85 :id, start, duration<\/code> \ub610\ub294 <code style=\"background-color: #f6f8fa;padding: 2px 6px;border-radius: 3px;font-family: 'Courier New', 'Fira Code', monospace;font-size: 0.9em;color: #0969da\">\uc791\uc5c5\uba85 :id, \uc2dc\uc791\uc77c, \uc885\ub8cc\uc77c<\/code><\/li>\n<li style=\"margin-bottom: 0.5em;line-height: 1.8\">\uc758\uc874\uc131: <code style=\"background-color: #f6f8fa;padding: 2px 6px;border-radius: 3px;font-family: 'Courier New', 'Fira Code', monospace;font-size: 0.9em;color: #0969da\">after [id]<\/code>\ub85c \uc120\ud589 \uc791\uc5c5 \uc9c0\uc815<\/li>\n<li style=\"margin-bottom: 0.5em;line-height: 1.8\">\uc9c4\ud589\ub960: <code style=\"background-color: #f6f8fa;padding: 2px 6px;border-radius: 3px;font-family: 'Courier New', 'Fira Code', monospace;font-size: 0.9em;color: #0969da\">\uc791\uc5c5\uba85 :crit, [id], duration<\/code> (\uc911\uc694 \uc791\uc5c5 \uac15\uc870) \/ <code style=\"background-color: #f6f8fa;padding: 2px 6px;border-radius: 3px;font-family: 'Courier New', 'Fira Code', monospace;font-size: 0.9em;color: #0969da\">[id], percentage<\/code>\ub85c \uc9c4\ud589\ub960 \ud45c\uc2dc<\/li>\n<\/ul>\n<\/li>\n<li style=\"margin-bottom: 0.5em;line-height: 1.8\"><strong style=\"font-weight: 700;color: #111827\">\ud65c\uc6a9 \ubd84\uc57c:<\/strong>\n<ul style=\"margin-bottom: 1em;padding-left: 2em;list-style-type: disc\">\n<li style=\"margin-bottom: 0.5em;line-height: 1.8\">\uc560\uc790\uc77c\/\uc6cc\ud130\ud3f4 \ud504\ub85c\uc81d\ud2b8 \uc2a4\ucf00\uc904\ub9c1<\/li>\n<li style=\"margin-bottom: 0.5em;line-height: 1.8\">\ub9ac\uc18c\uc2a4 \ud560\ub2f9 \ubc0f \ubcd1\ubaa9 \ud604\uc0c1 \ud30c\uc545<\/li>\n<li style=\"margin-bottom: 0.5em;line-height: 1.8\">\ub9c8\uc77c\uc2a4\ud1a4 \ud2b8\ub798\ud0b9<\/li>\n<li style=\"margin-bottom: 0.5em;line-height: 1.8\">\uc778\ud504\ub77c \uad6c\ucd95 \uc77c\uc815 \uad00\ub9ac<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h3 style=\"font-size: 1.25em;font-weight: bold;margin-top: 0.6em;margin-bottom: 0.3em;color: #374151\">6\ufe0f\u20e3 \ud30c\uc774 \ucc28\ud2b8 (Pie Chart): \ube44\uc728 \ub370\uc774\ud130\uc758 \uc9c1\uad00\uc801 \ud45c\ud604<\/h3>\n<p style=\"margin-bottom: 1em;line-height: 1.8;color: #374151\"><strong style=\"font-weight: 700;color: #111827\">\uc804\uccb4\uc5d0 \ub300\ud55c \uac01 \ubd80\ubd84\uc758 \ube44\uc728<\/strong>\uc744 <strong style=\"font-weight: 700;color: #111827\">\uc6d0\ud615 \uc870\uac01<\/strong>\uc73c\ub85c \ud45c\ud604\ud569\ub2c8\ub2e4. \ub370\uc774\ud130 \uaddc\ubaa8\uac00 \uc801\uc744 \ub54c \uc720\uc6a9\ud569\ub2c8\ub2e4.<\/p>\n<p style=\"margin-bottom: 1em;line-height: 1.8;color: #374151\"><strong style=\"font-weight: 700;color: #111827\">MERMAID_BLOCK_5<\/strong><\/p>\n<ul style=\"margin-bottom: 1em;padding-left: 2em;list-style-type: disc\">\n<li style=\"margin-bottom: 0.5em;line-height: 1.8\"><strong style=\"font-weight: 700;color: #111827\">\ud2b9\uc9d5 \ubc0f \ud45c\ud604\ubc95:<\/strong>\n<ul style=\"margin-bottom: 1em;padding-left: 2em;list-style-type: disc\">\n<li style=\"margin-bottom: 0.5em;line-height: 1.8\"><code style=\"background-color: #f6f8fa;padding: 2px 6px;border-radius: 3px;font-family: 'Courier New', 'Fira Code', monospace;font-size: 0.9em;color: #0969da\">title<\/code>\ub85c \ucc28\ud2b8 \uc81c\ubaa9 \uc124\uc815.<\/li>\n<li style=\"margin-bottom: 0.5em;line-height: 1.8\">\ub77c\ubca8:\uac12 \ud615\ud0dc\ub85c <code style=\"background-color: #f6f8fa;padding: 2px 6px;border-radius: 3px;font-family: 'Courier New', 'Fira Code', monospace;font-size: 0.9em;color: #0969da\">&quot;Label&quot; : Value<\/code> \uc785\ub825 (\uc6f9\uc0ac\uc774\ud2b8 \ubc29\ubb38\uc728, \uc608\uc0b0 \ubd84\ubc30 \ubaa8\uc758 \ub4f1)<\/li>\n<li style=\"margin-bottom: 0.5em;line-height: 1.8\">\uac04\ub2e8\ud55c \ud45c\ud604\uc5d0 \ucd5c\uc801\ud654\ub428. \ub370\uc774\ud130\uac00 \ub9ce\uc744 \uacbd\uc6b0 \uac00\ub3c5\uc131\uc774 \ub5a8\uc5b4\uc9c8 \uc218 \uc788\uc74c.<\/li>\n<li style=\"margin-bottom: 0.5em;line-height: 1.8\">\ub118\ubc84\ub9c1 \uc5c6\uc74c. \ube44\uc728\uc774 \ubcf4\uc784.<\/li>\n<\/ul>\n<\/li>\n<li style=\"margin-bottom: 0.5em;line-height: 1.8\"><strong style=\"font-weight: 700;color: #111827\">\ud65c\uc6a9 \ubd84\uc57c: \ub2e8\uc21c \ubd84\ud3ec \uacf5\uc720 \uc2dc<\/strong>\n<ul style=\"margin-bottom: 1em;padding-left: 2em;list-style-type: disc\">\n<li style=\"margin-bottom: 0.5em;line-height: 1.8\">\ud300 \uc124\ubb38\uc870\uc0ac \uacb0\uacfc \uc694\uc57d<\/li>\n<li style=\"margin-bottom: 0.5em;line-height: 1.8\">\uc608\uc0b0 \ubc94\uc8fc\ubcc4 \ubc30\ubd84 \uc2dc\uac01\ud654<\/li>\n<li style=\"margin-bottom: 0.5em;line-height: 1.8\">\uc791\uc740 \uaddc\ubaa8 \ud1b5\uacc4\uce58(\ub9c8\ucf00\ud305 \ucc44\ub110 \uc720\uc785, \uce74\ud14c\uace0\ub9ac \uc120\ud638\ub3c4) \ubc1c\ud45c \uc790\ub8cc<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h3 style=\"font-size: 1.25em;font-weight: bold;margin-top: 0.6em;margin-bottom: 0.3em;color: #374151\">7\ufe0f\u20e3 Entity-Relationship Diagram (ERD) : \ub370\uc774\ud130 \ubca0\uc774\uc2a4 \uad6c\uc870 \uc124\uacc4<\/h3>\n<p style=\"margin-bottom: 1em;line-height: 1.8;color: #374151\"><strong style=\"font-weight: 700;color: #111827\">\ub370\uc774\ud130\ubca0\uc774\uc2a4 \uc5d4\ud2f0\ud2f0(\ud14c\uc774\ube14) \uac04 \uad00\uacc4<\/strong>\ub97c \uad6c\uc131 \uc815\ubcf4\ub97c \ud45c\ud604\ud569\ub2c8\ub2e4. \ub2e4\ub978 DB \ubaa8\ub378\ub9c1 \ub3c4\uad6c\ub97c \ub300\uccb4\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p style=\"margin-bottom: 1em;line-height: 1.8;color: #374151\"><strong style=\"font-weight: 700;color: #111827\">MERMAID_BLOCK_6<\/strong><\/p>\n<ul style=\"margin-bottom: 1em;padding-left: 2em;list-style-type: disc\">\n<li style=\"margin-bottom: 0.5em;line-height: 1.8\"><strong style=\"font-weight: 700;color: #111827\">\uc8fc\uc694 \uae30\ub2a5:<\/strong>\n<ul style=\"margin-bottom: 1em;padding-left: 2em;list-style-type: disc\">\n<li style=\"margin-bottom: 0.5em;line-height: 1.8\">\uc5d4\ud2f0\ud2f0 \uc815\uc758: <code style=\"background-color: #f6f8fa;padding: 2px 6px;border-radius: 3px;font-family: 'Courier New', 'Fira Code', monospace;font-size: 0.9em;color: #0969da\">ENTITY { \uc18d\uc131 \ub370\uc774\ud130\ud0c0\uc785 PK\/FK \ub4f1 }<\/code><\/li>\n<li style=\"margin-bottom: 0.5em;line-height: 1.8\">\uad00\uacc4 \ud45c\ud604:\n<ul style=\"margin-bottom: 1em;padding-left: 2em;list-style-type: disc\">\n<li style=\"margin-bottom: 0.5em;line-height: 1.8\"><code style=\"background-color: #f6f8fa;padding: 2px 6px;border-radius: 3px;font-family: 'Courier New', 'Fira Code', monospace;font-size: 0.9em;color: #0969da\">||--||<\/code> : \uc77c\ub300\uc77c (One-to-One)<\/li>\n<li style=\"margin-bottom: 0.5em;line-height: 1.8\"><code style=\"background-color: #f6f8fa;padding: 2px 6px;border-radius: 3px;font-family: 'Courier New', 'Fira Code', monospace;font-size: 0.9em;color: #0969da\">||--o{<\/code> : \uc77c\ub300\ub2e4 (One-to-Many, <code style=\"background-color: #f6f8fa;padding: 2px 6px;border-radius: 3px;font-family: 'Courier New', 'Fira Code', monospace;font-size: 0.9em;color: #0969da\">o<\/code>\ub294 Optional Many)<\/li>\n<li style=\"margin-bottom: 0.5em;line-height: 1.8\"><code style=\"background-color: #f6f8fa;padding: 2px 6px;border-radius: 3px;font-family: 'Courier New', 'Fira Code', monospace;font-size: 0.9em;color: #0969da\">}o--||<\/code> : \ub2e4\ub300\uc77c (Many-to-One)<\/li>\n<li style=\"margin-bottom: 0.5em;line-height: 1.8\"><code style=\"background-color: #f6f8fa;padding: 2px 6px;border-radius: 3px;font-family: 'Courier New', 'Fira Code', monospace;font-size: 0.9em;color: #0969da\">}|--|{<\/code> : \ub2e4\ub300\ub2e4 (Many-to-Many)<\/li>\n<\/ul>\n<\/li>\n<li style=\"margin-bottom: 0.5em;line-height: 1.8\">\uae30\ubcf8\ud0a4(PK) \/ \uc678\ub798\ud0a4(F<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/div>\n<p>  \/\/ Mermaid \ucd08\uae30\ud654<br \/>\n  mermaid.initialize({<br \/>\n    startOnLoad: true,<br \/>\n    theme: &#8216;default&#8217;,<br \/>\n    securityLevel: &#8216;loose&#8217;,<br \/>\n    flowchart: { useMaxWidth: true, htmlLabels: true },<br \/>\n  });<\/p>\n<p>  \/\/ \ud398\uc774\uc9c0 \ub85c\ub4dc \ud6c4 Mermaid \ub80c\ub354\ub9c1<br \/>\n  if (document.readyState === &#8216;loading&#8217;) {<br \/>\n    document.addEventListener(&#8216;DOMContentLoaded&#8217;, function() {<br \/>\n      mermaid.init(undefined, document.querySelectorAll(&#8216;.mermaid&#8217;));<br \/>\n    });<br \/>\n  } else {<br \/>\n    mermaid.init(undefined, document.querySelectorAll(&#8216;.mermaid&#8217;));<br \/>\n  }<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\uba38\uba54\uc774\ub4dc \ucc28\ud2b8 \uc644\uc804 \ubd84\uc11d: \ub370\uc774\ud130 \uc2dc\uac01\ud654\ub97c \uc704\ud55c \ucd5c\uace0\uc758 \ub3c4\uad6c \ud65c\uc6a9\ubc95 \uc11c\ub860: \ub3c4\ud45c \ud601\uba85\uc758 \uc2dc\uc791, \uba38\uba54\uc774\ub4dc\ub97c \ub9cc\ub098\ub2e4 \u201c\ud55c \uc904\uc758 \ucf54\ub4dc\uac00 \ucc9c \ub9c8\ub514 \uc124\uba85\uc744 \ub300\uc2e0\ud55c\ub2e4.\u201d \uac1c\ubc1c\uc790, \uae30\ud68d\uc790, \ud14c\ud06c\ub2c8\uceec \ub77c\uc774\ud130\ub77c\uba74 \ub204\uad6c\ub098 \ubcf5\uc7a1\ud55c \uac1c\ub150\uc744 \uc2dc\uac01\ud654\ud558\ub294 \uace0\ubbfc\uc744 \ud574\ubd24\uc744 \uac81\ub2c8\ub2e4. \uae30\uc874 \ub3c4\uad6c\ub294 \uc124\uce58\uac00 \ubc88\uac70\ub86d\uac70\ub098 \ud611\uc5c5\uc774 \uc5b4\ub824\uc6e0\uc8e0. \uba38\uba54\uc774\ub4dc(Mermaid.js) \ub294 \uc774\ub7ec\ud55c \ubb38\uc81c\ub97c \ud574\uacb0\ud55c \ud14d\uc2a4\ud2b8 \uae30\ubc18 \ub2e4\uc774\uc5b4\uadf8\ub7a8 \uc0dd\uc131 \ub3c4\uad6c\ub85c, \ub2e8\uc21c\ud55c \ubb38\ubc95\uc73c\ub85c \ub2e4\uc591\ud55c \ucc28\ud2b8\ub97c \ucf54\ub4dc\ub85c&hellip;&nbsp;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"neve_meta_sidebar":"","neve_meta_container":"","neve_meta_enable_content_width":"","neve_meta_content_width":0,"neve_meta_title_alignment":"","neve_meta_author_avatar":"","neve_post_elements_order":"","neve_meta_disable_header":"","neve_meta_disable_footer":"","neve_meta_disable_title":"","footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[52],"tags":[],"class_list":["post-5403","post","type-post","status-publish","format-standard","hentry","category-blog-tips"],"jetpack_publicize_connections":[],"_links":{"self":[{"href":"https:\/\/blog.ggonggong.com\/index.php?rest_route=\/wp\/v2\/posts\/5403","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.ggonggong.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.ggonggong.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.ggonggong.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.ggonggong.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=5403"}],"version-history":[{"count":1,"href":"https:\/\/blog.ggonggong.com\/index.php?rest_route=\/wp\/v2\/posts\/5403\/revisions"}],"predecessor-version":[{"id":5404,"href":"https:\/\/blog.ggonggong.com\/index.php?rest_route=\/wp\/v2\/posts\/5403\/revisions\/5404"}],"wp:attachment":[{"href":"https:\/\/blog.ggonggong.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=5403"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.ggonggong.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=5403"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.ggonggong.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=5403"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}