AI 기반 앱 개발을 위한 Kotlin

AI 기반 앱 개발을 위한 Kotlin

Kotlin은 AI 기반 애플리케이션을 만드는 데 현대적이고 실용적인 기반을 제공해요. 여러 플랫폼에서 사용할 수 있고, 검증된 AI 프레임워크와도 잘 어울리며, 흔한 AI 개발 패턴을 잘 지원하죠.

Koog

Koog는 JetBrains가 만든 오픈소스 프레임워크로, 간단한 것부터 복잡한 것까지 AI 에이전트를 구축할 수 있게 해 줘요. 멀티플랫폼을 지원하고, Spring Boot·Ktor 통합, 관용적인(idiomatic) DSL, 그리고 생산 단계에서 바로 쓸 수 있는 기능들을 기본 제공해요.

몇 줄로 간단한 에이전트 만들기

fun main() {
    runBlocking {
        val agent = AIAgent(
            // Use Anthropic, Google, OpenRouter, or any other provider
            executor = simpleOpenAIExecutor(System.getenv("OPENAI_API_KEY")),
            systemPrompt = "You are a helpful assistant. Answer user questions concisely.",
            llmModel = OpenAIModels.Chat.GPT4o
        )

        val result = agent.run("Hello! How can you help me?")
        println(result)
    }
}

Koog 시작하기

주요 특징

  • 멀티플랫폼 개발 지원. 멀티플랫폼 지원 덕분에 JVM, JavaScript, WebAssembly, Android, iOS용 에이전트 애플리케이션을 개발할 수 있어요.
  • 안정성과 내결함성. 내장된 재시도(retry) 덕분에 Koog는 타임아웃이나 도구 오류 같은 실패 상황을 처리하게 해 줘요. 에이전트 영속화(persistence)를 통해 채팅 메시지뿐 아니라 에이전트 전체 상태 머신(state machine)을 복원할 수 있어요.
  • 긴 컨텍스트를 위한 내장 히스토리 압축 기법. Koog는 오래 이어지는 대화를 별도 설정 없이 압축하고 관리하는 고급 전략을 갖추고 있어요.
  • 엔터프라이즈 수준 통합. Koog는 Spring Boot, Ktor처럼 인기 있는 JVM 프레임워크와 통합돼요.
  • OpenTelemetry 익스포터로 관측 가능성. Koog는 W&B Weave, Langfuse 같은 인기 있는 관측성 제공자와 즉시 쓸 수 있는 통합을 제공해서 AI 애플리케이션을 모니터링하고 디버깅할 수 있어요.
  • LLM 전환과 매끄러운 히스토리 적응. Koog는 기존 대화 히스토리를 잃지 않으면서, 어느 시점이든 새 도구 세트를 가진 다른 LLM으로 전환할 수 있게 해 줘요. OpenAI, Anthropic, Google 등 여러 LLM 제공자 간에 라우팅을 재조정하는 것도 가능하죠. Koog의 Ollama 통합을 이용하면 로컬 모델로 에이전트를 로컬에서 실행할 수도 있어요.
  • JVM·Kotlin 애플리케이션과의 통합. Koog는 JVM과 Kotlin 개발자를 위해 특화된 관용적이고 타입 안전한 DSL을 제공해요.
  • Model Context Protocol (MCP) 통합. Koog를 쓰면 에이전트에서 MCP 도구를 사용할 수 있어요.
  • 지식 검색과 메모리. 임베딩, 순위화된 문서 저장소, 공유 에이전트 메모리를 통해 Koog 자체가 대화 간 지식을 능동적으로 유지해요.
  • 스트리밍 기능. Koog는 스트리밍 지원과 병렬 도구 호출로 개발자가 실시간으로 응답을 처리하게 해 줘요.

어디서 시작할까

Model Context Protocol (MCP) Kotlin SDK

MCP Kotlin SDK는 Model Context Protocol을 Kotlin Multiplatform으로 구현한 것이에요. 이 SDK를 쓰면 Kotlin으로 AI 기반 애플리케이션을 만들고, JVM·WebAssembly·iOS 너머의 LLM 표면과 통합할 수 있어요.

MCP Kotlin SDK로는 이런 것들을 할 수 있어요.

  • 컨텍스트 처리를 LLM 상호작용과 분리해서, LLM에 구조화되고 표준화된 방식으로 컨텍스트를 제공해요.
  • 기존 서버의 리소스를 소비하는 MCP 클라이언트를 만들어요.
  • 프롬프트, 도구, 리소스를 LLM에 노출하는 MCP 서버를 만들어요.
  • stdio, SSE, WebSocket 같은 표준 통신 전송 방식을 사용해요.
  • 모든 MCP 프로토콜 메시지와 라이프사이클 이벤트를 처리해요.

다른 AI 기반 애플리케이션 시나리오 살펴보기

매끄러운 Java 상호운용성과 Kotlin Multiplatform 덕분에, Kotlin을 검증된 AI SDK·프레임워크와 결합해서 백엔드와 데스크톱/모바일 UI를 구축하고, RAG나 에이전트 기반 작업 흐름 같은 패턴을 채택할 수 있어요.

팁: Kotlin-AI-Examples 저장소에서 예제를 살펴보고 직접 실행해 볼 수 있어요. 각 프로젝트는 자체 완결형(자립적)이라서, Kotlin 기반 AI 애플리케이션을 만들 때 참고 자료 또는 템플릿으로 사용할 수 있어요.

주요 모델 제공자에 연결하기

OpenAI, Anthropic, Google 등 주요 모델 제공자에 Kotlin으로 연결할 수 있어요.

  • OpenAI — OpenAI API용 공식 Java SDK예요. 응답과 채팅, 이미지, 오디오를 다뤄요.
  • Anthropic (Claude) — Claude Messages API용 공식 Java SDK예요. Vertex AI와 Bedrock 통합 모듈을 포함해요.
  • Google AI (Gemini / Vertex AI) — 하나의 클라이언트로 Gemini API와 Vertex AI를 오가는 공식 Java SDK예요.
  • Azure OpenAI — Azure OpenAI 서비스용 공식 Java 클라이언트예요. 채팅 완성과 임베딩을 지원해요.
  • AWS Bedrock — 기반 모델을 호출하는 공식 SDK들이에요. Bedrock과 Bedrock Runtime용 Kotlin SDK·Java SDK를 포함해요.

RAG 파이프라인과 에이전트 기반 앱 만들기

  • Spring AI — 프롬프트, 채팅, 임베딩, 도구·함수 호출, 벡터 저장소를 위한 다중 제공자 추상화예요.
  • LangChain4j — 프롬프트, 도구, 검색 증강 생성(RAG) 파이프라인, 에이전트를 위한 Kotlin 확장을 갖춘 JVM 툴킷이에요.

다음은 무엇?