스프링 AI란?
LLM이 무엇인지 이해했다면, 이런 질문이 자연스럽게 떠오를 수 있습니다. “그럼 이 LLM을 우리 스프링 애플리케이션에서는 어떻게 사용할 수 있을까?” 예를 들어, 오픈AIOpenAI나 클로드 API를 직접 호출해 챗봇 기능을 만든다고 가정해봅시다. HTTP 요청을 직접 만들고, 인증 헤더를 추가하고, 요청 바디에 프롬프트를 넣고, 응답 JSON을 파싱해야 합니다. 여기에 모델마다 다른 요청 형식까지 고려해야 합니다.
물론 처음에는 간단해 보이지만, 모델을 교체하거나, 스트리밍 응답을 처리하거나, 임베딩과 벡터 저장소까지 붙이기 시작하면 코드가 점점 복잡해지기 마련이죠. 그러다보면 비즈니스 로직보다 AI 연동 코드가 더 많아지는 상황도 쉽게 발생합니다.
이런 불편함을 줄이기 위해 등장한 것이 바로 스프링 AISpring AI입니다. 스프링 AI는 다양한 LLM 제공자(오픈AI, 앤트로픽Anthropic, AWS 베드록AWS Bedrock 등)를 스프링 방식으로 쉽게 사용할 수 있도록 도와주는 라이브러리입니다. 복잡한 HTTP 호출을 직접 작성하는 대신, 우리가 지금까지 배운 빈, DI, 템플릿, 클라이언트 패턴을 그대로 활용해 AI 기능을 구현할 수 있습니다.
즉, 스프링 AI는 새로운 AI 기술이라기보다는, LLM을 스프링 생태계 안에서 자연스럽게 사용할 수 있도록 추상화해 주는 도구라고 이해하면 됩니다. 그러면 개발자는 AI를 어떻게 연결하고, 요청하고, 응답을 받을지에 집중하기보다는 “어떤 질문을 보낼지”, “어떤 기능을 만들지” 같은 비즈니스 로직에 더 집중할 수 있게 됩니다.
오픈AI 토큰 발급받기
우리는 오픈AI의 챗GPT를 실습에 사용할 예정입니다. 이미 많은 곳에서 사용하고 있기도 하고, 가장 쉽게 접할 수 있는 모델이기 때문입니다. 아쉽게도 챗GPT는 무료로 토큰을 제공하지 않기 때문에 유료로 실습을 진행해야 합니다. 특히 기존에 챗GPT 플러스Plus를 구독을 하고 있어도 API 호출을 위해서는 별도 과금이 필요합니다.
01단계 오픈AI 플랫폼 사이트 https://platform.openai.com에 접속한 다음 로그인 후 [Go to Billing] 버튼을 클릭하고, [Add payment details] 버튼을 눌러 결제 정보를 추가합니다.
[Go to Billing] 버튼이 보이지 않으면 오른쪽 위 프로필 옆에 있는 설정 아이콘을 누른 후 왼쪽 [Billing] 메뉴로 들어가세요.
02단계 카드 번호와 주소 입력 후 충전 금액은 최소 금액인 $5로 설정하고, 자동 충전 기능은 체크박스를 해제하여 불필요한 과금을 방지합니다. [Continue] 버튼을 눌러 다음 페이지로 넘어가세요.
03단계 $5가 성공적으로 충전되면, 왼쪽 메뉴바에서 [API Keys]를 눌러 API 키 관리 페이지에 진입한 뒤, [Create new secret key] 버튼을 눌러 API 호출을 위한 시크릿 키를 생성합니다.
04단계 Name에는 API 키의 이름을 작성하고(필자는 springboot-developer-4라고 작성했습니다), 나머지는 기본값으로 둔 뒤 [Create secret key] 버튼을 눌러 생성을 완료합니다. 이후 나오는 키값은 다시 볼 수 없으니 꼭 개인 컴퓨터에 복사해두세요.
05단계 API 키를 스프링 부트 애플리케이션 설정 파일에서 사용하기 위해 application.yml 파일을 열고 다음 내용을 추가하세요.
