RecursiveCharacterTextSplitterTokenTextSplitter๊ฐ ์ค ๋์ /n์ ์ฝ์ด๋ค์ (๋ฌธ์ฅ ์ค๊ฐ์ด๋ผ๋)์๋ณธ ๋ฌธ์์ ํฌ๋งท์ ์์ ํ ์บก์ฒํ์ง ๋ชปํจ (/n/n ์์). PDF์ ๊ฒฝ์ฐ ๋ถํ ์ด ๋ ์ ํํจ.๋๋ถ๋ถ์ PDF ๋ฆฌ๋๋ ์๊ฐ์ ์ค๋ฐ๊ฟ์ ์ค์
RAG๊ฐ ํ์ํ ์ด์ Input ํฌ๊ธฐ์ ๋ฐ๋ผ ํ์ฅ ๊ฐ๋ฅ: ๊ด๋ จ๋ ๋ช ๊ฐ์ ๋ฌธ๋จ๋ง ๊ฒ์ํ๋ฏ๋ก, ์ํค/๋๋ผ์ด๋ธ๊ฐ ์ปค์ง๋๋ผ๋ ์ปจํ ์คํธ ์๋์ฐ ์ ํ์ ๋๋ฌํ์ง ์์ต๋๋ค.๋ ๋ฎ์ ๋น์ฉ ๋ฐ ์ง์ฐ ์๊ฐ: ์ ์ฒด ๋ฌธ์๋ฅผ ๋งค๋ฒ ํ๋กฌํํธ์ ๋ถ์ฌ๋ฃ๋ ๊ฒ๋ณด๋ค ํจ์ฌ ์ ์ ํ ํฐ์ ์ฌ์ฉํฉ๋๋ค.๋ ๋
LangGraph์์๋ add_messages reducer๋ฅผ ์ฌ์ฉํด ๋ฉ์์ง ๋ชฉ๋ก์ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ ์ ์์ต๋๋ค.๊ฒฐ๊ณผ ์์:โ ๋ฉ์์ง ์์ ๊ฐ๋ฅ: ID๋ฅผ ํตํด ํน์ ๋ฉ์์ง๋ฅผ ์๋ณํ๊ณ ์์ โ ์ค๋ณต ๋ฐฉ์ง: ๋์ผํ ID์ ๋ฉ์์ง๊ฐ ์ฌ๋ฌ ๋ฒ ์ถ๊ฐ๋๋ ๊ฒ์ ๋ฐฉ์งโ ๋ฉ์์ง ์ญ์

LangGraph๋ฅผ ํ์ตํ๋ฉด์ ๊ฐ์ฅ ์ค์ํ๊ฒ ์ดํดํด์ผ ํ ๊ฐ๋ ๋ค์ ์ ๋ฆฌํ์ต๋๋ค. ํนํ Tool Binding๋ LLM ๋ ธ๋๋ฅผ ์ถ๊ฐํ๋ ๋ฐฉ๋ฒ๊ณผ Super-Step์ ๊ฐ๋ , ๊ทธ๋ฆฌ๊ณ ์ด๊ฒ์ด ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ์ ์ด๋ป๊ฒ ์ฐ๊ฒฐ๋๋์ง๋ฅผ ์ค์ฌ์ผ๋ก ๊ธฐ๋กํ์ต๋๋ค.LangChain์ ์ผ๋ฐ ํจ์

๋น๋๊ธฐ ํ๋ก๊ทธ๋๋ฐ๊ณผ AI ์์ด์ ํธ๋ฅผ ๊ฒฐํฉํ์ฌ ์ฌ์ธต ๊ฒ์(Deep Research) ์์คํ ์ ๊ตฌํํ๋ ๋ฐฉ๋ฒ์ ์ ๋ฆฌํ์ต๋๋ค. ์ด ๊ธ์์๋ OpenAI SDK์ Agent ํ๋ ์์ํฌ๋ฅผ ํ์ฉํ์ฌ Plan โ Search โ Report 3๋จ๊ณ ํ์ดํ๋ผ์ธ์ ๊ตฌ์ฑํ๋ ์ค์ ๊ตฌํ

Next.js 16์ ์๋ก์ด ์บ์ฑ ๊ธฐ๋ฅ์ ํ๋ก์ ํธ์ ์ ์ฉํ์ฌ ์ฑ๋ฅ์ ๊ฐ์ ํจ. ๊ธฐ์กด์ fetch ๊ธฐ๋ฐ ๋ฐ์ดํฐ ๋ก๋ฉ ๋ฐฉ์์์ ์๋ฒ ์ก์ ๊ณผ 'use cache' ๋๋ ํฐ๋ธ๋ฅผ ํ์ฉํ ์ต์ ํ๋ ๊ตฌ์กฐ๋ก ์ ํํ์.๊ธฐ์กด์๋ ํด๋ผ์ด์ธํธ์์ ์ง์ API๋ฅผ ํธ์ถํ๋ ๋ฐฉ์์ ์ฌ์ฉํ์ผ๋, ์ด๋ฅผ

AI ์์ด์ ํธ๋ฅผ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์์ด ์์ํ๊ฒ ๊ตฌํํด๋ณด๋ฉด์ ์์ด์ ํธ์ ํต์ฌ ์๋ ์๋ฆฌ๋ฅผ ์ดํดํด๋ด ์๋ค. ์ด ๊ธ์์๋ OpenAI์ Function Calling ๊ธฐ๋ฅ๊ณผ ๋ฐ๋ณต ๋ฃจํ(Agent Loop)๋ง์ผ๋ก ๋ชฉํ๋ฅผ ๋ฌ์ฑํ๊ธฐ ์ํ Todo ๋ฆฌ์คํธ๋ฅผ ์๋์ผ๋ก ์์ฑํ๊ณ , ๊ฐ ํญ๋ชฉ์

AI agent๋ฅผ ํตํ ๊ฐ๋ฐ์ด ํ๋ฐํ๊ฒ ์ด๋ฃจ์ด์ง๊ณ ์๊ณ , ๊ทธ์ ๋ฐ๋ผ ์ฌ์ฉํ๋ ํ๋ ์์ํฌ๋ Tool ์ ํ์ด ์ค์ํด์ก์ต๋๋ค. ๊ทธ ์ค Next.js ๊ฐ 16 ๋ฒ์ ์ผ๋ก ์ ๋ฐ์ดํธ ๋๋ฉด์, ai์ ํจ๊ป ํ๋ ํ์คํ ๊ฐ๋ฐ์ด ๋์ฑ ์ฉ์ดํด ์ง ๊ฒ ๊ฐ์ต๋๋ค.๊ฐ์ : ๊ธฐ์กด์ ํ์ผ ๊ธฐ๋ฐ ๋ผ

LLM ๊ธฐ๋ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ด ๋จ์ํ ํ๋กฌํํ ์ ๋์ด ๋ณต์กํ ์์คํ ์ผ๋ก ์งํํจ์ ๋ฐ๋ผ, ์ ๋ขฐ์ฑ๊ณผ ์ฑ๋ฅ์ ํ๋ณดํ๊ธฐ ์ํ ์ํฌํ๋ก์ฐ ์ค๊ณ๊ฐ ์ค์ํด์ง. Anthropic์์ ์ ์ํ 5๊ฐ์ง ํต์ฌ ๋์์ธ ํจํด์ ๋ถ์ํ๊ณ ์ ๋ฆฌํจ.ํน์ง: ํ๋์ LLM ์ถ๋ ฅ์ด ๋ค์ LLM์ ์ ๋ ฅ์ด ๋๋

๐ ๊ฐ์ Multi-Agent ์์คํ ์์ ์ฌ๋ฌ ์์ด์ ํธ๋ฅผ ์กฐ์จํ๊ณ ์คํํ๋ Planning Agent๋ฅผ ๊ตฌํํ์. ์ด๋ฒ ๊ตฌํ์์๋ ๋ ๊ฐ์ง ์ ๊ทผ ๋ฐฉ์์ ๋น๊ตํจ: PlanningAgent: ์ฌ์ ์ ์๋ ์์ฐจ์ ์ํฌํ๋ก์ฐ๋ฅผ ๋ฐ๋ฅด๋ ์ ์ ์์ด์ ํธ AutonomousPl

๊ฑฐ๋ ๋ชจ๋ธ์ ์ ์ฒด ํ๋ํ๊ธฐ์๋ ์์ ์๋ชจ๊ฐ ๋๋ฌด ํผ. ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด QLoRA(Quantized Low-Rank Adaptation)๋ฅผ ๋์ ํจ.Freeze: ๊ธฐ์กด ๋ชจ๋ธ์ ๊ฐ์ค์น($W_0$)๋ฅผ 4๋นํธ ์์ํ ์ํ๋ก ๊ณ ์ ํ์ฌ ๋ฉ๋ชจ๋ฆฌ ์ ์ ์จ์ ์ต์ํํจ.Adapter:

SpringAI ๋ฅผ ํ์ฉํ์ฌ ๋ฌธ์๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ต๋ณํ๋ ์ฑ๋ด์ ๋ง๋๋ ๊ณผ์ ์ ๋ฆฌ. ๐ง RAG ๊ตฌ์กฐ ๊ฐ๋จ ์ ๋ฆฌ RAG๋ ํฌ๊ฒ ๋ ๋จ๊ณ๋ก ๋๋์ด์ ธ ์๋ค. Retrieval (๊ฒ์): ์ง๋ฌธ๊ณผ ๊ด๋ จ๋ ๋ฌธ์๋ฅผ ๋ฒกํฐ ๊ฒ์์ ํตํด ๊ฐ์ ธ์ด Generation (์์ฑ): ๊ฒ์๋

์ต๊ทผ LLM์ ๊ฐ๋ฐํ๊ณ ํ์ฉํ๋ ์ถ์ธ๊ฐ ๋น ๋ฅด๊ฒ ํ์ฐ๋๊ณ ์๋ค. Spring AI๋ LangChain๊ณผ ๊ฐ์ด ์ด๋ฌํ LLM์ ๋ณด๋ค ์ฝ๊ฒ ์ฌ์ฉํ๋๋ก ๋๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ. ์ด๋ฌํ ํ๋ฆ๊ณผ ํจ๊ป, Spring Boot ํ๊ฒฝ์์ Spring AI๋ฅผ ํ์ฉํ๋ฉด LLM ๊ธฐ๋ฅ์ ๊ฐํธํ๊ฒ ํต

์์ ์ด๋ ์ญ์ ๋ฑ์ ๋น์ฆ๋์ค ๋ก์ง์ ๊ตฌํํ ๋, ์ํฐํฐ์ ์์ ์๋ฅผ ํ์ธํ๊ณ ์ ํ๋ ๋ก์ง์ ์์ฑํด์ผํ ๋๊ฐ ์์ต๋๋ค.์ด๋ฐ ๊ฒฝ์ฐ์ ์๋น์ค ์ฝ๋๋ง๋ค ์ ์ ๊ฐ ์์ ์์ธ์ง ํ์ธํ๋ ์ฝ๋๋ฅผ ์จ์ผ ํฉ๋๋ค.์๋์ ๋ณด์ด๋ ์ฝ๋๋ ์งง์ ์ง ๋ชจ๋ฅด์ง๋ง, ์๋น์ค ์ฝ๋๋ง๋ค ์ค๋ณต๋ ๊ฒ์ฆ ๋ก์ง์ด ๋ค
๊ธฐ์กด ํ๋ก์ ํธ์์ ์์ฑํ๋ Dockerfile์ ํตํด ์ด๋ฏธ์ง๋ฅผ ๋น๋ํ๋ฉด ์๋ ์ ํ ๋ฐ ๋ง์ ์ฉ๋์ ๋ํ ๋ฌธ์ ๊ฐ ์์ด, ๊ทธ์ ๋ํ ํด๊ฒฐ์ ๊ณต์ ํ๊ณ ์ ํฉ๋๋ค.ํ๋ก์ ํธ์ ๋ํ ๊ตฌ์ฑ์ ์๋์ ๊ธ์์ ํ์ธํ ์ ์์ต๋๋ค.\[Github Actions + Docker + EC2]

ํ์ฌ์ ๊ฐ๋ฐ์์๋ ์ง์์ ๋ฐฐํฌ(Continuous Deployment, CD)๋ฅผ ํตํด ๋น ๋ฅด๊ณ ์์ ์ ์ธ ์๋น์ค ์ ๊ณต์ด ํ์๊ฐ ๋์์ต๋๋ค. ํนํ, MSA(Microservices Architecture)๋ฅผ ์ฑํํ ํ๋ก์ ํธ์์๋ ๊ฐ ์๋น์ค์ ๋ ๋ฆฝ์ฑ๊ณผ ๋ฐฐํฌ ํจ์จ์ฑ์ ๊ทน๋ํํ๋
๋ด์ผ๋ฐฐ์์บ ํ ์คํ๋ง ์ฌํ 1๊ธฐ๋ฅผ ์๋ฃํ๊ณ ๊ทธ์ ๋ํ ์ ์ ๊ฐ์ธ์ ์ธ ํ๊ธฐ๋ฅผ ๊ณต์ ํ๊ณ ์ ํฉ๋๋ค~!์ ๋ ์ปดํจํฐ๊ณผํ๊ณผ๋ฅผ ์ ๊ณตํ ํ, ์กธ์ ํ๊ณ 1๋ ๋์ ํผ์์ ๋ฐฉํฅ์ ์ก์ง ๋ชปํ๊ณ ๋ฐฉํฉํ์ต๋๋ค. ๊ฐ๋ฐ ๊ณต๋ถ๋ฅผ ํ๊ธด ํ์ง๋ง, ์ฒด๊ณ์ ์ธ ํ์ต์ด ๋ถ์กฑํ์ฌ ์ค์ง์ ์ธ ๊ธฐ์ ์ ์๋ ๋ฐ ์ด๋ ค์

์งํ ์ค์ธ MSA ํ๋ก์ ํธ์์ ๊ฐ ์๋น์ค ๋ชจ๋์ ๋ํด Docker๋ฅผ ํ์ฉํ CI/CD ํ์ดํ๋ผ์ธ์ ๊ตฌ์ถํ๋ ์ค Docker ํ๊ฒฝ ๊ตฌ์ถ์ ๊ด๋ จ๋ ๋ช ๊ฐ์ง ๋ฌธ์ ๋ฅผ ๊ฒช์์ต๋๋ค. ์ด๋ฅผ ํด๊ฒฐํ๋ ๊ณผ์ ์ ๊ณต์ ํ๊ณ ์ ํฉ๋๋ค.ํ๋ก์ ํธ๊ฐ ๋ฉํฐ๋ชจ๋ ๊ตฌ์กฐ๋ก ๋์ด ์์ด์, ์๋น์ค ๋ชจ๋๋ณ๋ก

ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉด์, ์ฌ๋ฌ ํ์๊ณผ ํ๊ฒฝ์ ๋ง์ถ๊ธฐ ์ํด ํธ๋ฆฌํ๊ฒ docker ๋ฅผ ์ค์ ํ ์คํํ๊ณ ์์๋ค.๊ทธ๋ฐ๋ฐ, ์ด๋ ๋ ์ ์คํ๋๋ docker ๊ฐ ์๋๋ ๊ฒ์ด๋ค...!์๋ ์ฌ์ง์ ์๋ฌ ๋ด์ฉ์ด๋ค.๋ด์ฉ์ ์ดํด๋ณด๋ฉด, docker๋ฅผ 2181 port ๋ก binding ํ

ํ๋ก์ ํธ ์งํ ์ค, ์ปจํธ๋กค๋ฌ์ ๋ํ ๋จ์ํ ์คํธ๋ฅผ ํ๊ธฐ ์ํด Mockito ์ WebMvcTest ๋ฅผ ์ด์ฉํด ํ ์คํธ๋ฅผ ์์ฑํ๊ณ ์์๋ค.ํ์ฌ ํ๋ก์ ํธ๋ ์ฌ๋ฌ ๋ฉํฐ๋ชจ๋๋ก ์ด์ด์ ธ ์๊ณ , application ์์ ๋ค๋ฅธ ๋ชจ๋์ component ๋ scan ํ๊ณ ์์ด์ Spri