<?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>Local LLM on Chanyeol Dev</title>
    <link>https://chanyeols.com/tags/local-llm/</link>
    <description>Recent content in Local LLM on Chanyeol Dev</description>
    <generator>Hugo</generator>
    <language>ko-kr</language>
    <lastBuildDate>Wed, 18 Mar 2026 14:30:00 +0900</lastBuildDate>
    <atom:link href="https://chanyeols.com/tags/local-llm/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>로컬 LLM Ollama와 Spring Boot 연동하기: 서버 설정과 성능 최적화 (2편)</title>
      <link>https://chanyeols.com/posts/ollama-spring-boot-local-llm-setup/</link>
      <pubDate>Wed, 18 Mar 2026 14:30:00 +0900</pubDate>
      <guid>https://chanyeols.com/posts/ollama-spring-boot-local-llm-setup/</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;[Dev-Fortune] 시리즈 다시보기&lt;/strong&gt;&lt;/p&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;/ul&gt;
&lt;/blockquote&gt;
&lt;h2 id=&#34;1-서론-왜-유료-api-대신-로컬-llm인가&#34;&gt;1. 서론: 왜 유료 API 대신 로컬 LLM인가?&lt;/h2&gt;
&lt;p&gt;이번 2편에서는 본격적인 구현의 첫 단추인 &lt;strong&gt;AI 모델 환경 구축&lt;/strong&gt;을 다룹니다. 우리는 비용 제로, 데이터 보안, 완전한 통제를 위해 &lt;strong&gt;Ollama&lt;/strong&gt;를 활용한 로컬 LLM 방식을 선택했습니다.&lt;/p&gt;
&lt;h2 id=&#34;2-로컬-ai-서버-연동-구조&#34;&gt;2. 로컬 AI 서버 연동 구조&lt;/h2&gt;
&lt;p&gt;Spring Boot가 로컬에서 실행 중인 Ollama와 통신하는 물리적 구조입니다.&lt;/p&gt;
&lt;div class=&#34;mermaid&#34;&gt;
graph LR
    subgraph &#34;Local PC&#34;
        A[Spring Boot App] -- &#34;HTTP Post (11434)&#34; --&gt; B[Ollama Server]
        B -- &#34;Model Load&#34; --&gt; C[qwen2.5:3b]
&lt;pre&gt;&lt;code&gt;    subgraph &amp;quot;Application.properties&amp;quot;
        D[Base-URL]
        E[Temperature: 0.4]
        F[Model Name]
    end
    D -.-&amp;gt; A
    E -.-&amp;gt; A
end
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;h2 id=&#34;3-spring-boot-프로젝트-설정-applicationproperties&#34;&gt;3. Spring Boot 프로젝트 설정: application.properties&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;application.properties&lt;/code&gt; 파일에 담긴 설정값들을 하나씩 뜯어보며 그 의미를 파헤쳐 보겠습니다.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<blockquote>
<p><strong>[Dev-Fortune] 시리즈 다시보기</strong></p>
<ul>
<li><a href="/posts/spring-ai-ollama-chatbot-planning/">1편: 기획부터 스택 선정까지</a></li>
</ul>
</blockquote>
<h2 id="1-서론-왜-유료-api-대신-로컬-llm인가">1. 서론: 왜 유료 API 대신 로컬 LLM인가?</h2>
<p>이번 2편에서는 본격적인 구현의 첫 단추인 <strong>AI 모델 환경 구축</strong>을 다룹니다. 우리는 비용 제로, 데이터 보안, 완전한 통제를 위해 <strong>Ollama</strong>를 활용한 로컬 LLM 방식을 선택했습니다.</p>
<h2 id="2-로컬-ai-서버-연동-구조">2. 로컬 AI 서버 연동 구조</h2>
<p>Spring Boot가 로컬에서 실행 중인 Ollama와 통신하는 물리적 구조입니다.</p>
<div class="mermaid">
graph LR
    subgraph "Local PC"
        A[Spring Boot App] -- "HTTP Post (11434)" --> B[Ollama Server]
        B -- "Model Load" --> C[qwen2.5:3b]
<pre><code>    subgraph &quot;Application.properties&quot;
        D[Base-URL]
        E[Temperature: 0.4]
        F[Model Name]
    end
    D -.-&gt; A
    E -.-&gt; A
end
</code></pre>
</div>
<h2 id="3-spring-boot-프로젝트-설정-applicationproperties">3. Spring Boot 프로젝트 설정: application.properties</h2>
<p><code>application.properties</code> 파일에 담긴 설정값들을 하나씩 뜯어보며 그 의미를 파헤쳐 보겠습니다.</p>
<div class="highlight"><pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-properties" data-lang="properties"><span style="display:flex;"><span>spring.ai.ollama.base-url<span style="color:#ff7b72;font-weight:bold">=</span><span style="color:#a5d6ff">http://localhost:11434</span>
</span></span><span style="display:flex;"><span>spring.ai.ollama.chat.options.model<span style="color:#ff7b72;font-weight:bold">=</span><span style="color:#a5d6ff">qwen2.5:3b</span>
</span></span><span style="display:flex;"><span>spring.ai.ollama.chat.options.num-ctx<span style="color:#ff7b72;font-weight:bold">=</span><span style="color:#a5d6ff">4096</span>
</span></span><span style="display:flex;"><span>spring.ai.ollama.chat.options.temperature<span style="color:#ff7b72;font-weight:bold">=</span><span style="color:#a5d6ff">0.4</span>
</span></span></code></pre></div><h3 id="핵심-파라미터-분석">핵심 파라미터 분석</h3>
<ul>
<li><strong>temperature=0.4</strong>: 사주라는 데이터에 기반하되, 개발자 특유의 시니컬한 변주를 주기 위한 최적의 밸런스입니다.</li>
<li><strong>num-ctx=4096</strong>: AI가 한 번에 기억할 수 있는 대화의 맥락 크기입니다.</li>
</ul>
<h2 id="4-spring-ai의-chatclient">4. Spring AI의 ChatClient</h2>
<p>설정을 마쳤다면 코드에서는 <code>ChatClient</code>를 통해 아주 간편하게 AI와 대화할 수 있습니다.</p>
<p><strong>다음 3편에서는 메모리 기반 벡터 저장소(<code>SimpleVectorStore</code>)를 활용하여 사주 데이터를 AI에게 학습시키는 RAG 시스템 구축 과정을 다루겠습니다.</strong></p>
]]></content:encoded>
    </item>
  </channel>
</rss>
