<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>System Architecture on Chanyeol Dev</title>
    <link>https://chanyeols.com/tags/system-architecture/</link>
    <description>Recent content in System Architecture on Chanyeol Dev</description>
    <generator>Hugo</generator>
    <language>ko-kr</language>
    <lastBuildDate>Sun, 22 Mar 2026 14:30:00 +0900</lastBuildDate>
    <atom:link href="https://chanyeols.com/tags/system-architecture/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Spring AI RAG 워크플로우 분석: 사용자 질문부터 AI 답변까지의 여정 (6편)</title>
      <link>https://chanyeols.com/posts/spring-ai-rag-workflow-analysis/</link>
      <pubDate>Sun, 22 Mar 2026 14:30:00 +0900</pubDate>
      <guid>https://chanyeols.com/posts/spring-ai-rag-workflow-analysis/</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;[Dev-Fortune] 시리즈 다시보기&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://chanyeols.com/posts/spring-ai-ollama-chatbot-planning/&#34;&gt;1편: 기획부터 스택 선정까지&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://chanyeols.com/posts/ollama-spring-boot-local-llm-setup/&#34;&gt;2편: 로컬 LLM Ollama 연동&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://chanyeols.com/posts/spring-ai-rag-simplevectorstore-ingestion/&#34;&gt;3편: RAG와 Vector Store 구축&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://chanyeols.com/posts/prompt-engineering-ai-persona-tuning/&#34;&gt;4편: 프롬프트 엔지니어링 실전&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://chanyeols.com/posts/spring-webflux-sse-ai-streaming-api/&#34;&gt;5편: 스트리밍 API 구현&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;1-서론-조각난-퍼즐을-하나로-합치기&#34;&gt;1. 서론: 조각난 퍼즐을 하나로 합치기&lt;/h2&gt;
&lt;p&gt;데이터의 이동이 일어나는 찰나의 순간, 서버 내부에서 일어나는 유기적인 상호작용을 파헤쳐 보겠습니다.&lt;/p&gt;
&lt;h2 id=&#34;2-전체-워크플로우-시퀀스-deep-dive&#34;&gt;2. 전체 워크플로우 시퀀스 (Deep-Dive)&lt;/h2&gt;
&lt;p&gt;사용자의 엔터 키 한 번이 답변으로 돌아오기까지의 7단계 여정입니다.&lt;/p&gt;
&lt;div class=&#34;mermaid&#34;&gt;
sequenceDiagram
    autonumber
    User-&gt;&gt;Controller: 고민 입력 (JSON)
    Controller-&gt;&gt;Service: 사주 분석 요청
    Service-&gt;&gt;VectorStore: 고민 기반 유사도 검색
    VectorStore--&gt;&gt;Service: 관련 사주 데이터 반환
    Service-&gt;&gt;AI: 프롬프트 조합 후 전달 (System+User)
    AI--&gt;&gt;Controller: 스트리밍 답변 생성 (Flux)
    Controller--&gt;&gt;User: SSE 응답 (실시간 텍스트)
&lt;/div&gt;
&lt;h2 id=&#34;3-데이터-흐름의-5단계&#34;&gt;3. 데이터 흐름의 5단계&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;요청 수신&lt;/strong&gt;: JSON 고민 데이터 접수.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;의미 검색&lt;/strong&gt;: 사주 데이터 조각 탐색.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;프롬프트 조합&lt;/strong&gt;: 페르소나 + 지식 + 질문 결합.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;추론 및 생성&lt;/strong&gt;: AI의 인격이 투영된 답변 생성.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;스트리밍 응답&lt;/strong&gt;: 차가운 조언의 실시간 전달.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;결국 &lt;strong&gt;데이터가 지능을 만들고, 프롬프트가 성격을 만듭니다.&lt;/strong&gt;&lt;/p&gt;</description>
      <content:encoded><![CDATA[<blockquote>
<p><strong>[Dev-Fortune] 시리즈 다시보기</strong></p>
</blockquote>
<ul>
<li><a href="/posts/spring-ai-ollama-chatbot-planning/">1편: 기획부터 스택 선정까지</a></li>
<li><a href="/posts/ollama-spring-boot-local-llm-setup/">2편: 로컬 LLM Ollama 연동</a></li>
<li><a href="/posts/spring-ai-rag-simplevectorstore-ingestion/">3편: RAG와 Vector Store 구축</a></li>
<li><a href="/posts/prompt-engineering-ai-persona-tuning/">4편: 프롬프트 엔지니어링 실전</a></li>
<li><a href="/posts/spring-webflux-sse-ai-streaming-api/">5편: 스트리밍 API 구현</a></li>
</ul>
<h2 id="1-서론-조각난-퍼즐을-하나로-합치기">1. 서론: 조각난 퍼즐을 하나로 합치기</h2>
<p>데이터의 이동이 일어나는 찰나의 순간, 서버 내부에서 일어나는 유기적인 상호작용을 파헤쳐 보겠습니다.</p>
<h2 id="2-전체-워크플로우-시퀀스-deep-dive">2. 전체 워크플로우 시퀀스 (Deep-Dive)</h2>
<p>사용자의 엔터 키 한 번이 답변으로 돌아오기까지의 7단계 여정입니다.</p>
<div class="mermaid">
sequenceDiagram
    autonumber
    User->>Controller: 고민 입력 (JSON)
    Controller->>Service: 사주 분석 요청
    Service->>VectorStore: 고민 기반 유사도 검색
    VectorStore-->>Service: 관련 사주 데이터 반환
    Service->>AI: 프롬프트 조합 후 전달 (System+User)
    AI-->>Controller: 스트리밍 답변 생성 (Flux)
    Controller-->>User: SSE 응답 (실시간 텍스트)
</div>
<h2 id="3-데이터-흐름의-5단계">3. 데이터 흐름의 5단계</h2>
<ol>
<li><strong>요청 수신</strong>: JSON 고민 데이터 접수.</li>
<li><strong>의미 검색</strong>: 사주 데이터 조각 탐색.</li>
<li><strong>프롬프트 조합</strong>: 페르소나 + 지식 + 질문 결합.</li>
<li><strong>추론 및 생성</strong>: AI의 인격이 투영된 답변 생성.</li>
<li><strong>스트리밍 응답</strong>: 차가운 조언의 실시간 전달.</li>
</ol>
<p>결국 <strong>데이터가 지능을 만들고, 프롬프트가 성격을 만듭니다.</strong></p>
<p><strong>마지막 7편에서는 프로젝트를 마무리하며 미래 고도화 로드맵을 그려보겠습니다.</strong></p>
]]></content:encoded>
    </item>
  </channel>
</rss>
