๐Ÿ“‘ ๊ณต์‹ ๋ฌธ์„œ ๋ฒˆ์—ญ/Spring AI (2025 Renewal)

[Spring AI 2025 Renewal #1] Spring AI๋Š” ๋ฌด์—‡์ธ๊ฐ€?

dev_writer 2025. 4. 4. 02:44

์•ˆ๋…•ํ•˜์„ธ์š”. dev_writer์ž…๋‹ˆ๋‹ค.

 

์ž‘๋…„ Spring AI๊ฐ€ ์ฒ˜์Œ ๋‚˜์™”์„ ๋•Œ ๋‹น์‹œ๋ณด๋‹ค ์‹œ๊ฐ„์ด ๊ฝค ์ง€๋‚œ ๊ฒƒ ๊ฐ™์•„, ์˜ค๋žœ๋งŒ์— Spring AI์— ๋Œ€ํ•œ ๊ธ€์„ ๋‹ค์‹œ ์—ฐ์žฌํ•ด๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

 

๊ธ€์„ ์ž‘์„ฑํ•˜๋Š” ์‹œ์ ์ธ 25๋…„ 4์›” ๊ธฐ์ค€์œผ๋กœ ๋ฆด๋ฆฌ์ฆˆ ๋œ 1.0.0-M6 ๋ฒ„์ „๊นŒ์ง€์˜ ํ™œ์šฉ๋ฒ•์„ ๋‹ค๋ฃฐ ์˜ˆ์ •์ž…๋‹ˆ๋‹ค. ์•„์ง ์•ˆ์ •ํ™”๋œ ๋ฒ„์ „์ด ์•„๋‹Œ ๋งŒํผ, ์ž‘๋…„์˜ ๊ธ€์ฒ˜๋Ÿผ ๋ณธ ๋‚ด์šฉ๋„ ์ถ”ํ›„ deprecated ๋  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„๋“ค์ด ์žˆ๋‹ค๋Š” ์ ์„ ๊ฐ์•ˆํ•ด ์ฃผ์‹œ๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

 

๊ณต์‹ ๋ฌธ์„œ์™€ Dan Vega์˜ Spring AI ์˜์ƒ, ๊ทธ๋ฆฌ๊ณ  ์ถ”๊ฐ€์ ์ธ Spring AI ์ž๋ฃŒ๋ฅผ ์ฐธ๊ณ ํ•˜์—ฌ ์ž‘์„ฑํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

 

์ฒซ ๋ฒˆ์งธ ๊ธ€์€ Spring AI ๊ณต์‹ ๋ฌธ์„œ์˜ ์ฒซ ํŽ˜์ด์ง€๋ถ€ํ„ฐ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

 

Spring AI

Spring AI๋Š” ์ธ๊ณต์ง€๋Šฅ ์—”์ง€๋‹ˆ์–ด๋ง์„ ์œ„ํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ”„๋ ˆ์ž„์›Œํฌ์ž…๋‹ˆ๋‹ค. ์ด ํ”„๋ž˜์ž„์›Œํฌ์˜ ๋ชฉํ‘œ๋Š” ์ด์‹์„ฑ๊ณผ ๋ชจ๋“ˆํ˜• ์„ค๊ณ„์™€ ๊ฐ™์€ Spring ์ƒํƒœ๊ณ„์˜ ์„ค๊ณ„ ์›์น™์„ ์ธ๊ณต์ง€๋Šฅ ๋ถ„์•ผ์— ์ ์šฉํ•˜๊ณ , ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๊ตฌ์„ฑ ์š”์†Œ๋กœ์„œ POJO์˜ ์‚ฌ์šฉ์„ ์žฅ๋ คํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

์ถœ์ฒ˜: Spring AI ๊ณต์‹ ๋ฌธ์„œ

 

Spring AI๋Š” ๊ทผ๋ณธ์ ์œผ๋กœ ์ธ๊ณต์ง€๋Šฅ ํ†ตํ•ฉ์˜ ํ•ต์‹ฌ ๊ณผ์ œ์ธ ๊ธฐ์—…์˜ ๋ฐ์ดํ„ฐ์™€ API๋ฅผ AI ๋ชจ๋ธ๊ณผ ์—ฐ๊ฒฐํ•˜๋Š” ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐ ์ค‘์ ์„ ๋‘ก๋‹ˆ๋‹ค.

 

ํŠน์ง•

Spring AI๋Š” ๋‹ค์Œ ๊ธฐ๋Šฅ๋“ค์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค:

์ด๋Ÿฌํ•œ ๊ธฐ๋Šฅ์„ ํ†ตํ•ด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ผ๋ฐ˜์ ์ธ ์‚ฌ์šฉ ์‚ฌ๋ก€๋ฅผ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

  • ๋‚ด ๋ฌธ์„œ ๊ธฐ๋ฐ˜ ์งˆ๋ฌธ ๋‹ต๋ณ€ (Q&A)
  • ๋‚ด ๋ฌธ์„œ์™€ ์ฑ„ํŒ…ํ•˜๊ธฐ

 

๋ฌธ์„œ

๊ด‘๋ฒ”์œ„ํ•œ ์ฐธ์กฐ ๋ฌธ์„œ, ์ƒ˜ํ”Œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜, ์›Œํฌ์ˆ/๊ฐ•์ขŒ ์ž๋ฃŒ

 

์‹œ์ž‘ํ•˜๊ธฐ

๊ฐ„๋‹จํ•œ ๋ช‡ ๋‹จ๊ณ„๋กœ Spring AI๋ฅผ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

 

1. Spring Initializr๋ฅผ ์ด์šฉํ•˜์—ฌ, Spring AI OpenAI Boot Starter ์˜์กด์„ฑ์ด ํฌํ•จ๋œ Spring Boot ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. (์›ํ•˜๋Š” AI ๋ชจ๋ธ ๋˜๋Š” ๋ฒกํ„ฐ ์ €์žฅ์†Œ๋ฅผ ์„ ํƒ ๊ฐ€๋Šฅ)

 

2. application.properties์— OpenAI ํ‚ค๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค:

spring.ai.openai.api-key=<YOUR OPENAI KEY>

 

3. SpringAiDemoApplication ํด๋ž˜์Šค์— ๋‹ค์Œ ์ฝ”๋“œ๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค:

@Bean
public CommandLineRunner runner(ChatClient.Builder builder) {
    return args -> {
        ChatClient chatClient = builder.build();
        String response = chatClient.prompt("Tell me a joke").call().content();							
        System.out.println(response);
    };
}

 

4. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค:

./mvnw spring-boot:run

 

๋‹ค๋ฅธ ๋ฐฉ์‹์œผ๋กœ ์‹œ์ž‘ํ•˜๊ณ  ์‹ถ์œผ์‹œ๋‹ค๋ฉด, ์ฐธ์กฐ ๋ฌธ์„œ์˜ "Getting Started" ์„น์…˜์„ ์ฐธ๊ณ ํ•˜์‹ญ์‹œ์˜ค.

 

Reference