{"id":6213,"date":"2026-01-06T19:06:30","date_gmt":"2026-01-06T10:06:30","guid":{"rendered":"https:\/\/secondlife.lol\/?p=6213"},"modified":"2026-01-06T19:06:33","modified_gmt":"2026-01-06T10:06:33","slug":"oh-my-opencode-subagent-api-key-setting","status":"publish","type":"post","link":"https:\/\/secondlife.lol\/zh\/oh-my-opencode-subagent-api-key-setting\/","title":{"rendered":"Oh My OpenCode \uc0ac\uc6a9\ubc95 \u2013 Subagent API Key \uc14b\ud305\ud558\ub294 \ubc95 (\ubb34\ub8cc\u00b7\uc720\ub8cc \uc644\uc804 \uac00\uc774\ub4dc)"},"content":{"rendered":"<style>.kb-image6213_541500-5b .kb-image-has-overlay:after{opacity:0.3;}<\/style>\n<div class=\"wp-block-kadence-image kb-image6213_541500-5b\"><figure class=\"aligncenter size-large\"><img decoding=\"async\" width=\"600\" height=\"400\" src=\"https:\/\/secondlife.lol\/wp-content\/uploads\/2026\/01\/image-35-1-600x400.jpg\" alt=\"Subagent API Key \uc138\ud305 \ud3ec\uc2a4\ud2b8 \ub300\ud45c \uc774\ubbf8\uc9c0\" class=\"kb-img wp-image-6214\" srcset=\"https:\/\/secondlife.lol\/wp-content\/uploads\/2026\/01\/image-35-1-600x400.jpg 600w, https:\/\/secondlife.lol\/wp-content\/uploads\/2026\/01\/image-35-1-300x200.jpg 300w, https:\/\/secondlife.lol\/wp-content\/uploads\/2026\/01\/image-35-1-768x512.jpg 768w, https:\/\/secondlife.lol\/wp-content\/uploads\/2026\/01\/image-35-1-18x12.jpg 18w, https:\/\/secondlife.lol\/wp-content\/uploads\/2026\/01\/image-35-1.jpg 1200w\" sizes=\"(max-width: 600px) 100vw, 600px\" \/><\/figure><\/div>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><\/blockquote>\n\n\n\n<p><a href=\"https:\/\/secondlife.lol\/zh\/oh-my-opencode-guide\/\" data-type=\"post\" data-id=\"5382\">Oh My OpenCode<\/a>\ub294 \uc5ec\ub7ec <strong>SubAgent\uac00 \uc5ed\ud560\uc744 \ub098\ub220 \ud611\uc5c5<\/strong>\ud558\ub294 \uad6c\uc870\ub77c\uc11c,<br>\uc5b4\ub5a4 <strong>\ubaa8\ub378\uc744 \uc5b4\ub514\uc5d0 \uc5f0\uacb0\ud558\ub290\ub0d0<\/strong>\uac00 \uc131\ub2a5\uc744 \ud06c\uac8c \uc88c\uc6b0\ud569\ub2c8\ub2e4.<br><a href=\"https:\/\/secondlife.lol\/zh\/opencode-oh-my-opencode-%ec%82%ac%ec%9a%a9%eb%b2%95-react-django-%eb%b8%94%eb%a1%9c%ea%b7%b8-%eb%a7%8c%eb%93%a4%ea%b8%b0\/\">\u4e0a\u4e00\u7bc7\u6587\u7ae0<\/a>\uc5d0\uc11c\ub294 SubAgent API Key\ub97c \uc138\ud305 \uc124\uba85\uc774 \uc5c6\uc5b4\uc11c<br>\uc774\uac78 \uc2e4\uc81c \uc5b4\ub5bb\uac8c \uc0ac\uc6a9\ud574\uc57c \ud558\uc9c0 \ud558\ub294 \uad81\uae08\uc810\uc774 \uc788\uc5c8\uc744 \uac81\ub2c8\ub2e4.<\/p>\n\n\n\n<p>\uadf8\ub798\uc11c \uc774 \uae00\uc5d0\uc11c\ub294 \ub2e4\uc74c\uc758 \ub0b4\uc6a9\uc744 \ud55c\ubc88\uc5d0 \uc815\ub9ac\ud574\ub4dc\ub9b4\ub824\uace0 \ud574\uc694.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\uac00\uc7a5 \uc548\uc815\uc801\uc778 \u201c\ucd94\ucc9c \uc138\ud305\u201d(\uc720\ub8cc \uc704\uc8fc)<\/strong><\/li>\n\n\n\n<li><strong>\ube44\uc6a9 \ucd5c\uc18c\ud654 \u201c\ubb34\ub8cc \uc704\uc8fc \uc138\ud305\u201d + \uc791\uc5c5 \ucabc\uac1c\uae30 \uc804\ub7b5<\/strong><\/li>\n\n\n\n<li><strong>GPT-5 mini <strong>GitHub Copilot<\/strong><\/strong> <strong>\ubb34\ub8cc \ud65c\uc6a9\ubc95<\/strong><\/li>\n\n\n\n<li><strong>SubAgent API Key \ubc1c\uae09 &amp; \uc8fc\uc758\uc0ac\ud56d<\/strong><\/li>\n<\/ol>\n\n\n<style>.kb-table-of-content-nav.kb-table-of-content-id83_5f28a6-34 .kb-table-of-content-wrap{padding-top:var(--global-kb-spacing-sm, 1.5rem);padding-right:var(--global-kb-spacing-sm, 1.5rem);padding-bottom:var(--global-kb-spacing-sm, 1.5rem);padding-left:var(--global-kb-spacing-sm, 1.5rem);border-top:3px solid var(--global-palette2, #2B6CB0);border-right:3px solid var(--global-palette2, #2B6CB0);border-bottom:3px solid var(--global-palette2, #2B6CB0);border-left:3px solid var(--global-palette2, #2B6CB0);border-top-left-radius:5px;border-top-right-radius:5px;border-bottom-right-radius:5px;border-bottom-left-radius:5px;box-shadow:0px 0px 14px 0px rgba(0, 0, 0, 0.2);}.kb-table-of-content-nav.kb-table-of-content-id83_5f28a6-34 .kb-table-of-contents-title-wrap{padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.kb-table-of-content-nav.kb-table-of-content-id83_5f28a6-34 .kb-table-of-contents-title-wrap{color:var(--global-palette2, #2B6CB0);}.kb-table-of-content-nav.kb-table-of-content-id83_5f28a6-34 .kb-table-of-contents-title{color:var(--global-palette2, #2B6CB0);font-size:28px;font-weight:regular;font-style:normal;}.kb-table-of-content-nav.kb-table-of-content-id83_5f28a6-34 .kb-table-of-content-wrap .kb-table-of-content-list{color:var(--global-palette1, #3182CE);line-height:2em;font-weight:regular;font-style:normal;margin-top:var(--global-kb-spacing-sm, 1.5rem);margin-right:0px;margin-bottom:0px;margin-left:0px;}.kb-table-of-content-nav.kb-table-of-content-id83_5f28a6-34 .kb-table-of-content-wrap .kb-table-of-content-list .kb-table-of-contents__entry:hover{color:var(--global-palette6, #718096);}@media all and (max-width: 1024px){.kb-table-of-content-nav.kb-table-of-content-id83_5f28a6-34 .kb-table-of-content-wrap{border-top:3px solid var(--global-palette2, #2B6CB0);border-right:3px solid var(--global-palette2, #2B6CB0);border-bottom:3px solid var(--global-palette2, #2B6CB0);border-left:3px solid var(--global-palette2, #2B6CB0);}}@media all and (max-width: 1024px){.kb-table-of-content-nav.kb-table-of-content-id83_5f28a6-34 .kb-table-of-contents-title{font-size:28px;}}@media all and (max-width: 767px){.kb-table-of-content-nav.kb-table-of-content-id83_5f28a6-34 .kb-table-of-content-wrap{border-top:3px solid var(--global-palette2, #2B6CB0);border-right:3px solid var(--global-palette2, #2B6CB0);border-bottom:3px solid var(--global-palette2, #2B6CB0);border-left:3px solid var(--global-palette2, #2B6CB0);}.kb-table-of-content-nav.kb-table-of-content-id83_5f28a6-34 .kb-table-of-contents-title{font-size:28px;}}<\/style>\n\n\n<p><strong><a href=\"https:\/\/opencode.ai\/\" target=\"_blank\" rel=\"noopener\">OpenCode<\/a><\/strong>\ub294 \ud130\ubbf8\ub110\/\ub370\uc2a4\ud06c\ud1b1\/IDE\uc5d0\uc11c \ub3cc\uc544\uac00\ub294 <strong>\uc624\ud508\uc18c\uc2a4 AI \ucf54\ub529 \uc5d0\uc774\uc804\ud2b8<\/strong>\ub85c <br>\uc5ec\ub7ec LLM \uc81c\uacf5\uc790(Claude, GPT, Gemini, Copilot \ub4f1)\ub97c \uc790\uc720\ub86d\uac8c \ubd99\uc77c \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<p>\ucd94\uac00\ub85c, <strong><a href=\"https:\/\/github.com\/code-yeongyu\/oh-my-opencode\" target=\"_blank\" rel=\"noopener\">Oh My OpenCode<\/a><\/strong>\ub294\uc5ec\uae30\uc5d0 \uc11c\ube0c\uc5d0\uc774\uc804\ud2b8(Oracle\u00b7Librarian\u00b7Explore \ub4f1)\ub97c \ubb36\uc5b4\uc11c<br>\u201c\uc124\uacc4 \u2192 \ucf54\ub4dc \uc791\uc131 \u2192 \ubb38\uc11c\ud654 \u2192 \ub9ac\ud329\ud1a0\ub9c1\u201d\uc744 <strong>\ud55c \ud300\ucc98\ub7fc \uc790\ub3d9\ud654<\/strong>\ud574 \uc8fc\ub294 \ud50c\ub7ec\uadf8\uc778\uc73c\ub85c \ubcf4\uc2dc\uba74 \ub418\uc5b4\uc694.<\/p>\n\n\n\n<p>OpenCode\ub294 <strong>\u201c\ubb34\ub8cc \ubaa8\ub378 \ud3ec\ud568 + \uc6d0\ud558\ub294 \ubaa8\ub378 \uc544\ubb34\ub098 \uc5f0\uacb0\u201d<\/strong> \ucee8\uc149\uc774\ub77c,<br>\ucc98\uc74c \uc124\uce58\ud574\ub3c4 Zen\u00b7\ub85c\uceec\u00b7\uc800\uac00 \ubaa8\ub378 \ub4f1\uc744 \ubc14\ub85c \uc4f8 \uc218 \uc788\uace0,<br>\uc6d0\ud558\uba74 OpenAI, Anthropic, Google, GitHub Copilot\uc744 \ucd94\uac00\ub85c \uc5f0\uacb0\ud574\uc11c \uc4f8 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">1. \uac00\uc7a5 \uc548\uc815\ud55c \ucd94\ucc9c \uc138\ud305 \u2013 \u201c\uc2e4\uc81c \uac1c\ubc1c\uc6a9 \uae30\ubcf8 \uad6c\uc131\u201d<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">1-1. \uc5b4\ub5a4 \uc870\ud569\uc774 \uc88b\uc740\uac00?<\/h3>\n\n\n\n<p>\ud14c\uc2a4\ud2b8\ud574\ubcf4\uba74 \uc544\ub798 \uc5ed\ud560 \ubd84\ub2f4\uc774 \uac00\uc7a5 \ub35c \uc2a4\ud2b8\ub808\uc2a4 \ubc1b\uc73c\uba74\uc11c \uc798 \ub3cc\uc544\uac04\ub2e4\uace0 \ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\uc5ed\ud560<\/th><th>\ucd94\ucc9c \ubaa8\ub378(\uc608\uc2dc)<\/th><th>\uc774\uc720<\/th><\/tr><\/thead><tbody><tr><td>\uc124\uacc4\/\ub9ac\ubdf0(oracle)<\/td><td><code>opencode\/claude-sonnet-4-5<\/code><\/td><td>\uc124\uacc4\u00b7\ub9ac\ubdf0\u00b7\uc124\uba85\ub825 \uc88b\uace0 \uae34 \ub9e5\ub77d \uc548\uc815\uc801<\/td><\/tr><tr><td>\ucf54\ub4dc \uc791\uc131(code-writer)<\/td><td><code>opencode\/gpt-5-codex<\/code><\/td><td>\uc5d0\uc774\uc804\ud2b8 \ucf54\ub529\uc5d0 \ucd5c\uc801\ud654\ub41c \ucd5c\uc2e0 GPT-5 \uacc4\uc5f4<\/td><\/tr><tr><td>\ubb38\uc11c\/\uac80\uc0c9(librarian)<\/td><td><code>opencode\/gemini-3-pro<\/code><\/td><td>\ubb38\uc11c \uc694\uc57d\u00b7\uac80\uc0c9\u00b7\ub808\ud37c\ub7f0\uc2a4 \uc815\ub9ac\uc5d0 \uac15\ud568<\/td><\/tr><tr><td>\ucf54\ub4dc \ud0d0\uc0c9(explore)<\/td><td><code>opencode\/grok-code<\/code><\/td><td>\ube60\ub978 \ucf54\ub4dc \uc2a4\uce94\u00b7\ud30c\uc77c \ud3b8\uc9d1\uc6a9\uc73c\ub85c \ucd5c\uc801\ud654<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>\u26a0\ufe0f \uc704 \ubaa8\ub378\ub4e4\uc740 OpenCode\uac00 \uc81c\uacf5\ud558\ub294 <strong>Zen<\/strong> \uc720\ub8cc \ubaa8\ub378 \uc608\uc2dc\uc785\ub2c8\ub2e4.<br>(\uc2e4\uc81c \uc0ac\uc6a9 \uc2dc <code>\/connect \u2192 OpenCode Zen<\/code> \ud6c4 <code>\/models<\/code>\uc5d0\uc11c \uc120\ud0dd) (<a href=\"https:\/\/opencode.ai\/docs\/zen\/\" target=\"_blank\" rel=\"noopener\">OpenCode<\/a>)<\/p>\n<\/blockquote>\n\n\n\n<h3 class=\"wp-block-heading\">1-2. \uc124\uce58 &amp; \uae30\ubcf8 \uc5f0\uacb0<\/h3>\n\n\n\n<p>\uc774\uc804\uc5d0\ub3c4 \ub2e4\ub918\uc9c0\ub9cc \ub2e4\uc2dc \ud55c\ubc88 \ub354 \uc0b4\ud3b4\ubcf4\uba74 \ud130\ubbf8\ub110\uc5d0\uc11c \uc544\ub798\uc758 \uba85\ub839\uc744 \uc2e4\ud589\ud558\uba74<br>opencode\uc640 oh-my-opencode\uac00 \uc124\uce58\ub429\ub2c8\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>curl -fsSL https:\/\/opencode.ai\/install | bash\n# \ub610\ub294\nbunx oh-my-opencode install<\/code><\/pre>\n\n\n\n<p>\uc124\uce58 \ud6c4 TUI(\ub610\ub294 CLI)\uc5d0\uc11c \uc21c\uc11c\ub300\ub85c<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/connect          # \ub610\ub294 opencode auth login\n# \u2192 Anthropic \uc120\ud0dd \ud6c4 \ub85c\uadf8\uc778 (Claude)\n\/connect\n# \u2192 OpenCode Zen \ub610\ub294 OpenAI \uc120\ud0dd\n\/connect\n# \u2192 Google (Gemini) \uc120\ud0dd\n\/connect\n# \u2192 Groq \ub4f1 \ud544\uc694\uc2dc \ucd94\uac00<\/code><\/pre>\n\n\n\n<p>\ud504\ub85c\ubc14\uc774\ub354 \ud0a4\ub294 <code>~\/.local\/share\/opencode\/auth.json<\/code>\uc5d0 \uc800\uc7a5\ub429\ub2c8\ub2e4.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">1-3. Oh My OpenCode \uc11c\ube0c\uc5d0\uc774\uc804\ud2b8 \uc124\uc815 \uc608\uc2dc<\/h3>\n\n\n\n<p><strong>\ud504\ub85c\uc81d\ud2b8 \ub8e8\ud2b8<\/strong>\uc5d0\uc11c json \ud30c\uc77c\uc744 \ub9cc\ub4e4\uace0 \uc608\uc2dc\ub97c \ubcf4\uace0 \uc6d0\ud558\ub294 \ubaa8\ub378\ub85c \uc124\uc815\ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mkdir -p .opencode\nnano .opencode\/oh-my-opencode.json # \ud639\uc740 \uc5d0\ub514\ud130 \uc774\uc6a9<\/code><\/pre>\n\n\n\n<p>\uc608\uc2dc \uc124\uc815:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{\n  \"agents\": {\n    \"oracle\":    { \"model\": \"opencode\/claude-sonnet-4-5\" },\n    \"code-writer\": { \"model\": \"opencode\/gpt-5.2\" },\n    \"librarian\": { \"model\": \"opencode\/gemini-3-pro\" },\n    \"explore\":   { \"model\": \"opencode\/grok-code\" }\n  },\n  \"ralph_loop\": {\n    \"enabled\": true,\n    \"default_max_iterations\": 120\n  }\n}<\/code><\/pre>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>\uc774 \uad6c\uc131\uc740 \uae34 ultrawork \uc791\uc5c5(\ub9ac\ud329\ud1a0\ub9c1\u00b7\ub300\uaddc\ubaa8 \ucf54\ub4dc \uc0dd\uc131 \ub4f1)\uc5d0\uc11c\ub3c4<br>\uc124\uacc4 \u2192 \uad6c\ud604 \u2192 \ubb38\uc11c\ud654\ub97c \uc11c\ube0c\uc5d0\uc774\uc804\ud2b8\ub4e4\uc774 <br><strong>\ub9b4\ub808\uc774\ucc98\ub7fc \uc774\uc5b4\ubc1b\uc73c\uba70<\/strong> \ub05d\uae4c\uc9c0 \uc218\ud589\ud558\ub294 \ub370 \uc720\ub9ac\ud569\ub2c8\ub2e4.<\/p>\n<\/blockquote>\n\n\n\n<h2 class=\"wp-block-heading\">2. GitHub Copilot + GPT-5 mini \ud65c\uc6a9 \u2013 \u201c\ucd94\uac00 \uacfc\uae08 \uc5c6\uc774 \ucd5c\ub300 \ud65c\uc6a9\u201d<\/h2>\n\n\n\n<p>OpenCode\ub294 GitHub Copilot\uc744 <strong>\ud558\ub098\uc758 LLM \uc81c\uacf5\uc790<\/strong>\ub85c \uc9c0\uc6d0\ud569\ub2c8\ub2e4. <\/p>\n\n\n\n<p>\ucd5c\uadfc GitHub\uac00 GPT-5 mini\ub97c Copilot\uc5d0 \uae30\ubcf8 \ud3ec\ud568 \ubaa8\ub378(=\ubb34\ub8cc \ud50c\ub79c \ud3ec\ud568)\ub85c \uc81c\uacf5\ud558\uba74\uc11c,<br>OpenCode\uc5d0\uc11c\ub3c4 \uc774 \ubaa8\ub378\uc744 <strong>\ucd94\uac00 API \uc694\uae08 \uc5c6\uc774<\/strong> \uc4f8 \uc218 \uc788\uac8c \ub41c \uac83\uc774 \ud575\uc2ec \ud3ec\uc778\ud2b8\uc785\ub2c8\ub2e4.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">2-1. Copilot \uc5f0\uacb0 \uc21c\uc11c<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\ud130\ubbf8\ub110\uc5d0\uc11c:<code>opencode auth login<\/code><\/li>\n\n\n\n<li>\ud504\ub85c\ubc14\uc774\ub354 \ubaa9\ub85d\uc5d0\uc11c <strong>GitHub Copilot<\/strong> \uc120\ud0dd<\/li>\n\n\n\n<li>\ud654\uba74\uc5d0 \ub728\ub294 <strong>github.com\/login\/device \ucf54\ub4dc<\/strong>\ub97c \ube0c\ub77c\uc6b0\uc800\uc5d0\uc11c \uc785\ub825 \ud6c4 \uc2b9\uc778<\/li>\n\n\n\n<li>\ub2e4\uc2dc \ud130\ubbf8\ub110\uc5d0\uc11c:<code>\/models<\/code>\n<ul class=\"wp-block-list\">\n<li><code>copilot\/gpt-5-mini<\/code> \ub610\ub294 \ube44\uc2b7\ud55c \uc774\ub984\uc758 \ubaa8\ub378\uc744 \uc120\ud0dd<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">2-2. Oh My OpenCode\uc5d0 gpt-5-mini \uc5f0\uacb0 \uc608\uc2dc<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>{\n  \"agents\": {\n    \"code-writer\": { \"model\": \"copilot\/gpt-5-mini\" }\n  },\n  \"small_model\": \"copilot\/gpt-5-mini\"\n}<\/code><\/pre>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>\ud83d\udd0e \ucc38\uace0: \uc77c\ubd80 \uc774\uc288\uc5d0\uc11c <code>small_model<\/code>\uc774 \uc720\ub8cc <code>gemini-3-flash<\/code>\ub85c \uc7a1\ud788\ub294 \ubc84\uadf8\uac00 \ubcf4\uace0\ub41c \uc801\uc774 \uc788\uc5b4,<br>\uac00\ub2a5\ud558\uba74 <strong>\uba85\uc2dc\uc801\uc73c\ub85c <code>gpt-5-mini<\/code>\ub97c small_model\ub85c \uc9c0\uc815<\/strong>\ud558\ub294 \uac83\uc774 \uc548\uc804\ud569\ub2c8\ub2e4.<\/p>\n<\/blockquote>\n\n\n\n<p>\uc774\ub807\uac8c \uc124\uc815\ud558\uba74<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\uc77c\ubc18 \ucf54\ub529<\/strong>: <code>copilot\/gpt-5-mini<\/code>\ub85c \ube60\ub974\uace0 \uac00\ubcbc\uc6b4 \uc791\uc5c5 \ucc98\ub9ac<\/li>\n<\/ul>\n\n\n\n<p>\ud558\ub294 \u201c\ud63c\ud569 \uc6b4\uc6a9\u201d\uc774 \uac00\ub2a5\ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">3. \ubb34\ub8cc \uc704\uc8fc \uc138\ud305 \u2013 Gemini + \ub0b4\ubd80 \ubaa8\ub378\ub85c \u201c\ub9db\ubcf4\uae30\u201d<\/h2>\n\n\n\n<p>\uc77c\ub2e8 \ubb58 \uc54c\uc544\uc57c \uc720\ub85c\ub85c \uc0ac\uc6a9\ud558\ub358\uc9c0 \ud558\uc8e0, \uadf8\ucd78. <br>\uadf8\ub798\uc11c \uc77c\ub2e8 \ub3c8 \uc548 \uc4f0\uace0 \uc368\ubcf4\ub294\uac78\ub85c \ud574\ubcf4\uaca0\uc2b5\ub2c8\ub2e4.<br>\ub300\uc2e0 <strong>\uc791\uc5c5\uc740 \uc791\uac8c \ucabc\uac1c\uace0<\/strong>, \uc911\uc694\ud55c \ucf54\ub4dc\ub294 \uc62c\ub9ac\uc9c0 \uc54a\ub294\ub2e4\ub85c \uac00\ubcf4\uaca0\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">3-1. SubAgent API Key \ubc1c\uae09(Gemini \ubb34\ub8cc )<\/h3>\n\n\n<style>.kb-image6213_e9223b-6d .kb-image-has-overlay:after{opacity:0.3;}<\/style>\n<div class=\"wp-block-kadence-image kb-image6213_e9223b-6d\"><figure class=\"aligncenter size-medium_large\"><img decoding=\"async\" width=\"768\" height=\"353\" src=\"https:\/\/secondlife.lol\/wp-content\/uploads\/2026\/01\/image-35-3-768x353.jpg\" alt=\"Gemini \ubb34\ub8cc API \ud0a4 \ubc1c\uae09 \uc774\ubbf8\uc9c0\" class=\"kb-img wp-image-6216\" srcset=\"https:\/\/secondlife.lol\/wp-content\/uploads\/2026\/01\/image-35-3-768x353.jpg 768w, https:\/\/secondlife.lol\/wp-content\/uploads\/2026\/01\/image-35-3-300x138.jpg 300w, https:\/\/secondlife.lol\/wp-content\/uploads\/2026\/01\/image-35-3-600x276.jpg 600w, https:\/\/secondlife.lol\/wp-content\/uploads\/2026\/01\/image-35-3-18x8.jpg 18w, https:\/\/secondlife.lol\/wp-content\/uploads\/2026\/01\/image-35-3.jpg 1200w\" sizes=\"(max-width: 768px) 100vw, 768px\" \/><\/figure><\/div>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\ube0c\ub77c\uc6b0\uc800\uc5d0\uc11c <strong><a href=\"https:\/\/aistudio.google.com\/\" target=\"_blank\" rel=\"noopener\">Google AI Studio<\/a><\/strong> \uc811\uc18d<\/li>\n\n\n\n<li>\u4f7f\u7528 Google \u5e10\u6237\u767b\u5f55<\/li>\n\n\n\n<li>\uc88c\ud558\ub2e8 <strong>Get API key<\/strong> \uba54\ub274\uc5d0\uc11c \uc0c8 \ud0a4 \ubc1c\uae09(\uc704\uce58\ub294 \ubcc0\uacbd\ub420 \uc218 \uc788\uc2b5\ub2c8\ub2e4.)<\/li>\n\n\n\n<li>\ubc1c\uae09\ubc1b\uc740 \ud0a4\ub97c \ud658\uacbd\ubcc0\uc218 \ub610\ub294 <code>\/connect<\/code>\uc5d0 \uc785\ub825, \ub610\ub294 <code>opencode auth login<\/code> # \u2192 Google \/ Gemini \uc120\ud0dd \ud6c4 API \ud0a4 \uc785\ub825<\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\ubb34\ub8cc \ud2f0\uc5b4 \uae30\uc900 <code>gemini-1.5-flash<\/code>\ub294 \uaf64 \ub109\ub109\ud55c \uc694\uccad \ud55c\ub3c4(RPM\/TPM)\ub97c \uc81c\uacf5\ud569\ub2c8\ub2e4. (<a href=\"https:\/\/ai.google.dev\/gemini-api\/docs\/pricing\" target=\"_blank\" rel=\"noopener\">Google AI for Developers<\/a>)<\/li>\n<\/ul>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>\u26a0\ufe0f \uc911\uc694\ud55c \ubcf4\uc548 \ud3ec\uc778\ud2b8<br>\ubb34\ub8cc \ud2f0\uc5b4(\ud2b9\ud788 AI Studio)\ub294 <strong>\uc785\ub825 \ub370\uc774\ud130\uac00 \ubaa8\ub378 \uac1c\uc120\uc5d0 \ud65c\uc6a9\ub420 \uc218 \uc788\uc74c<\/strong>\uc774 \uba85\uc2dc\ub3fc \uc788\uc2b5\ub2c8\ub2e4.<br>\ubbfc\uac10\ud55c \uc0ac\ub0b4 \ucf54\ub4dc\u00b7\uacc4\uc57d\uc11c \ub4f1\uc740 <strong>\uc720\ub8cc \u201cPay-as-you-go\u201d \ud50c\ub79c + \ub370\uc774\ud130 \uc0ac\uc6a9 \uc548 \ud568 \uc124\uc815<\/strong>\uc744 \uad8c\uc7a5\ud569\ub2c8\ub2e4.<\/p>\n<\/blockquote>\n\n\n\n<h3 class=\"wp-block-heading\">3-2. \ubb34\ub8cc \uc138\ud305\uc6a9 oh-my-opencode.json \uc608\uc2dc<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>{\n  \"agents\": {\n    \"oracle\":       { \"model\": \"copilot\/gpt-4o\" },\n    \"code-writer\":  { \"model\": \"copilot\/gpt-4o\" },\n    \"librarian\":    { \"model\": \"google\/gemini-1.5-flash\" },\n    \"explore\":      { \"model\": \"opencode\/grok-code\" }\n  },\n  \"small_model\": \"copilot\/gpt-4o\",\n  \"ralph_loop\": {\n    \"enabled\": true,\n    \"default_max_iterations\": 40\n  }\n}<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\ubaa8\ub4e0 \ud575\uc2ec \uc5d0\uc774\uc804\ud2b8<\/strong>\u81f3 <code>gemini-1.5-flash<\/code>\uc5d0 \ubd99\uc5ec\uc11c<br>\uc124\uacc4\u00b7\uc694\uc57d \ub4f1\uae4c\uc9c0 \ud55c \ubc88\uc5d0 \ucc98\ub9ac<\/li>\n\n\n\n<li><code>ralph_loop<\/code> \ubc18\ubcf5 \ud69f\uc218\ub97c 60 \uc815\ub3c4\ub85c \uc81c\ud55c\ud574 <strong>\ubb34\ud55c \ub8e8\ud504\u00b7\uacfc\ub3c4\ud55c \ud638\ucd9c \ubc29\uc9c0<\/strong><\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">4. \u201c\ub300\uc2e0 \uc791\uc5c5\uc744 \uc791\uac8c \ucabc\uac1c\uc11c \uc2e4\ud589!\u201d \u2014 \uc9c4\uc9dc \uc911\uc694\ud55c \uc2e4\uc804 \ud301<\/h2>\n\n\n<style>.kb-image6213_e63cc9-54 .kb-image-has-overlay:after{opacity:0.3;}<\/style>\n<div class=\"wp-block-kadence-image kb-image6213_e63cc9-54\"><figure class=\"aligncenter size-large\"><img decoding=\"async\" width=\"600\" height=\"400\" src=\"https:\/\/secondlife.lol\/wp-content\/uploads\/2026\/01\/image-35-2-600x400.jpg\" alt=\"\ub300\uc2e0 \uc791\uc5c5\uc744 \uc791\uac8c \ucabc\uac1c\uc11c \uc2e4\ud589 \uc774\ubbf8\uc9c0\" class=\"kb-img wp-image-6215\" srcset=\"https:\/\/secondlife.lol\/wp-content\/uploads\/2026\/01\/image-35-2-600x400.jpg 600w, https:\/\/secondlife.lol\/wp-content\/uploads\/2026\/01\/image-35-2-300x200.jpg 300w, https:\/\/secondlife.lol\/wp-content\/uploads\/2026\/01\/image-35-2-768x512.jpg 768w, https:\/\/secondlife.lol\/wp-content\/uploads\/2026\/01\/image-35-2-18x12.jpg 18w, https:\/\/secondlife.lol\/wp-content\/uploads\/2026\/01\/image-35-2.jpg 1200w\" sizes=\"(max-width: 600px) 100vw, 600px\" \/><\/figure><\/div>\n\n\n\n<p>\ubb34\ub8cc \ud50c\ub79c\uc774\ub4e0, Copilot gpt-5 mini\ub4e0 <br>\uc131\uacf5\u00b7\uc2e4\ud328\ub97c \uac00\ub974\ub294 \ud3ec\uc778\ud2b8\ub294 \u201c\uc791\uc5c5 \ucabc\uac1c\uae30\u201d\uc785\ub2c8\ub2e4.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">4-1. \uc65c \ucabc\uac1c\uc57c \ud560\uae4c?<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\ubb34\ub8cc\/\uc800\uac00 \ubaa8\ub378\uc740\n<ul class=\"wp-block-list\">\n<li><strong>\uae34 \ub9e5\ub77d<\/strong>\uc5d0\uc11c \uc0ac\uace0\ub825\u00b7\uc815\ud655\ub3c4\uac00 \ub5a8\uc5b4\uc9c0\uae30 \uc27d\uace0<\/li>\n\n\n\n<li>\uc694\uccad \uc81c\ud55c(RPM\/RPD)\uc5d0 \ube68\ub9ac \uac78\ub9bd\ub2c8\ub2e4.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>\ud070 \uc791\uc5c5 \ud558\ub098\ub97c \ud55c \ubc88\uc5d0 \ub358\uc9c0\uba74\n<ul class=\"wp-block-list\">\n<li>\uc911\uac04\uc5d0 <strong>\uba48\ucda4<\/strong> or <strong>\ub9e5\ub77d \uc190\uc2e4<\/strong><\/li>\n\n\n\n<li>\uc5b4\ub514\uae4c\uc9c0 \ud588\ub294\uc9c0 \ucd94\uc801\uc774 \uc5b4\ub824\uc6c0<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">4-2. \ucabc\uac1c\ub294 \uae30\uc900 \u2013 \u201c\uae30\ub2a5 \ub2e8\uc704 + \ud30c\uc77c \ub2e8\uc704\u201d<\/h3>\n\n\n\n<p>\uc608\ub97c \ub4e4\uc5b4 <strong>Django + React \ube14\ub85c\uadf8<\/strong>\ub97c \ub9cc\ub4e0\ub2e4\uace0 \ud558\uba74<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Step 0 \u2013 Plan\ubd80\ud130 \ubf51\uae30<\/strong><code> <\/code>\n<ul class=\"wp-block-list\">\n<li><code>\uc774 \ud504\ub85c\uc81d\ud2b8\uc758 \uc804\uccb4 \uac1c\ubc1c \uacc4\ud68d\uc744 5~7\ub2e8\uacc4\ub85c \ub098\ub220\uc11c \uc368\uc918. \uac01 \ub2e8\uacc4\ub294 \ucd5c\ub300 20\uc904 \uc124\uba85, \uc0b0\ucd9c\ubb3c(\ud30c\uc77c\uba85)\uae4c\uc9c0 \ud3ec\ud568\ud574.<\/code><\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Step 1 \u2013 \ubc31\uc5d4\ub4dc API\ub9cc<\/strong>\n<ul class=\"wp-block-list\">\n<li><code>Step 1\ub9cc \uc218\ud589\ud574\uc918. Django\ub85c Post \ubaa8\ub378\/Serializer\/ViewSet\/URL\uae4c\uc9c0 \uc791\uc131\ud574. \uae30\uc874 \ucf54\ub4dc\uc5d0 patch \ud615\uc2dd\uc73c\ub85c \uc218\uc815\ud574\uc918.<\/code><\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Step 2 \u2013 React \ubaa9\ub85d \ud398\uc774\uc9c0<\/strong>\n<ul class=\"wp-block-list\">\n<li><code>\uc774\uc81c Step 2\ub9cc \uc2e4\ud589\ud574\uc918. React\ub85c \/posts \ubaa9\ub85d \ud398\uc774\uc9c0\ub97c \ub9cc\ub4e4\uace0, Django API\uc640 \uc5f0\ub3d9\ud558\ub294 \ucf54\ub4dc\ub9cc \uc791\uc131\ud574\uc918.<\/code><\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Step 3 \u2013 \uc778\uc99d &amp; \uad8c\ud55c<\/strong>\n<ul class=\"wp-block-list\">\n<li><code>Step 3\ub9cc \uc2e4\ud589\ud574\uc918. JWT \uae30\ubc18 \uc778\uc99d\uc744 \ubd99\uc774\uace0, \uc778\uc99d\ub41c \uc0ac\uc6a9\uc790\ub9cc \uae00\uc744 \uc791\uc131\ud560 \uc218 \uc788\uac8c \uc218\uc815\ud574\uc918.<\/code><\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<p>\u8fd9\u6837<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\uac01 \ud504\ub86c\ud504\ud2b8\uac00 \uc9e7\uc544\uc838<\/strong> \ubb34\ub8cc \ubaa8\ub378\uc758 \ud55c\ub3c4 \ub0b4\uc5d0\uc11c \uc548\uc804<\/li>\n\n\n\n<li>\uc2e4\ud328\ud574\ub3c4 <strong>\ud574\ub2f9 Step\ub9cc \ub2e4\uc2dc \uc2e4\ud589<\/strong>\ud558\uba74 \ub418\ubbc0\ub85c \ud68c\ubcf5 \uc26c\uc6c0<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">4-3. \uba48\ucdc4\uc744 \ub54c \uc774\uc5b4 \ub2ec\ub9ac\uae30 \ud328\ud134<\/h3>\n\n\n\n<p>\uc791\uc5c5 \ub3c4\uc911 \uba48\ucd94\uba74, \ud56d\uc0c1 <strong>\uac19\uc740 \ud328\ud134<\/strong>\uc73c\ub85c \uc774\uc5b4\uac00\uba74 \ub429\ub2c8\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>continue from last step\n\ud639\uc740 \uc9c0\uae08\uae4c\uc9c0 \uc0dd\uc131\ud55c \ud30c\uc77c\/\ucf54\ub4dc \ubaa9\ub85d\uc744 \uba3c\uc800 \uc694\uc57d\ud574\uc8fc\uace0, \uadf8 \ub2e4\uc74c\uc5d0 Step 3\ubd80\ud130 \ub2e4\uc2dc \uc774\uc5b4\uc11c \uc9c4\ud589\ud574\uc918.)<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\uc774\uc804 \ucee8\ud14d\uc2a4\ud2b8\ub97c \uc2a4\uc2a4\ub85c \uc694\uc57d\ud558\uac8c \ud558\uba74,<br>\ubb34\ub8cc \ubaa8\ub378\uc5d0\uc11c\ub3c4 <strong>\ub9e5\ub77d \ubcf5\uad6c \uc131\uacf5\ub960<\/strong>\uc774 \ud655 \uc62c\ub77c\uac11\ub2c8\ub2e4.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">4-4. Ralph Loop\uc640 \ud568\uaed8 \uc4f0\ub294 \ubc95<\/h3>\n\n\n\n<p><code>ralph_loop<\/code>\ub294 \u201c\uc5d0\uc774\uc804\ud2b8\uac00 \uc54c\uc544\uc11c \uba87 \ubc88\uc774\uace0 \uc7ac\uc2dc\ub3c4\u00b7\uac80\uc99d\u201d\ud558\uac8c \ub9cc\ub4dc\ub294 \ub8e8\ud504\uc785\ub2c8\ub2e4.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\uc720\ub8cc\/\uc548\uc815 \uc138\ud305<\/strong>: <code>default_max_iterations<\/code>\ub294 120~200<\/li>\n\n\n\n<li><strong>\ubb34\ub8cc\/\uc2e4\ud5d8 \uc138\ud305<\/strong>: 30~60 \uc815\ub3c4\ub85c \uc81c\ud55c<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>\"ralph_loop\": {\n  \"enabled\": true,\n  \"default_max_iterations\": 40\n}<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\uc774\ub807\uac8c \ud574\ub450\uba74, \ubb34\ub8cc \ubaa8\ub378\uc774 \uc911\uac04\uc5d0 \uc2e4\ud328\ud558\ub354\ub77c\ub3c4<br><strong>\uc2a4\uc2a4\ub85c \uba87 \ubc88 \ub354 \uc2dc\ub3c4<\/strong>\ud574\uc8fc\uace0,<br>\uadf8\ub798\ub3c4 \uc548 \ub418\uba74 \uac70\uae30\uc11c \uba48\ucd94\uae30 \ub54c\ubb38\uc5d0<br>\u201c\uc870\uc6a9\ud788 \ud06c\ub808\ub527\ub9cc \ud0dc\uc6b0\ub294\u201d \uc0c1\ud669\uc744 \uc904\uc77c \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">5. \ucd5c\uc885 \uc815\ub9ac \u2013 \uc5b4\ub5a4 \uc138\ud305\uc744 \uc5b8\uc81c \uc4f8\uae4c?<\/h2>\n\n\n<style>.kb-image6213_7bbf95-59 .kb-image-has-overlay:after{opacity:0.3;}<\/style>\n<div class=\"wp-block-kadence-image kb-image6213_7bbf95-59\"><figure class=\"aligncenter size-large\"><img decoding=\"async\" width=\"600\" height=\"400\" src=\"https:\/\/secondlife.lol\/wp-content\/uploads\/2026\/01\/image-35-4-600x400.jpg\" alt=\"subagent api key \uc138\ud305 \uad00\ub828 \uc774\ubbf8\uc9c0\" class=\"kb-img wp-image-6217\" srcset=\"https:\/\/secondlife.lol\/wp-content\/uploads\/2026\/01\/image-35-4-600x400.jpg 600w, https:\/\/secondlife.lol\/wp-content\/uploads\/2026\/01\/image-35-4-300x200.jpg 300w, https:\/\/secondlife.lol\/wp-content\/uploads\/2026\/01\/image-35-4-768x512.jpg 768w, https:\/\/secondlife.lol\/wp-content\/uploads\/2026\/01\/image-35-4-18x12.jpg 18w, https:\/\/secondlife.lol\/wp-content\/uploads\/2026\/01\/image-35-4.jpg 1200w\" sizes=\"(max-width: 600px) 100vw, 600px\" \/><\/figure><\/div>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\u9879\u76ee<\/th><th>\ucd94\ucc9c(\uc720\ub8cc) \uc138\ud305<\/th><th>\ubb34\ub8cc \uc704\uc8fc \uc138\ud305<\/th><\/tr><\/thead><tbody><tr><td>\uba54\uc778 \ubaa8\ub378<\/td><td>GPT-5.2 \/ Claude \/ Gemini Pro \ub4f1 Zen<\/td><td>Gemini 1.5 Flash, Copilot GPT4-o<\/td><\/tr><tr><td>\u7a33\u5b9a\u6027<\/td><td>\ud83d\udfe2 \ub9e4\uc6b0 \ub192\uc74c<\/td><td>\ud83d\udfe1 \uc911\uac04 (\uc791\uc5c5 \ucabc\uac1c\uae30 \ud544\uc218)<\/td><\/tr><tr><td>\uc791\uc5c5 \uaddc\ubaa8<\/td><td>\ub300\ud615 \ud504\ub85c\uc81d\ud2b8, \uae34 ultrawork<\/td><td>\ud1a0\uc774 \ud504\ub85c\uc81d\ud2b8, POC, \uc5f0\uc2b5\uc6a9<\/td><\/tr><tr><td>\uc900\ube44\uc0ac\ud56d<\/td><td>API \ud0a4 \uc5ec\ub7ec \uac1c + \uc57d\uac04\uc758 \ube44\uc6a9<\/td><td>\uad6c\uae00 \uacc4\uc815 + GitHub \uacc4\uc815 \uc815\ub3c4<\/td><\/tr><tr><td>\ubcf4\uc548\/\ub370\uc774\ud130<\/td><td>\uc720\ub8cc \ud50c\ub79c + \ud559\uc2b5 \uc81c\uc678 \uc635\uc158 \uc124\uc815 \uac00\ub2a5<\/td><td>\ubb34\ub8cc\ub294 \uc785\ub825 \ub370\uc774\ud130\uac00 \ud559\uc2b5\uc5d0 \uc4f0\uc77c \uc218 \uc788\uc74c<\/td><\/tr><tr><td>\uad8c\uc7a5 \uc6a9\ub3c4<\/td><td>\uc2e4\uc81c \ud68c\uc0ac\/\ud074\ub77c\uc774\uc5b8\ud2b8 \ud504\ub85c\uc81d\ud2b8<\/td><td>\uac1c\uc778 \uacf5\ubd80, \ube14\ub85c\uadf8 \uc608\uc81c, \ubb34\ub8cc \uccb4\ud5d8<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p><strong>\ud55c \uc904 \uc694\uc57d:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\uc2e4\uc81c \uc5c5\ubb34<\/strong>: Zen + Copilot + \uc548\uc815\uc801\uc778 \uc720\ub8cc \ubaa8\ub378 \uc870\ud569<\/li>\n\n\n\n<li><strong>\uc5f0\uc2b5\/\ud14c\uc2a4\ud2b8<\/strong>: Gemini Flash + GPT4-o + \uc791\uc5c5 \ucabc\uac1c\uae30<\/li>\n<\/ul>\n<\/blockquote>\n\n\n\n<p><strong>\uc2e4\uc804\uc5d0\uc11c\ub294 \u201c\uc5b4\ub5a4 \ubaa8\ub378\uc744 \uc4f0\ub290\ub0d0\u201d\ubcf4\ub2e4 \u201c\uc5b4\ub5bb\uac8c \uc77c\uc744 \ub098\ub204\ub290\ub0d0\u201d\uac00 \ub354 \uc911\uc694\ud569\ub2c8\ub2e4.<\/strong><br>Oh My OpenCode\uc758 \uc11c\ube0c\uc5d0\uc774\uc804\ud2b8 \uad6c\uc870\ub294 \uc774\ubbf8 \u201c\ud300\uc73c\ub85c \uc77c\ud558\ub294 AI\u201d\ub97c \uc81c\uacf5\ud558\ub2c8\uae4c,<br>\uc6b0\ub9ac\ub294 \uadf8 \ud300\uc5d0\uac8c \uc88b\uc740 \ub3c4\uad6c(API \ud0a4)\ub97c \uc950\uc5ec\uc8fc\uace0,<br><strong>\uc791\uc5c5 \ub2e8\uc704\ub97c \uc798\uac8c \ucabc\uac1c\uc11c<\/strong> \ub358\uc838\uc8fc\uae30\ub9cc \ud558\uba74 \ub429\ub2c8\ub2e4.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<ul class=\"wp-block-list\">\n<li>\ub3c8\uc744 \uc4f8 \uc218 \uc788\ub2e4\uba74 \u2192 Zen + Claude + GPT-5.2 \uc870\ud569\uc73c\ub85c \u201c\uc5d0\uc774\uc804\ud2b8 \ucf54\ub529 \ud480\uc635\uc158\u201d<\/li>\n\n\n\n<li>\ub3c8\uc744 \uc544\ub07c\uace0 \uc2f6\ub2e4\uba74 \u2192 Gemini Flash + Copilot GPT4-o\ub85c \u201c\ubb34\ub8cc \ud300\u201d \uad6c\uc131<\/li>\n<\/ul>\n<\/blockquote>\n\n\n\n<p>\uc774 \uae00\uc758 \uc124\uc815 \uc608\uc2dc\uc640 \ud504\ub86c\ud504\ud2b8 \ud328\ud134\ub9cc \ub530\ub77c \ud574\ub3c4,<br>\ucc98\uc74c AI \ucf54\ub529\uc744 \uc4f0\ub294 \ucd08\ubcf4 \uac1c\ubc1c\uc790\ub3c4 <strong>\u201c\ud63c\uc790 \ud558\ub294 \ud504\ub85c\uc81d\ud2b8\ub97c \ud300 \uc791\uc5c5\ucc98\ub7fc\u201d<\/strong> \uc9c4\ud589\ud560 \uc218 \uc788\uc744 \uac70\uc608\uc694.<\/p>\n\n\n\n<p>===\ud3ec\uc2a4\ud2b8\ub97c \uc5c5\ub85c\ub4dc \ud6c4\uc5d0 \ubb38\uc11c\ub97c \uc870\uae08 \ub354 \ubcf4\uc644\ud588\uc2b5\ub2c8\ub2e4.===<\/p>\n\n\n<style>.kb-image6213_84ffe3-a0 .kb-image-has-overlay:after{opacity:0.3;}<\/style>\n<div class=\"wp-block-kadence-image kb-image6213_84ffe3-a0\"><figure class=\"aligncenter size-medium_large\"><img decoding=\"async\" width=\"768\" height=\"474\" src=\"https:\/\/secondlife.lol\/wp-content\/uploads\/2026\/01\/image-35-768x474.png\" alt=\"opencode \uc2e4\ud589\ucc3d \uc774\ubbf8\uc9c0\" class=\"kb-img wp-image-6219\" srcset=\"https:\/\/secondlife.lol\/wp-content\/uploads\/2026\/01\/image-35-768x474.png 768w, https:\/\/secondlife.lol\/wp-content\/uploads\/2026\/01\/image-35-300x185.png 300w, https:\/\/secondlife.lol\/wp-content\/uploads\/2026\/01\/image-35-600x371.png 600w, https:\/\/secondlife.lol\/wp-content\/uploads\/2026\/01\/image-35-18x12.png 18w, https:\/\/secondlife.lol\/wp-content\/uploads\/2026\/01\/image-35.png 1200w\" sizes=\"(max-width: 768px) 100vw, 768px\" \/><figcaption>(\uc624\ud508\ucf54\ub4dc \uc2e4\ud589\ucc3d)<\/figcaption><\/figure><\/div>\n\n\n<style>.kb-image6213_204c0c-b9 .kb-image-has-overlay:after{opacity:0.3;}<\/style>\n<div class=\"wp-block-kadence-image kb-image6213_204c0c-b9\"><figure class=\"aligncenter size-medium_large\"><img decoding=\"async\" width=\"768\" height=\"443\" src=\"https:\/\/secondlife.lol\/wp-content\/uploads\/2026\/01\/image-37-768x443.png\" alt=\"\uae43\ud5c8\ube0c \ucf54\ud30c\uc77c\ub7ff \ubb34\ub8cc\uc81c\uacf5 \ubaa8\ub378 \uc120\ud0dd \ud654\uba74\" class=\"kb-img wp-image-6224\" srcset=\"https:\/\/secondlife.lol\/wp-content\/uploads\/2026\/01\/image-37-768x443.png 768w, https:\/\/secondlife.lol\/wp-content\/uploads\/2026\/01\/image-37-300x173.png 300w, https:\/\/secondlife.lol\/wp-content\/uploads\/2026\/01\/image-37-600x346.png 600w, https:\/\/secondlife.lol\/wp-content\/uploads\/2026\/01\/image-37-18x10.png 18w, https:\/\/secondlife.lol\/wp-content\/uploads\/2026\/01\/image-37.png 1200w\" sizes=\"(max-width: 768px) 100vw, 768px\" \/><figcaption>(\uae43\ud5c8\ube0c \ucf54\ud30c\uc77c\ub7ff \ubb34\ub8cc\uc81c\uacf5 \ubaa8\ub378 \uc120\ud0dd \ud654\uba74)<\/figcaption><\/figure><\/div>\n\n\n<style>.kb-image6213_825a2b-d6 .kb-image-has-overlay:after{opacity:0.3;}<\/style>\n<div class=\"wp-block-kadence-image kb-image6213_825a2b-d6\"><figure class=\"aligncenter size-medium_large\"><img decoding=\"async\" width=\"768\" height=\"477\" src=\"https:\/\/secondlife.lol\/wp-content\/uploads\/2026\/01\/image-36-768x477.png\" alt=\"\uc624\ud508\ucf54\ub4dc\uc5d0\uc11c \uc624\ub354\ub97c \ub0b4\ub9ac\ub294 \ud654\uba74\" class=\"kb-img wp-image-6223\" srcset=\"https:\/\/secondlife.lol\/wp-content\/uploads\/2026\/01\/image-36-768x477.png 768w, https:\/\/secondlife.lol\/wp-content\/uploads\/2026\/01\/image-36-300x187.png 300w, https:\/\/secondlife.lol\/wp-content\/uploads\/2026\/01\/image-36-600x373.png 600w, https:\/\/secondlife.lol\/wp-content\/uploads\/2026\/01\/image-36-18x12.png 18w, https:\/\/secondlife.lol\/wp-content\/uploads\/2026\/01\/image-36.png 1200w\" sizes=\"(max-width: 768px) 100vw, 768px\" \/><figcaption>(\uc624\ud508\ucf54\ub4dc\uc5d0\uc11c \uc624\ub354\ub97c \ub0b4\ub9ac\ub294 \ud654\uba74)<\/figcaption><\/figure><\/div>\n\n\n\n<pre class=\"wp-block-code\"><code>1\ufe0f\u20e3 \ud504\ub85c\uc81d\ud2b8 \ud3f4\ub354\uc5d0\uc11c OpenCode \uc2e4\ud589\n\n\uc544\ub798\uc640 \uac19\uc774 \uc6d0\ud558\ub294 \ud130\ubbf8\ub110\uc5d0\uc11c \ud504\ub85c\uc81d\ud2b8 \ud3f4\ub354\ub97c \ud558\ub098 \ub9cc\ub4e4\uace0 \uc624\ud508\ucf54\ub4dc\ub97c \uc2e4\ud589\ud569\ub2c8\ub2e4.\n\nmkdir cd-blog\ncd cd-blog\nopencode\n\n\ud83d\udc49 \uadf8\ub7ec\uba74 \ud130\ubbf8\ub110 \uc548\uc5d0 \uc704 \uadf8\ub9bc\ucc98\ub7fc \u201cAI \ucf58\uc194(TUI)\u201d\uac00 \uc5f4\ub9bd\ub2c8\ub2e4.\n\n\uc5ec\uae30\uc11c\ubd80\ud130\ub294 \u201c\uba85\ub839 + \ub300\ud654\u201d\ub85c \ud504\ub85c\uc81d\ud2b8\ub97c \uc9c4\ud589\ud569\ub2c8\ub2e4.\n\n2\ufe0f\u20e3 \uba3c\uc800 \u2014 \u201c\uacc4\ud68d\ub9cc \uc138\uc6b0\uac8c\u201d \uc2dc\ud0b5\ub2c8\ub2e4 (\uc808\ub300 \ucf54\ub4dc\ubd80\ud130 X)\n\nAI\uc5d0\uac8c \uc774\ub807\uac8c \ub9d0\ud558\uc138\uc694\n-----\n<strong>plan:\nReact + Django \ube14\ub85c\uadf8\ub97c \ub9cc\ub4e4 \uac74\ub370,\n\uc804\uccb4 \uac1c\ubc1c\uc744 6\ub2e8\uacc4\ub85c \ub098\ub220\uc11c \uacc4\ud68d\ub9cc \uc138\uc6cc\uc918.\n\n\uac01 \ub2e8\uacc4\ub9c8\ub2e4:\n- \ud560 \uc77c\n- \ub9cc\ub4e4\uc5b4\uc9c8 \ud30c\uc77c \ubaa9\ub85d\n- \uc608\uc0c1 \ub09c\uc774\ub3c4\n\n\ucf54\ub4dc\ub294 \uc9c0\uae08 \uc4f0\uc9c0 \ub9d0\uace0, \uacc4\ud68d\ub9cc \uc791\uc131\ud574\uc918.<\/strong>\n----\n\ud83d\udc49 \uacb0\uacfc: Step 1 ~ Step 6 \uac19\uc740 \uacc4\ud68d\uc774 \ub098\uc635\ub2c8\ub2e4.\n(\uc774\uac8c \u201c\uc791\uac8c \ucabc\uac1c\uae30\uc758 \uae30\uc900\u201d\uc774 \ub429\ub2c8\ub2e4.)\n\n\ud83d\udca1 \uc911\uc694\ud55c \ud3ec\uc778\ud2b8\nAI\uac00 \uc2a4\uc2a4\ub85c \uacc4\ud68d\uc744 \uc138\uc6b0\ub3c4\ub85d \ud574\uc57c \ud569\ub2c8\ub2e4.\n\uadf8\ub798\uc57c \ub098\uc911\uc5d0\n<strong>continue from last step<\/strong> \uba85\ub839\uc774 \uc81c\ub300\ub85c \ub3d9\uc791\ud569\ub2c8\ub2e4.\n\n3\ufe0f\u20e3 \uc774\uc81c \u2014 \u201cStep 1\ub9cc\u201d \uc2e4\ud589\uc2dc\ud0a4\uae30\n\n\ubcf4\ud1b5 Step 1\uc740 \uc774\ub7f0 \ub0b4\uc6a9\uc77c \uac81\ub2c8\ub2e4.\n\nDjango \ud504\ub85c\uc81d\ud2b8 \uc0dd\uc131 + Post \ubaa8\ub378\n\n\uadf8\ub7ec\uba74 \uc774\ub807\uac8c \ub9d0\ud558\uc138\uc694:\n\n<strong>Step 1\ub9cc \uc2e4\ud589\ud574\uc918.<\/strong>\n\n\uc774\ud6c4 \uc21c\ucc28\uc801\uc73c\ub85c \uc9c4\ud589\ud558\uba74 \ub429\ub2c8\ub2e4.\n\n\n\ud639\uc2dc\ub77c\ub3c4 \uc791\uc5c5\uc774 \uba48\ucdc4\ub2e4? \uc774\ub807\uac8c \ub9d0\ud558\uba74 \ub429\ub2c8\ub2e4\n<strong>continue from last step<\/strong>\n\ub610\ub294:\n<strong>\ubc29\uae08 \ud558\ub358 Step 3\uc758 \ub098\uba38\uc9c0 \ubd80\ubd84\ubd80\ud130 \uacc4\uc18d\ud574\uc918.\n\uc774\ubbf8 \ub9cc\ub4e0 \ucf54\ub4dc\ub294 \ub2e4\uc2dc \ub9cc\ub4e4\uc9c0 \ub9c8.<\/strong>\n\n\n\ud83d\udc49 AI\uac00 \uc2a4\uc2a4\ub85c \uc694\uc57d \u2192 \uc774\uc5b4\uc11c \uc791\uc5c5\ud569\ub2c8\ub2e4.\n\n\uc704 \uc791\uc5c5\uc744 \ubb34\ub8cc\ub85c \uc9c4\ud589\ud558\ub824\ub2e4 \ubcf4\ub2c8 \uc560\ub85c\uc810\uc774 \ub9ce\ub124\uc694.\nOh My OpenCode\uc758 \uc81c\uc774\uc2a8 \ud30c\uc77c \uc124\uc815\uc774 \uc81c\ub300\ub85c \ub3cc\uc544\uac00\ub294\uc9c0\ub3c4 \ud655\uc2e0\uc774 \uc548\uc11c\ub124\uc694.\u315c\u315c\n\uc870\uae08 \ub354 \uc5f0\uad6c\ub97c \ud574\ubcf4\uace0 \uba85\ud655\ud558\uac8c \uc54c\ub824\ub4dc\ub9ac\uaca0\uc2b5\ub2c8\ub2e4.\n\n\ud55c\uac00\uc9c0 \ud655\uc2e4\ud55c \uac83\uc740 gemini cli \uc678\uc5d0 \n\ubb34\ub8cc\ub85c cli \ubaa8\ub4dc\ub97c opencode\ub85c \uc774\uc6a9\ud560 \uc218 \uc788\ub2e4\ub294 \uc0ac\uc2e4\uc785\ub2c8\ub2e4!!!(\uc8c4\uc1a1\ud574\uc694. \ub2e4 \uc54c\uace0 \uacc4\uc168\ub2e4\uba74...)<\/code><\/pre>","protected":false},"excerpt":{"rendered":"<p>Oh My OpenCode\ub294 \uc5ec\ub7ec SubAgent\uac00 \uc5ed\ud560\uc744 \ub098\ub220 \ud611\uc5c5\ud558\ub294 \uad6c\uc870\ub77c\uc11c,\uc5b4\ub5a4 \ubaa8\ub378\uc744&#8230;<\/p>","protected":false},"author":3,"featured_media":6214,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kad_blocks_custom_css":"","_kad_blocks_head_custom_js":"","_kad_blocks_body_custom_js":"","_kad_blocks_footer_custom_js":"","_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","footnotes":""},"categories":[7],"tags":[1412,1045,1413,1406,1404,1410,1407,1408,1021,1411,1409,1053,1403,953,1405],"class_list":["post-6213","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ai-coding","tag-ai-api-","tag-ai-","tag-ai--","tag-claude-","tag-django-","tag-gemini-api","tag-github-copilot","tag-gpt-5-mini","tag-gpt-5-2","tag-node-js-","tag-oh-my-opencode-","tag-opencode-","tag-react-","tag-953","tag-1405"],"taxonomy_info":{"category":[{"value":7,"label":"\uc778\uacf5\uc9c0\ub2a5(AI)"}],"post_tag":[{"value":1412,"label":"AI API \ud0a4"},{"value":1045,"label":"AI \ucf54\ub529"},{"value":1413,"label":"AI \ucf54\ub529 \ube14\ub85c\uadf8"},{"value":1406,"label":"Claude \ucf54\ub4dc\ub9ac\ubdf0"},{"value":1404,"label":"Django \uac1c\ubc1c"},{"value":1410,"label":"Gemini API"},{"value":1407,"label":"GitHub Copilot"},{"value":1408,"label":"gpt-5 mini"},{"value":1021,"label":"GPT-5.2"},{"value":1411,"label":"Node.js \uac1c\ubc1c"},{"value":1409,"label":"Oh My OpenCode \uc0ac\uc6a9\ubc95"},{"value":1053,"label":"OpenCode \ud50c\ub7ec\uadf8\uc778"},{"value":1403,"label":"React \uac1c\ubc1c"},{"value":953,"label":"\uac1c\ubc1c \uc0dd\uc0b0\uc131"},{"value":1405,"label":"\uc11c\ube0c\uc5d0\uc774\uc804\ud2b8"}]},"featured_image_src_large":["https:\/\/secondlife.lol\/wp-content\/uploads\/2026\/01\/image-35-1-600x400.jpg",600,400,true],"author_info":{"display_name":"TERE","author_link":"https:\/\/secondlife.lol\/zh\/author\/tere\/"},"comment_info":0,"category_info":[{"term_id":7,"name":"\uc778\uacf5\uc9c0\ub2a5(AI)","slug":"ai-coding","term_group":0,"term_taxonomy_id":7,"taxonomy":"category","description":"","parent":20,"count":69,"filter":"raw","cat_ID":7,"category_count":69,"category_description":"","cat_name":"\uc778\uacf5\uc9c0\ub2a5(AI)","category_nicename":"ai-coding","category_parent":20}],"tag_info":[{"term_id":1412,"name":"AI API \ud0a4","slug":"ai-api-%ed%82%a4","term_group":0,"term_taxonomy_id":1412,"taxonomy":"post_tag","description":"","parent":0,"count":1,"filter":"raw"},{"term_id":1045,"name":"AI \ucf54\ub529","slug":"ai-%ec%bd%94%eb%94%a9","term_group":0,"term_taxonomy_id":1045,"taxonomy":"post_tag","description":"","parent":0,"count":2,"filter":"raw"},{"term_id":1413,"name":"AI \ucf54\ub529 \ube14\ub85c\uadf8","slug":"ai-%ec%bd%94%eb%94%a9-%eb%b8%94%eb%a1%9c%ea%b7%b8","term_group":0,"term_taxonomy_id":1413,"taxonomy":"post_tag","description":"","parent":0,"count":1,"filter":"raw"},{"term_id":1406,"name":"Claude \ucf54\ub4dc\ub9ac\ubdf0","slug":"claude-%ec%bd%94%eb%93%9c%eb%a6%ac%eb%b7%b0","term_group":0,"term_taxonomy_id":1405,"taxonomy":"post_tag","description":"","parent":0,"count":1,"filter":"raw"},{"term_id":1404,"name":"Django \uac1c\ubc1c","slug":"django-%ea%b0%9c%eb%b0%9c","term_group":0,"term_taxonomy_id":1404,"taxonomy":"post_tag","description":"","parent":0,"count":1,"filter":"raw"},{"term_id":1410,"name":"Gemini API","slug":"gemini-api","term_group":0,"term_taxonomy_id":1410,"taxonomy":"post_tag","description":"","parent":0,"count":1,"filter":"raw"},{"term_id":1407,"name":"GitHub Copilot","slug":"github-copilot","term_group":0,"term_taxonomy_id":1407,"taxonomy":"post_tag","description":"","parent":0,"count":1,"filter":"raw"},{"term_id":1408,"name":"gpt-5 mini","slug":"gpt-5-mini","term_group":0,"term_taxonomy_id":1408,"taxonomy":"post_tag","description":"","parent":0,"count":1,"filter":"raw"},{"term_id":1021,"name":"GPT-5.2","slug":"gpt-5-2","term_group":0,"term_taxonomy_id":1021,"taxonomy":"post_tag","description":"","parent":0,"count":2,"filter":"raw"},{"term_id":1411,"name":"Node.js \uac1c\ubc1c","slug":"node-js-%ea%b0%9c%eb%b0%9c","term_group":0,"term_taxonomy_id":1411,"taxonomy":"post_tag","description":"","parent":0,"count":1,"filter":"raw"},{"term_id":1409,"name":"Oh My OpenCode \uc0ac\uc6a9\ubc95","slug":"oh-my-opencode-%ec%82%ac%ec%9a%a9%eb%b2%95","term_group":0,"term_taxonomy_id":1409,"taxonomy":"post_tag","description":"","parent":0,"count":1,"filter":"raw"},{"term_id":1053,"name":"OpenCode \ud50c\ub7ec\uadf8\uc778","slug":"opencode-%ed%94%8c%eb%9f%ac%ea%b7%b8%ec%9d%b8","term_group":0,"term_taxonomy_id":1053,"taxonomy":"post_tag","description":"","parent":0,"count":2,"filter":"raw"},{"term_id":1403,"name":"React \uac1c\ubc1c","slug":"react-%ea%b0%9c%eb%b0%9c","term_group":0,"term_taxonomy_id":1403,"taxonomy":"post_tag","description":"","parent":0,"count":1,"filter":"raw"},{"term_id":953,"name":"\uac1c\ubc1c \uc0dd\uc0b0\uc131","slug":"%ea%b0%9c%eb%b0%9c-%ec%83%9d%ec%82%b0%ec%84%b1","term_group":0,"term_taxonomy_id":953,"taxonomy":"post_tag","description":"","parent":0,"count":5,"filter":"raw"},{"term_id":1405,"name":"\uc11c\ube0c\uc5d0\uc774\uc804\ud2b8","slug":"%ec%84%9c%eb%b8%8c%ec%97%90%ec%9d%b4%ec%a0%84%ed%8a%b8","term_group":0,"term_taxonomy_id":1406,"taxonomy":"post_tag","description":"","parent":0,"count":1,"filter":"raw"}],"_links":{"self":[{"href":"https:\/\/secondlife.lol\/zh\/wp-json\/wp\/v2\/posts\/6213","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/secondlife.lol\/zh\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/secondlife.lol\/zh\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/secondlife.lol\/zh\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/secondlife.lol\/zh\/wp-json\/wp\/v2\/comments?post=6213"}],"version-history":[{"count":3,"href":"https:\/\/secondlife.lol\/zh\/wp-json\/wp\/v2\/posts\/6213\/revisions"}],"predecessor-version":[{"id":6225,"href":"https:\/\/secondlife.lol\/zh\/wp-json\/wp\/v2\/posts\/6213\/revisions\/6225"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/secondlife.lol\/zh\/wp-json\/wp\/v2\/media\/6214"}],"wp:attachment":[{"href":"https:\/\/secondlife.lol\/zh\/wp-json\/wp\/v2\/media?parent=6213"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/secondlife.lol\/zh\/wp-json\/wp\/v2\/categories?post=6213"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/secondlife.lol\/zh\/wp-json\/wp\/v2\/tags?post=6213"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}