안녕하세요 dev_writer입니다. 이번 시간에는 Spring AI 공식 문서 중 Advisors API에 대해 번역한 내용을 전달해 드리겠습니다. Advisors APISpring AI의 Advisors API는 Spring AI 애플리케이션 내에서 AI 기반 상호작용을 가로채고, 수정하며, 확장할 수 있는 유연하고 강력한 수단을 제공합니다. Advisors API를 활용하면 더 정교하고, 재사용 가능하며, 유지보수가 용이한 AI 컴포넌트를 구현할 수 있습니다. 주요 이점으로는 반복적인 생성형 AI 패턴을 캡슐화하고, 대형 언어 모델 (LLM)로 송수신되는 데이터를 변환하며, 다양한 모델 및 사용 사례 전반에 걸쳐 이식성을 제공하는 것이 포함됩니다. 다음 예시와 같이 ChatClient API를 사용..
전체 글
항상 부족합니다. 목표를 이룰 때 까지 계속 달리겠습니다.안녕하세요 dev_writer입니다. 이번 시간에는 Spring AI 공식 문서 중 Chat Client API에 대한 내용을 번역한 내용을 전달해 드리겠습니다. Chat Client APIChatClient는 AI 모델과의 통신을 위한 유창한 (fluent) API를 제공합니다. 이 API는 동기 (synchronous) 방식과 스트리밍 (streaming) 방식의 프로그래밍 모델을 모두 지원합니다. 이 fluent API는 AI 모델에 입력으로 전달되는 Prompt를 구성하는 요소들을 단계적으로 조립할 수 있는 메서드를 제공합니다. Prompt는 AI 모델의 출력과 동작을 유도하기 위한 지시문 (instructional text)을 포함하며, API 관점에서 볼 때 Prompt는 메시지들의 집합으로 ..
with ChatGPT 시리즈는 ChatGPT의 내용과 개인의 생각을 토대로 학습해 보는 컨텐츠입니다. Java 개발자에게 Kotlin의 코루틴은 익숙한 Thread, ExecutorService, CompletableFuture 등과는 전혀 다른 개념처럼 느껴질 수 있습니다. 하지만 실제로는 동시성과 비동기 처리를 더 안전하고 선언적으로 표현하기 위해 만들어진 경량 스레드 모델입니다. 이번 글에서는 코루틴의 개념을 이해하고, Java의 기존 방식들과 비교하여 어떤 점이 다른지, 왜 더 나은 선택지가 될 수 있는지 살펴보겠습니다. 🔹 1. Java에서의 비동기 처리 방식✅ 1) Thread 또는 Runnablenew Thread(() -> { System.out.println("비동기 작업 수행 ..
안녕하세요. dev_writer입니다. 작년 Spring AI가 처음 나왔을 때 당시보다 시간이 꽤 지난 것 같아, 오랜만에 Spring AI에 대한 글을 다시 연재해보려고 합니다. 글을 작성하는 시점인 25년 4월 기준으로 릴리즈 된 1.0.0-M6 버전까지의 활용법을 다룰 예정입니다. 아직 안정화된 버전이 아닌 만큼, 작년의 글처럼 본 내용도 추후 deprecated 될 수 있는 부분들이 있다는 점을 감안해 주시면 좋을 것 같습니다. 공식 문서와 Dan Vega의 Spring AI 영상, 그리고 추가적인 Spring AI 자료를 참고하여 작성하겠습니다. 첫 번째 글은 Spring AI 공식 문서의 첫 페이지부터 살펴보겠습니다. Spring AISpring AI는 인공지능 엔지니어링을 위한 애플리케이션..
with ChatGPT 시리즈는 ChatGPT의 내용과 개인의 생각을 토대로 학습해 보는 컨텐츠입니다. Kotlin은 Java와 마찬가지로 예외 기반 (exception-based) 오류 처리를 기본으로 채택하고 있습니다. 그러나 Kotlin은 함수형 스타일의 예외 처리 방식인 runCatching, Result, recoverCatching 등을 통해 보다 표현력 있고 선언적인 코드 작성을 가능하게 합니다.🔹 1. 기본 예외 처리 - try-catch-finallyfun divide(a: Int, b: Int): Int { return try { a / b } catch (e: ArithmeticException) { println("0으로 나눌 수 없습니다.") ..
with ChatGPT 시리즈는 ChatGPT의 내용과 개인의 생각을 토대로 학습해 보는 컨텐츠입니다. Kotlin에서는 여러 분기 (branching)나 상태 (state)를 표현할 때 enum class와 sealed class 둘 다 사용할 수 있습니다. 두 구조 모두 "한정된 집합"을 표현하지만, 표현력, 확장성, 타입 안정성 측면에서 서로 다른 특징을 가집니다. 이번 글에서는 이 둘의 차이와 언제 어떤 것을 사용해야 하는지를 중심으로 정리해 보겠습니다. 🔹 1. enum class란?enum class는 Java에서 유래한 구조로, 고정된 상수 집합을 표현할 때 사용합니다.enum class Direction { NORTH, SOUTH, EAST, WEST}상수 집합 정의에 적합각 항목은..