๐ŸŒฑ Spring AI ์†Œ๊ฐœ (Spring Boot + ์ƒ์„ฑํ˜• AI ํ†ตํ•ฉ ํ”„๋ ˆ์ž„์›Œํฌ)

Spring AI ๋Š”
Spring ์ƒํƒœ๊ณ„์—์„œ ์ƒ์„ฑํ˜• AI๋ฅผ ์‰ฝ๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๋งŒ๋“  ๊ณต์‹ ํ”„๋กœ์ ํŠธ์ž…๋‹ˆ๋‹ค.

๊ธฐ์กด์˜ Spring Boot ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— LLM(๋Œ€๊ทœ๋ชจ ์–ธ์–ด ๋ชจ๋ธ) ๊ธฐ๋Šฅ์„ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ํ†ตํ•ฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค๊ณ„๋˜์—ˆ์œผ๋ฉฐ, OpenAI, Azure OpenAI, Anthropic, Bedrock ๋“ฑ ๋‹ค์–‘ํ•œ AI ๋ชจ๋ธ์„ ํ•˜๋‚˜์˜ API๋กœ ์ถ”์ƒํ™”ํ•ด์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ด ํ•ต์‹ฌ์ž…๋‹ˆ๋‹ค.


๐Ÿ”— ๊ณต์‹ ์‚ฌ์ดํŠธ

๐Ÿ‘‰ https://spring.io/projects/spring-ai

๐Ÿ‘‰ GitHub: https://github.com/spring-projects/spring-ai


โš™๏ธ Spring AI ์ฃผ์š” ํŠน์ง•

1. ํ†ตํ•ฉ๋œ AI API

Spring AI๋Š” ๋‹ค์–‘ํ•œ LLM ์ œ๊ณต์ž๋“ค์„ ํ•˜๋‚˜์˜ ์ธํ„ฐํŽ˜์ด์Šค๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค๋‹ˆ๋‹ค.
→ ํŠน์ • ๋ฒค๋”(OpenAI ๋“ฑ)์— ์ข…์†๋˜์ง€ ์•Š์Œ

2. Spring Boot ์นœํ™”์  ๊ตฌ์กฐ

๊ธฐ์กด Spring ๊ฐœ๋ฐœ ๋ฐฉ์‹ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅ
→ ์˜์กด์„ฑ ์ถ”๊ฐ€ + ์„ค์ •๋งŒ์œผ๋กœ AI ๊ธฐ๋Šฅ ์ ์šฉ

3. Prompt Template & ๊ด€๋ฆฌ ๊ธฐ๋Šฅ

ํ”„๋กฌํ”„ํŠธ๋ฅผ ํ…œํ”Œ๋ฆฟํ™”ํ•˜์—ฌ ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅ
→ ์œ ์ง€๋ณด์ˆ˜์„ฑ๊ณผ ์ƒ์‚ฐ์„ฑ ํ–ฅ์ƒ

4. Tool Calling ์ง€์›

AI๊ฐ€ Java ๋ฉ”์„œ๋“œ๋ฅผ ์ง์ ‘ ํ˜ธ์ถœํ•˜๋Š” ๊ตฌ์กฐ ์ง€์›
→ API + AI ๊ฒฐํ•ฉ ์„œ๋น„์Šค ๊ตฌ์ถ• ๊ฐ€๋Šฅ

5. RAG (๊ฒ€์ƒ‰ ๊ธฐ๋ฐ˜ ์ƒ์„ฑ) ์ง€์›

Vector DB์™€ ์—ฐ๋™ํ•˜์—ฌ ๋ฌธ์„œ ๊ธฐ๋ฐ˜ AI ์„œ๋น„์Šค ๊ตฌํ˜„ ๊ฐ€๋Šฅ


๐Ÿš€ Spring AI 1.1.4 ์ตœ์‹  ๋ฒ„์ „ ์†Œ๊ฐœ

ํ˜„์žฌ ์ตœ์‹  ์•ˆ์ • ๋ฒ„์ „ ์ค‘ ํ•˜๋‚˜๋Š” Spring AI 1.1.4์ž…๋‹ˆ๋‹ค.

Spring AI 1.1.4 ์ฃผ์š” ์—…๋ฐ์ดํŠธ ์š”์•ฝ

โญ ์ฃผ์š” ๊ธฐ๋Šฅ ๊ฐœ์„ 

  • Structured Output ๊ธฐ๋Šฅ ๋™์  ๋น„ํ™œ์„ฑํ™” ์ง€์›
  • AI ์‘๋‹ต ๊ตฌ์กฐ ์ œ์–ด ์œ ์—ฐ์„ฑ ํ–ฅ์ƒ

๐Ÿ› ์•ˆ์ •์„ฑ ๊ฐœ์„ 

  • Vector Store (PgVector, Oracle ๋“ฑ) ํ…Œ์ŠคํŠธ ์•ˆ์ •ํ™”
  • Tool Calling ์š”์ฒญ ์ฒ˜๋ฆฌ ์˜ค๋ฅ˜ ์ˆ˜์ •
  • Bedrock / Google GenAI ์—ฐ๋™ ์•ˆ์ •์„ฑ ๊ฐœ์„ 
  • Embedding ๋ฐ Function Call ๊ด€๋ จ ๋ฒ„๊ทธ ์ˆ˜์ •

๐Ÿ‘‰ ์ „์ฒด์ ์œผ๋กœ “์•ˆ์ •์„ฑ + ๊ตฌ์กฐํ™” ์ถœ๋ ฅ + ๋ฒกํ„ฐ์Šคํ† ์–ด ๊ฐœ์„ ” ์ค‘์‹ฌ ์—…๋ฐ์ดํŠธ


๐Ÿ’ก Spring AI 1.1.4 ํ•ต์‹ฌ ํฌ์ธํŠธ

์ด๋ฒˆ ๋ฒ„์ „์˜ ํ•ต์‹ฌ์€ ํฌ๊ฒŒ 3๊ฐ€์ง€์ž…๋‹ˆ๋‹ค:

  • ๐Ÿ”ง ์•ˆ์ •์„ฑ ๊ฐ•ํ™” (Bug Fix ์ค‘์‹ฌ)
  • ๐Ÿง  Structured Output ๊ฐœ์„ 
  • ๐Ÿ”Œ AI + Vector DB ์—ฐ๋™ ์•ˆ์ •ํ™”

์ฆ‰, ๊ธฐ๋Šฅ ์ถ”๊ฐ€๋ณด๋‹ค๋Š” ํ”„๋กœ๋•์…˜ ์•ˆ์ •์„ฑ ๊ฐ•ํ™” ๋ฒ„์ „์— ๊ฐ€๊น์Šต๋‹ˆ๋‹ค.


๐Ÿ“Œ ์ •๋ฆฌ

Spring AI๋Š” ๋‹จ์ˆœํ•œ AI ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์•„๋‹ˆ๋ผ
๐Ÿ‘‰ Spring Boot ๊ธฐ๋ฐ˜์—์„œ AI ์„œ๋น„์Šค๋ฅผ “์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ๋ ˆ๋ฒจ”๋กœ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ํ”„๋ ˆ์ž„์›Œํฌ์ž…๋‹ˆ๋‹ค.

ํŠนํžˆ 1.1.x ๋ผ์ธ์€

  • ์•ˆ์ •์ ์ธ AI ์—ฐ๋™
  • RAG ๊ธฐ๋ฐ˜ ์„œ๋น„์Šค
  • Tool Calling ๊ธฐ๋ฐ˜ Agent ๊ตฌ์กฐ

๋ฅผ ์‹ค๋ฌด์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ˆ˜์ค€์œผ๋กœ ๋Œ์–ด์˜ฌ๋ฆฐ ๋ฒ„์ „์ด๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

๋ฐ˜์‘ํ˜•
๋ธ”๋กœ๊ทธ ์ด๋ฏธ์ง€

visualp

c#, java

,