<?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>Fortune on Chanyeol Dev</title>
    <link>https://chanyeols.com/tags/fortune/</link>
    <description>Recent content in Fortune on Chanyeol Dev</description>
    <generator>Hugo</generator>
    <language>ko-kr</language>
    <lastBuildDate>Tue, 17 Mar 2026 14:30:00 +0900</lastBuildDate>
    <atom:link href="https://chanyeols.com/tags/fortune/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Spring AI와 Ollama로 만드는 AI 개발자 사주 챗봇: 기획부터 스택 선정까지 (1편)</title>
      <link>https://chanyeols.com/posts/spring-ai-ollama-chatbot-planning/</link>
      <pubDate>Tue, 17 Mar 2026 14:30:00 +0900</pubDate>
      <guid>https://chanyeols.com/posts/spring-ai-ollama-chatbot-planning/</guid>
      <description>&lt;h2 id=&#34;1-프롤로그-왜-ai-개발자-사주인가&#34;&gt;1. 프롤로그: 왜 &amp;lsquo;AI 개발자&amp;rsquo; 사주인가?&lt;/h2&gt;
&lt;p&gt;전통적인 사주 풀이는 어렵고 따분합니다. &amp;ldquo;올해는 물의 기운이 강하니&amp;hellip;&amp;rdquo; 같은 말은 현대의 개발자들에게는 다소 와닿지 않죠. 하지만 만약 **&amp;ldquo;실리콘밸리 출신의 천재 개발자&amp;rdquo;**가 당신의 인생을 코드로 보고 &amp;lsquo;디버깅&amp;rsquo;해준다면 어떨까요?&lt;/p&gt;
&lt;p&gt;이 프로젝트는 바로 그 엉뚱한 상상에서 시작되었습니다. 감정 섞인 위로 대신, 건조하고 시니컬한 말투로 당신의 사주를 &amp;ldquo;안티 패턴&amp;quot;과 &amp;ldquo;배드 해빗(Bad Habit)&amp;ldquo;으로 분석해 주는 챗봇, **&amp;lsquo;Dev-Fortune&amp;rsquo;**입니다.&lt;/p&gt;
&lt;h2 id=&#34;2-프로젝트-시스템-구조도&#34;&gt;2. 프로젝트 시스템 구조도&lt;/h2&gt;
&lt;p&gt;전체적인 데이터 흐름과 기술 스택을 한눈에 살펴보겠습니다.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<h2 id="1-프롤로그-왜-ai-개발자-사주인가">1. 프롤로그: 왜 &lsquo;AI 개발자&rsquo; 사주인가?</h2>
<p>전통적인 사주 풀이는 어렵고 따분합니다. &ldquo;올해는 물의 기운이 강하니&hellip;&rdquo; 같은 말은 현대의 개발자들에게는 다소 와닿지 않죠. 하지만 만약 **&ldquo;실리콘밸리 출신의 천재 개발자&rdquo;**가 당신의 인생을 코드로 보고 &lsquo;디버깅&rsquo;해준다면 어떨까요?</p>
<p>이 프로젝트는 바로 그 엉뚱한 상상에서 시작되었습니다. 감정 섞인 위로 대신, 건조하고 시니컬한 말투로 당신의 사주를 &ldquo;안티 패턴&quot;과 &ldquo;배드 해빗(Bad Habit)&ldquo;으로 분석해 주는 챗봇, **&lsquo;Dev-Fortune&rsquo;**입니다.</p>
<h2 id="2-프로젝트-시스템-구조도">2. 프로젝트 시스템 구조도</h2>
<p>전체적인 데이터 흐름과 기술 스택을 한눈에 살펴보겠습니다.</p>
<div class="mermaid">
graph TD
    A[사용자 고민 입력] --> B[Spring Boot Application]
    subgraph "Backend Stack"
        B --> C{Spring AI}
        C --> D[WebFlux/Streaming]
        C --> E[SimpleVectorStore]
    end
    subgraph "AI Engine"
        C -- HTTP:11434 --- F[Ollama: qwen2.5]
    end
    subgraph "Data Source"
        G[(sajuAPI.json)] --> E
    end
    B --> H[시니컬한 개발자 사주 답변]
</div>
<h2 id="3-기술-스택-the-stack">3. 기술 스택 (The Stack)</h2>
<ul>
<li><strong>Framework</strong>: Spring Boot 3.x</li>
<li><strong>AI Library</strong>: <strong>Spring AI</strong></li>
<li><strong>LLM</strong>: <strong>Ollama</strong> (qwen2.5:3b)</li>
<li><strong>Vector DB</strong>: <code>SimpleVectorStore</code></li>
<li><strong>Data Source</strong>: JSON 기반의 사주 풀이 데이터</li>
</ul>
<h2 id="4-왜-spring-ai와-rag인가">4. 왜 Spring AI와 RAG인가?</h2>
<p>일반적인 모델은 사주에 대한 지식이 파편화되어 있거나, 우리가 원하는 특유의 &ldquo;개발자 스타일&quot;로 대답하도록 통제하기 어렵습니다. 이를 해결하기 위해 우리는 <strong>RAG(Retrieval-Augmented Generation)</strong> 기법을 사용하여 전문 사주 데이터를 미리 벡터화해서 저장해 둡니다.</p>
<p>다음 편에서는 <strong>Ollama를 이용해 내 컴퓨터에 로컬 AI 환경을 구축하고 Spring Boot와 연결하는 방법</strong>을 알아보겠습니다.</p>
]]></content:encoded>
    </item>
  </channel>
</rss>
