분류 전체보기
- 
                            SpringAi - 이미지 생성 핵심 구조 및 이해AI/인공지능 2025. 9. 27. 23:16
1. Spring AI 이미지 생성의 핵심 구조 이해Spring AI에서 이미지 생성 기능은 다음 네 가지 주요 인터페이스와 클래스로 구성되어 있습니다. 이 구조 덕분에 OpenAI 외에 다른 AI(예: Stability AI)로 쉽게 교체할 수 있습니다. 구성 요소역할필수 여부ImageModel (인터페이스)이미지 생성 기능을 정의하는 최상위 계약. (예: OpenAiImageModel이 이 인터페이스를 구현)필수ImagePromptAI 모델에 전달할 요청 데이터 (프롬프트, 옵션)를 담는 객체.필수ImageOptions모델, 크기, 품질 등 세부 설정을 정의하는 객체. (예: OpenAiImageOptions)선택 (기본값 사용 가능)ImageResponse이미지 생성의 결과를 담아 ImageMode..
 - 
                            Web Flux란?IT 인터넷/IT 상식 2025. 9. 27. 11:55
1. Spring WebFlux란?Spring WebFlux는 Spring 5부터 도입된 반응형(Reactive) 웹 프레임워크입니다. 기존의 Spring Web MVC가 스레드-당-요청(Thread-per-request) 모델을 사용하는 동기(Blocking) 방식이었다면, WebFlux는 논블로킹(Non-Blocking) I/O와 이벤트 루프(Event-Loop) 모델을 사용하여 비동기(Asynchronous) 방식으로 동작합니다.WebFlux의 핵심은 Project Reactor 라이브러리에 기반하며, 데이터 스트림을 다루기 위해 Reactor에서 제공하는 두 가지 핵심 타입인 **Mono**와 **Flux**를 사용합니다.Mono와 Flux (Publisher)WebFlux에서 컨트롤러의 반환 타..
 - 
                            Flux란?IT 인터넷/IT 상식 2025. 9. 27. 11:52
1. Flux란?Flux는 애플리케이션의 데이터를 **단방향(Unidirectional)**으로 흐르게 강제하는 아키텍처 패턴입니다. 기존의 MVC(Model-View-Controller) 패턴에서 데이터의 양방향 흐름으로 인해 애플리케이션이 복잡해지고 예측하기 어려워지는 문제(Cascading Updates, 연쇄적인 업데이트)를 해결하기 위해 고안되었습니다. 주요 4가지 구성 요소 (단방향 데이터 흐름)구성 요소역할설명View (뷰)사용자 인터페이스사용자 상호작용(클릭, 입력 등)을 처리하고, Store의 데이터 변경을 감지하여 화면을 다시 렌더링(re-render)합니다. 사용자 입력이 발생하면 Action을 생성하여 Dispatcher로 보냅니다.Action (액션)발생한 사건애플리케이션에서 발생..
 - 
                            SpringAI - 챗 메모리 어드바이저(Chat Memory Advisor)AI/인공지능 2025. 9. 24. 10:15
챗 메모리 어드바이저(Chat Memory Advisor) "챗 메모리 어드바이저(Chat Memory Advisor)"는 대규모 언어 모델(LLM)이 이전 대화 내용을 기억하고 활용하여 맥락을 유지하는 데 도움을 주는 도구 또는 구성 요소를 의미합니다. 특히 Spring AI 프레임워크에서 중요한 역할을 합니다.주요 기능 및 역할맥락 관리: LLM은 기본적으로 이전 대화를 기억하지 못하는 'stateless' 상태입니다. 사용자가 "그래서 그건 어떻게 됐어?"라고 물었을 때, LLM은 앞선 대화의 "그것"이 무엇인지 알지 못합니다. 챗 메모리 어드바이저는 이러한 문제점을 해결하여 LLM이 대화의 흐름을 파악하고 더 자연스럽고 일관된 답변을 생성하도록 돕습니다.프롬프트 수정: 챗 메모리 어드바이저는 사용..
 - 
                            SpringAI - RAG, Vector Store 파헤치기AI/인공지능 2025. 9. 23. 15:11
1) RAG (Retrieval-Augmented Generation)란?📝 기본 아이디어**기존 LLM(챗GPT 같은 모델)**은 학습할 때 본 데이터로만 답변합니다.하지만 최신 정보나 회사 내부 문서 같은 건 모델이 모를 수 있죠.그래서 “검색(Retrieval) + 생성(Generation)”을 합친 방식이 RAG예요.👉 즉,먼저 외부 데이터베이스에서 관련 문서를 검색해서그 내용을 모델에게 넣어주고모델이 그 문맥을 바탕으로 답변을 만드는 구조입니다.2) RAG의 기본 구성요소질문(Query)사용자가 “JAVA가 뭐야?” 같은 질문을 합니다.Retriever (검색기)질문을 벡터화(숫자 표현)해서 Vector Store에서 비슷한 문서를 찾습니다.Vector Store (벡터 저장소)문서들을 쪼개..
 - 
                            Spring AI Advisor (3편): JSON 포맷 강제와 DTO 매핑 실습AI/인공지능 2025. 9. 21. 22:31
LLM 응답을 JSON/DTO로 안전하게 매핑하기 LLM은 기본적으로 자연어 텍스트를 출력합니다.하지만 실무에서는 종종 “JSON으로 결과를 받고 싶다 → DTO에 매핑해서 안전하게 사용하고 싶다”는 요구가 많습니다. Spring AI에서는 Advisor + OutputConverter를 활용해 응답 포맷을 강제할 수 있습니다.1. 기본: 문자열로 받는 경우String response = chatClient.prompt() .user("미국의 주요 도시 3개를 알려줘") .call() .content();System.out.println(response);출력 예시:뉴욕, 로스앤젤레스, 시카고👉 그냥 텍스트이기 때문에, 파싱이 어렵습니다.2. JSON 포맷을 강제하..
 - 
                            Spring AI Advisor (2편): 무상태 vs 메모리 대화 완벽 비교AI/인공지능 2025. 9. 21. 22:26
무상태 vs 메모리 대화, 무엇이 다를까? 지난 1편에서는 Advisor가 무엇인지, 그리고 대화 메모리를 관리하는 MessageChatMemoryAdvisor를 살펴봤습니다.이번 글에서는 Advisor를 켠 경우와 끄고 쓰는 경우의 차이를 실제 코드와 함께 비교해보자.1. 무상태(Stateless) 모드 기본적으로 ChatClient는 이전 대화 이력을 기억하지 않습니다.즉, 한 번의 요청 = 한 번의 답변으로 끝나는 원샷(One-shot) Q&A 형태죠.@Beanpublic ChatClient chatClient(ChatClient.Builder builder) { return builder.build(); // 아무 Advisor도 적용하지 않음}사용 예시:String res1 = chatCl..
 - 
                            Spring AI Advisor (1편): 대화 메모리와 프롬프트 미들웨어AI/인공지능 2025. 9. 21. 22:23
Advisor란 뭐지? Advisor = LLM 요청/응답에 끼어들어 전·후처리하는 미들웨어입니다.요청 전: 프롬프트에 공통 규칙 붙이기, 대화 이력(메모리) 합치기, 출력 포맷 지시 등응답 후: 포맷 검증/후처리, 로그/통계 수집 등스프링 MVC의 Filter/Interceptor를 떠올리면 이해가 조금 쉬울지도 모르겠다.언제, 왜 Advisor를 쓰나대화 기억(메모리): 앞에서 나눈 말을 다음 요청에 자동으로 포함(멀티턴 대화 UX)공통 시스템 규칙: 모든 요청에 “너는 친절한 조수야” 같은 System 프롬프트 자동 부착출력 포맷 강제: “JSON만 반환해” 같은 지시를 매 호출마다 자동 삽입감사/로깅: 요청·응답을 한 곳에서 기록적용 위치 2가지1) 전역 기본값으로 등록@Beanpublic Cha..