Skip to content

Commit 9489d8a

Browse files
committed
docs: spring ai
1 parent 352400c commit 9489d8a

File tree

1 file changed

+83
-0
lines changed

1 file changed

+83
-0
lines changed
Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
# AI Application과 Spring AI 개요
2+
3+
## Summary
4+
AI Application은 AI 모델을 활용해 실제 서비스를 구현하는 응용 시스템이다. 이러한 시스템은 Front-End, Back-End(API Server), AI 모델의 유기적 상호작용으로 구성되며, 이를 효율적으로 통합하기 위해 Spring AI와 같은 프레임워크가 사용된다. Spring AI는 Java 및 Spring Boot 환경에서 LLM과의 통합을 단순화하고, 엔터프라이즈급 AI 응용 서비스를 개발할 수 있도록 지원한다.
5+
6+
## Details
7+
8+
### AI Application의 구성 요소
9+
AI Application은 AI 모델을 중심으로 다양한 계층이 상호작용하며 동작한다.
10+
11+
| 구성 요소 | 역할 |
12+
|------------|------|
13+
| **Front-End (Web/App)** | 사용자의 입력을 수집하고, AI의 응답을 시각화함. 입력은 텍스트, 이미지, 영상 등 다양한 형태로 존재함. |
14+
| **Back-End (API Server)** | AI Agent로서 핵심 역할 수행. 프롬프트 생성, 도구 호출, 멀티모달 데이터 처리, 추론 결과 기록을 담당함. |
15+
| **AI Model (LLM)** | 클라우드 또는 온프레미스 환경에서 실행되며, Back-End의 요청에 따라 추론과 응답을 수행함. |
16+
17+
:::note[NOTE]
18+
Back-End는 단순한 API 서버가 아닌, AI 모델을 조정하고 외부 시스템을 제어하는 **AI Agent**의 중심이다.
19+
:::
20+
21+
### AI Agent의 개념
22+
AI Agent는 **AI 모델을 활용해 특정 목적을 수행하는 응용 시스템**을 의미한다. 예를 들어 다음과 같은 형태로 구현될 수 있다.
23+
24+
- 챗봇형 (예: 고객 상담)
25+
- 가상비서형 (예: 일정 관리, 메일 요약)
26+
- 자율형 (예: 시스템 제어, 보고서 자동 작성)
27+
28+
AI Agent는 REST API 기반으로 구현되며, 요청을 받아:
29+
1. 입력 데이터를 전처리 및 프롬프트로 변환
30+
2. AI 모델 호출 및 추론 수행
31+
3. 결과를 후처리하여 사용자에게 응답
32+
33+
### 프레임워크의 필요성
34+
AI Application 개발 시 발생하는 대표적인 문제는 다음과 같다.
35+
- 복잡한 데이터 흐름과 모델 연동 코드
36+
- 대화 기억, 문서 검색, 도구 호출 등 고급 기능의 재사용 어려움
37+
- 외부 API, 데이터베이스, 벡터 저장소와의 연동 복잡성
38+
39+
이를 해결하기 위해 Python 진영에서는 **LangChain**, Java 진영에서는 **Spring AI**가 등장하였다.
40+
41+
### Spring AI란?
42+
Spring AI는 **LLM을 Java 생태계에 통합**하기 위한 Spring 프로젝트로, 다음과 같은 특징을 가진다.
43+
44+
1. **Spring Boot 친화적 구조**
45+
- 기존 Spring MVC와 유사한 프로그래밍 모델 유지
46+
- 자동 구성(Auto Configuration)을 통한 빠른 개발
47+
48+
2. **AI 모델 통합**
49+
- OpenAI, Hugging Face 등 다양한 LLM을 자동 연동
50+
- REST API 호출 구조를 단순화
51+
52+
3. **벡터 저장소 및 대화 기억 지원**
53+
- 문서 검색 기반 답변(RAG) 기능
54+
- 대화 상태를 저장·복원 가능
55+
56+
4. **Tool Calling 및 MCP Server 지원**
57+
- 외부 도구 호출 및 내외부 시스템 제어 가능
58+
59+
:::tip[TIP]
60+
Spring AI는 LangChain의 구조적 유사성을 유지하면서도, Java 엔터프라이즈 환경에 맞춘 안정성과 확장성을 제공한다.
61+
:::
62+
63+
### LangChain vs Spring AI 비교
64+
65+
| 구분 | LangChain (Python) | Spring AI (Java) |
66+
|------|--------------------|------------------|
67+
| 개발 언어 | Python | Java / Kotlin |
68+
| 주요 목적 | 연구, 프로토타입 | 엔터프라이즈 응용 서비스 |
69+
| 데이터 흐름 구조 | 체인(Chain) 기반 | Spring Bean 기반 |
70+
| 모델 지원 | OpenAI, Anthropic 등 | OpenAI, HuggingFace 등 |
71+
| 메모리/스토리지 | in-memory, vector store | Redis, PostgreSQL 등 연동 |
72+
| 도구 호출 | Tool / Agent | Tool Calling / MCP |
73+
| 강점 | 빠른 실험과 확장성 | 안정적인 배포 및 운영 |
74+
75+
:::info[Information]
76+
LangChain은 실험과 프로토타입에 유리하고, Spring AI는 **운영 환경과 연동성, 유지보수성** 측면에서 강점을 가진다.
77+
:::
78+
79+
## Reference
80+
81+
**link:** External reference
82+
- [AI 애플리케이션 개발의 기초와 Spring AI 소개 (한빛미디어)](https://www.hanbit.co.kr/channel/view.html?cmscode=CMS8021447288)
83+
- [뉴런데브 - 스프링AI 1. AI프로젝트 구성 (YouTube)](https://www.youtube.com/watch?v=6YObwWmTUEo)

0 commit comments

Comments
 (0)