๋ ธ๋น์ค์ ์งํ: RAG๋ฅผ ๋ฒ๋ฆฌ๊ณ ๋ฉํฐ์์ด์ ํธ๋ก ๊ฐ์ํ ์ด์ผ๊ธฐ
- #AI Agent
- #MCP
- #์ฌ๋ด AI ์ฑ๋ด
- #๋ ธ๋น์ค
- #์ ๋ฌดํจ์จํ
์ด์ ๊ธ์์ ๋ ธ๋น์ค๋ฅผ ๋ง๋ค๋ฉด์ ๊ฒช์๋ RAG์ ํ์ค์ ์ธ ๋ฌธ์ ๋ค์ ๊ณต์ ํ์ต๋๋ค.
๊ทธ ํ๋ก ๋ช ๊ฐ์. ๋ ธ๋น์ค๋ ์์ ํ ๋ค๋ฅธ ๋ชจ์ต์ผ๋ก ์งํํ์ต๋๋ค.
์๋ ํ์ธ์. ๋ ธ๋จธ์ค์์ ๋ฐฑ์๋ ๊ฐ๋ฐ์๋ก ๊ทผ๋ฌดํ๊ณ ์๋ ์ง์น๋ณด์ ๋๋ค.
๋ ธ๋น์ค(Knowbis) ๋ ์ง๋ฌธ์ ํ๋ค์ ๋ฎ์ถ๊ณ , ์ฌ๋ด ์ ๋ณด๋ฅผ ์ฝ๊ฒ ์ฐพ์์ฃผ๋ ๊ฒ์ ๋ชฉํ๋ก ๋ง๋ Slack ๊ธฐ๋ฐ ์ฌ๋ด AI ์ฑ๋ด์ ๋๋ค.
TL;DR
- RAG ๊ธฐ๋ฐ ๊ฒ์์ ํ๊ณ๋ฅผ ์ฒด๊ฐํ๊ณ , ๋ฉํฐ์์ด์ ํธ ์ํคํ ์ฒ๋ก ์ ํ
- Google ADK(Agent Development Kit)๋ฅผ ๋์ ํด ์ ๋ฌธ ์์ด์ ํธ๋ค์ด ํ์ ํ๋ ๊ตฌ์กฐ๋ก ๊ฐํธ
- ๊ฐ ์์ด์ ํธ๋ ๋งก์ ๋๋ฉ์ธ(๋ฌธ์, ์ฝ๋, AWS, ๋ชจ๋ํฐ๋ง)์ ํนํ๋ ๋๊ตฌ์ ์ ๋ต์ ๊ฐ์ง
- Rovo MCP ์ฐ๋ ๊ณผ์ ์์ OAuth sidecar๋ฅผ ๊ฑฐ์ณ API Token์ผ๋ก ๋จ์ํํ ์ฌ์
- โ๋ง๋ฅ ๊ฒ์ ๋ดโ์ด ์๋ โ์ ์ฌ์ ์์ ์ ๋ฌธ๊ฐ๋ฅผ ๋ถ๋ฌ์ค๋ ๋ดโ์ผ๋ก ๋ฐฉํฅ ์ ํ
ํค์๋: Multi-Agent, Google ADK, MCP, Slack Bot, ์ฌ๋ด AI ์ฑ๋ด
๋ชฉ์ฐจ
- RAG๋ง์ผ๋ก๋ ๋ถ์กฑํ๋ค
- ๋ฉํฐ์์ด์ ํธ๋ก์ ์ ํ: ์?
- ๊ธฐ์ ์คํ ์ ํ: Google ADK์ Gemini
- ์ ์ฒด ์ํคํ ์ฒ์ ์์ด์ ํธ๋ค
- Rovo MCP ์ฐ๋: OAuth์์ API Token๊น์ง
- ์ค์ ์ฌ์ฉ ์ฌ๋ก
- ๋ง๋ฌด๋ฆฌํ๋ฉฐ
RAG๋ง์ผ๋ก๋ ๋ถ์กฑํ๋ค
์ด์ ๊ธ์์ RAG์ ๋ฌธ์ ๋ค์ ํด๊ฒฐํ๊ธฐ ์ํด ์ฌ๋ฌ ์๋๋ฅผ ํ์ต๋๋ค. Query Rewrite, Re-ranking, Hierarchical ์๋ฒ ๋ฉ, Vertex AI ๋์ ๊น์ง.
๊ทธ๋ฐ๋ฐ ์ด์ํ๋ค ๋ณด๋ ๊ทผ๋ณธ์ ์ธ ํ๊ณ๊ฐ ๋ณด์ด๊ธฐ ์์ํ์ต๋๋ค.
๋ง๋ ์ฌ๋๋ง ์ ์ธ ์ ์๋ ๋ด
๋ ธ๋น์ค๋ฅผ ๋ง๋ ์ ๋ ์ด ๋ด์ด ๋ญ ํ ์ ์๊ณ , ์ด๋ป๊ฒ ์ง๋ฌธํด์ผ ์ ๋๋ตํ๋์ง ์๊ณ ์์ต๋๋ค. Confluence์ ์ด๋ค ๋ฌธ์๊ฐ ์๋์ง, ์ด๋ค ํค์๋๋ก ๊ฒ์ํด์ผ ์ํ๋ ๊ฒฐ๊ณผ๊ฐ ๋์ค๋์ง ๊ฐ์ด ์์ฃ .
ํ์ง๋ง ๋๋ฃ๋ค์ ๋ค๋ฆ ๋๋ค. ์ ์๋๋๋ก ์ง๋ฌธํ์ง ์์ต๋๋ค. ๋น์ฐํ์.
โ์ด Lambda ํจ์ ๋ญํ๋ ๊ฑฐ์ผ?โ โ์ ๋ฌผํ๊ธฐ ๊ธฐ๋ฅ ํ์คํ ๋ฆฌ ์๋ ค์คโ โ๊ฒฐ์ /ํ๋ถ ๋ก์ง ๊ด๋ จ ๋ฌธ์ ๋ค ์ฐพ์์คโ
์ด๋ฐ ์ง๋ฌธ๋ค์ด ์ฌ๋์ ์ฌ๋ผ์ฌ ๋๋ง๋ค, ๋ ธ๋น์ค๋ ์ด์ฌํ Confluence ๋ฌธ์๋ฅผ ๋ค์ก์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋๋ถ๋ถ ์๋ฑํ ๋ต๋ณ์ ๋ด๋๊ฑฐ๋, โ๊ด๋ จ ๋ฌธ์๋ฅผ ์ฐพ์ง ๋ชปํ์ต๋๋คโ๋ฅผ ๋ฐํํ์ต๋๋ค.
์ง๋ฌธ์ ์ฑ๊ฒฉ์ด ๋ค๋ฅธ๋ฐ, ๊ฐ์ ๋ฐฉ์์ผ๋ก?
๋ฌธ์ ๋ฅผ ๋ถ์ํด๋ณด๋ ํจํด์ด ๋ณด์์ต๋๋ค.
| ์ง๋ฌธ ์ ํ | ์ ๋ณด ์์น | RAG๋ก ํด๊ฒฐ ๊ฐ๋ฅ? |
|---|---|---|
| โ์ด Lambda ๋ญ์ผ?โ | AWS ์ฝ์ | โ ์ ์ด์ ๋ฌธ์์ ์์ |
| โ๊ธฐ๋ฅ ํ์คํ ๋ฆฌ ์๋ ค์คโ | ์ฌ๋ฌ Jira/Confluence ๋ฌธ์ | โณ ๋จ์ผ ๊ฒ์์ผ๋ก ๋ถ์กฑ |
| โ๊ฒฐ์ ๋ก์ง ์ค๋ช ํด์คโ | Git ์ฝ๋๋ฒ ์ด์ค | โ ์ฝ๋๋ฅผ ๋ด์ผ ํจ |
| โ์ง๋์ฃผ ํ์๋กโ | Confluence ํน์ ์คํ์ด์ค | โ ์ ์ฐพ์ผ๋ฉด ๊ฐ๋ฅ |
RAG๋ โ๋ฌธ์๋ฅผ ์ ์ฐพ์์ ๋ต๋ณํ๋ ๊ฒโ์ ์ต์ ํ๋์ด ์์ต๋๋ค. ํ์ง๋ง ๋๋ฃ๋ค์ด ์ค์ ๋ก ํ๋ ์ง๋ฌธ์:
- RAG์ ํ์ต๋์ง ์์ ์ ๋ณด๋ฅผ ๋ฌป๊ฑฐ๋ (AWS ๋ฆฌ์์ค, ์ค์๊ฐ ๋ฐ์ดํฐ)
- ์ฌ๋ฌ ๋ฌธ์๋ฅผ ์ค๊ฐ๋ฉฐ ๋ถ์ํด์ผ ํ๊ฑฐ๋ (๊ธฐ๋ฅ ๋ณ๊ฒฝ ํ์คํ ๋ฆฌ)
- ์ฝ๋๋ฅผ ์ง์ ๋ด์ผ ๋ตํ ์ ์๋ ๊ฒ๋ค์ด์์ต๋๋ค (๊ตฌํ ๋ก์ง)
๊ฒฐ๊ตญ ๊นจ๋ฌ์์ต๋๋ค.
๋ ธ๋น์ค์๊ฒ ํ์ํ ๊ฑด โ๋ ์ข์ ๊ฒ์โ์ด ์๋๋ผ, โ์ง๋ฌธ์ ์ดํดํ๊ณ ์ ์ ํ ๋ฐฉ๋ฒ์ ์ ํํ๋ ๋ฅ๋ ฅโ ์ด๋ค.
๋ฉํฐ์์ด์ ํธ๋ก์ ์ ํ: ์?
์ฌ๋์๊ฒ ์ง๋ฌธํ ๋๋ฅผ ์๊ฐํด๋ดค์ต๋๋ค.
- ์ธํ๋ผ ๊ด๋ จ ์ง๋ฌธ โ DevOps ๋ด๋น์์๊ฒ
- ์ฝ๋ ๊ด๋ จ ์ง๋ฌธ โ ํด๋น ๋ ํฌ ๋ด๋น ๊ฐ๋ฐ์์๊ฒ
- ํ์๋ก ์ฐพ๊ธฐ โ ํด๋น ํ ๋๊ตฐ๊ฐ์๊ฒ
์ง๋ฌธ์ ์ข ๋ฅ์ ๋ฐ๋ผ ๋ฌผ์ด๋ณผ ๋์์ด ๋ค๋ฆ ๋๋ค.
์ด๊ฑธ AI๋ก ๊ตฌํํ๋ฉด ์ด๋จ๊น์?
ํ๋์ ๋ง๋ฅ ์์ด์ ํธ๊ฐ ๋ชจ๋ ๊ฑธ ์ฒ๋ฆฌํ๋ ๋์ , ์ ๋ฌธ ๋ถ์ผ๊ฐ ๋ค๋ฅธ ์ฌ๋ฌ ์์ด์ ํธ๊ฐ ํ์ ํ๋ ๊ตฌ์กฐ.

์ด ๊ตฌ์กฐ์ ์ฅ์ ์ ๋ช ํํ์ต๋๋ค.
- ๊ฐ ์์ด์ ํธ๋ ์๊ธฐ ๋ถ์ผ์๋ง ์ง์คํ๋ฉด ๋ฉ๋๋ค
- ์๋ก์ด ๊ธฐ๋ฅ ์ถ๊ฐ ์ ๊ธฐ์กด ์์ด์ ํธ์ ์ํฅ ์์ด ์ ์์ด์ ํธ๋ง ์ถ๊ฐ
- ๋ฌธ์ ๊ฐ ์๊ฒผ์ ๋ ์ด๋ ์์ด์ ํธ์์ ๋ฌธ์ ์ธ์ง ํ์ ํ๊ธฐ ์ฌ์
- ๊ฐ ์์ด์ ํธ๋ณ๋ก ๋ค๋ฅธ ๋ชจ๋ธ, ๋ค๋ฅธ ์ ๋ต์ ์ ์ฉ ๊ฐ๋ฅ
๋จ์ ๋ ์์ต๋๋ค.
- ๋ผ์ฐํ ์ด ์๋ชป๋๋ฉด ์๋ฑํ ์์ด์ ํธ๊ฐ ๋ต๋ณ
- ์์ด์ ํธ ๊ฐ ์ปจํ ์คํธ ๊ณต์ ๊ฐ ์ด๋ ค์
- ์ ์ฒด ์์คํ ๋ณต์ก๋ ์ฆ๊ฐ
- ๋๋ฒ๊น ํ ๋ ํ๋ฆ ์ถ์ ์ด ๊น๋ค๋ก์
ํ์ง๋ง โ๋ง๋ฅ ๊ฒ์ ๋ดโ์ ํ๊ณ๋ฅผ ๊ณ์ ๊ฒฝํํ ์ ์ฅ์์, ์ด ์ ๋ ๋ณต์ก๋๋ ๊ฐ์ํ ๊ฐ์น๊ฐ ์๋ค๊ณ ํ๋จํ์ต๋๋ค.
๊ธฐ์ ์คํ ์ ํ: Google ADK์ Gemini
๋ฉํฐ์์ด์ ํธ ์์คํ ์ ๊ตฌํํ๊ธฐ ์ํด ์ฌ๋ฌ ํ๋ ์์ํฌ๋ฅผ ๊ฒํ ํ์ต๋๋ค.
- LangChain/LangGraph: ๊ฐ์ฅ ์ ๋ช ํ๊ณ ์๋ฃ๋ ๋ง์
- AutoGen: Microsoft์ ๋ฉํฐ์์ด์ ํธ ํ๋ ์์ํฌ
- CrewAI: ์ญํ ๊ธฐ๋ฐ ์์ด์ ํธ ํ์ ์ ํนํ
- Google ADK: Google์ Agent Development Kit
๊ฒฐ๋ก ๋ถํฐ ๋งํ๋ฉด, Google ADK๋ฅผ ์ ํํ์ต๋๋ค.
์ ADK์ธ๊ฐ?
Gemini์์ ๋ค์ดํฐ๋ธ ํตํฉ
์ด๋ฏธ Vertex AI๋ฅผ ์ฐ๊ณ ์์ด์ GCP ์ํ๊ณ ์์์ ์์ง์ด๋ ๊ฒ ์์ฐ์ค๋ฌ์ ์ต๋๋ค. Gemini ๋ชจ๋ธ๋ค์ ๋ฐ๋ก ์ฌ์ฉํ ์ ์์์ต๋๋ค.
์ฌํํ ์์ด์ ํธ ์ ์
์์ด์ ํธ ํ๋ ๋ง๋๋ ๋ฐ ํ์ํ ์ฝ๋๊ฐ ์ ๋ง ๊ฐ๊ฒฐํฉ๋๋ค.
from google.adk.agents import LlmAgent
docs_agent = LlmAgent(
name="docs_agent",
model="gemini-3-flash-preview",
instruction="Confluence์ Jira์์ ๋ฌธ์๋ฅผ ๊ฒ์ํฉ๋๋ค...",
tools=[rovo_search, rovo_search_cql, ...],
)
sub_agents๋ฅผ ํตํ ๋ผ์ฐํ
๋ผ์ฐํฐ ์์ด์ ํธ๊ฐ sub_agents ๋ชฉ๋ก ์ค ์ ์ ํ ์์ด์ ํธ๋ฅผ ์ ํํ๋ ๊ตฌ์กฐ๊ฐ ์ง๊ด์ ์ด์์ต๋๋ค.
๋ชจ๋ธ ์ ํ์ ๊ณ ๋ฏผ
์์ด์ ํธ์ ์ญํ ๋ณต์ก๋์ ๋ฐ๋ผ ๋ค๋ฅธ ๋ชจ๋ธ์ ์ ์ฉํ์ต๋๋ค.
| ์ญํ | ๋ชจ๋ธ | ์ด์ |
|---|---|---|
| ๋ผ์ฐํฐ | gemini-3-flash-preview | ๋น ๋ฅธ ํ๋จ, ๋น์ฉ ํจ์จ |
| docs/codebase/signoz | gemini-3-flash-preview | ๋ณต์กํ ๊ฒ์๊ณผ ์ข ํฉ์ด ํ์ |
| aws | gemini-3.1-flash-lite-preview | ๋จ์ CLI ๋ช ๋ น ์คํ, ๋น์ฉ ์ต์ ํ |
์ด์ ๊ธ์์๋ ์ธ๊ธํ๋ฏ์ด, ์ ๋ ดํ ๋ชจ๋ธ๋ก ๋น์ฉ์ ์๋ผ๋ ค๋ค๊ฐ ํ์ง์ด ๋จ์ด์ง๋ ๊ฒฝํ์ ํ์ต๋๋ค. ๋ค๋ง ๋ชจ๋ธ ์ธ๋๊ฐ ์ฌ๋ผ๊ฐ๋ฉด์ Flash๊ธ์ผ๋ก๋ ์ถฉ๋ถํ ํ์ง์ด ๋์ค๋ ์์ญ์ด ๋ง์์ก์ต๋๋ค. โ๋ณต์กํ ์ง์์ฌํญ์ ๋ฐ๋ผ์ผ ํ๋ ์์ด์ ํธโ์๋ ์ฌ์ ํ ์์ ๋ชจ๋ธ์ด ํ์ํ์ง๋ง, AWS CLI ๋ช ๋ น ์คํ ๊ฐ์ ๋จ์ํ ์์ ์ Flash Lite๋ก๋ ์ถฉ๋ถํ์ต๋๋ค.
์ ์ฒด ์ํคํ ์ฒ์ ์์ด์ ํธ๋ค
ํ์ฌ ๋ ธ๋น์ค์ ์ ์ฒด ๊ตฌ์กฐ์ ๋๋ค.

๋ผ์ฐํฐ: ์ง๋ฌธ์ ์ ์ ํ ์ ๋ฌธ๊ฐ์๊ฒ
๋ผ์ฐํฐ ์์ด์ ํธ์ instruction์๋ ๊ฐ ์์ด์ ํธ๊ฐ ์ด๋ค ์ง๋ฌธ์ ์ฒ๋ฆฌํด์ผ ํ๋์ง, ์ด๋ค ํค์๋๊ฐ ํธ๋ฆฌ๊ฑฐ๊ฐ ๋๋์ง ์ฐ์ ์์์ ํจ๊ป ๋ช ์๋์ด ์์ต๋๋ค.
| ์ฐ์ ์์ | ์์ด์ ํธ | ํธ๋ฆฌ๊ฑฐ ํค์๋ |
|---|---|---|
| 1 | docs_agent | ํ์๋ก, ๋ฌธ์, Confluence, Jira, ์ ์ฑ |
| 2 | signoz_agent | SignOz, API ํธ๋ ์ด์ค, ๋ชจ๋ํฐ๋ง |
| 3 | codebase_agent | ์ฝ๋, ํจ์, ํด๋์ค, API ๊ตฌํ |
| 4 | aws_agent | S3, Lambda, CloudWatch, EC2 |
์๋ฅผ ๋ค์ด instruction์๋ ์ด๋ฐ ๊ท์น๋ค์ด ๋ค์ด์์ต๋๋ค.
## ํต์ฌ ๊ท์น
1. ์ฌ๋ด ์ ๋ณด ์ง๋ฌธ = docs_agent: "์ง๋ ์ฃผ ~", "~๊ฐ ๊ณต์ ํ", "~ํ์์์"
2. ์
๋ฌด ์ง๋ฌธ = ๋ฐ๋์ sub_agent ํธ์ถ: ์ง์ ๋ต๋ณ ๊ธ์ง
3. ๋ชจํธํ๋ฉด ๋๋ฌป๊ธฐ: "์ด๋ ํ?", "์ด๋ค ํ๋ก์ ํธ?"
๋ผ์ฐํฐ๊ฐ ์ง์ ๋ต๋ณํ์ง ์๊ณ ๋ฐ๋์ ์ ์ ํ ์์ด์ ํธ์๊ฒ ์์ํ๋๋ก ๊ฐ์ ํ ๊ฒ์ด ํต์ฌ์ ๋๋ค.
4๊ฐ์ ์ ๋ฌธ ์์ด์ ํธ
docs_agent โ Confluence/Jira ๊ฒ์
Atlassian์ Rovo MCP๋ฅผ ํตํด Confluence์ Jira๋ฅผ ๊ฒ์ํฉ๋๋ค. ์์ฐ์ด ๊ฒ์, CQL/JQL ์ฟผ๋ฆฌ, ํ์ด์ง/์ด์ ์์ธ ์กฐํ๊ฐ ๊ฐ๋ฅํฉ๋๋ค. โ์ง๋ ์ฃผ ํ์๋ก ์ฐพ์์คโ ๊ฐ์ ์๊ฐ ํํ์ ์์ฒญ์ KST ์๊ฐ ์ ๋ณด๋ฅผ ํจ๊ป ์ ๋ฌํด์ ์ ํํ๊ฒ ํด์ํฉ๋๋ค.
codebase_agent โ ์ฝ๋๋ฒ ์ด์ค ๊ฒ์
Gemini CLI๋ฅผ subprocess๋ก ํธ์ถํด์ ๋ก์ปฌ ์ฝ๋๋ฒ ์ด์ค์ ์์ฐ์ด ์ง๋ฌธ์ ํฉ๋๋ค. ํต์ฌ์ ์ฟผ๋ฆฌ ํ์ฅ์ ๋๋ค. โ๊ฒฐ์ ๋ฒํผ ๋๋ฅด๋ฉด ๋ญ ๋ผ?โ๋ผ๋ ๋จํธ์ ์ธ ์ง๋ฌธ์ โ๊ฒฐ์ ๋ฒํผ ํด๋ฆญ ์ ์ ์ฒด ํ๋ก์ฐ: UI โ API โ ๋ฐฑ์๋ โ DBโ๋ก ํ์ฅํด์ ๊ฒ์ํฉ๋๋ค. ์ฌ๋ฌ ๋ ํฌ์งํ ๋ฆฌ๋ 10๋ถ ์ฃผ๊ธฐ ํฌ๋ก ์ก์ผ๋ก ๋๊ธฐํํฉ๋๋ค.
aws_agent โ AWS ๋ฆฌ์์ค ์กฐํ
๋ณ๋ Docker ์ปจํ
์ด๋์ AWS CLI๋ฅผ ๋ฃ๊ณ , docker exec๋ก ๋ช
๋ น์ ์คํํฉ๋๋ค.
AWS ์๊ฒฉ ์ฆ๋ช
์ด ์ปจํ
์ด๋ ์์๋ง ์กด์ฌํ๋๋ก ๊ฒฉ๋ฆฌํ ๊ตฌ์กฐ์
๋๋ค.
โfromm channel dev contents ๋ฒํทโ์ฒ๋ผ ๋ถ์ ํํ ๋ฆฌ์์ค๋ช
๋ ์ ์ฒด ๋ชฉ๋ก์์ ์ ์ฌ ๋งค์นญ์ผ๋ก ์ฐพ์์ค๋๋ค.
signoz_agent โ ๋ชจ๋ํฐ๋ง ๋ก๊ทธ/ํธ๋ ์ด์ค ์กฐํ
Go๋ก ์์ฑ๋ signoz-mcp-server๋ฅผ stdio ๊ธฐ๋ฐ MCP๋ก ํธ์ถํฉ๋๋ค. ์๋น์ค ๋ชฉ๋ก, ์๋ฌ ๋ก๊ทธ, ํธ๋ ์ด์ค, ์๋ฆผ ๋ฑ 9๊ฐ์ง ๋๊ตฌ๋ฅผ ์ ๊ณตํฉ๋๋ค. ์๊ฐ ๋ฒ์๊ฐ ํต์ฌ์ด๋ผ, ์๋ฆผ ์๊ฐ ๊ธฐ์ค -3๋ถ ~ +1๋ถ ๊ฐ์ ๊ท์น์ instruction์ ๋ช ์ํด๋์ต๋๋ค.
Rovo MCP ์ฐ๋: OAuth์์ API Token๊น์ง
๋ฉํฐ์์ด์ ํธ ์ด์ผ๊ธฐ์๋ ๊ฒฐ์ด ์ข ๋ค๋ฅด์ง๋ง, ์ด์ ๊ณผ์ ์์ ๊ฐ์ฅ ๋ง์ ์๊ฐ์ ์ก์๋จน์ ๋ถ๋ถ์ด๋ผ ๊ณต์ ํฉ๋๋ค.
๋ฌธ์ : OAuth 2.1๋ง ์ง์
์ด๊ธฐ Rovo MCP๋ OAuth 2.1 ํ๋ก์ฐ๋ง ์ง์ํ์ต๋๋ค. API Token ๋ฐฉ์์ ์ฌ์ฉํ ์ ์์์ฃ .
๋ค๋ง Atlassian ๋ฌธ์์๋ API Token ์ธ์ฆ์ด ์ถํ ๋์ ๋ ์์ ์ด๋ผ๊ณ ๋ช ์๋์ด ์์์ต๋๋ค. ๊ทธ๋์ ์ ๋ต์ ์ธ์ ์ต๋๋ค.
โ๋ณต์กํ์ง๋ง ํ์คํ๊ฒ ๋์ํ๋ ๋ฐฉํฅ์ผ๋ก ๋จผ์ ๊ตฌํํ์. API Token์ด ๋์ค๋ฉด ๊ทธ๋ ๋ฐ๊พธ๋ฉด ๋๋ค.โ
๊ฒช์ ์ผ๋ค
ํ ํฐ ์๋ ๊ฐฑ์ : OAuth ํ ํฐ์ ์ฝ 1์๊ฐ(์ฐ๋ฆฌ ํ๊ฒฝ ๊ธฐ์ค)๋ง๋ค ๋ง๋ฃ๋ฉ๋๋ค. ์๋ฒ๊ฐ 24์๊ฐ ๋์๊ฐ์ผ ํ๋ TokenRefresher๋ฅผ ๋ง๋ค์ด 5๋ถ๋ง๋ค ์ฒดํฌ, ๋ง๋ฃ 25๋ถ ์ ๊ฐฑ์ , ์คํจ ์ 3ํ ์ฌ์๋, ์์์ ํ์ผ ์ฐ๊ธฐ์ ๋ฐฑ์
๊น์ง ๊ตฌํํ์ต๋๋ค.
mcp-remote ํ ํฐ ์ถฉ๋: Rovo MCP ํต์ ์ ์ฌ์ฉํ๋ mcp-remote CLI๊ฐ ์์ฒด์ ์ผ๋ก ํ ํฐ ํ์ผ์ ๊ด๋ฆฌํ๋ฉด์, ์ ๊ฐ ๊ฐฑ์ ํ ํ ํฐ์ ๋ฎ์ด์ฐ๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ต๋๋ค. ๋ฒ์ ๋ง๋ค ํ ํฐ ๊ฒฝ๋ก๋ ๋ฐ๋์ด์ symlink๋ก ๋์ํด์ผ ํ์ต๋๋ค.
๋ฉ๋ชจ๋ฆฌ ๋์์ Sidecar ๋ถ๋ฆฌ: mcp-remote๋ฅผ ๋งค ํธ์ถ๋ง๋ค subprocess๋ก ์คํํ๋ ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋์ ๋์์ต๋๋ค. ๊ฒฐ๊ตญ rovo-sidecar๋ผ๋ ๋ณ๋ FastAPI ์ปจํ ์ด๋๋ฅผ ๋ง๋ค์ด ๋ถ๋ฆฌํ๋๋ฐ, Docker ๋คํธ์ํฌ, ๋ณผ๋ฅจ ๊ณต์ , ๋ณต์ก๋ ์ฆ๊ฐ๋ผ๋ ๋๊ฐ๊ฐ ๋ฐ๋์ต๋๋ค.
โOAuth ํ ํฐ ๊ฐฑ์ โ์ด๋ผ๋ ๋จ์ํด ๋ณด์ด๋ ๋ฌธ์ ๊ฐ, ๋ณ๋ ์ปจํ ์ด๋ + ๋ฐฑ๊ทธ๋ผ์ด๋ ์ค์ผ์ค๋ฌ + ๋ฐฑ์ ๋ณต๊ตฌ + symlink ๊ด๋ฆฌ๊น์ง ๋ณ์ ๊ฒ๋๋ค.
ํด๊ฒฐ: API Token ๋์
์์๋๋ก, Atlassian์ด Rovo MCP์ Basic Auth (API Token) ์ธ์ฆ์ ์ง์ํ๊ธฐ ์์ํ์ต๋๋ค.
credentials = base64.b64encode(f"{email}:{api_token}".encode()).decode()
headers = {"Authorization": f"Basic {credentials}"}
async with streamablehttp_client(ATLASSIAN_MCP_URL, headers=headers) as (read, write, _):
async with ClientSession(read, write) as session:
await session.initialize()
result = await session.call_tool(tool_name, arguments)
์ด ์ฝ๋๋ก rovo-sidecar, TokenRefresher, mcp-remote, ๋ฐฑ์
๋ฉ์ปค๋์ฆ, symlink ๊ด๋ฆฌ๊ฐ ์ ๋ถ ์ญ์ ๋์์ต๋๋ค.
MCP SDK์ streamablehttp_client๋ฅผ ์ง์ ์ฌ์ฉํ๋ subprocess ์์ด HTTP ์ฐ๊ฒฐ์ ์ฌ์ฌ์ฉํ ์ ์๊ฒ ๋์๊ณ , ๋ฉ๋ชจ๋ฆฌ ๋์๋ ์ฌ๋ผ์ก์ต๋๋ค.
์ฐธ๊ณ ๋ก API Token ๋ฐฉ์์ ์กฐ์ง ๊ด๋ฆฌ์๊ฐ ํ์ฑํํด์ผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
๊ตํ: โ๋ณ๊ฑฐ ์๋ ๊ฒ ๊ฐ์โ ์ธ์ฆ ๋ฌธ์ ๊ฐ ์์คํ ์์ ๊ฐ์ฅ ํฐ ๋ณต์ก๋๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ ๋ณต์ก๋๋ ์ข ์ข ํ๋ซํผ์ ์ง์ ๋ฒ์๊ฐ ๋์ด์ง๋ฉด์ ํ ์๊ฐ์ ์ฌ๋ผ์ง๊ธฐ๋ ํฉ๋๋ค.
๊ถํ ์ ์ด: ์ ์ฉ ๊ณ์ ๋ฐฉ์
Confluence์ Jira์ MCP ๊ฒ์์ ์ธ์ฆ์ ์ฌ์ฉํ ๊ณ์ ์ ๊ถํ์ ๊ทธ๋๋ก ๋ฐ๋ฆ ๋๋ค.
์ฒ์์๋ โ๋ฌธ์๋ณ๋ก ์ ๊ทผ ์ ์ด๋ฅผ ๊ตฌํํด์ผ ํ๋?โ ๊ณ ๋ฏผํ์ง๋ง, ๋ ธ๋น์ค ์ ์ฉ ์๋น์ค ๊ณ์ ์ ๋ง๋ค๊ณ , ์ด ๊ณ์ ์ ํ์ํ ์คํ์ด์ค์ ํ๋ก์ ํธ๋ง ๊ถํ์ ๋ถ์ฌํ๋ ๋ฐฉ์์ ์ ํํ์ต๋๋ค.
- ๊ณต๊ฐ ๋ฌธ์ โ ์ ๊ทผ ํ์ฉ
- ๋ฏผ๊ฐํ ๋ฌธ์ (HR, ์ฌ๋ฌด ๋ฑ) โ ์ ๊ทผ ์ฐจ๋จ
Atlassian์ ๊ธฐ์กด ๊ถํ ์ฒด๊ณ๋ฅผ ๊ทธ๋๋ก ํ์ฉํ๋, ๋ณ๋์ ์ ๊ทผ ์ ์ด ์ฝ๋ ์์ด ๋ฌธ์ ๋ฒ์๋ฅผ ๊ด๋ฆฌํ ์ ์์ต๋๋ค. ๋๊ท๋ชจ ์กฐ์ง์ด๋ผ๋ฉด ๋ ์ธ๋ฐํ RBAC์ด ํ์ํ๊ฒ ์ง๋ง, 10~20๋ช ๊ท๋ชจ์ ํ์์๋ ์ด ๋ฐฉ์์ด ๊ฐ์ฅ ํฉ๋ฆฌ์ ์ด์์ต๋๋ค.
์ค์ ์ฌ์ฉ ์ฌ๋ก
์ฌ๊ธฐ๊น์ง ๊ธฐ์ ์ ์ธ ์ด์ผ๊ธฐ๋ฅผ ๋ง์ด ํ๋๋ฐ, ๊ฒฐ๊ตญ ์ค์ํ ๊ฑด โ์ค์ ๋ก ํ์์ ์ผ๋ง๋ ์ฐ์ด๊ณ ์๋๊ฐโ ์ ๋๋ค.
์ค์ Slack์์ ๋ ธ๋น์ค๋ฅผ ์ฌ์ฉํ๋ ๋ชจ์ต์ ๋ช ๊ฐ์ง ๊ณต์ ํฉ๋๋ค.
์๋ฌ ๋ถ์์ ์์ผ๋๊ณ , ๋ค๋ฅธ ์ผ์ ํ๋ค

AWS ์๋ฌ ์๋ฆผ์ด ์ฌ๋ผ์์ ๋, ์ถํด๊ทผ ์ค์ด๊ฑฐ๋ ๋ค๋ฅธ ์ ๋ฌด๋ฅผ ํ๊ณ ์๋ค๋ฉด? ๋ ธ๋น์ค์๊ฒ ์๋ฌ ๋ถ์์ ์์ผ๋๋ฉด ๋ฉ๋๋ค. ๋์์์ ํ์ธํ๋ฉด ์์ธ ๋ถ์์ด ๋๋ ์๊ณ , ๋ฐ๋ก ์์ ์ ๋ค์ด๊ฐ ์ ์์ต๋๋ค.
๋ถ์์์ ์์ ์์๊น์ง ํ ๋ฒ์

๋ถ์ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํ์ผ๋ก Jira ํฐ์ผ ์ด์๊ณผ AI ์ฝ๋ฉ ๋๊ตฌ์์ ์ฌ์ฉํ ํ๋กฌํํธ๊น์ง ์๋์ผ๋ก ์์ฑํ ์ ์์ต๋๋ค. ์๋ฌ ๋ฐ๊ฒฌ๋ถํฐ ์์ ์์ ์์๊น์ง์ ๊ฐ๊ทน์ ์ค์ฌ์ฃผ๋ ์ํฌํ๋ก์ฐ์ ๋๋ค. (๋์ค์๋ ๋ ธ๋น์ค๊ฐ ์ง์ ํฐ์ผ์ ์ฌ๋ฆฌ๊ณ PR๊น์ง ์์ฑํ๋ ๋จ๊ณ๋ก ๋ฐ์ ์ํฌ ์๊ฐ๋ ํ๊ณ ์์ต๋๋ค.)
๋ฌธ์์ ์ฝ๋ ๊ธฐ๋ฐ์ ๋ต๋ณ

์ฌ์ฉ์์ ์ง๋ฌธ์ ๋ฐ๋ผ Confluence ๋ฌธ์๋ ์ฝ๋๋ฒ ์ด์ค๋ฅผ ๊ฒ์ํด์ ๊ทผ๊ฑฐ ์๋ ๋ต๋ณ์ ์ ๊ณตํฉ๋๋ค. ๋ฌธ์์ ์ ์ฑ ์ด ์ ๋ฆฌ๋์ด ์์ผ๋ฉด ๋ฌธ์๋ฅผ ๊ธฐ๋ฐ์ผ๋ก, ๋ฌธ์์ ์์ผ๋ฉด ์ฝ๋๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ต๋ณํฉ๋๋ค.
์์ด์ ํธ ๊ฐ ์ฐ๊ณ

aws_agent๋ฅผ ํตํด Lambda์ ํ์์์, ๋ฉ๋ชจ๋ฆฌ ๊ฐ์ ์ค์ ๊ฐ์ ๋ฐ๋ก ํ์ธํ ์ ์์ต๋๋ค. ์ฌ๊ธฐ์ ๋ ๋์๊ฐ, ์ด์ ๋ํ ์ปจํ ์คํธ๋ฅผ ์ด์ด์ codebase_agent์๊ฒ ์ฝ๋ ๋ถ์์ ์์ฒญํ๋ ๊ฒ๋ ๊ฐ๋ฅํฉ๋๋ค. ํ๋์ ์ง๋ฌธ์์ ์์ํด ์ฌ๋ฌ ์์ด์ ํธ๊ฐ ์์ฐ์ค๋ฝ๊ฒ ํ์ ํ๋ ํ๋ฆ์ ๋๋ค.
์๋ฌ ์๋๋ฆฌ์ค ๋ถ์

โ์ด ์ค๋ฅ๊ฐ ์ ๋ฐ์ํ ์ ์๋์งโ ์๋๋ฆฌ์ค ๋ถ์์ ์์ฒญํ๋ฉด, ์ฝ๋๋ฒ ์ด์ค๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๊ฐ๋ฅํ ์์ธ๋ค์ ์์ธํ๊ฒ ๋ถ์ํฉ๋๋ค.
๋ง๋ฌด๋ฆฌํ๋ฉฐ
๋ ธ๋น์ค๋ โRAG ๊ธฐ๋ฐ ๋ฌธ์ ๊ฒ์ ๋ดโ์์ โ๋ฉํฐ์์ด์ ํธ ๊ธฐ๋ฐ ์ฌ๋ด AI ์ด์์คํดํธโ๋ก ์งํํ์ต๋๋ค.
ํต์ฌ ๋ณํ๋ฅผ ์ ๋ฆฌํ๋ฉด:
| ์ด์ | ํ์ฌ |
|---|---|
| ๋จ์ผ RAG ํ์ดํ๋ผ์ธ | ์ ๋ฌธ ์์ด์ ํธ๋ค + ๋ผ์ฐํฐ |
| Vertex AI Datastore | Rovo MCP, Gemini CLI, AWS CLI, SignOz MCP |
| โ๊ฒ์ํด์ ๋ต๋ณ" | "์ง๋ฌธ์ ๋ง๋ ๋ฐฉ๋ฒ์ผ๋ก ์ ๋ณด ์กฐํโ |
| ๋ฌธ์ ๊ฒ์ ํนํ | ๋ฌธ์, ์ฝ๋, ์ธํ๋ผ, ๋ชจ๋ํฐ๋ง ํตํฉ |
| OAuth sidecar ๋ณต์ก๋ | API Token ๊ธฐ๋ฐ ๋จ์ํ |
๋ฌผ๋ก ์์ง ์๋ฒฝํ์ง ์์ต๋๋ค.
- ๋ผ์ฐํ ์ด ๊ฐ๋ ํ๋ฆผ (์ฝ๋ ์ง๋ฌธ์ docs_agent๋ก ๋ณด๋ด๋ ๋ฑ)
- ์์ด์ ํธ ๊ฐ ์ปจํ ์คํธ ๊ณต์ ๊ฐ ์์ง ๋ฏธํก
- Vertex AI ๋ชจ๋ธ ์ฟผํฐ ์ ํ์ผ๋ก ๊ฐ๋ ์ค๋ฅ๊ฐ ๋ฐ์
ํ์ง๋ง ๋ฐฉํฅ์ฑ์ ๋ง๋ค๊ณ ์๊ฐํฉ๋๋ค. โ๋ง๋ฅ ๊ฒ์ ๋ดโ์ด ์๋๋ผ โ์ ์ฌ์ ์์ ์ ๋ฌธ๊ฐ๋ฅผ ๋ถ๋ฌ์ค๋ ๋ดโ.
๋ ธ๋น์ค๋ ํ ๋๊ตฌ๋ ์ฐธ์ฌํด์ ์ ๋ฌด ํจ์จํ๋ฅผ ์ํ ๋ณธ์ธ์ ์์ด๋์ด๋ฅผ ๊ตฌํํ ์ ์๋ ํ๋ซํผ์ด ๋๋ฉด ์ข๊ฒ ์ต๋๋ค.
์ฝ์ด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค!