{"id":4,"date":"2026-03-03T17:36:34","date_gmt":"2026-03-03T17:36:34","guid":{"rendered":"https:\/\/blog.rebalai.com\/ko\/2026\/03\/03\/2026-03-03_ko_rag-vector-database-production\/"},"modified":"2026-03-09T04:43:56","modified_gmt":"2026-03-09T04:43:56","slug":"2026-03-03_ko_rag-vector-database-production","status":"publish","type":"post","link":"https:\/\/blog.rebalai.com\/ko\/2026\/03\/03\/2026-03-03_ko_rag-vector-database-production\/","title":{"rendered":"\ubca1\ud130 \ub370\uc774\ud130\ubca0\uc774\uc2a4\ub97c \uc0ac\uc6a9\ud55c \ud504\ub85c\ub355\uc158 RAG \uc560\ud50c\ub9ac\ucf00\uc774\uc158 \uad6c\ucd95"},"content":{"rendered":"<p><script type=\"application\/ld+json\">\n{\n  \"@context\": \"https:\/\/schema.org\",\n  \"@type\": \"BlogPosting\",\n  \"headline\": \"\ubca1\ud130 \ub370\uc774\ud130\ubca0\uc774\uc2a4\ub97c \uc0ac\uc6a9\ud55c <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> RAG \uc560\ud50c\ub9ac\ucf00\uc774\uc158 \uad6c\ucd95\",\n  \"description\": \"# \ubca1\ud130 \ub370\uc774\ud130\ubca0\uc774\uc2a4\ub97c \uc0ac\uc6a9\ud55c <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> RAG \uc560\ud50c\ub9ac\ucf00\uc774\uc158 \uad6c\ucd95 ## RAG\ub780 \ubb34\uc5c7\uc778\uac00? RAG\ub97c \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\ub838\uc744 \ub54c, \uac1c\ub150 \uc790\uccb4\ub294 \ub2e8\uc21c\ud588\uc9c0\ub9cc \uc2e4\uc81c\ub85c \uc798 \ub3d9\uc791\ud558\uac8c \ub9cc\ub4dc\ub294 \ub370 \uc0dd\uac01\ubcf4\ub2e4 \uc2dc\uac04\uc774 \uac78\ub838\uc2b5\ub2c8\ub2e4.\",\n  \"url\": \"https:\/\/blog.rebalai.com\/ko\/2026\/03\/03\/2026-03-03_ko_rag-vector-database-<a href=\"https:\/\/m.do.co\/c\/06956e5e2802\" title=\"DigitalOcean for Production Workloads\" rel=\"nofollow sponsored\" target=\"_blank\">production<\/a>\/\",\n  \"datePublished\": \"2026-03-03T17:36:34\",\n  \"dateModified\": \"2026-03-05T17:39:36\",\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\/03\/2026-03-03_ko_rag-vector-database-<a href=\"https:\/\/m.do.co\/c\/06956e5e2802\" title=\"DigitalOcean for Production Workloads\" rel=\"nofollow sponsored\" target=\"_blank\">production<\/a>\/\"\n  }\n}\n<\/script><\/p>\n<h2>\uc8fc\uc694 \ub0b4\uc6a9<\/h2>\n<p># \ubca1\ud130 \ub370\uc774\ud130\ubca0\uc774\uc2a4\ub97c \uc0ac\uc6a9\ud55c <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> RAG \uc560\ud50c\ub9ac\ucf00\uc774\uc158 \uad6c\ucd95<\/p>\n<p>## RAG\ub780 \ubb34\uc5c7\uc778\uac00?<\/p>\n<p>RAG\ub97c \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\ub838\uc744 \ub54c, \uac1c\ub150 \uc790\uccb4\ub294 \ub2e8\uc21c\ud588\uc9c0\ub9cc \uc2e4\uc81c\ub85c \uc798 \ub3d9\uc791\ud558\uac8c \ub9cc\ub4dc\ub294 \ub370 \uc0dd\uac01\ubcf4\ub2e4 \uc2dc\uac04\uc774 \uac78\ub838\uc2b5\ub2c8\ub2e4. \uac80\uc0c9 \uc99d\uac15 \uc0dd\uc131(RAG, Retrieval-Augmented Generation)\uc740 LLM\uc758 \uad6c\uc870\uc801 \ud55c\uacc4\ub97c \ubcf4\uc644\ud558\ub294 \ud328\ud134\uc785\ub2c8\ub2e4&#8212;LLM\uc740 \ud559\uc2b5 \uc2dc\uc810 \uc774\ud6c4\uc758 \ucd5c\uc2e0 \uc815\ubcf4\ub098 \uc0ac\ub0b4 \uc804\uc6a9 \ubb38\uc11c\uc5d0 \ub300\ud574 \ub2f5\ubcc0\ud558\uc9c0 \ubabb\ud558\ub294\ub370, RAG\uac00 \uadf8 \ube48\ud2c8\uc744 \ucc44\uc6c1\ub2c8\ub2e4. \uc0ac\uc6a9\uc790 \uc9c8\uc758\uc640 \uad00\ub828\ub41c \ubb38\uc11c\ub97c \uba3c\uc800 \uac80\uc0c9\ud558\uace0, \uadf8 \ub0b4\uc6a9\uc744 LLM\uc5d0 \ucee8\ud14d\uc2a4\ud2b8\ub85c \ub123\uc5b4 \uadfc\uac70 \uc788\ub294 \ub2f5\ubcc0\uc744 \uc0dd\uc131\ud558\ub294 \ubc29\uc2dd\uc785\ub2c8\ub2e4.<\/p>\n<p>\uac1c\ub150\uc740 \uae54\ub054\ud558\uc9c0\ub9cc, <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 \uc548\uc815\uc801\uc73c\ub85c \ub3d9\uc791\ud558\uac8c \ub9cc\ub4e4\ub824\uba74 \uccad\ud0b9 \uc804\ub7b5, \ubca1\ud130 \ub370\uc774\ud130\ubca0\uc774\uc2a4 \uc120\ud0dd, \uac80\uc0c9 \ud488\uc9c8 \ucd5c\uc801\ud654, \ud3c9\uac00 \uc9c0\ud45c \uc124\uacc4\uae4c\uc9c0 \uaf64 \ub9ce\uc740 \uacb0\uc815\uc774 \ub530\ub77c\uc635\ub2c8\ub2e4. \uc774 \uae00\uc5d0\uc11c\ub294 \uac01 \ub2e8\uacc4\ub97c \uc2e4\uc81c \ucf54\ub4dc\uc640 \ud568\uaed8 \ub2e4\ub8f9\ub2c8\ub2e4.<\/p>\n<p>&#8212;<\/p>\n<p>## \ubca1\ud130 \ub370\uc774\ud130\ubca0\uc774\uc2a4 \uc120\ud0dd: Pinecone vs Weaviate<\/p>\n<p>RAG \ud30c\uc774\ud504\ub77c\uc778\uc758 \ud575\uc2ec \uc778\ud504\ub77c\ub294 \ubca1\ud130 \ub370\uc774\ud130\ubca0\uc774\uc2a4\uc785\ub2c8\ub2e4. <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 \uac00\uc7a5 \ub9ce\uc774 \uc4f0\uc774\ub294 \ub450 \uc635\uc158\uc744 \ube44\uad50\ud569\ub2c8\ub2e4.<\/p>\n<p>### Pinecone<\/p>\n<p>Pinecone\uc740 \uc644\uc804 \uad00\ub9ac\ud615(fully managed) \uc11c\ube44\uc2a4\uc785\ub2c8\ub2e4. \uc778\ud504\ub77c \uc6b4\uc601 \ubd80\ub2f4 \uc5c6\uc774 \ubca1\ud130 \uac80\uc0c9\uc744 \ubc14\ub85c \uc4f8 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p>**\uc7a5\uc810:**<br \/>\n&#8211; \uc124\uc815\uc774 \uac04\ub2e8\ud558\uace0 \uc2a4\ucf00\uc77c\ub9c1\uc774 \uc790\ub3d9\uc73c\ub85c \ucc98\ub9ac\ub429\ub2c8\ub2e4<br \/>\n&#8211; \ub0ae\uc740 \uc9c0\uc5f0 \uc2dc\uac04\uc758 ANN(\uadfc\uc0ac \ucd5c\uadfc\uc811 \uc774\uc6c3) \uac80\uc0c9\uc744 \uc81c\uacf5\ud569\ub2c8\ub2e4<br \/>\n&#8211; <a href=\"https:\/\/m.do.co\/c\/06956e5e2802\" title=\"DigitalOcean \ud074\ub77c\uc6b0\ub4dc \uc11c\ubc84\" rel=\"nofollow sponsored\" target=\"_blank\">\uc11c\ubc84<\/a>\ub9ac\uc2a4 \ud50c\ub79c\uc73c\ub85c \uc18c\uaddc\ubaa8 \ud504\ub85c\uc81d\ud2b8 \uc9c4\uc785 \ube44\uc6a9\uc774 \ub0ae\uc2b5\ub2c8\ub2e4<\/p>\n<p>**\ub2e8\uc810:**<br \/>\n&#8211; \ubca4\ub354 \uc885\uc18d\uc131\uc774 \uc0dd\uae41\ub2c8\ub2e4<br \/>\n&#8211; \ub370\uc774\ud130\uac00 \uc678\ubd80 <a href=\"https:\/\/m.do.co\/c\/06956e5e2802\" title=\"DigitalOcean \ud074\ub77c\uc6b0\ub4dc \uc11c\ubc84\" rel=\"nofollow sponsored\" target=\"_blank\">\uc11c\ubc84<\/a>\uc5d0 \uc800\uc7a5\ub418\ubbc0\ub85c \uaddc\uc815 \uc900\uc218 \uc774\uc288\uac00 \ubc1c\uc0dd\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4<\/p>\n<p>### Weaviate<\/p>\n<p>Weaviate\ub294 \uc624\ud508\uc18c\uc2a4 \ubca1\ud130 \ub370\uc774\ud130\ubca0\uc774\uc2a4\ub85c, \uc790\uccb4 \ud638\uc2a4\ud305 \ub610\ub294 <a href=\"https:\/\/m.do.co\/c\/06956e5e2802\" title=\"DigitalOcean <a href=\"https:\/\/m.do.co\/c\/06956e5e2802\" title=\"DigitalOcean <a href=\"https:\/\/m.do.co\/c\/06956e5e2802\" title=\"DigitalOcean <a href=\"https:\/\/m.do.co\/c\/06956e5e2802\" title=\"DigitalOcean <a href=\"https:\/\/m.do.co\/c\/06956e5e2802\" title=\"DigitalOcean <a href=\"https:\/\/m.do.co\/c\/06956e5e2802\" title=\"DigitalOcean <a href=\"https:\/\/m.do.co\/c\/06956e5e2802\" title=\"DigitalOcean <a href=\"https:\/\/m.do.co\/c\/06956e5e2802\" title=\"DigitalOcean <a href=\"https:\/\/m.do.co\/c\/06956e5e2802\" title=\"DigitalOcean \ud074\ub77c\uc6b0\ub4dc \ud638\uc2a4\ud305\" rel=\"nofollow sponsored\" target=\"_blank\">\ud074\ub77c\uc6b0\ub4dc<\/a> \ud638\uc2a4\ud305&#8221; rel=&#8221;nofollow sponsored&#8221; target=&#8221;_blank&#8221;>\ud074\ub77c\uc6b0\ub4dc<\/a> \ud638\uc2a4\ud305&#8221; rel=&#8221;nofollow sponsored&#8221; target=&#8221;_blank&#8221;>\ud074\ub77c\uc6b0\ub4dc<\/a> \ud638\uc2a4\ud305&#8221; rel=&#8221;nofollow sponsored&#8221; target=&#8221;_blank&#8221;>\ud074\ub77c\uc6b0\ub4dc<\/a> \ud638\uc2a4\ud305&#8221; rel=&#8221;nofollow sponsored&#8221; target=&#8221;_blank&#8221;>\ud074\ub77c\uc6b0\ub4dc<\/a> \ud638\uc2a4\ud305&#8221; rel=&#8221;nofollow sponsored&#8221; target=&#8221;_blank&#8221;>\ud074\ub77c\uc6b0\ub4dc<\/a> \ud638\uc2a4\ud305&#8221; rel=&#8221;nofollow sponsored&#8221; target=&#8221;_blank&#8221;>\ud074\ub77c\uc6b0\ub4dc<\/a> \ud638\uc2a4\ud305&#8221; rel=&#8221;nofollow sponsored&#8221; target=&#8221;_blank&#8221;>\ud074\ub77c\uc6b0\ub4dc<\/a> \ud638\uc2a4\ud305&#8221; rel=&#8221;nofollow sponsored&#8221; target=&#8221;_blank&#8221;>\ud074\ub77c\uc6b0\ub4dc<\/a> \uc11c\ube44\uc2a4 \ud615\ud0dc\ub85c \ubaa8\ub450 \uc0ac\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p>**\uc7a5\uc810:**<br \/>\n&#8211; \uc628\ud504\ub808\ubbf8\uc2a4 <a href=\"https:\/\/m.do.co\/c\/06956e5e2802\" title=\"DigitalOcean\uc73c\ub85c <a href=\"https:\/\/m.do.co\/c\/06956e5e2802\" title=\"DigitalOcean\uc73c\ub85c <a href=\"https:\/\/m.do.co\/c\/06956e5e2802\" title=\"DigitalOcean\uc73c\ub85c <a href=\"https:\/\/m.do.co\/c\/06956e5e2802\" title=\"DigitalOcean\uc73c\ub85c <a href=\"https:\/\/m.do.co\/c\/06956e5e2802\" title=\"DigitalOcean\uc73c\ub85c <a href=\"https:\/\/m.do.co\/c\/06956e5e2802\" title=\"DigitalOcean\uc73c\ub85c \ubc30\ud3ec\ud558\uae30\" rel=\"nofollow sponsored\" target=\"_blank\">\ubc30\ud3ec<\/a>\ud558\uae30&#8221; rel=&#8221;nofollow sponsored&#8221; target=&#8221;_blank&#8221;>\ubc30\ud3ec<\/a>\ud558\uae30&#8221; rel=&#8221;nofollow sponsored&#8221; target=&#8221;_blank&#8221;>\ubc30\ud3ec<\/a>\ud558\uae30&#8221; rel=&#8221;nofollow sponsored&#8221; target=&#8221;_blank&#8221;>\ubc30\ud3ec<\/a>\ud558\uae30&#8221; rel=&#8221;nofollow sponsored&#8221; target=&#8221;_blank&#8221;>\ubc30\ud3ec<\/a>\ud558\uae30&#8221; rel=&#8221;nofollow sponsored&#8221; target=&#8221;_blank&#8221;>\ubc30\ud3ec<\/a>\uac00 \uac00\ub2a5\ud574\uc11c \ub370\uc774\ud130 \uc8fc\uad8c\uc744 \uc720\uc9c0\ud569\ub2c8\ub2e4<br \/>\n&#8211; \ud558\uc774\ube0c\ub9ac\ub4dc \uac80\uc0c9(\ubca1\ud130 + \ud0a4\uc6cc\ub4dc BM25)\uc744 \uae30\ubcf8\uc73c\ub85c \uc9c0\uc6d0\ud569\ub2c8\ub2e4<br \/>\n&#8211; REST, GraphQL, gRPC \ub4f1 \ub2e4\uc591\ud55c \ucffc\ub9ac \uc778\ud130\ud398\uc774\uc2a4\ub97c \uc81c\uacf5\ud569\ub2c8\ub2e4<\/p>\n<p>**\ub2e8\uc810:**<br \/>\n&#8211; \uc790\uccb4 \ud638\uc2a4\ud305 \uc2dc \uc6b4\uc601 \ubd80\ub2f4\uc774 \ub298\uc5b4\ub0a9\ub2c8\ub2e4<br \/>\n&#8211; \ucd08\uae30 \uc124\uc815\uc774 Pinecone\ubcf4\ub2e4 \ubcf5\uc7a1\ud569\ub2c8\ub2e4<\/p>\n<p>\uc81c \uacbd\ud5d8\uc0c1, \ube60\ub974\uac8c MVP\ub97c \uac80\uc99d\ud574\uc57c \ud560 \ub54c\ub294 Pinecone\uc774 \ud6e8\uc52c \ud3b8\ud588\uace0, \ub370\uc774\ud130\ub97c \uc678\ubd80\ub85c \ub0b4\ubcf4\ub0bc \uc218 \uc5c6\ub294 \ud658\uacbd\uc774\ub77c\uba74 Weaviate \uc678\uc5d0 \uc120\ud0dd\uc9c0\uac00 \uc5c6\uc5c8\uc2b5\ub2c8\ub2e4. \ud300\uc758 \uc6b4\uc601 \uc5ed\ub7c9\uacfc \ub370\uc774\ud130 \uaddc\uc815 \uc694\uac74\uc744 \ud568\uaed8 \ubcf4\uace0 \uacb0\uc815\ud558\uc138\uc694.<\/p>\n<p>&#8212;<\/p>\n<p>## RAG \ud30c\uc774\ud504\ub77c\uc778 \ub2e8\uacc4\ubcc4 \uad6c\ud604<\/p>\n<p>### 1\ub2e8\uacc4: \ubb38\uc11c \uccad\ud0b9(Chunking)<\/p>\n<p>\ubb38\uc11c\ub97c \ubca1\ud130\ub85c \ubcc0\ud658\ud558\uae30 \uc804\uc5d0 \uc801\uc808\ud55c \ud06c\uae30\ub85c \ubd84\ud560\ud574\uc57c \ud569\ub2c8\ub2e4. \uccad\ud06c \ud06c\uae30\ub294 \uac80\uc0c9 \ud488\uc9c8\uc5d0 \uc9c1\uc811 \uc601\ud5a5\uc744 \uc90d\ub2c8\ub2e4. \ub108\ubb34 \uc791\uc73c\uba74 \ubb38\ub9e5\uc774 \ubd80\uc871\ud558\uace0, \ub108\ubb34 \ud06c\uba74 \uad00\ub828 \uc5c6\ub294 \ub0b4\uc6a9\uc774 \uc11e\uc785\ub2c8\ub2e4.<\/p>\n<p>&#8220;`python<br \/>\nfrom langchain.text_splitter import RecursiveCharacterTextSplitter<\/p>\n<p>splitter = RecursiveCharacterTextSplitter(<br \/>\n    chunk_size=512,       # \uae30\ubcf8\uac12\uc740 \ubb38\uc790(character) \ub2e8\uc704<br \/>\n    chunk_overlap=64,<br \/>\n    separators=[&#8220;\\n\\n&#8221;, &#8220;\\n&#8221;, &#8220;.&#8221;, &#8221; &#8220;, &#8220;&#8221;]<br \/>\n)<\/p>\n<p>docs = splitter.split_documents(raw_documents)<br \/>\n&#8220;`<\/p>\n<p>> **\uc8fc\uc758:** `RecursiveCharacterTextSplitter`\uc758 `chunk_size`\ub294 \uae30\ubcf8\uc801\uc73c\ub85c **\ubb38\uc790(character)** \ub2e8\uc704\uc785\ub2c8\ub2e4. \ud1a0\ud070 \ub2e8\uc704\ub85c \ubd84\ud560\ud558\ub824\uba74 `length_function=tiktoken_len`\ucc98\ub7fc \ud1a0\ud06c\ub098\uc774\uc800 \uae30\ubc18 \ud568\uc218\ub97c \uc9c0\uc815\ud574\uc57c \ud569\ub2c8\ub2e4. \ud55c\uad6d\uc5b4 \ubb38\uc11c\uc758 \uacbd\uc6b0 \ubb38\uc790 \uc218\uc640 \ud1a0\ud070 \uc218 \uc0ac\uc774 \ucc28\uc774\uac00 \ud06c\ubbc0\ub85c \uc774 \uc810\uc5d0 \uc720\uc758\ud558\uc138\uc694.<\/p>\n<p>\uc194\uc9c1\ud788 \uc774 \ubd80\ubd84\uc5d0\uc11c \ud55c \ubc88 \ud06c\uac8c \ub370\uc778 \uc801\uc774 \uc788\uc2b5\ub2c8\ub2e4. `chunk_size=512`\ub85c \uc124\uc815\ud574\ub193\uace0 &#8220;\ud1a0\ud070 \uae30\uc900\uc73c\ub85c \uad1c\ucc2e\uaca0\uc9c0&#8221;\ub77c\uace0 \ub118\uc5b4\uac14\ub354\ub2c8, \ud55c\uad6d\uc5b4 \ubb38\uc11c\uc5d0\uc11c \uc2e4\uc81c \ud1a0\ud070 \uc218\uac00 \uc608\uc0c1\ubcf4\ub2e4 \ud6e8\uc52c \uc801\uac8c \ub098\uc640 \uac80\uc0c9 \ud488\uc9c8\uc774 \uc774\uc0c1\ud558\uac8c \ub0ae\uc558\uc2b5\ub2c8\ub2e4. \ucc98\uc74c\ubd80\ud130 `tiktoken_len` \uae30\ubc18\uc73c\ub85c \uc7a1\uc558\uc73c\uba74 \uc2dc\ud589\ucc29\uc624\ub97c \ub9ce\uc774 \uc904\uc77c \uc218 \uc788\uc5c8\uc744 \ud150\ub370\uc694. \uc2e4\ubb34\uc5d0\uc11c\ub294 \ubb38\uc790 \uae30\uc900 512~1024 \ubc94\uc704\uc5d0\uc11c \uc2e4\ud5d8\ud574 \ub3c4\uba54\uc778\uc5d0 \ub9de\ub294 \ucd5c\uc801\uac12\uc744 \ucc3e\uc2b5\ub2c8\ub2e4. `chunk_overlap`\uc744 64 \uc815\ub3c4\ub85c \uc124\uc815\ud558\uba74 \uccad\ud06c \uacbd\uacc4\uc5d0\uc11c \ubb38\ub9e5\uc774 \uc798\ub9ac\ub294 \ubb38\uc81c\ub3c4 \ub9ce\uc774 \uc904\uc5b4\ub4ed\ub2c8\ub2e4.<\/p>\n<p>### 2\ub2e8\uacc4: \uc784\ubca0\ub529 \uc0dd\uc131 \ubc0f \uc778\ub371\uc2f1<\/p>\n<p>\uccad\ud06c\ub97c \uace0\ucc28\uc6d0 \ubca1\ud130\ub85c \ubcc0\ud658\ud558\uace0 \ub370\uc774\ud130\ubca0\uc774\uc2a4\uc5d0 \uc800\uc7a5\ud569\ub2c8\ub2e4.<\/p>\n<p>**Pinecone \uc0ac\uc6a9 \uc608:**<\/p>\n<p>&#8220;`python<br \/>\nfrom pinecone import Pinecone<br \/>\nfrom openai import OpenAI<\/p>\n<p>pc = Pinecone(api_key=&#8221;YOUR_PINECONE_KEY&#8221;)<br \/>\nindex = pc.Index(&#8220;<a href=\"https:\/\/m.do.co\/c\/06956e5e2802\" title=\"DigitalOcean for Production Workloads\" rel=\"nofollow sponsored\" target=\"_blank\">production<\/a>-rag&#8221;)<br \/>\nopenai_client = OpenAI(api_key=&#8221;YOUR_OPENAI_KEY&#8221;)<\/p>\n<p>def embed_and_upsert(chunks: list[str], ids: list[str]):<br \/>\n    response = openai_client.embeddings.create(<br \/>\n        model=&#8221;text-embedding-3-small&#8221;,<br \/>\n        input=chunks<br \/>\n    )<br \/>\n    vectors = [<br \/>\n        {<br \/>\n            &#8220;id&#8221;: ids[i],<br \/>\n            &#8220;values&#8221;: r.embedding,<br \/>\n            &#8220;metadata&#8221;: {&#8220;text&#8221;: chunks[i]}<br \/>\n        }<br \/>\n        for i, r in enumerate(response.data)<br \/>\n    ]<br \/>\n    index.upsert(vectors=vectors)<br \/>\n&#8220;`<\/p>\n<p>**Weaviate \uc0ac\uc6a9 \uc608:**<\/p>\n<p>&#8220;`python<br \/>\nimport weaviate<br \/>\nfrom weaviate.classes.config import Configure<\/p>\n<p>client = weaviate.connect_to_local()<\/p>\n<p>client.collections.create(<br \/>\n    name=&#8221;Document&#8221;,<br \/>\n    vectorizer_config=Configure.Vectorizer.text2vec_openai(<br \/>\n        model=&#8221;text-embedding-3-small&#8221;<br \/>\n    )<br \/>\n)<\/p>\n<p>collection = client.collections.get(&#8220;Document&#8221;)<br \/>\nwith collection.batch.dynamic() as batch:<br \/>\n    for chunk in chunks:<br \/>\n        batch.add_object({&#8220;content&#8221;: chunk})<br \/>\n&#8220;`<\/p>\n<p>### 3\ub2e8\uacc4: \uac80\uc0c9 \ubc0f \uc0dd\uc131<\/p>\n<p>\uc0ac\uc6a9\uc790 \ucffc\ub9ac\uac00 \ub4e4\uc5b4\uc624\uba74 \uad00\ub828 \uccad\ud06c\ub97c \uac80\uc0c9\ud558\uace0 LLM\uc5d0 \uc804\ub2ec\ud569\ub2c8\ub2e4.<\/p>\n<p>&#8220;`python<br \/>\ndef retrieve_and_generate(query: str, top_k: int = 5) -> str:<br \/>\n    # \ucffc\ub9ac \uc784\ubca0\ub529 \uc0dd\uc131<br \/>\n    query_vector = openai_client.embeddings.create(<br \/>\n        model=&#8221;text-embedding-3-small&#8221;,<br \/>\n        input=query<br \/>\n    ).data[0].embedding<\/p>\n<p>    # \ubca1\ud130 \uc720\uc0ac\ub3c4 \uac80\uc0c9<br \/>\n    results = index.query(<br \/>\n        vector=query_vector,<br \/>\n        top_k=top_k,<br \/>\n        include_metadata=True<br \/>\n    )<\/p>\n<p>    # \uac80\uc0c9\ub41c \uccad\ud06c\ub97c \ucee8\ud14d\uc2a4\ud2b8\ub85c \uc870\ud569<br \/>\n    context = &#8220;\\n\\n&#8221;.join(<br \/>\n        match.metadata[&#8220;text&#8221;] for match in results.matches<br \/>\n    )<\/p>\n<p>    # LLM \ud638\ucd9c<br \/>\n    response = openai_client.chat.completions.create(<br \/>\n        model=&#8221;gpt-4o-mini&#8221;,<br \/>\n        messages=[<br \/>\n            {<br \/>\n                &#8220;role&#8221;: &#8220;system&#8221;,<br \/>\n                &#8220;content&#8221;: (<br \/>\n                    &#8220;\uc8fc\uc5b4\uc9c4 \ucee8\ud14d\uc2a4\ud2b8\ub9cc\uc744 \uc0ac\uc6a9\ud558\uc5ec \uc9c8\ubb38\uc5d0 \ub2f5\ubcc0\ud558\uc138\uc694. &#8221;<br \/>\n                    &#8220;\ucee8\ud14d\uc2a4\ud2b8\uc5d0 \uc5c6\ub294 \ub0b4\uc6a9\uc740 &#8216;\uc81c\uacf5\ub41c \uc815\ubcf4\uc5d0 \uc5c6\uc2b5\ub2c8\ub2e4&#8217;\ub77c\uace0 \ub2f5\ud558\uc138\uc694.&#8221;<br \/>\n                )<br \/>\n            },<br \/>\n            {<br \/>\n                &#8220;role&#8221;: &#8220;user&#8221;,<br \/>\n                &#8220;content&#8221;: f&#8221;\ucee8\ud14d\uc2a4\ud2b8:\\n{context}\\n\\n\uc9c8\ubb38: {query}&#8221;<br \/>\n            }<br \/>\n        ]<br \/>\n    )<br \/>\n    return response.choices[0].message.content<br \/>\n&#8220;`<\/p>\n<p>&#8212;<\/p>\n<p>## <a href=\"https:\/\/m.do.co\/c\/06956e5e2802\" title=\"DigitalOcean <a href=\"https:\/\/m.do.co\/c\/06956e5e2802\" title=\"DigitalOcean <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> <a href=\"https:\/\/m.do.co\/c\/06956e5e2802\" title=\"DigitalOcean \ud074\ub77c\uc6b0\ub4dc \ud638\uc2a4\ud305\" rel=\"nofollow sponsored\" target=\"_blank\">\ud074\ub77c\uc6b0\ub4dc<\/a>&#8221; rel=&#8221;nofollow sponsored&#8221; target=&#8221;_blank&#8221;>\ud504\ub85c\ub355\uc158<\/a> <a href=\"https:\/\/m.do.co\/c\/06956e5e2802\" title=\"DigitalOcean \ud074\ub77c\uc6b0\ub4dc \ud638\uc2a4\ud305\" rel=\"nofollow sponsored\" target=\"_blank\">\ud074\ub77c\uc6b0\ub4dc<\/a>&#8221; rel=&#8221;nofollow sponsored&#8221; target=&#8221;_blank&#8221;>\ud504\ub85c\ub355\uc158<\/a> \ud658\uacbd\uc744 \uc704\ud55c \ucd5c\uc801\ud654<\/p>\n<p>### \uc21c\uc218 \ubca1\ud130 \uac80\uc0c9\ub9cc\uc73c\ub85c\ub294 \ubd80\uc871\ud569\ub2c8\ub2e4<\/p>\n<p>\ubca1\ud130 \uac80\uc0c9\uc740 \uc758\ubbf8\ub860\uc801 \uc720\uc0ac\uc131\uc740 \uc798 \uc7a1\uc9c0\ub9cc, \uace0\uc720 \uba85\uc0ac\ub098 \uc81c\ud488\uba85 \uac19\uc740 \uc815\ud655\ud55c \ud0a4\uc6cc\ub4dc \ub9e4\uce6d\uc5d0\uc11c\ub294 BM25\uc5d0 \ubc00\ub9bd\ub2c8\ub2e4. \ub450 \ubc29\uc2dd\uc744 \uacb0\ud569\ud558\uba74 \ud6e8\uc52c \uc548\uc815\uc801\uc778 \uacb0\uacfc\uac00 \ub098\uc635\ub2c8\ub2e4.<\/p>\n<p>Weaviate\uc758 \ud558\uc774\ube0c\ub9ac\ub4dc \uac80\uc0c9\uc740 \ub2e4\uc74c\uacfc \uac19\uc774 \uc501\ub2c8\ub2e4:<\/p>\n<p>&#8220;`python<br \/>\nresults = collection.query.hybrid(<br \/>\n    query=&#8221;\ubca1\ud130 \ub370\uc774\ud130\ubca0\uc774\uc2a4 \uc131\ub2a5 \ucd5c\uc801\ud654&#8221;,<br \/>\n    alpha=0.7,  # 0: BM25 \ud0a4\uc6cc\ub4dc \uc911\uc2ec, 1: \ubca1\ud130 \uc911\uc2ec<br \/>\n    limit=5<br \/>\n)<br \/>\n&#8220;`<\/p>\n<p>`alpha` \uac12\uc740 \ub370\uc774\ud130 \ud2b9\uc131\uc5d0 \ub9de\uac8c \uc870\uc815\ud569\ub2c8\ub2e4. \uae30\uc220 \ubb38\uc11c\ucc98\ub7fc \uc815\ud655\ud55c \uc6a9\uc5b4 \ub9e4\uce6d\uc774 \uc911\uc694\ud55c \uacbd\uc6b0 0.5 \uc774\ud558\ub85c \ub0ae\ucd94\ub294 \uac8c \ud6a8\uacfc\uc801\uc785\ub2c8\ub2e4.<\/p>\n<p>### \uc7ac\uc21c\uc704\ud654(Reranking)<\/p>\n<p>1\ucc28 \ubca1\ud130 \uac80\uc0c9\uc73c\ub85c \ud6c4\ubcf4 \ubb38\uc11c\ub97c \ube60\ub974\uac8c \uc881\ud788\uace0, Cross-Encoder \ubaa8\ub378\ub85c \uc7ac\uc21c\uc704\ud654\ud558\uba74 \uac80\uc0c9 \ud488\uc9c8\uc774 \ub208\uc5d0 \ub744\uac8c \uc62c\ub77c\uac11\ub2c8\ub2e4.<\/p>\n<p>&#8220;`python<br \/>\nfrom sentence_transformers import CrossEncoder<\/p>\n<p>reranker = CrossEncoder(&#8220;cross-encoder\/ms-marco-MiniLM-L-6-v2&#8243;)<\/p>\n<p>def rerank(query: str, candidates: list[str], top_n: int = 3) -> list[str]:<br \/>\n    pairs = [(query, c) for c in candidates]<br \/>\n    scores = reranker.predict(pairs)<br \/>\n    ranked = sorted(zip(scores, candidates), reverse=True)<br \/>\n    return [doc for _, doc in ranked[:top_n]]<br \/>\n&#8220;`<\/p>\n<p>\ucd08\uae30 \uac80\uc0c9\uc740 \ube60\ub978 ANN\uc73c\ub85c \ucc98\ub9ac\ud558\uace0, \ucd5c\uc885 \uc120\ud0dd\ub9cc Cross-Encoder\ub85c \uc815\ubc00\ud558\uac8c \ub2e4\ub4ec\ub294 \uad6c\uc870\ub77c \uc18d\ub3c4\uc640 \ud488\uc9c8 \ubaa8\ub450 \uc7a1\uc744 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p>### \ucffc\ub9ac \uacb0\uacfc \uce90\uc2f1<\/p>\n<p>\ubc18\ubcf5\ub418\ub294 \ub3d9\uc77c \ucffc\ub9ac\uc5d0 \ub300\ud55c \uc751\ub2f5 \ube44\uc6a9\uacfc \uc9c0\uc5f0\uc744 \uc904\uc774\uae30 \uc704\ud574 \uacb0\uacfc\ub97c \uce90\uc2f1\ud569\ub2c8\ub2e4.<\/p>\n<p>&#8220;`python<br \/>\nimport hashlib<br \/>\nimport redis<\/p>\n<p>cache = redis.Redis(host=&#8221;localhost&#8221;, port=6379)<\/p>\n<p>def cached_query(query: str) -> str:<br \/>\n    key = hashlib.sha256(query.encode()).hexdigest()<br \/>\n    cached = cache.get(key)<br \/>\n    if cached:<br \/>\n        return cached.decode()<br \/>\n    result = retrieve_and_generate(query)<br \/>\n    cache.setex(key, 3600, result)  # TTL 1\uc2dc\uac04<br \/>\n    return result<br \/>\n&#8220;`<\/p>\n<p>\uc774 \uad6c\ud604\uc740 \ucffc\ub9ac \ubb38\uc790\uc5f4\uc774 \ub3d9\uc77c\ud560 \ub54c\ub9cc \uce90\uc2dc\ub97c \uc4f0\ub294 **\uc815\ud655 \ub9e4\uce6d \uce90\uc2f1**\uc785\ub2c8\ub2e4. \uc720\uc0ac\ud55c \ucffc\ub9ac\uae4c\uc9c0 \uce90\uc2dc\uc5d0\uc11c \ucc98\ub9ac\ud558\ub824\uba74 \ucffc\ub9ac \uc784\ubca0\ub529 \uac04 \uc720\uc0ac\ub3c4\ub97c \ube44\uad50\ud558\ub294 \ubca1\ud130 \uae30\ubc18 \uc2dc\ub9e8\ud2f1 \uce90\uc2f1(\uc608: GPTCache)\uc744 \ubcc4\ub3c4\ub85c \uad6c\uc131\ud574\uc57c \ud569\ub2c8\ub2e4.<\/p>\n<p>&#8212;<\/p>\n<p>## \ud3c9\uac00\uc640 \ubaa8\ub2c8\ud130\ub9c1<\/p>\n<p>\ubc30\ud3ec\ud558\uace0 \ub098\uc11c \uc190 \ub193\uc73c\uba74 \uc548 \ub429\ub2c8\ub2e4. <a href=\"https:\/\/blog.rebalai.com\/ko\/2026\/03\/05\/ai-pipeline-lessons\/\" title=\"\ud504\ub85c\ub355\uc158 AI\">\ud504\ub85c\ub355\uc158 AI<\/a> \uc2dc\uc2a4\ud15c\uc740 \ud488\uc9c8 \ubaa8\ub2c8\ud130\ub9c1\uc774 \ud544\uc218\uc785\ub2c8\ub2e4. \uc8fc\uc694 \uce21\uc815 \uc9c0\ud45c\ub294 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4.<\/p>\n<p>| \uc9c0\ud45c | \uc124\uba85 |<br \/>\n|&#8212;|&#8212;|<br \/>\n| **Faithfulness** | LLM\uc774 \uac80\uc0c9\ub41c \ucee8\ud14d\uc2a4\ud2b8 \ubc94\uc704 \uc548\uc5d0\uc11c\ub9cc \ub2f5\ubcc0\ud558\ub294\uc9c0 |<br \/>\n| **Context Recall** | \uc815\ub2f5\uc5d0 \ud544\uc694\ud55c \uccad\ud06c\uac00 \uc2e4\uc81c\ub85c \uac80\uc0c9\ub418\uc5c8\ub294\uc9c0 |<br \/>\n| **Answer Relevancy** | \uc0dd\uc131\ub41c \ub2f5\ubcc0\uc774 \uc9c8\ubb38\uacfc \uad00\ub828\uc774 \uc788\ub294\uc9c0 |<br \/>\n| **\uc9c0\uc5f0 \uc2dc\uac04** | P50\/P95 \ub808\uc774\ud134\uc2dc |<\/p>\n<p>[RAGAS](https:\/\/github.com\/explodinggradients\/ragas) \ud504\ub808\uc784\uc6cc\ud06c\ub97c \uc4f0\uba74 \uc774 \uc9c0\ud45c\ub4e4\uc744 \uc790\ub3d9\uc73c\ub85c \uce21\uc815\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p>&#8220;`python<br \/>\nfrom ragas import evaluate<br \/>\nfrom ragas.metrics import faithfulness, answer_relevancy, context_recall<\/p>\n<p>result = evaluate(<br \/>\n    dataset=eval_dataset,<br \/>\n    metrics=[faithfulness, answer_relevancy, context_recall]<br \/>\n)<br \/>\nprint(result)<br \/>\n&#8220;`<\/p>\n<p>\ud3c9\uac00 \ub370\uc774\ud130\uc14b\uc740 \uc2e4\uc81c \uc0ac\uc6a9\uc790 \ucffc\ub9ac\uc640 \uae30\ub300 \ub2f5\ubcc0\uc73c\ub85c \uad6c\uc131\ud558\ub294 \uac8c \uac00\uc7a5 \ud604\uc2e4\uc801\uc785\ub2c8\ub2e4. \ud569\uc131 \ub370\uc774\ud130\ub9cc\uc73c\ub85c\ub294 \uc2e4\uc81c \ud488\uc9c8 \uc800\ud558\ub97c \uac10\uc9c0\ud558\uae30 \uc5b4\ub835\uc2b5\ub2c8\ub2e4&#8212;\uc774\uac74 \uc9c1\uc811 \uacaa\uc5b4\ubd10\uc57c \uc2e4\uac10\ud558\uac8c \ub429\ub2c8\ub2e4.<\/p>\n<p>&#8212;<\/p>\n<p>## \ub9c8\uce58\uba70<\/p>\n<p>\uae30\ubcf8 \ud30c\uc774\ud504\ub77c\uc778\uc744 \uad6c\uc131\ud55c \uc774\ud6c4\uac00 \uc9c4\uc9dc \uc2dc\uc791\uc785\ub2c8\ub2e4. \uccad\ud0b9 \uc804\ub7b5, \uc784\ubca0\ub529 <a href=\"https:\/\/blog.rebalai.com\/ko\/2026\/03\/05\/claude-vs-gpt-4o-vs-gemini-20-2026-ai\/\" title=\"\ubaa8\ub378 \uc120\ud0dd\">\ubaa8\ub378 \uc120\ud0dd<\/a>, \ud558\uc774\ube0c\ub9ac\ub4dc \uac80\uc0c9, \uc7ac\uc21c\uc704\ud654, \uce90\uc2f1, \uc9c0\uc18d\uc801\uc778 \ud488\uc9c8 \ud3c9\uac00&#8212;\uac01 \ub2e8\uacc4\uc5d0\uc11c \uc2e0\uc911\ud558\uac8c \uacb0\uc815\ud574\uc57c \ud560 \uac83\ub4e4\uc774 \ub9ce\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\ubca1\ud130 \ub370\uc774\ud130\ubca0\uc774\uc2a4 \uc120\ud0dd\uc5d0\uc11c\ub294 Pinecone\uc774 \ube60\ub978 \uc2dc\uc791\uacfc \uad00\ub9ac \ud3b8\uc758\uc131 \uba74\uc5d0\uc11c \uc720\ub9ac\ud558\uace0, Weaviate\ub294 \ub370\uc774\ud130 \uc8fc\uad8c\uacfc \uc7a5\uae30\uc801\uc778 \ube44\uc6a9 \ud6a8\uc728\uc774 \uc911\uc694\ud55c \ud658\uacbd\uc5d0 \ub354 \ub9de\uc2b5\ub2c8\ub2e4. \uc5b4\ub290 \ucabd\uc744 \uc120\ud0dd\ud558\ub4e0 \uc774 \uae00\uc5d0\uc11c \ub2e4\ub8ec \ud30c\uc774\ud504\ub77c\uc778 \uad6c\uc870\ub294 \ub3d9\uc77c\ud558\uac8c \uc801\uc6a9\ub429\ub2c8\ub2e4.<\/p>\n<p>**\ub2e4\uc74c \ub2e8\uacc4\ub85c \uad8c\uc7a5\ud558\ub294 \uc21c\uc11c:**<\/p>\n<p>1. \ub3c4\uba54\uc778 \ubb38\uc11c 20~50\uac1c\ub85c \uc18c\uaddc\ubaa8 \ud30c\uc774\ud504\ub77c\uc778\uc744 \uba3c\uc800 \uad6c\uc131\ud569\ub2c8\ub2e4<br \/>\n2. \uc2e4\uc81c \uc0ac\uc6a9\uc790 \ucffc\ub9ac 30\uac1c \uc774\uc0c1\uc73c\ub85c \ud3c9\uac00 \ub370\uc774\ud130\uc14b\uc744 \ub9cc\ub4e4\uace0 RAGAS\ub85c \uae30\uc900\uc120\uc744 \uce21\uc815\ud569\ub2c8\ub2e4<br \/>\n3. Context Recall\uc774 \ub0ae\uc73c\uba74 \uccad\ud0b9\uc744, Faithfulness\uac00 \ub0ae\uc73c\uba74 \ud504\ub86c\ud504\ud2b8\ub97c \uba3c\uc800 \uc870\uc815\ud569\ub2c8\ub2e4<br \/>\n4. \ud2b8\ub798\ud53d\uc774 \ub298\uc5b4\ub098\ub294 \uc2dc\uc810\uc5d0 \uc7ac\uc21c\uc704\ud654\uc640 \uce90\uc2f1\uc744 \ucd94\uac00\ud569\ub2c8\ub2e4<\/p>\n<h2>\uacb0\ub860<\/h2>\n<p>\uad6c\uccb4\uc801\uc778 \uc9c8\ubb38\uc774\ub098 \ub9c9\ud788\ub294 \ubd80\ubd84\uc774 \uc788\uc73c\uba74 \ub313\uae00\ub85c \ub0a8\uaca8\uc8fc\uc138\uc694.<\/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;\ubca1\ud130 \ub370\uc774\ud130\ubca0\uc774\uc2a4\ub97c \uc0ac\uc6a9\ud55c \ud504\ub85c\ub355\uc158 RAG \uc560\ud50c\ub9ac\ucf00\uc774\uc158 \uad6c\ucd95&#8221;, &#8220;description&#8221;: &#8220;# \ubca1\ud130 \ub370\uc774\ud130\ubca0\uc774\uc2a4\ub97c \uc0ac\uc6a9\ud55c \ud504\ub85c\ub355\uc158 RAG \uc560\ud50c\ub9ac\ucf00<\/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":[2],"tags":[],"class_list":["post-4","post","type-post","status-publish","format-standard","hentry","category-ai-"],"_links":{"self":[{"href":"https:\/\/blog.rebalai.com\/ko\/wp-json\/wp\/v2\/posts\/4","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=4"}],"version-history":[{"count":20,"href":"https:\/\/blog.rebalai.com\/ko\/wp-json\/wp\/v2\/posts\/4\/revisions"}],"predecessor-version":[{"id":221,"href":"https:\/\/blog.rebalai.com\/ko\/wp-json\/wp\/v2\/posts\/4\/revisions\/221"}],"wp:attachment":[{"href":"https:\/\/blog.rebalai.com\/ko\/wp-json\/wp\/v2\/media?parent=4"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.rebalai.com\/ko\/wp-json\/wp\/v2\/categories?post=4"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.rebalai.com\/ko\/wp-json\/wp\/v2\/tags?post=4"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}