{"id":5399,"date":"2025-12-23T15:13:30","date_gmt":"2025-12-23T15:13:30","guid":{"rendered":"https:\/\/blog.ggonggong.com\/?p=5399"},"modified":"2025-12-23T15:13:30","modified_gmt":"2025-12-23T15:13:30","slug":"%eb%a8%b8%eb%a9%94%ec%9d%b4%eb%93%9c%ec%b0%a8%ed%8a%b8%ec%9d%98-%ec%a2%85%eb%a5%98","status":"publish","type":"post","link":"https:\/\/blog.ggonggong.com\/?p=5399","title":{"rendered":"\uba38\uba54\uc774\ub4dc\ucc28\ud2b8\uc758 \uc885\ub958"},"content":{"rendered":"<div style=\"font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;line-height: 1.8;color: #333;max-width: 800px;margin: 0 auto\">\n<h2 style=\"font-size: 1.5em;font-weight: bold;margin-top: 0.8em;margin-bottom: 0.4em\">\ud83d\udcca \uba54\ub9c8\uc774\ub4dc \ucc28\ud2b8 \uc644\ubcbd \uac00\uc774\ub4dc : \uac1c\ubc1c\uc790\uac00 \ubc18\ub4dc\uc2dc \uc54c\uc544\uc57c \ud560 7\uac00\uc9c0 \ub2e4\uc774\uc5b4\uadf8\ub7a8 \ud65c\uc6a9\ubc95<\/h2>\n<h2 style=\"font-size: 1.5em;font-weight: bold;margin-top: 0.8em;margin-bottom: 0.4em\">\uc11c\ub860 : \ubb38\uc11c\ud654\uc758 \ud601\uc2e0\uc790, \uba54\ub9c8\uc774\ub4dc \ucc28\ud2b8<\/h2>\n<p style=\"margin-bottom: 1em;line-height: 1.8\">\ubcf5\uc7a1\ud55c \uc18c\ud504\ud2b8\uc6e8\uc5b4 \uc544\ud0a4\ud14d\ucc98\ub97c \uc124\uba85\ud558\ub294 \ub370 \uc2a4\ucf00\uce58\ubd80\ud130 \uc2dc\uc791\ud574\uc57c \ud588\ub358 \uc801\uc774 \uc788\ub098\uc694? \ud611\uc5c5 \uacfc\uc815\uc5d0\uc11c \uc624\ub79c \uc2dc\uac04\uc744 \ub4e4\uc5ec \ub9cc\ub4e0 \ub2e4\uc774\uc5b4\uadf8\ub7a8\uc774 \ubc84\uc804 \uc5c5\ub370\uc774\ud2b8 \ud6c4 \uc4f8\ubaa8\uc5c6\uac8c \ub41c \uacbd\ud5d8\uc740\uc694? <strong>\uc9c1\uad00\uc801\uc774\uace0 \ubc84\uc804 \uad00\ub9ac\uac00 \uac00\ub2a5\ud55c \ub2e4\uc774\uc5b4\uadf8\ub7a8<\/strong> \uae30\uc220\uc5d0 \ub300\ud55c \uac1c\ubc1c\uc790\ub4e4\uc758 \ub2c8\uc988\ub294 \uacc4\uc18d\ud574\uc11c \uc99d\uac00\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4. \uc774\ub7f0 \ubb38\uc81c\ub97c \ud574\uacb0\ud558\uae30 \uc704\ud574 \ub4f1\uc7a5\ud55c \uac83\uc774 \uba54\ub9c8\uc774\ub4dc(Mermaid) \ucc28\ud2b8\uc785\ub2c8\ub2e4. <strong>\ud3c9\ubb38 \uad6c\ubb38\uc73c\ub85c \ub2e4\uc591\ud55c \ub2e4\uc774\uc5b4\uadf8\ub7a8\uc744 \uc0dd\uc131<\/strong>\ud558\ub294 \uc774 \ub3c4\uad6c\ub294 GitHub, Notion, Confluence \ub4f1 \uc8fc\uc694 \ud50c\ub7ab\ud3fc\uc5d0\uc11c \uae30\ubcf8 \uc9c0\uc6d0\ub418\uba70 \uac1c\ubc1c \uc0dd\uc0b0\uc131 \ud601\uc2e0\uc758 \ud575\uc2ec\uc73c\ub85c \uc790\ub9ac\uc7a1\uc558\uc2b5\ub2c8\ub2e4. \uc774 \uac00\uc774\ub4dc\uc5d0\uc11c\ub294 \uac01 \uba54\ub9c8\uc774\ub4dc \ucc28\ud2b8 \uc720\ud615\uc758 \uc2e4\ud589 \uac00\ub2a5\ud55c \ud65c\uc6a9\ubc95\uc744 \uc2e4\uc81c \uc608\uc81c\uc640 \ud568\uaed8 \uc0c1\uc138\ud788 \uc18c\uac1c\ud569\ub2c8\ub2e4.<\/p>\n<hr>\n<h2 style=\"font-size: 1.5em;font-weight: bold;margin-top: 0.8em;margin-bottom: 0.4em\">\ud83d\udcbb 1. \ud50c\ub85c\uc6b0\ucc28\ud2b8 (Flowchart) : \ub85c\uc9c1\uc758 \uc2dc\uac01\ud654 \ud575\uc2ec \ub3c4\uad6c<\/h2>\n<p style=\"margin-bottom: 1em;line-height: 1.8\"><strong>\ubd84\uae30\uc640 \ud504\ub85c\uc138\uc2a4 \ub9e4\ud551\uc758 \uae30\ubcf8 \ud2c0<\/strong><br \/>\n\uac00\uc7a5 \ubc94\uc6a9\uc801\uc73c\ub85c \uc0ac\uc6a9\ub418\ub294 \ucc28\ud2b8\ub85c \uc54c\uace0\ub9ac\uc998, \ube44\uc988\ub2c8\uc2a4 \ud504\ub85c\uc138\uc2a4, UI \ud50c\ub85c\uc6b0\ub97c \uac04\uacb0\ud558\uac8c \ud45c\ud604\ud569\ub2c8\ub2e4.<\/p>\n<h3 style=\"font-size: 1.25em;font-weight: bold;margin-top: 0.6em;margin-bottom: 0.3em\">\u2705 \ud575\uc2ec \uad6c\ubb38 \ud328\ud134<\/h3>\n<pre style=\"background-color: #f4f4f4;padding: 1em;border-radius: 5px;margin-bottom: 1em\"><code style=\"font-family: 'Courier New', monospace;font-size: 0.9em\" class=\"language-mermaid\">graph TD\n    A[\uc6f9\uc0ac\uc774\ud2b8 \uc811\uc18d] --&gt; B{\ucfe0\ud0a4 \uc874\uc7ac?}\n    B --&gt;|Yes| C[\uac1c\uc778\ud654\ub41c \ucee8\ud150\uce20 \ud45c\uc2dc]\n    B --&gt;|No| D[\uae30\ubcf8 \ud398\uc774\uc9c0 \ud45c\uc2dc]\n    C --&gt; E[\uc0ac\uc6a9\uc790 \ud65c\ub3d9 \ub85c\uae45]\n    D --&gt; E\n    E --&gt; F[\uc138\uc158 \uc885\ub8cc]\n<\/code><\/pre>\n<h3 style=\"font-size: 1.25em;font-weight: bold;margin-top: 0.6em;margin-bottom: 0.3em\">\u2699\ufe0f \uace0\uae09 \ud65c\uc6a9 \uc0ac\ub840<\/h3>\n<ul style=\"margin-bottom: 1em;padding-left: 2em\">\n<li style=\"margin-bottom: 0.5em\">\n<p style=\"margin-bottom: 1em;line-height: 1.8\"><strong>\ubcd1\ub82c \ud504\ub85c\uc138\uc2a4 \ud45c\ud604<\/strong><br \/>\n<code style=\"background-color: #f4f4f4;padding: 2px 6px;border-radius: 3px;font-family: 'Courier New', monospace;font-size: 0.9em\">subgraph<\/code> \ud65c\uc6a9\ud574 \ub9c8\uc774\ud06c\ub85c\uc11c\ube44\uc2a4 \uc544\ud0a4\ud14d\ucc98 \uc2dc\uac01\ud654:<\/p>\n<pre style=\"background-color: #f4f4f4;padding: 1em;border-radius: 5px;margin-bottom: 1em\"><code style=\"font-family: 'Courier New', monospace;font-size: 0.9em\" class=\"language-mermaid\">graph LR\n  subgraph API_Gateway\n      A[Auth] --&gt; B[Route]\n  end\n  subgraph Microservices\n      B --&gt; C[User Service]\n      B --&gt; D[Payment Service]\n  end\n<\/code><\/pre>\n<\/li>\n<li style=\"margin-bottom: 0.5em\">\n<p style=\"margin-bottom: 1em;line-height: 1.8\"><strong>\uc2e4\uc804 \uc801\uc6a9 TIP<\/strong><\/p>\n<ol style=\"margin-bottom: 1em;padding-left: 2em\">\n<li style=\"margin-bottom: 0.5em\"><code style=\"background-color: #f4f4f4;padding: 2px 6px;border-radius: 3px;font-family: 'Courier New', monospace;font-size: 0.9em\">%% \uc8fc\uc11d<\/code>\uc73c\ub85c \uc124\uba85 \ucd94\uac00 \uc2dc \uc720\uc9c0\ubcf4\uc218\uc131 \ud5a5\uc0c1<\/li>\n<li style=\"margin-bottom: 0.5em\"><code style=\"background-color: #f4f4f4;padding: 2px 6px;border-radius: 3px;font-family: 'Courier New', monospace;font-size: 0.9em\">linkStyle<\/code>\uc73c\ub85c \uac15\uc870 \uacbd\ub85c \ud45c\uc2dc:<\/li>\n<\/ol>\n<pre style=\"background-color: #f4f4f4;padding: 1em;border-radius: 5px;margin-bottom: 1em\"><code style=\"font-family: 'Courier New', monospace;font-size: 0.9em\" class=\"language-mermaid\">graph LR\n  A--&gt;B\n  A--&gt;C\n  linkStyle 0 stroke:red,stroke-width:4px;\n<\/code><\/pre>\n<\/li>\n<\/ul>\n<hr>\n<h2 style=\"font-size: 1.5em;font-weight: bold;margin-top: 0.8em;margin-bottom: 0.4em\">\ud83d\udd04 2. \uc2dc\ud000\uc2a4 \ub2e4\uc774\uc5b4\uadf8\ub7a8 (Sequence Diagram) : \uc2dc\uc2a4\ud15c \uac04 \uc0c1\ud638\uc791\uc6a9 \ud574\ubd80<\/h2>\n<p style=\"margin-bottom: 1em;line-height: 1.8\"><strong>\ub9c8\uc774\ud06c\ub85c\uc11c\ube44\uc2a4 \ud1b5\uc2e0 \ubd84\uc11d\uc5d0 \ucd5c\uc801\ud654\ub41c \ub3c4\uad6c<\/strong><br \/>\nAPI \ud638\ucd9c, \uba54\uc2dc\uc9c0 \ud750\ub984, \ucef4\ud3ec\ub10c\ud2b8 \uac04 \uc0c1\ud638\uc791\uc6a9\uc744 \uc2dc\uac04\ucd95\uc73c\ub85c \uba85\ud655\ud788 \ud45c\ud604\ud569\ub2c8\ub2e4.<\/p>\n<h3 style=\"font-size: 1.25em;font-weight: bold;margin-top: 0.6em;margin-bottom: 0.3em\">\ud83d\udd0d \uad6c\uc131 \uc694\uc18c \ub9c8\uc2a4\ud130\ud558\uae30<\/h3>\n<ul style=\"margin-bottom: 1em;padding-left: 2em\">\n<li style=\"margin-bottom: 0.5em\"><strong>\ucc38\uc5ec\uc790(Actor)<\/strong> : <code style=\"background-color: #f4f4f4;padding: 2px 6px;border-radius: 3px;font-family: 'Courier New', monospace;font-size: 0.9em\">participant FrontEnd<\/code>, <code style=\"background-color: #f4f4f4;padding: 2px 6px;border-radius: 3px;font-family: 'Courier New', monospace;font-size: 0.9em\">participant BackEnd as BE<\/code><\/li>\n<li style=\"margin-bottom: 0.5em\"><strong>\uba54\uc2dc\uc9c0 \uc885\ub958<\/strong><br \/>\n<code style=\"background-color: #f4f4f4;padding: 2px 6px;border-radius: 3px;font-family: 'Courier New', monospace;font-size: 0.9em\">-&gt;&gt;<\/code> : \uc2e4\uc120 \ud654\uc0b4\ud45c(\ub3d9\uae30 \ud638\ucd9c)<br \/>\n<code style=\"background-color: #f4f4f4;padding: 2px 6px;border-radius: 3px;font-family: 'Courier New', monospace;font-size: 0.9em\">--&gt;<\/code> : \uc810\uc120 \ud654\uc0b4\ud45c(\ube44\ub3d9\uae30 \uba54\uc2dc\uc9c0)<br \/>\n<code style=\"background-color: #f4f4f4;padding: 2px 6px;border-radius: 3px;font-family: 'Courier New', monospace;font-size: 0.9em\">-x<\/code> : \uc2e4\ud328 \uc885\ub8cc<\/li>\n<\/ul>\n<h3 style=\"font-size: 1.25em;font-weight: bold;margin-top: 0.6em;margin-bottom: 0.3em\">\u2705 e-\ucee4\uba38\uc2a4 \uacb0\uc81c \ud504\ub85c\uc138\uc2a4 \uc608\uc81c<\/h3>\n<pre style=\"background-color: #f4f4f4;padding: 1em;border-radius: 5px;margin-bottom: 1em\"><code style=\"font-family: 'Courier New', monospace;font-size: 0.9em\" class=\"language-mermaid\">sequenceDiagram\n    participant User\n    participant App\n    participant PaymentGateway\n    participant Bank\n\n    User-&gt;&gt;App: \uacb0\uc81c \uc694\uccad\n    App-&gt;&gt;PaymentGateway: \ud2b8\ub79c\uc7ad\uc158 \uc0dd\uc131\n    PaymentGateway-&gt;&gt;Bank: \uae08\uc561 \uc778\uc99d\n    Bank--&gt;&gt;PaymentGateway: \uc2b9\uc778 \ucf54\ub4dc\n    PaymentGateway-&gt;&gt;App: \uc131\uacf5 \uc751\ub2f5\n    App-&gt;&gt;User: \uc8fc\ubb38 \uc644\ub8cc \uc54c\ub9bc\n<\/code><\/pre>\n<h3 style=\"font-size: 1.25em;font-weight: bold;margin-top: 0.6em;margin-bottom: 0.3em\">\u26a0\ufe0f \uc8fc\uc758\uc0ac\ud56d<\/h3>\n<ul style=\"margin-bottom: 1em;padding-left: 2em\">\n<li style=\"margin-bottom: 0.5em\"><strong>\ub8e8\ud504 \ucc98\ub9ac<\/strong> : <code style=\"background-color: #f4f4f4;padding: 2px 6px;border-radius: 3px;font-family: 'Courier New', monospace;font-size: 0.9em\">loop ... end<\/code> \uad6c\ubb38\uc73c\ub85c \ubc18\ubcf5 \uacfc\uc815 \uba85\uc2dc\ud654<\/li>\n<li style=\"margin-bottom: 0.5em\"><strong>\ub300\uc548\uc120 \ud45c\uc2dc<\/strong> : <code style=\"background-color: #f4f4f4;padding: 2px 6px;border-radius: 3px;font-family: 'Courier New', monospace;font-size: 0.9em\">alt ... else ... end<\/code>\ub85c \uc608\uc678 \ud50c\ub85c\uc6b0 \ubd84\uae30<\/li>\n<\/ul>\n<hr>\n<h2 style=\"font-size: 1.5em;font-weight: bold;margin-top: 0.8em;margin-bottom: 0.4em\">\u23f3 3. \uac04\ud2b8 \ucc28\ud2b8 (Gantt Chart) : \uac1c\ubc1c \uc77c\uc815\uc744 \ud1b5\uc81c\ud558\ub294 \ud504\ub85c\uc81d\ud2b8 \uad00\ub9ac \ud544\uc218\ud488<\/h2>\n<p style=\"margin-bottom: 1em;line-height: 1.8\"><strong>\uc560\uc790\uc77c \uc2a4\ud504\ub9b0\ud2b8 \uacc4\ud68d\uc5d0 \ucd5c\uc801\ud654\ub41c \uc2dc\uac01\uc801 \ub3c4\uad6c<\/strong><br \/>\n\ud0dc\uc2a4\ud06c \ubcc4 \uc18c\uc694 \uc2dc\uac04, \uc885\uc18d\uc131, \uc9c4\ud589 \uc0c1\ud0dc\ub97c \uc9c1\uad00\uc801\uc73c\ub85c \ucd94\uc801\ud569\ub2c8\ub2e4.<\/p>\n<h3 style=\"font-size: 1.25em;font-weight: bold;margin-top: 0.6em;margin-bottom: 0.3em\">\ud83d\udee0\ufe0f \uc2a4\ud504\ub9b0\ud2b8 \uacc4\ud68d\ud45c \uc608\uc2dc<\/h3>\n<pre style=\"background-color: #f4f4f4;padding: 1em;border-radius: 5px;margin-bottom: 1em\"><code style=\"font-family: 'Courier New', monospace;font-size: 0.9em\" class=\"language-mermaid\">gantt\n    title 2\uc8fc\ucc28 \uc2a4\ud504\ub9b0\ud2b8 \uacc4\ud68d\n    dateFormat  YYYY-MM-DD\n    section \uc778\uc99d \ubaa8\ub4c8\n    \ud68c\uc6d0 \uac00\uc785 UI      :active, a1, 2023-11-01, 3d\n    OAuth2.0 \ud1b5\ud569    :a2, after a1, 2d\n    section \uacb0\uc81c \ubaa8\ub4c8\n    PG\uc0ac API \ubd84\uc11d     :2023-11-03, 2d\n    \uacb0\uc81c \uc774\ub825 \uc870\ud68c    : 2d\n<\/code><\/pre>\n<h3 style=\"font-size: 1.25em;font-weight: bold;margin-top: 0.6em;margin-bottom: 0.3em\">\ud83d\udca1 \uc0dd\uc0b0\uc131 \ud5a5\uc0c1 \ud301<\/h3>\n<ol style=\"margin-bottom: 1em;padding-left: 2em\">\n<li style=\"margin-bottom: 0.5em\"><code style=\"background-color: #f4f4f4;padding: 2px 6px;border-radius: 3px;font-family: 'Courier New', monospace;font-size: 0.9em\">crit<\/code> \ud0dc\uadf8\ub85c \ud06c\ub9ac\ud2f0\uceec \uacbd\ub85c \uac15\uc870<\/li>\n<li style=\"margin-bottom: 0.5em\"><code style=\"background-color: #f4f4f4;padding: 2px 6px;border-radius: 3px;font-family: 'Courier New', monospace;font-size: 0.9em\">done<\/code>, <code style=\"background-color: #f4f4f4;padding: 2px 6px;border-radius: 3px;font-family: 'Courier New', monospace;font-size: 0.9em\">active<\/code>, <code style=\"background-color: #f4f4f4;padding: 2px 6px;border-radius: 3px;font-family: 'Courier New', monospace;font-size: 0.9em\">crit<\/code>\uc73c\ub85c \uc9c4\ud589 \uc0c1\ud0dc \ud45c\uae30<\/li>\n<li style=\"margin-bottom: 0.5em\">\uc139\uc158 \ubd84\ud560\ub85c \ubaa8\ub4c8\ubcc4 \uac00\uc2dc\uc131 \ud655\ubcf4<\/li>\n<\/ol>\n<hr>\n<h2 style=\"font-size: 1.5em;font-weight: bold;margin-top: 0.8em;margin-bottom: 0.4em\">\ud83e\udde9 4. \ud074\ub798\uc2a4 \ub2e4\uc774\uc5b4\uadf8\ub7a8 (Class Diagram) : OOP \uc124\uacc4\uc758 \uccad\uc0ac\uc9c4<\/h2>\n<p style=\"margin-bottom: 1em;line-height: 1.8\"><strong>\uc2dc\uc2a4\ud15c\uc758 \uc815\uc801 \uad6c\uc870\ub97c \ud55c\ub208\uc5d0 \ubd84\uc11d<\/strong><\/p>\n<h3 style=\"font-size: 1.25em;font-weight: bold;margin-top: 0.6em;margin-bottom: 0.3em\">\ud83d\udcd0 \uad00\uacc4 \ud45c\ud604 \uc2ec\ud654 \uae30\uc220<\/h3>\n<pre style=\"background-color: #f4f4f4;padding: 1em;border-radius: 5px;margin-bottom: 1em\"><code style=\"font-family: 'Courier New', monospace;font-size: 0.9em\" class=\"language-mermaid\">classDiagram\n    class User {\n        +String id\n        +String name\n        +verifyPassword()\n    }\n    \n    class Admin {\n        +String department\n        +manageUsers()\n    }\n    \n    User &lt;|-- Admin : \uc0c1\uc18d\n    User &quot;1&quot; --&gt; &quot;*&quot; Post : \ucef4\ud3ec\uc9c0\uc158\n<\/code><\/pre>\n<h3 style=\"font-size: 1.25em;font-weight: bold;margin-top: 0.6em;margin-bottom: 0.3em\">\ud83d\udd0d \uc2ec\ubcfc \uc758\ubbf8 \ud574\ub3c5<\/h3>\n<ul style=\"margin-bottom: 1em;padding-left: 2em\">\n<li style=\"margin-bottom: 0.5em\"><code style=\"background-color: #f4f4f4;padding: 2px 6px;border-radius: 3px;font-family: 'Courier New', monospace;font-size: 0.9em\">+<\/code> : public<\/li>\n<li style=\"margin-bottom: 0.5em\"><code style=\"background-color: #f4f4f4;padding: 2px 6px;border-radius: 3px;font-family: 'Courier New', monospace;font-size: 0.9em\">-<\/code> : private<\/li>\n<li style=\"margin-bottom: 0.5em\"><code style=\"background-color: #f4f4f4;padding: 2px 6px;border-radius: 3px;font-family: 'Courier New', monospace;font-size: 0.9em\">#<\/code> : protected<\/li>\n<li style=\"margin-bottom: 0.5em\"><code style=\"background-color: #f4f4f4;padding: 2px 6px;border-radius: 3px;font-family: 'Courier New', monospace;font-size: 0.9em\">*<\/code> : \ub2e4\uc911\uc131(n multiplicity)<\/li>\n<li style=\"margin-bottom: 0.5em\"><code style=\"background-color: #f4f4f4;padding: 2px 6px;border-radius: 3px;font-family: 'Courier New', monospace;font-size: 0.9em\">&lt;|--<\/code> : \uc0c1\uc18d<\/li>\n<li style=\"margin-bottom: 0.5em\"><code style=\"background-color: #f4f4f4;padding: 2px 6px;border-radius: 3px;font-family: 'Courier New', monospace;font-size: 0.9em\">o--<\/code> : \uc9d1\ud569<\/li>\n<li style=\"margin-bottom: 0.5em\"><code style=\"background-color: #f4f4f4;padding: 2px 6px;border-radius: 3px;font-family: 'Courier New', monospace;font-size: 0.9em\">*--<\/code> : \ucef4\ud3ec\uc9d3<\/li>\n<\/ul>\n<hr>\n<h2 style=\"font-size: 1.5em;font-weight: bold;margin-top: 0.8em;margin-bottom: 0.4em\">\ud83d\uddc3\ufe0f 5. ER \ub2e4\uc774\uc5b4\uadf8\ub7a8 (Entity Relationship Diagram) : \ub370\uc774\ud130 \ubaa8\ub378\ub9c1\uc758 \uad50\uacfc\uc11c<\/h2>\n<p style=\"margin-bottom: 1em;line-height: 1.8\"><strong>\ub370\uc774\ud130\ubca0\uc774\uc2a4 \uc2a4\ud0a4\ub9c8 \uc124\uacc4\uc758 \ud544\uc218 \ub3c4\uad6c<\/strong><\/p>\n<h3 style=\"font-size: 1.25em;font-weight: bold;margin-top: 0.6em;margin-bottom: 0.3em\">\ud83e\udde0 \uc608\uc2dc : \uc628\ub77c\uc778 \uc11c\uc810 \ubaa8\ub378<\/h3>\n<pre style=\"background-color: #f4f4f4;padding: 1em;border-radius: 5px;margin-bottom: 1em\"><code style=\"font-family: 'Courier New', monospace;font-size: 0.9em\" class=\"language-mermaid\">erDiagram\n    CUSTOMER ||--o{ ORDER : &quot;places&quot;\n    ORDER ||--|{ LINE-ITEM : &quot;contains&quot;\n    BOOK }|..|{ BOOK-AUTHOR : &quot;written_by&quot;\n    AUTHOR ||--o{ BOOK-AUTHOR : &quot;is_author&quot;\n\n    CUSTOMER {\n        string name\n        string email PK\n    }\n    BOOK {\n        string ISBN PK\n        string title\n    }\n<\/code><\/pre>\n<h3 style=\"font-size: 1.25em;font-weight: bold;margin-top: 0.6em;margin-bottom: 0.3em\">\u2705 \ubca0\uc2a4\ud2b8 \ud504\ub799\ud2f0\uc2a4<\/h3>\n<ol style=\"margin-bottom: 1em;padding-left: 2em\">\n<li style=\"margin-bottom: 0.5em\"><strong>\uad00\uacc4 \uce74\ub514\ub110\ub9ac\ud2f0<\/strong> \uc815\ud655 \ud45c\uae30\n<ul style=\"margin-bottom: 1em;padding-left: 2em\">\n<li style=\"margin-bottom: 0.5em\"><code style=\"background-color: #f4f4f4;padding: 2px 6px;border-radius: 3px;font-family: 'Courier New', monospace;font-size: 0.9em\">||--||<\/code> : One-to-One<\/li>\n<li style=\"margin-bottom: 0.5em\"><code style=\"background-color: #f4f4f4;padding: 2px 6px;border-radius: 3px;font-family: 'Courier New', monospace;font-size: 0.9em\">||--o{<\/code> : One-to-Many<\/li>\n<\/ul>\n<\/li>\n<li style=\"margin-bottom: 0.5em\"><strong>\uae30\ubcf8\ud0a4(PK) \ud45c\uc2dc<\/strong> : \uc18d\uc131 \ub4a4\uc5d0 PK \uba85\uc2dc<\/li>\n<li style=\"margin-bottom: 0.5em\"><strong>\uc57d\ud55c \uac1c\uccb4<\/strong> : <code style=\"background-color: #f4f4f4;padding: 2px 6px;border-radius: 3px;font-family: 'Courier New', monospace;font-size: 0.9em\">BOOK-AUTHOR<\/code>\ucc98\ub7fc \ubcf5\ud569 \ud0a4 \uc9d1\uc911<\/li>\n<\/ol>\n<hr>\n<h2 style=\"font-size: 1.5em;font-weight: bold;margin-top: 0.8em;margin-bottom: 0.4em\">\ud83d\udcca 6. \ud30c\uc774 \ucc28\ud2b8 (Pie Chart) : \ub370\uc774\ud130 \ubd84\ud3ec\uc758 \uc21c\uac04\ud3ec\ucc29<\/h2>\n<p style=\"margin-bottom: 1em;line-height: 1.8\"><strong>\ubc31\ubd84\uc728 \uae30\ubc18 \ud1b5\uacc4 \uc2dc\uac01\ud654\uc758 \ub300\ud45c \uc8fc\uc790<\/strong><\/p>\n<h3 style=\"font-size: 1.25em;font-weight: bold;margin-top: 0.6em;margin-bottom: 0.3em\">\ud83c\udfaf \uc0ac\uc6a9\uc790 \uc5f0\ub839\ub300 \ubd84\uc11d \uc608\uc81c<\/h3>\n<pre style=\"background-color: #f4f4f4;padding: 1em;border-radius: 5px;margin-bottom: 1em\"><code style=\"font-family: 'Courier New', monospace;font-size: 0.9em\" class=\"language-mermaid\">pie title \uc0ac\uc6a9\uc790 \uc5f0\ub839 \ubd84\ud3ec\n    &quot;10\ub300&quot; : 15\n    &quot;20\ub300&quot; : 45\n    &quot;30\ub300&quot; : 30\n    &quot;40\ub300+&quot; : 10\n<\/code><\/pre>\n<h3 style=\"font-size: 1.25em;font-weight: bold;margin-top: 0.6em;margin-bottom: 0.3em\">\u26a0\ufe0f \ud55c\uacc4\uc810\uacfc \ubcf4\uc644 \ubc29\uc548<\/h3>\n<ul style=\"margin-bottom: 1em;padding-left: 2em\">\n<li style=\"margin-bottom: 0.5em\"><strong>\ubcf5\uc7a1 \ubd84\ud560 \ubb38\uc81c<\/strong> : \ud56d\ubaa9 5\uac1c \ucd08\uacfc \uc2dc \uac00\ub3c5\uc131 \uc800\ud558 \u2192 \ub9c9\ub300\ucc28\ud2b8 \uc804\ud658 \uad8c\uace0<\/li>\n<li style=\"margin-bottom: 0.5em\"><strong>\ub3d9\uc801 \ub370\uc774\ud130 \ud55c\uacc4<\/strong> : \uc2e4\uc2dc\uac04 \uc5c5\ub370\uc774\ud2b8 \ubd88\uac00 \u2192 \ub77c\uc774\ube0c \ucc28\ud2b8 \ub77c\uc774\ube0c\ub7ec\ub9ac\uc640 \ubcd1\ud589 \uc0ac\uc6a9<\/li>\n<\/ul>\n<hr>\n<h2 style=\"font-size: 1.5em;font-weight: bold;margin-top: 0.8em;margin-bottom: 0.4em\">\ud83d\udd12 7. \uc2a4\ud14c\uc774\ud2b8 \ub2e4\uc774\uc5b4\uadf8\ub7a8 (State Diagram) : \uc0c1\ud0dc \uae30\uacc4\uc758 \ud589\ub3d9 \ud328\ud134 \ud574\uc11d<\/h2>\n<p style=\"margin-bottom: 1em;line-height: 1.8\"><strong>\ubcf5\uc7a1\ud55c \uc0c1\ud0dc \uc804\uc774 \ub85c\uc9c1 \ub514\ubc84\uae45\uc5d0 \ud6a8\uacfc\uc801<\/strong><\/p>\n<h3 style=\"font-size: 1.25em;font-weight: bold;margin-top: 0.6em;margin-bottom: 0.3em\">\ud83d\udea6 \uacb0\uc81c \uc0c1\ud0dc \uba38\uc2e0 \ubaa8\ub378\ub9c1<\/h3>\n<pre style=\"background-color: #f4f4f4;padding: 1em;border-radius: 5px;margin-bottom: 1em\"><code style=\"font-family: 'Courier New', monospace;font-size: 0.9em\" class=\"language-mermaid\">stateDiagram-v2\n    [*] --&gt; Created\n    Created --&gt; Authorizing : process\n    Authorizing --&gt; Approved : success\n    Authorizing --&gt; Declined : failure\n    Approved --&gt; Capturing : confirm\n    Declined --&gt; [*]\n    Capturing --&gt; Completed\n<\/code><\/pre>\n<h3 style=\"font-size: 1.25em;font-weight: bold;margin-top: 0.6em;margin-bottom: 0.3em\">\ud83d\udca1 \ud575\uc2ec \uc804\ub7b5<\/h3>\n<ol style=\"margin-bottom: 1em;padding-left: 2em\">\n<li style=\"margin-bottom: 0.5em\"><code style=\"background-color: #f4f4f4;padding: 2px 6px;border-radius: 3px;font-family: 'Courier New', monospace;font-size: 0.9em\">[*]<\/code>\uc73c\ub85c \uc2dc\uc791\/\uc885\ub8cc \uc0c1\ud0dc \ud45c\uae30<\/li>\n<li style=\"margin-bottom: 0.5em\"><code style=\"background-color: #f4f4f4;padding: 2px 6px;border-radius: 3px;font-family: 'Courier New', monospace;font-size: 0.9em\">state<\/code> \uc911\ucca9\uc73c\ub85c \ubcf5\ud569 \uc0c1\ud0dc \ud45c\ud604<\/li>\n<li style=\"margin-bottom: 0.5em\"><code style=\"background-color: #f4f4f4;padding: 2px 6px;border-radius: 3px;font-family: 'Courier New', monospace;font-size: 0.9em\">fork<\/code>\/<code style=\"background-color: #f4f4f4;padding: 2px 6px;border-radius: 3px;font-family: 'Courier New', monospace;font-size: 0.9em\">join<\/code>\uc73c\ub85c \ubcd1\ub82c \uc0c1\ud0dc \uad00\ub9ac<\/li>\n<\/ol>\n<hr>\n<h2 style=\"font-size: 1.5em;font-weight: bold;margin-top: 0.8em;margin-bottom: 0.4em\">\ubd80\ub85d : \ucd94\uac00 \ucc28\ud2b8 \ub9c8\uc2a4\ud130\ub9c1<\/h2>\n<ul style=\"margin-bottom: 1em;padding-left: 2em\">\n<li style=\"margin-bottom: 0.5em\"><strong>UI \uc640\uc774\uc5b4\ud504\ub808\uc784<\/strong> : <code style=\"background-color: #f4f4f4;padding: 2px 6px;border-radius: 3px;font-family: 'Courier New', monospace;font-size: 0.9em\">mindmap<\/code>\uc73c\ub85c \uc0ac\uc6a9\uc131 \ud14c\uc2a4\ud2b8 \uc2dc\ub098\ub9ac\uc624 \uc791\uc131<\/li>\n<li style=\"margin-bottom: 0.5em\"><strong>\uae43 \uadf8\ub798\ud504(Git Graph)<\/strong> : <code style=\"background-color: #f4f4f4;padding: 2px 6px;border-radius: 3px;font-family: 'Courier New', monospace;font-size: 0.9em\">gitGraph<\/code> \uad6c\ubb38\uc73c\ub85c \ube0c\ub79c\uce58 \uc804\ub7b5 \uc2dc\uac01\ud654<\/li>\n<li style=\"margin-bottom: 0.5em\"><strong>\uc0ac\uc6a9\uc790 \uc800\ub2c8 \ub9f5<\/strong> : <code style=\"background-color: #f4f4f4;padding: 2px 6px;border-radius: 3px;font-family: 'Courier New', monospace;font-size: 0.9em\">journey<\/code>\ub85c CX(Customer Experience) \uacbd\ub85c \ubd84\uc11d<\/li>\n<\/ul>\n<hr>\n<h2 style=\"font-size: 1.5em;font-weight: bold;margin-top: 0.8em;margin-bottom: 0.4em\">\uacb0\ub860 : \uba54\ub9c8\uc774\ub4dc \ucc28\ud2b8\ub85c \uc5c5\ubb34 \ud601\uc2e0\ud558\ub77c<\/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\">\u201c\ucd5c\uace0\uc758 \ub2e4\uc774\uc5b4\uadf8\ub7a8\uc740 \ucf54\ub4dc \uc790\uccb4\ucc98\ub7fc \uad00\ub9ac \uac00\ub2a5\ud574\uc57c \ud55c\ub2e4\u201d<\/p>\n<\/blockquote>\n<p style=\"margin-bottom: 1em;line-height: 1.8\">\uba54\ub9c8\uc774\ub4dc\uc758 \uc9c4\uc815\ud55c \uac00\uce58\ub294 <strong>\ubb38\uc11c\ud654\uc640 \uac1c\ubc1c \ud504\ub85c\uc138\uc2a4\uc758 \ud1b5\ud569<\/strong>\uc5d0 \uc788\uc2b5\ub2c8\ub2e4. \uc624\ub298 \ud559\uc2b5\ud55c \ud575\uc2ec \ucc28\ud2b8\ub4e4\uc744 \ud1b5\ud574:<\/p>\n<ol style=\"margin-bottom: 1em;padding-left: 2em\">\n<li style=\"margin-bottom: 0.5em\"><strong>\uae30\uc220 \ubb38\uc11c\uc758 \uc0dd\uba85\uc8fc\uae30<\/strong>\ub97c \ubc84\uc804 \ucee8\ud2b8\ub864 \uc2dc\uc2a4\ud15c\uacfc \ud1b5\ud569 \uad00\ub9ac\ud558\uc138\uc694<\/li>\n<li style=\"margin-bottom: 0.5em\"><strong>\ub9ac\ub4dc \ud0c0\uc784\uc744 60% \uc774\uc0c1 \ub2e8\ucd95<\/strong>\ud558\uba70 \uc2e0\uc18d\ud55c \ud504\ub85c\ud1a0\ud0c0\uc774\ud551\uc744 \uacbd\ud5d8\ud558\uc138\uc694<\/li>\n<li style=\"margin-bottom: 0.5em\"><strong>\ub2e4\uc774\uc5b4\uadf8\ub7a8 \uc5c5\ub370\uc774\ud2b8 \ubcd1\ubaa9 \ud604\uc0c1<\/strong>\uc5d0\uc11c \ubc97\uc5b4\ub098 \ud300 \ud611\uc5c5 \ud6a8\uc728\uc131\uc744 \uadf9\ub300\ud654\ud558\uc138\uc694<\/li>\n<\/ol>\n<p style=\"margin-bottom: 1em;line-height: 1.8\"><strong>\uc2e4\ucc9c\uc744 \uc704\ud55c \uccab\uac78\uc74c:<\/strong><br \/>\n\u2611\ufe0f \uae30\uc874 \ud504\ub85c\uc81d\ud2b8\uc758 README.md\uc5d0 \ud50c\ub85c\uc6b0\ucc28\ud2b8 \uc801\uc6a9<br \/>\n\u2611\ufe0f \ub0b4\uc77c\uc758 \ud68c\uc758 \uc790\ub8cc\uc5d0 \uc2dc\ud000\uc2a4 \ub2e4\uc774\uc5b4\uadf8\ub7a8 \ud3ec\ud568<br \/>\n\u2611\ufe0f \ud300\uc6d0\ub4e4\uc5d0\uac8c \uac04\ud2b8 \ucc28\ud2b8 \uacf5\uc720\ud558\uc5ec \uc2a4\ud504\ub9b0\ud2b8 \uac00\uc2dc\ud654<\/p>\n<p style=\"margin-bottom: 1em;line-height: 1.8\"><a style=\"color: #0066cc;text-decoration: none\" href=\"https:\/\/mermaid.live\/\">\uba54\ub9c8\uc774\ub4dc \uacf5\uc2dd \ub77c\uc774\ube0c \uc5d0\ub514\ud130<\/a>\uc5d0\uc11c \uc9c0\uae08 \ubc14\ub85c \uc2e4\ud5d8\uc744 \uc2dc\uc791\ud574 \ubcf4\uc138\uc694. \ub2e8\uc21c\ud55c \uadf8\ub9bc\uc774 \uc544\ub2cc <strong>\uc0dd\uc0b0\uc131\uc758 \ubb34\uae30<\/strong>\ub85c \uba54\ub9c8\uc774\ub4dc\ub97c \ud65c\uc6a9\ud560 \ub54c \uac1c\ubc1c \uc6cc\ud06c\ud50c\ub85c\uc6b0\uc758 \ud601\uc2e0\uc774 \uc2e4\ud604\ub429\ub2c8\ub2e4.<\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>\ud83d\udcca \uba54\ub9c8\uc774\ub4dc \ucc28\ud2b8 \uc644\ubcbd \uac00\uc774\ub4dc : \uac1c\ubc1c\uc790\uac00 \ubc18\ub4dc\uc2dc \uc54c\uc544\uc57c \ud560 7\uac00\uc9c0 \ub2e4\uc774\uc5b4\uadf8\ub7a8 \ud65c\uc6a9\ubc95 \uc11c\ub860 : \ubb38\uc11c\ud654\uc758 \ud601\uc2e0\uc790, \uba54\ub9c8\uc774\ub4dc \ucc28\ud2b8 \ubcf5\uc7a1\ud55c \uc18c\ud504\ud2b8\uc6e8\uc5b4 \uc544\ud0a4\ud14d\ucc98\ub97c \uc124\uba85\ud558\ub294 \ub370 \uc2a4\ucf00\uce58\ubd80\ud130 \uc2dc\uc791\ud574\uc57c \ud588\ub358 \uc801\uc774 \uc788\ub098\uc694? \ud611\uc5c5 \uacfc\uc815\uc5d0\uc11c \uc624\ub79c \uc2dc\uac04\uc744 \ub4e4\uc5ec \ub9cc\ub4e0 \ub2e4\uc774\uc5b4\uadf8\ub7a8\uc774 \ubc84\uc804 \uc5c5\ub370\uc774\ud2b8 \ud6c4 \uc4f8\ubaa8\uc5c6\uac8c \ub41c \uacbd\ud5d8\uc740\uc694? \uc9c1\uad00\uc801\uc774\uace0 \ubc84\uc804 \uad00\ub9ac\uac00 \uac00\ub2a5\ud55c \ub2e4\uc774\uc5b4\uadf8\ub7a8 \uae30\uc220\uc5d0 \ub300\ud55c \uac1c\ubc1c\uc790\ub4e4\uc758 \ub2c8\uc988\ub294 \uacc4\uc18d\ud574\uc11c \uc99d\uac00\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4. \uc774\ub7f0&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-5399","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\/5399","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=5399"}],"version-history":[{"count":1,"href":"https:\/\/blog.ggonggong.com\/index.php?rest_route=\/wp\/v2\/posts\/5399\/revisions"}],"predecessor-version":[{"id":5400,"href":"https:\/\/blog.ggonggong.com\/index.php?rest_route=\/wp\/v2\/posts\/5399\/revisions\/5400"}],"wp:attachment":[{"href":"https:\/\/blog.ggonggong.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=5399"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.ggonggong.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=5399"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.ggonggong.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=5399"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}