{"id":32,"date":"2026-03-05T15:17:17","date_gmt":"2026-03-05T15:17:17","guid":{"rendered":"https:\/\/blog.rebalai.com\/ko\/2026\/03\/05\/ai-pipeline-lessons\/"},"modified":"2026-03-09T04:38:51","modified_gmt":"2026-03-09T04:38:51","slug":"ai-pipeline-lessons","status":"publish","type":"post","link":"https:\/\/blog.rebalai.com\/ko\/2026\/03\/05\/ai-pipeline-lessons\/","title":{"rendered":"\ud504\ub85c\ub355\uc158 AI \ud30c\uc774\ud504\ub77c\uc778 \uad6c\ucd95: 1\ub9cc \ud68c \uc774\uc0c1 \uc2e4\ud589\uc5d0\uc11c \ubc30\uc6b4 \uac83\ub4e4"},"content":{"rendered":"<p><script type=\"application\/ld+json\">\n{\n  \"@context\": \"https:\/\/schema.org\",\n  \"@type\": \"BlogPosting\",\n  \"headline\": \"\ud504\ub85c\ub355\uc158 AI <a href=\"https:\/\/blog.rebalai.com\/ko\/2026\/03\/08\/ai-1\/\" title=\"\ud30c\uc774\ud504\ub77c\uc778 <a href=\"https:\/\/blog.rebalai.com\/ko\/2026\/03\/08\/ai-1\/\" title=\"\uad6c\ucd95: 1\ub9cc \ud68c \uc774\uc0c1\">\uad6c\ucd95: 1\ub9cc \ud68c \uc774\uc0c1<\/a> \uc2e4\ud589\uc5d0\uc11c\">\ud30c\uc774\ud504\ub77c\uc778 <a href=\"https:\/\/blog.rebalai.com\/ko\/2026\/03\/08\/ai-1\/\" title=\"\uad6c\ucd95: 1\ub9cc \ud68c\">\uad6c\ucd95: 1\ub9cc \ud68c<\/a> \uc774\uc0c1 \uc2e4\ud589\uc5d0\uc11c<\/a> \ubc30\uc6b4 \uac83\ub4e4\",\n  \"description\": \"\uc791\ub144 11\uc6d4, \uc0c8\ubcbd 2\uc2dc\uc5d0 \uc2ac\ub799 \uc54c\ub9bc\uc774 \uc3df\uc544\uc84c\ub2e4. \ucf58\ud150\uce20 \ubd84\ub958 \ud30c\uc774\ud504\ub77c\uc778\uc774 6\uc2dc\uac04 \ub3d9\uc548 \ub3cc\uc544\uac00\uba74\uc11c OpenAI API \ube44\uc6a9\uc73c\ub85c $340\uc744 \ub0a0\ub838\ub294\ub370, \uacb0\uacfc\ubb3c\uc758 70%\uac00 \uc644\uc804\ud788 \uc5c9\ud130\ub9ac\uc600\ub2e4.\",\n  \"url\": \"https:\/\/blog.rebalai.com\/ko\/2026\/03\/05\/ai-pipeline-lessons\/\",\n  \"datePublished\": \"2026-03-05T15:17:17\",\n  \"dateModified\": \"2026-03-05T17:39:35\",\n  \"inLanguage\": \"ko_KR\",\n  \"author\": {\n    \"@type\": \"Organization\",\n    \"name\": \"RebalAI\",\n    \"url\": \"https:\/\/blog.rebalai.com\/ko\/\"\n  },\n  \"publisher\": {\n    \"@type\": \"Organization\",\n    \"name\": \"RebalAI\",\n    \"logo\": {\n      \"@type\": \"ImageObject\",\n      \"url\": \"https:\/\/blog.rebalai.com\/wp-content\/uploads\/logo.png\"\n    }\n  },\n  \"mainEntityOfPage\": {\n    \"@type\": \"WebPage\",\n    \"@id\": \"https:\/\/blog.rebalai.com\/ko\/2026\/03\/05\/ai-pipeline-lessons\/\"\n  }\n}\n<\/script><\/p>\n<p>\uc791\ub144 11\uc6d4, \uc0c8\ubcbd 2\uc2dc\uc5d0 \uc2ac\ub799 \uc54c\ub9bc\uc774 \uc3df\uc544\uc84c\ub2e4. \ucf58\ud150\uce20 \ubd84\ub958 \ud30c\uc774\ud504\ub77c\uc778\uc774 6\uc2dc\uac04 \ub3d9\uc548 \ub3cc\uc544\uac00\uba74\uc11c OpenAI API \ube44\uc6a9\uc73c\ub85c $340\uc744 \ub0a0\ub838\ub294\ub370, \uacb0\uacfc\ubb3c\uc758 70%\uac00 \uc644\uc804\ud788 \uc5c9\ud130\ub9ac\uc600\ub2e4. \uc7ac\uc2dc\ub3c4 \ub85c\uc9c1\uc5d0 \ubc84\uadf8\uac00 \uc788\uc5b4\uc11c \uc2e4\ud328\ud55c \uc694\uccad\ub4e4\uc744 \uacc4\uc18d \ubc18\ubcf5\ud558\uace0 \uc788\uc5c8\uace0, \ub098\ub294 \uadf8\uac78 \uc544\uce68\uc5d0\uc57c \ubc1c\uacac\ud588\ub2e4.<\/p>\n<p>\uadf8\uac8c \ub0b4\uac00 AI \ud30c\uc774\ud504\ub77c\uc778\uc744 &#8220;\uadf8\ub0e5 \ub3cc\uc544\uac00\uac8c&#8221; \ub9cc\ub4dc\ub294 \uac83\uacfc &#8220;<a href=\"https:\/\/m.do.co\/c\/06956e5e2802\" title=\"DigitalOcean \ud504\ub85c\ub355\uc158 \ud074\ub77c\uc6b0\ub4dc\" rel=\"nofollow sponsored\" target=\"_blank\">\ud504\ub85c\ub355\uc158<\/a>\uc5d0\uc11c \uc2e4\uc81c\ub85c \uc2e0\ub8b0\ud560 \uc218 \uc788\uac8c&#8221; \ub9cc\ub4dc\ub294 \uac83\uc758 \ucc28\uc774\ub97c \uc81c\ub300\ub85c \ubc30\uc6b4 \uc2dc\uc791\uc810\uc774\uc5c8\ub2e4.<\/p>\n<p>\uc9c0\uae08\uae4c\uc9c0 \uc774 \ud30c\uc774\ud504\ub77c\uc778\uc73c\ub85c 1\ub9cc 5\ucc9c \ubc88 \uc774\uc0c1 \uc2e4\ud589\uc744 \ucc98\ub9ac\ud588\ub2e4. \ubb38\uc11c \ubd84\ub958, \ucf54\ub4dc \ub9ac\ubdf0 \uc790\ub3d9\ud654, \ub0b4\ubd80 Q&amp;A \uc2dc\uc2a4\ud15c \ub4f1 \uc5ec\ub7ec \uc6a9\ub3c4\ub85c. \uadf8 \uacfc\uc815\uc5d0\uc11c \uc2e4\ud328\ub3c4 \ub9ce\uc774 \ud588\uace0, \ube44\uc6a9\ub3c4 \uaf64 \ub0a0\ub838\uace0, \ud55c \ubc88\uc740 \ubaa8\ub378 \ud658\uac01 \ub54c\ubb38\uc5d0 <a href=\"https:\/\/m.do.co\/c\/06956e5e2802\" title=\"DigitalOcean \ud504\ub85c\ub355\uc158 \ud074\ub77c\uc6b0\ub4dc\" rel=\"nofollow sponsored\" target=\"_blank\">\ud504\ub85c\ub355\uc158<\/a> \ub370\uc774\ud130\uac00 \uc798\ubabb \ubd84\ub958\ub418\ub294 \uc0ac\uace0\ub3c4 \uc788\uc5c8\ub2e4. \uc774 \uae00\uc740 \uadf8 \uacbd\ud5d8\ub4e4\uc744 \uc815\ub9ac\ud55c \uac83\uc774\ub2e4.<\/p>\n<h2>\uc7ac\uc2dc\ub3c4 \ub85c\uc9c1: &#8220;\uc9c0\uc218 \ubc31\uc624\ud504\uba74 \ub418\uc796\uc544\uc694&#8221;\ub77c\uace0 \uc0dd\uac01\ud588\ub358 \ub098\uc5d0\uac8c<\/h2>\n<p>\ucc98\uc74c\uc5d0\ub294 \ub2e8\uc21c\ud588\ub2e4. API \ud638\ucd9c\uc774 \uc2e4\ud328\ud558\uba74 \uc7ac\uc2dc\ub3c4. <code>tenacity<\/code> \ub77c\uc774\ube0c\ub7ec\ub9ac \ubd99\uc774\uace0, \uc9c0\uc218 \ubc31\uc624\ud504 \uc124\uc815\ud558\uace0, \ub05d\uc774\ub77c\uace0 \uc0dd\uac01\ud588\ub2e4.<\/p>\n<pre><code class=\"language-python\">from tenacity import retry, stop_after_attempt, wait_exponential\n\n@retry(\n    stop=stop_after_attempt(3),\n    wait=wait_exponential(multiplier=1, min=4, max=60)\n)\ndef call_llm(prompt: str) -&gt; str:\n    response = client.chat.completions.create(\n        model=&quot;gpt-4o&quot;,\n        messages=[{&quot;role&quot;: &quot;user&quot;, &quot;content&quot;: prompt}]\n    )\n    return response.choices[0].message.content\n<\/code><\/pre>\n<p>\ubb38\uc81c\ub294 \uc774\uac8c \ud2c0\ub9b0 \uac8c \uc544\ub2c8\ub77c \ubd88\uc644\uc804\ud558\ub2e4\ub294 \uac70\ub2e4. OpenAI \uc5d0\ub7ec\ub97c \uc804\ubd80 \uac19\uc740 \ubc29\uc2dd\uc73c\ub85c \ucc98\ub9ac\ud558\uba74 \uc548 \ub41c\ub2e4.<\/p>\n<p><code>RateLimitError<\/code>\ub294 \uc7ac\uc2dc\ub3c4\ud574\uc57c \ud55c\ub2e4. \ud558\uc9c0\ub9cc <code>InvalidRequestError<\/code>\ub294? \uc7ac\uc2dc\ub3c4\ud574\ubd24\uc790 \uc18c\uc6a9\uc5c6\ub2e4. \ud504\ub86c\ud504\ud2b8\uac00 \ucee8\ud14d\uc2a4\ud2b8 \uae38\uc774\ub97c \ucd08\uacfc\ud588\uac70\ub098 \uc798\ubabb\ub41c \ud30c\ub77c\ubbf8\ud130\ub97c \ubcf4\ub0b8 \uac70\ub2c8\uae4c. \uc7ac\uc2dc\ub3c4\ud558\uba74 \uadf8\ub0e5 \ub3c8\ub9cc \ub354 \uc4f0\ub294 \uac70\ub2e4. \uadf8 \uc0c8\ubcbd 2\uc2dc \uc0ac\uace0\uac00 \uc815\ud655\ud788 \uc774\uac70\uc600\ub2e4 \u2014 \uc798\ubabb \uc124\uacc4\ub41c \ud504\ub86c\ud504\ud2b8\uac00 <code>context_length_exceeded<\/code> \uc5d0\ub7ec\ub97c \uacc4\uc18d \uc77c\uc73c\ud0a4\ub294\ub370, \uc7ac\uc2dc\ub3c4 \ub85c\uc9c1\uc774 \uc774\uac78 \uad6c\ubd84\ud558\uc9c0 \ubabb\ud558\uace0 \uacc4\uc18d \ub3cc\ub838\ub2e4.<\/p>\n<p>OpenAI \uc5d0\ub7ec\ub97c \uc81c\ub300\ub85c \ubd84\ub958\ud558\uba74 \uc774\ub807\ub2e4:<\/p>\n<ul>\n<li><strong>\uc7ac\uc2dc\ub3c4 \uac00\ub2a5<\/strong>: <code>RateLimitError<\/code>, <code>APITimeoutError<\/code>, <code>APIConnectionError<\/code>, <code>InternalServerError<\/code> (503)<\/li>\n<li><strong>\uc7ac\uc2dc\ub3c4 \ubd88\uac00<\/strong>: <code>InvalidRequestError<\/code>, <code>AuthenticationError<\/code>, <code>PermissionDeniedError<\/code><\/li>\n<li><strong>\uc870\uac74\ubd80<\/strong>: <code>BadRequestError<\/code> \u2014 \ub0b4\uc6a9\uc744 \ubcf4\uace0 \ud310\ub2e8\ud574\uc57c \ud568<\/li>\n<\/ul>\n<p>\uc2e4\uc81c\ub85c \uc4f0\ub294 \ucf54\ub4dc\ub294 \uc774\ub807\uac8c \uc0dd\uacbc\ub2e4:<\/p>\n<pre><code class=\"language-python\">import openai\nfrom tenacity import retry, stop_after_attempt, wait_exponential, retry_if_exception_type\n\nRETRYABLE_EXCEPTIONS = (\n    openai.RateLimitError,\n    openai.APITimeoutError,\n    openai.APIConnectionError,\n    openai.InternalServerError,\n)\n\n@retry(\n    retry=retry_if_exception_type(RETRYABLE_EXCEPTIONS),\n    stop=stop_after_attempt(4),\n    wait=wait_exponential(multiplier=2, min=5, max=120),\n    reraise=True\n)\ndef call_llm(prompt: str, model: str = &quot;gpt-4o-mini&quot;) -&gt; str:\n    try:\n        response = client.chat.completions.create(\n            model=model,\n            messages=[{&quot;role&quot;: &quot;user&quot;, &quot;content&quot;: prompt}],\n            timeout=30.0  # \uc774\uac70 \uc5c6\uc73c\uba74 \ubb34\ud55c\uc815 \uae30\ub2e4\ub9b0\ub2e4\n        )\n        return response.choices[0].message.content\n    except openai.BadRequestError as e:\n        # context_length_exceeded\ub294 \uc7ac\uc2dc\ub3c4 \ubd88\uac00 \u2014 \uc989\uc2dc \ud3ec\uae30\n        if &quot;context_length_exceeded&quot; in str(e):\n            raise ValueError(f&quot;\ud504\ub86c\ud504\ud2b8\uac00 \ub108\ubb34 \uae41\ub2c8\ub2e4: {len(prompt)} chars&quot;) from e\n        raise\n<\/code><\/pre>\n<p><code>timeout=30.0<\/code>\uc774 \uc911\uc694\ud558\ub2e4. \ucc98\uc74c\uc5d0 \uc774\uac78 \ub2ec\uc9c0 \uc54a\uc558\ub294\ub370, OpenAI API\uac00 \uac00\ub054 \uc218\uc2ed \ucd08\uc529 \uc751\ub2f5\uc744 \uc548 \ud558\ub294 \uacbd\uc6b0\uac00 \uc788\ub2e4. \ud2b9\ud788 \uc0c8\ubcbd \uc2dc\uac04\ub300\uc5d0. \ud0c0\uc784\uc544\uc6c3 \uc5c6\uc73c\uba74 \uc6cc\ucee4\uac00 \uac70\uae30 \ubb36\uc5ec\uc11c \uc544\ubb34\uac83\ub3c4 \ubabb \ud558\uac8c \ub41c\ub2e4. \uc2e4\uc81c\ub85c \uc774 \ub54c\ubb38\uc5d0 \ubc30\uce58 \uc791\uc5c5\uc774 \uba87 \uc2dc\uac04\uc529 \uba48\ucdb0\uc788\ub358 \uc801\uc774 \uc788\ub2e4.<\/p>\n<p>\uc2e4\uc6a9\uc801\uc778 \uae30\uc900: \uc7ac\uc2dc\ub3c4 \ucd5c\ub300 \ud69f\uc218\ub294 4\ubc88\uc774\uba74 \ucda9\ubd84\ud558\ub2e4. \uadf8 \uc774\uc0c1\uc740 \ub300\ubd80\ubd84 \uc0c1\ud669\uc5d0\uc11c \ud6a8\uacfc\uac00 \uc5c6\uace0, \ub808\uc774\ud134\uc2dc\ub9cc \ub298\ub9b0\ub2e4.<\/p>\n<h2>\ube44\uc6a9\uc774 \ud3ed\ubc1c\ud558\ub294 \uc9c0\uc810 \uc138 \uac00\uc9c0<\/h2>\n<p>\uc194\uc9c1\ud788 \ub9d0\ud558\uba74, <a href=\"https:\/\/blog.rebalai.com\/ko\/2026\/03\/08\/ai-1\/\" title=\"AI \ud30c\uc774\ud504\ub77c\uc778\">AI \ud30c\uc774\ud504\ub77c\uc778<\/a> \ube44\uc6a9 \ucd5c\uc801\ud654\ub294 \ucc98\uc74c\uc5d4 \ub108\ubb34 \uacfc\uc18c\ud3c9\uac00\ud588\ub2e4. &#8220;\ud1a0\ud070 \uc880 \uc4f0\uaca0\uc9c0, \ubb50&#8221; \ud558\ub2e4\uac00 \uc6d4\ub9d0 \uccad\uad6c\uc11c \ubcf4\uace0 \uc815\uc2e0 \ucc28\ub838\ub2e4.<\/p>\n<p><strong>\uccab \ubc88\uc9f8 \u2014 \uc2dc\uc2a4\ud15c \ud504\ub86c\ud504\ud2b8 \uc911\ubcf5<\/strong><\/p>\n<p>\ubc30\uce58 \ucc98\ub9ac\ud560 \ub54c \uac19\uc740 \uc2dc\uc2a4\ud15c \ud504\ub86c\ud504\ud2b8\ub97c \ub9e4\ubc88 API\uc5d0 \ubcf4\ub0b4\ub294 \uc2e4\uc218\ub97c \ud55c\ub2e4. 100\uac1c \ubb38\uc11c\ub97c \ubd84\ub958\ud55c\ub2e4\uba74, \uc2dc\uc2a4\ud15c \ud504\ub86c\ud504\ud2b8\uac00 500 \ud1a0\ud070\uc774\ub77c\uace0 \ud560 \ub54c \uadf8\uac8c 100\ubc88 \ubc18\ubcf5\ub41c\ub2e4. OpenAI\uc758 Prompt Caching\uc744 \uc4f0\uba74 \uce90\uc2dc\ub41c \ud1a0\ud070\uc740 90% \ud560\uc778\ub41c\ub2e4 (gpt-4o \uae30\uc900, 2024\ub144 8\uc6d4\ubd80\ud130 \uc9c0\uc6d0). \uc544\uc9c1 \uc774\uac78 \uc548 \uc4f0\ub294 \ud300\uc774 \uc0dd\uac01\ubcf4\ub2e4 \ub9ce\ub2e4.<\/p>\n<p>\uc8fc\uc758\ud560 \uc810\uc740 \uce90\uc2f1\uc774 \uc790\ub3d9\uc73c\ub85c \ub418\uae34 \ud558\ub294\ub370, \ud504\ub86c\ud504\ud2b8\uc758 \uccab \ubc88\uc9f8 \ubd80\ubd84\uc774 1024 \ud1a0\ud070 \uc774\uc0c1\uc774\uc5b4\uc57c \uce90\uc2dc\uac00 \ud2b8\ub9ac\uac70\ub41c\ub2e4. \uc2dc\uc2a4\ud15c \ud504\ub86c\ud504\ud2b8\uac00 \uc9e7\uc73c\uba74 \ud6a8\uacfc\uac00 \uc5c6\ub2e4.<\/p>\n<p><strong>\ub450 \ubc88\uc9f8 \u2014 \ubaa8\ub378 \uc120\ud0dd<\/strong><\/p>\n<p>\ucc98\uc74c\uc5d0\ub294 \uc2b5\uad00\uc801\uc73c\ub85c gpt-4o\ub97c \ubaa8\ub4e0 \uc791\uc5c5\uc5d0 \uc37c\ub2e4. \ub098\uc911\uc5d0 A\/B \ud14c\uc2a4\ud2b8\ub97c \ud574\ubcf4\ub2c8 \ub2e8\uc21c \ubd84\ub958 \uc791\uc5c5\uc5d0\uc11c\ub294 gpt-4o-mini\uac00 \uc815\ud655\ub3c4\uac00 \uac70\uc758 \ube44\uc2b7\ud558\uba74\uc11c \ube44\uc6a9\uc740 15-20\ubc30 \uc800\ub834\ud588\ub2e4. \uc9c0\uae08\uc740 \uc791\uc5c5 \ubcf5\uc7a1\ub3c4\uc5d0 \ub530\ub77c \ubaa8\ub378\uc744 \ub098\ub220 \uc4f4\ub2e4:<\/p>\n<ul>\n<li>\ub2e8\uc21c \ubd84\ub958, \ud0a4\uc6cc\ub4dc \ucd94\ucd9c, \uac10\uc815 \ubd84\uc11d \u2192 gpt-4o-mini<\/li>\n<li>\ubcf5\uc7a1\ud55c \ucd94\ub860, \ucf54\ub4dc \ub9ac\ubdf0, \uae34 \ubb38\uc11c \uc694\uc57d \u2192 gpt-4o<\/li>\n<\/ul>\n<p>\uc774 \uc811\uadfc\ubc95\uc73c\ub85c \uc6d4 \ube44\uc6a9\uc744 \uc57d 60% \uc904\uc600\ub2e4. \ub2e8, &#8220;\ub2e8\uc21c\ud558\ub2e4&#8221;\ub294 \uae30\uc900\uc740 \uc9c1\uc811 \ud14c\uc2a4\ud2b8\ud574\ubd10\uc57c \ud55c\ub2e4. \ub098\ub294 \uac19\uc740 \uc785\ub825 50\uac1c\uc5d0 \ub300\ud574 \ub450 \ubaa8\ub378 \uacb0\uacfc\ub97c \ube44\uad50\ud574\uc11c \uc815\ud655\ub3c4 \ucc28\uc774\uac00 5% \ubbf8\ub9cc\uc774\uba74 mini\ub85c \ub118\uae34\ub2e4.<\/p>\n<p><strong>\uc138 \ubc88\uc9f8 \u2014 \ucd9c\ub825 \ud1a0\ud070 \uc81c\ud55c \uc548 \ud568<\/strong><\/p>\n<p>JSON \ud615\uc2dd\uc73c\ub85c \uacb0\uacfc\ub97c \ubc1b\uc744 \ub54c <code>max_tokens<\/code>\ub97c \uc124\uc815\ud558\uc9c0 \uc54a\uc73c\uba74 \ubaa8\ub378\uc774 \ud544\uc694 \uc774\uc0c1\uc73c\ub85c \uae38\uac8c \uc751\ub2f5\ud558\ub294 \uacbd\uc6b0\uac00 \uc788\ub2e4. gpt-4o-mini \uae30\uc900\uc73c\ub85c \ucd9c\ub825 \ud1a0\ud070\uc774 \uc785\ub825\uc758 4\ubc30 \ube44\uc2f8\ub2c8\uae4c, \uc774\uac78 \uc81c\uc5b4\ud558\ub294 \uac8c \uc0dd\uac01\ubcf4\ub2e4 \uc911\uc694\ud558\ub2e4.<\/p>\n<p>One thing I noticed: <code>response_format={\"type\": \"json_object\"}<\/code>\ub97c \uc4f0\uba74 \ucd9c\ub825\uc774 \ud6e8\uc52c \uc77c\uad00\ub418\uace0 \ud1a0\ud070\ub3c4 \uc808\uc57d\ub41c\ub2e4. \uadfc\ub370 \ub9cc\ub2a5\uc740 \uc544\ub2c8\ub2e4 \u2014 \ubaa8\ub378\uc774 JSON \uc548\uc5d0 \uc4f8\ub370\uc5c6\uc774 \uae34 <code>reasoning<\/code> \ud544\ub4dc\ub97c \uc9d1\uc5b4\ub123\ub294 \uacbd\uc6b0\uac00 \uc788\uc5b4\uc11c, \uc2a4\ud0a4\ub9c8\ub97c \ucd5c\ub300\ud55c \ud0c0\uc774\ud2b8\ud558\uac8c \uc815\uc758\ud574\uc57c \ud55c\ub2e4.<\/p>\n<h2>\ucd9c\ub825 \uac80\uc99d: \ubaa8\ub378\uc744 \ub108\ubb34 \uc624\ub798 \ubbff\uc5c8\ub2e4<\/h2>\n<p>LLM \ucd9c\ub825\uc744 \uadf8\ub0e5 \ubbff\uc73c\uba74 \uc548 \ub41c\ub2e4\ub294 \uac74 \uba38\ub9ac\ub85c\ub294 \uc54c\uc558\ub294\ub370, \uc2e4\uc81c\ub85c \uac80\uc99d \ub808\uc774\uc5b4\ub97c \uc81c\ub300\ub85c \ub9cc\ub4e0 \uac74 \uaf64 \ub098\uc911\uc774\uc5c8\ub2e4.<\/p>\n<p>\uc6b0\ub9ac \ud30c\uc774\ud504\ub77c\uc778\uc5d0\uc11c \uc788\uc5c8\ub358 \uc0ac\uace0: \ubb38\uc11c\ub97c 5\uac1c \uce74\ud14c\uace0\ub9ac \uc911 \ud558\ub098\ub85c \ubd84\ub958\ud558\ub294 \uc791\uc5c5\uc778\ub370, \ubaa8\ub378\uc774 \uac00\ub054 \uc874\uc7ac\ud558\uc9c0 \uc54a\ub294 \uce74\ud14c\uace0\ub9ac\uba85\uc744 \ubc18\ud658\ud588\ub2e4. \ucc98\uc74c\uc5d4 \ube48\ub3c4\uac00 \ub0ae\uc544\uc11c \ub85c\uadf8\uc5d0\uc11c \uc798 \uc548 \ubcf4\uc600\ub2e4. \ub098\uc911\uc5d0 \ub2e4\uc6b4\uc2a4\ud2b8\ub9bc \uc2dc\uc2a4\ud15c\uc5d0\uc11c \uc5d0\ub7ec\uac00 \ud130\uc9c0\uae30 \uc2dc\uc791\ud588\uace0, \ucd94\uc801\ud574\ubcf4\ub2c8 \uc798\ubabb\ub41c \uce74\ud14c\uace0\ub9ac\uac00 DB\uc5d0 \uc800\uc7a5\ub41c \uac70\uc600\ub2e4. \ub370\uc774\ud130\ub97c \uc218\ub3d9\uc73c\ub85c \uc815\ub9ac\ud558\ub294 \ub370 \ubc18\ub098\uc808\uc774 \uac78\ub838\ub2e4.<\/p>\n<p>Pydantic\uc73c\ub85c \ucd9c\ub825 \uc2a4\ud0a4\ub9c8\ub97c \uc815\uc758\ud558\uace0 \ud30c\uc2f1\ud558\ub294 \uac8c \uac00\uc7a5 \uac04\ub2e8\ud55c \ud574\uacb0\ucc45\uc774\uc5c8\ub2e4:<\/p>\n<pre><code class=\"language-python\">from pydantic import BaseModel, field_validator\nfrom enum import Enum\n\nclass Category(str, Enum):\n    TECHNICAL = &quot;technical&quot;\n    BUSINESS = &quot;business&quot;\n    LEGAL = &quot;legal&quot;\n    MARKETING = &quot;marketing&quot;\n    OTHER = &quot;other&quot;\n\nclass ClassificationResult(BaseModel):\n    category: Category\n    confidence: float\n    reasoning: str\n\n    @field_validator(&quot;confidence&quot;)\n    @classmethod\n    def confidence_range(cls, v: float) -&gt; float:\n        if not 0.0 &lt;= v &lt;= 1.0:\n            raise ValueError(&quot;confidence must be between 0 and 1&quot;)\n        return v\n\ndef classify_document(text: str) -&gt; ClassificationResult:\n    response = call_llm(\n        f&quot;\ub2e4\uc74c \ubb38\uc11c\ub97c \ubd84\ub958\ud558\uc138\uc694. JSON \ud615\uc2dd\uc73c\ub85c\ub9cc \uc751\ub2f5\ud558\uc138\uc694.\\n\\n{text}&quot;\n    )\n    try:\n        data = json.loads(response)\n        return ClassificationResult(**data)\n    except (json.JSONDecodeError, ValueError) as e:\n        # \ud30c\uc2f1 \uc2e4\ud328\ub97c \ubcc4\ub3c4 \uba54\ud2b8\ub9ad\uc73c\ub85c \ucd94\uc801\n        metrics.increment(&quot;llm.output_parse_failure&quot;)\n        logger.error(f&quot;\ucd9c\ub825 \ud30c\uc2f1 \uc2e4\ud328: {e}, \uc6d0\ubcf8: {response[:200]}&quot;)\n        raise OutputValidationError(&quot;\ubaa8\ub378 \ucd9c\ub825\uc774 \uc608\uc0c1 \ud615\uc2dd\uacfc \ub2e4\ub985\ub2c8\ub2e4&quot;) from e\n<\/code><\/pre>\n<p>\uc5ec\uae30\uc11c \uc911\uc694\ud55c \uac74 \ud30c\uc2f1 \uc2e4\ud328\ub97c \uc5d0\ub7ec\ub85c \ucc98\ub9ac\ud558\ub418, \uadf8 \uc5d0\ub7ec\ub97c <strong>\ubcc4\ub3c4\ub85c \ucd94\uc801<\/strong>\ud574\uc57c \ud55c\ub2e4\ub294 \uac70\ub2e4. \ud30c\uc2f1 \uc2e4\ud328\uc728\uc774 \uac11\uc790\uae30 \uc62c\ub77c\uac00\uba74 \ud504\ub86c\ud504\ud2b8\uc5d0 \ubb38\uc81c\uac00 \uc0dd\uacbc\uac70\ub098 \ubaa8\ub378 \ub3d9\uc791\uc774 \ubcc0\ud55c \uac70\ub2e4. \uc774 \uba54\ud2b8\ub9ad\uc744 \ubcf4\uace0 \uc788\ub2e4\uac00 gpt-4o-mini\uc758 \ub3d9\uc791\uc774 \uc870\uc6a9\ud788 \ubc14\ub010 \uac78 \ub450 \ubc88 \ubc1c\uacac\ud588\ub2e4 \u2014 OpenAI\uac00 \uacf5\uc9c0 \uc5c6\uc774 \ubaa8\ub378\uc744 \uc5c5\ub370\uc774\ud2b8\ud558\ub294 \uacbd\uc6b0\uac00 \uc788\ub2e4.<\/p>\n<p><code>confidence<\/code> \ud544\ub4dc\ub3c4 \uc720\uc6a9\ud558\ub2e4. 0.5 \ubbf8\ub9cc\uc778 \uacb0\uacfc\ub294 \uc790\ub3d9 \ubd84\ub958 \ub300\uc2e0 \uc0ac\ub78c \uac80\ud1a0 \ud050\ub85c \ubcf4\ub0b4\ub294 \uc2dd\uc73c\ub85c \uc4f0\uace0 \uc788\ub2e4. \ubb3c\ub860 \ubaa8\ub378\uc774 \ub9d0\ud558\ub294 confidence\uac00 \uc2e4\uc81c \uc815\ud655\ub3c4\uc640 \uc5bc\ub9c8\ub098 \uc77c\uce58\ud558\ub294\uc9c0\ub294 \uac80\uc99d\ud574\ubd10\uc57c \ud55c\ub2e4 \u2014 \ub0b4 \uacbd\ud5d8\uc0c1 \ub300\ub7b5\uc801\uc778 \uac00\uc774\ub4dc\ub294 \ub418\uc9c0\ub9cc \uc815\ud655\ud55c \ud655\ub960 \uc218\uce58\ub85c \ubbff\uae30\uc5d4 \ubb34\ub9ac\ub2e4.<\/p>\n<h2>\uad00\ucc30 \uac00\ub2a5\uc131: \uc5c6\uc73c\uba74 \uc544\ubb34\uac83\ub3c4 \ubaa8\ub978\ub2e4<\/h2>\n<p>\uc774\uac8c \uac00\uc7a5 \uacfc\uc18c\ud3c9\uac00\ub41c \ubd80\ubd84\uc774\ub2e4. \uc77c\ubc18 API \uc11c\ube44\uc2a4\ub294 \uc694\uccad\/\uc751\ub2f5 \ub85c\uadf8\ub9cc \ubd10\ub3c4 \uc5b4\ub290 \uc815\ub3c4 \ud30c\uc545\ub41c\ub2e4. AI \ud30c\uc774\ud504\ub77c\uc778\uc740 \ub2e4\ub974\ub2e4.<\/p>\n<p>\uac19\uc740 \ud504\ub86c\ud504\ud2b8\ub97c 10\ubc88 \ubcf4\ub0b4\ub3c4 \uacb0\uacfc\uac00 \uc870\uae08\uc529 \ub2e4\ub97c \uc218 \uc788\ub2e4. \ube44\uc6a9\uc774 \uac11\uc790\uae30 \uc62c\ub77c\uac14\ub294\ub370 \uc774\uc720\ub97c \ubaa8\ub97c \uc218 \uc788\ub2e4. \ubaa8\ub378\uc774 \ud2b9\uc815 \ud0c0\uc785\uc758 \uc785\ub825\uc5d0\uc11c\ub9cc \uc774\uc0c1\ud55c \uacb0\uacfc\ub97c \ub0b4\ub294\ub370, \uc313\uc778 \ub85c\uadf8 \uc5c6\uc774\ub294 \ud328\ud134\uc744 \ucc3e\uae30\uac00 \ud798\ub4e4\ub2e4.<\/p>\n<p>\ub0b4\uac00 \uc694\uccad \ub2e8\uc704\ub85c \ucd94\uc801\ud558\ub294 \uac83\ub4e4:<\/p>\n<ul>\n<li>\uc785\ub825 \ud1a0\ud070 \uc218, \ucd9c\ub825 \ud1a0\ud070 \uc218, \ub808\uc774\ud134\uc2dc, \ubaa8\ub378\uba85, \uc131\uacf5\/\uc2e4\ud328 \uc5ec\ubd80<\/li>\n<li>\ud1a0\ud070 \uae30\ubc18 \ube44\uc6a9 \uacc4\uc0b0 (OpenAI API \uc751\ub2f5\uc758 <code>usage<\/code> \ud544\ub4dc \ud65c\uc6a9)<\/li>\n<li>\ud30c\uc2f1 \uc131\uacf5\/\uc2e4\ud328, \uc7ac\uc2dc\ub3c4 \ud69f\uc218<\/li>\n<li>\uc785\ub825 \ud0c0\uc785\uc774\ub098 \uc18c\uc2a4 (\uc5b4\ub5a4 \uc885\ub958\uc758 \ubb38\uc11c\uc778\uc9c0)<\/li>\n<\/ul>\n<p>\uadf8\ub9ac\uace0 \ud55c \uac00\uc9c0 \ub354 \u2014 \uc804\uccb4 \uc694\uccad\uc758 1-2%\ub97c \ub79c\ub364 \uc0d8\ud50c\ub9c1\ud574\uc11c \uc0ac\ub78c\uc774 \uc9c1\uc811 \uac80\ud1a0\ud55c\ub2e4. \uc790\ub3d9\ud654\ub41c \uac80\uc99d\uc740 \uc608\uc0c1\uce58 \ubabb\ud55c \uc2e4\ud328 \ud328\ud134\uc744 \ub193\uce5c\ub2e4. \uc8fc 1\ud68c 30\ubd84 \uc815\ub3c4 \uc0d8\ud50c\uc744 \ubcf4\ub294 \uac83\ub9cc\uc73c\ub85c\ub3c4 \ubb38\uc81c\ub97c \ube68\ub9ac \uc7a1\uc744 \uc218 \uc788\ub2e4. \uadc0\ucc2e\uc9c0\ub9cc \uc774 \uc2b5\uad00\uc774 \ub450 \ubc88\uc758 \uc0ac\uace0\ub97c \ubbf8\ub9ac \ub9c9\uc544\uc92c\ub2e4.<\/p>\n<p>LangSmith\ub97c \uc7a0\uae50 \uc368\ubd24\ub294\ub370, \ubcf5\uc7a1\ud55c \uccb4\uc778\uc744 \ub514\ubc84\uae45\ud560 \ub54c\ub294 \uc720\uc6a9\ud558\ub2e4. \uadfc\ub370 \uc6b0\ub9ac \ud30c\uc774\ud504\ub77c\uc778\uc774 LangChain\uc5d0 \uac15\ud558\uac8c \uc758\uc874\ud558\uc9c0 \uc54a\uc544\uc11c \uc624\ubc84\ud5e4\ub4dc \ub300\ube44 \ud6a8\uc6a9\uc774 \ubcc4\ub85c \uc5c6\uc5c8\ub2e4. \uc9c0\uae08\uc740 OpenTelemetry\ub85c \uc9c1\uc811 \uacc4\uce21\ud558\uace0 \uc788\ub2e4. \ub354 \ud22c\uba85\ud558\uace0 \ubca4\ub354 \uc885\uc18d\uc131\uc774 \uc5c6\ub2e4.<\/p>\n<p>\uace0\ubc31\ud558\uc790\uba74 \u2014 \ucc98\uc74c 3\uac1c\uc6d4 \ub3d9\uc548 \uad00\ucc30 \uac00\ub2a5\uc131\uc744 \uc81c\ub300\ub85c \uad6c\ucd95\ud558\uc9c0 \uc54a\uc558\ub2e4. &#8220;\uc77c\ub2e8 \ube68\ub9ac \ub9cc\ub4e4\uace0 \ub098\uc911\uc5d0 \ubd99\uc774\uc790&#8221;\ub294 \uc0dd\uac01\uc774\uc5c8\ub294\ub370, \ub098\uc911\uc5d0 \ubd99\uc774\ub294 \uac8c \ucc98\uc74c\ubd80\ud130 \ubd99\uc774\ub294 \uac83\ubcf4\ub2e4 \uba87 \ubc30 \ub354 \ud798\ub4e4\uc5c8\ub2e4. \ud2b9\ud788 \ub808\uc774\ud134\uc2dc \ubd84\uc11d\uc774\ub098 \ube44\uc6a9 \ucd94\uc801\uc740 \ucd08\uae30 \uc124\uacc4\uc5d0 \uc5c6\uc73c\uba74 \uc5ed\uc73c\ub85c \ub123\uae30\uac00 \uae4c\ub2e4\ub86d\ub2e4.<\/p>\n<h2>\uc2e4\uc81c\ub85c \ucd94\ucc9c\ud558\ub294 \uac83\ub4e4<\/h2>\n<p>\ud55c \uc904\ub85c \uc694\uc57d\ud558\uba74: AI \ud30c\uc774\ud504\ub77c\uc778\uc740 \uc77c\ubc18 \uc18c\ud504\ud2b8\uc6e8\uc5b4\ubcf4\ub2e4 \ud6e8\uc52c \ube68\ub9ac \uc608\uc0c1\uce58 \ubabb\ud55c \ubc29\uc2dd\uc73c\ub85c \uc2e4\ud328\ud55c\ub2e4. \uadf8\uac78 \uc804\uc81c\ub85c \uc124\uacc4\ud574\uc57c \ud55c\ub2e4.<\/p>\n<p><strong>\uc2a4\ud0dd \uc120\ud0dd<\/strong>: \uac04\ub2e8\ud55c \ud30c\uc774\ud504\ub77c\uc778\uc774\ub77c\uba74 LangChain \uac19\uc740 \ud504\ub808\uc784\uc6cc\ud06c \uc5c6\uc774 OpenAI SDK \uc9c1\uc811 \uc4f0\ub294 \uac78 \ucd94\ucc9c\ud55c\ub2e4. \ucd94\uc0c1\ud654 \ub808\uc774\uc5b4\uac00 \ub514\ubc84\uae45\uc744 \uc5b4\ub835\uac8c \ub9cc\ub4e4\uace0, \ubc84\uc804 \uc5c5\ub370\uc774\ud2b8\ub9c8\ub2e4 \ubb54\uac00 \uae68\uc9c0\ub294 \uacbd\uc6b0\uac00 \ub9ce\ub2e4 (langchain 0.2 \u2192 0.3 \ub9c8\uc774\uadf8\ub808\uc774\uc158\uc774 \uc5bc\ub9c8\ub098 \uace0\ud1b5\uc2a4\ub7ec\uc6e0\ub294\uc9c0). LangChain\uc740 \ubcf5\uc7a1\ud55c \uc5d0\uc774\uc804\ud2b8\ub098 RAG \ud30c\uc774\ud504\ub77c\uc778 \uac19\uc740 \uacbd\uc6b0\uc5d0 \uc720\uc6a9\ud558\ub2e4. \ub2e8\uc21c\ud55c LLM \ud638\ucd9c \ud30c\uc774\ud504\ub77c\uc778\uc5d0\ub294 \uacfc\ud558\ub2e4.<\/p>\n<p><strong>\uc5d0\ub7ec \ucc98\ub9ac<\/strong>: \uc7ac\uc2dc\ub3c4 \uac00\ub2a5\ud55c \uc5d0\ub7ec\uc640 \ubd88\uac00\ub2a5\ud55c \uc5d0\ub7ec\ub97c \ubc18\ub4dc\uc2dc \uad6c\ubd84\ud574\ub77c. \uadf8\ub9ac\uace0 \ubaa8\ub4e0 \uc5d0\ub7ec\uc5d0 \ub300\ud574 \uc7ac\uc2dc\ub3c4 \ud69f\uc218, \ucd1d \uc18c\uc694 \uc2dc\uac04, \ucd5c\uc885 \uacb0\uacfc\ub97c \ub85c\uadf8\uc5d0 \ub0a8\uaca8\ub77c. \ub098\uc911\uc5d0 \ub514\ubc84\uae45\ud560 \ub54c \uc774 \uc815\ubcf4\uac00 \uc5c6\uc73c\uba74 \uad49\uc7a5\ud788 \ub2f5\ub2f5\ud558\ub2e4.<\/p>\n<p><strong>\ube44\uc6a9 \uad00\ub9ac<\/strong>: \ucc98\uc74c\ubd80\ud130 \uc694\uccad \ub2e8\uc704 \ube44\uc6a9\uc744 \uacc4\uc0b0\ud558\ub294 \ub85c\uc9c1\uc744 \ub123\uc5b4\ub77c. OpenAI \ub300\uc2dc\ubcf4\ub4dc\uc5d0\uc11c \uc77c\ubcc4 \uc608\uc0b0 \uc54c\ub9bc\ub3c4 \uc124\uc815\ud574\ub46c\ub77c. \ub098\ub294 \uc77c\ubcc4 $50 \ucd08\uacfc \uc2dc \uc2ac\ub799 \uc54c\ub9bc \uc624\uac8c \ud574\ub480\ub294\ub370, \uc774\uac8c \ub450 \ubc88 \uc6b8\ub838\ub2e4. \ub450 \ubc88 \ub2e4 \ubc84\uadf8 \ub54c\ubb38\uc774\uc5c8\ub2e4.<\/p>\n<p><strong>\uc810\uc9c4\uc801 \ub864\uc544\uc6c3<\/strong>: \uc0c8 \ud504\ub86c\ud504\ud2b8\ub098 \ubaa8\ub378\ub85c \ubc14\uafc0 \ub54c\ub294 \ud2b8\ub798\ud53d\uc758 10%\ub9cc \uba3c\uc800 \ubcf4\ub0b4\uace0 \uc9c0\ud45c\ub97c \ud655\uc778\ud55c \ub2e4\uc74c \uc804\uccb4\ub85c \ud655\ub300\ud574\ub77c. \ubaa8\ub378\uc774 \uc774\uc804 \ubc84\uc804\ubcf4\ub2e4 \ub098\uc05c \uacb0\uacfc\ub97c \ub0b4\ub294 \uacbd\uc6b0\uac00 \uc0dd\uac01\ubcf4\ub2e4 \uc790\uc8fc \uc788\ub2e4. &#8220;\ub354 \uc0c8\ub85c\uc6b4 \ubaa8\ub378 = \ub354 \uc88b\uc740 \uacb0\uacfc&#8221;\uac00 \ud56d\uc0c1 \uc131\ub9bd\ud558\uc9c0 \uc54a\ub294\ub2e4.<\/p>\n<p><strong>\ucd9c\ub825 \uac80\uc99d<\/strong>: Pydantic\uc73c\ub85c \uc2a4\ud0a4\ub9c8\ub97c \uc815\uc758\ud558\uace0 \ud30c\uc2f1 \uc2e4\ud328\ub97c \ubcc4\ub3c4\ub85c \ucd94\uc801\ud574\ub77c. \ud30c\uc2f1 \uc2e4\ud328\uc728\uc774 1%\ub97c \ub118\uc5b4\uac00\uba74 \ubc18\ub4dc\uc2dc \uc6d0\uc778\uc744 \uc870\uc0ac\ud574\uc57c \ud55c\ub2e4.<\/p>\n<p>\ub098\ub294 100% \ud655\uc2e0\ud558\uc9c0\ub294 \uc54a\ub294\ub2e4 \u2014 \ud300 \uaddc\ubaa8\ub098 \ud30c\uc774\ud504\ub77c\uc778 \ubcf5\uc7a1\ub3c4\uc5d0 \ub530\ub77c \ub2e4\ub97c \uc218 \uc788\ub2e4. \ud558\uc9c0\ub9cc \uc18c\uaddc\ubaa8 \ud300\uc5d0\uc11c LLM\uc744 \ucc98\uc74c <a href=\"https:\/\/m.do.co\/c\/06956e5e2802\" title=\"DigitalOcean \ud504\ub85c\ub355\uc158 \ud074\ub77c\uc6b0\ub4dc\" rel=\"nofollow sponsored\" target=\"_blank\">\ud504\ub85c\ub355\uc158<\/a>\uc5d0 \uc62c\ub9ac\ub294 \uc0c1\ud669\uc774\ub77c\uba74, \uc774 \uad50\ud6c8\ub4e4\uc774 \uaf64 \ub9ce\uc740 \uc2dc\ud589\ucc29\uc624\ub97c \uc904\uc5ec\uc904 \uac70\ub77c\uace0 \uc0dd\uac01\ud55c\ub2e4. \uc0c8\ubcbd 2\uc2dc \uc54c\ub9bc\uc740 \ucd5c\ub300\ud55c \uc548 \ubc1b\ub294 \uac8c \uc88b\uc73c\ub2c8\uae4c.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>{ &#8220;@context&#8221;: &#8220;https:\/\/schema.org&#8221;, &#8220;@type&#8221;: &#8220;BlogPosting&#8221;, &#8220;headline&#8221;: &#8220;\ud504\ub85c\ub355\uc158 AI \ud30c\uc774\ud504\ub77c\uc778 \uad6c\ucd95: 1\ub9cc \ud68c \uc774\uc0c1 \uc2e4\ud589\uc5d0\uc11c \ubc30\uc6b4 \uac83\ub4e4&#8221;, &#8220;description&#8221;: &#8220;\uc791\ub144 11\uc6d4, \uc0c8\ubcbd 2\uc2dc\uc5d0 \uc2ac\ub799 \uc54c\ub9bc\uc774 \uc3df\uc544\uc84c\ub2e4.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[1],"tags":[],"class_list":["post-32","post","type-post","status-publish","format-standard","hentry","category-general"],"_links":{"self":[{"href":"https:\/\/blog.rebalai.com\/ko\/wp-json\/wp\/v2\/posts\/32","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.rebalai.com\/ko\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.rebalai.com\/ko\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.rebalai.com\/ko\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.rebalai.com\/ko\/wp-json\/wp\/v2\/comments?post=32"}],"version-history":[{"count":8,"href":"https:\/\/blog.rebalai.com\/ko\/wp-json\/wp\/v2\/posts\/32\/revisions"}],"predecessor-version":[{"id":212,"href":"https:\/\/blog.rebalai.com\/ko\/wp-json\/wp\/v2\/posts\/32\/revisions\/212"}],"wp:attachment":[{"href":"https:\/\/blog.rebalai.com\/ko\/wp-json\/wp\/v2\/media?parent=32"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.rebalai.com\/ko\/wp-json\/wp\/v2\/categories?post=32"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.rebalai.com\/ko\/wp-json\/wp\/v2\/tags?post=32"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}