<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>it_minsu.log</title>
        <link>https://velog.io/</link>
        <description>거대언어모델의 정답률을 높이기 위해 노력하는 연구원</description>
        <lastBuildDate>Tue, 10 Jun 2025 11:18:34 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <image>
            <title>it_minsu.log</title>
            <url>https://velog.velcdn.com/images/it_minsu/profile/2b059324-822c-49ba-8c63-cec93f1c5a1d/image.png</url>
            <link>https://velog.io/</link>
        </image>
        <copyright>Copyright (C) 2019. it_minsu.log. All rights reserved.</copyright>
        <atom:link href="https://v2.velog.io/rss/it_minsu" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA[Window Ko Mecab 사용 방법]]></title>
            <link>https://velog.io/@it_minsu/Window-Ko-Mecab-%EC%82%AC%EC%9A%A9-%EB%B0%A9%EB%B2%95</link>
            <guid>https://velog.io/@it_minsu/Window-Ko-Mecab-%EC%82%AC%EC%9A%A9-%EB%B0%A9%EB%B2%95</guid>
            <pubDate>Tue, 10 Jun 2025 11:18:34 GMT</pubDate>
            <description><![CDATA[<h2 id="사용자-사전-추가">사용자 사전 추가</h2>
<ol>
<li><p> C:\mecab\mecab-ko-dic\user-dic</p>
<p> <img src="https://velog.velcdn.com/images/it_minsu/post/226fca69-5e08-4a8c-8abd-187689d095f9/image.png" alt=""></p>
<p> 수정하고자 csv 파일을 정해서 사용자 사전 추가하기</p>
<p> 만약 엑셀로 파일 열어보니 문자가 깨지는 현상이 발생한다면, 메모장으로 열기</p>
<p> [추가할 때 태그들 참고하기]
 <a href="https://docs.google.com/spreadsheets/d/1-9blXKjtjeKZqsf4NzHeYJCrr49-nXeRF6D80udfcwY/edit?gid=1718487366#gid=1718487366">https://docs.google.com/spreadsheets/d/1-9blXKjtjeKZqsf4NzHeYJCrr49-nXeRF6D80udfcwY/edit?gid=1718487366#gid=1718487366</a></p>
</li>
<li><p>사용자 사전 추가 이후 설정
 a. C:\mecab\bin 폴더로 이동</p>
<pre><code class="language-sh"> add-userdic.ps1 실행</code></pre>
</li>
</ol>
<p>[참고 문헌]
<a href="https://jpype.readthedocs.io/en/latest/index.html">https://jpype.readthedocs.io/en/latest/index.html</a></p>
<p><a href="https://cherie-ssom.tistory.com/3">https://cherie-ssom.tistory.com/3</a></p>
<p><a href="https://github.com/Pusnow/mecab-ko-msvc">https://github.com/Pusnow/mecab-ko-msvc</a></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[도커(Docker)에 데이터베이스(MySQL) 설치 방법]]></title>
            <link>https://velog.io/@it_minsu/%EB%8F%84%EC%BB%A4Docker%EC%97%90-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4MySQL-%EC%84%A4%EC%B9%98-%EB%B0%A9%EB%B2%95</link>
            <guid>https://velog.io/@it_minsu/%EB%8F%84%EC%BB%A4Docker%EC%97%90-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4MySQL-%EC%84%A4%EC%B9%98-%EB%B0%A9%EB%B2%95</guid>
            <pubDate>Sun, 19 May 2024 06:29:51 GMT</pubDate>
            <description><![CDATA[<h1 id="도커docker에-데이터베이스mysql-설치-방법">도커(Docker)에 데이터베이스(MySQL) 설치 방법</h1>
<p>이 글에서는 도커(Docker)를 이용하여 MySQL 데이터베이스를 설치하는 방법에 대해 설명합니다. 아래 단계를 따라하면 누구나 쉽게 도커에 MySQL을 설치할 수 있습니다.</p>
<h2 id="1-docker-다운로드">1. Docker 다운로드</h2>
<p>먼저, <a href="https://www.docker.com/products/docker-desktop">Docker 공식 웹사이트</a>에서 자신의 운영체제에 맞는 Docker를 다운로드하고 설치합니다.</p>
<h2 id="2-명령-프롬프트command-prompt-실행">2. 명령 프롬프트(Command Prompt) 실행</h2>
<p>Docker 설치가 완료되면, 명령 프롬프트(cmd)를 실행합니다.</p>
<h2 id="3-mysql-컨테이너-실행">3. MySQL 컨테이너 실행</h2>
<p>명령 프롬프트에서 다음 명령어를 입력하여 MySQL 컨테이너를 실행합니다.</p>
<pre><code class="language-bash">docker run -dt -p 원하는_포트번호:3306 -e MYSQL_ROOT_PASSWORD=루트_계정_비밀번호 \
-e MYSQL_USER=계정 -e MYSQL_PASSWORD=계정_비밀번호 \
--name 컨테이너_이름 mysql:8</code></pre>
<ul>
<li><code>원하는_포트번호</code>: 호스트 머신에서 사용할 포트 번호를 입력합니다.</li>
<li><code>루트_계정_비밀번호</code>: MySQL 루트 계정의 비밀번호를 설정합니다.</li>
<li><code>계정</code>: MySQL 사용자 계정을 설정합니다.</li>
<li><code>계정_비밀번호</code>: MySQL 사용자 계정의 비밀번호를 설정합니다.</li>
<li><code>컨테이너_이름</code>: MySQL 컨테이너의 이름을 설정합니다.</li>
</ul>
<h2 id="4-mysql-컨테이너-접속">4. MySQL 컨테이너 접속</h2>
<p>다음 명령어를 입력하여 실행 중인 MySQL 컨테이너에 접속합니다.</p>
<pre><code class="language-bash">docker exec -it 컨테이너_이름 bash</code></pre>
<h2 id="5-mysql-로그인">5. MySQL 로그인</h2>
<p>컨테이너 내부에서 다음 명령어를 입력하여 MySQL에 로그인합니다.</p>
<pre><code>mysql -u 계정 -p</code></pre><p>비밀번호를 입력하라는 프롬프트가 나타나면, 3단계에서 설정한 계정_비밀번호를 입력합니다.</p>
<h2 id="6-데이터베이스-생성">6. 데이터베이스 생성</h2>
<p>MySQL에 로그인한 후, 다음 명령어를 입력하여 새로운 데이터베이스를 생성합니다.</p>
<pre><code class="language-sql">create database DB_이름 default CHARACTER SET UTF8;</code></pre>
<p>DB_이름에는 원하는 데이터베이스 이름을 입력합니다.</p>
<h2 id="7-데이터베이스-생성-확인">7. 데이터베이스 생성 확인</h2>
<p>다음 명령어를 입력하여 데이터베이스가 정상적으로 생성되었는지 확인합니다.</p>
<pre><code class="language-sql">show databases;</code></pre>
<p>DB_이름이 출력되면 데이터베이스가 성공적으로 생성된 것입니다.</p>
<h2 id="8-데이터베이스-선택">8. 데이터베이스 선택</h2>
<p>다음 명령어를 입력하여 생성한 데이터베이스를 선택합니다.</p>
<pre><code class="language-sql">use DB_이름;</code></pre>
<h2 id="9-사용자-권한-부여">9. 사용자 권한 부여</h2>
<p>다음 명령어를 입력하여 사용자 계정에 데이터베이스에 대한 모든 권한을 부여합니다.</p>
<pre><code class="language-sql">grant all privileges on DB_이름.* to 계정@&#39;%&#39;;</code></pre>
<h2 id="10-권한-적용">10. 권한 적용</h2>
<p>다음 명령어를 입력하여 변경된 권한 설정을 적용합니다.</p>
<pre><code class="language-sql">flush privileges;</code></pre>
<p>이제 도커에 MySQL이 설치되었으며, 생성한 데이터베이스와 사용자 계정을 사용할 준비가 되었습니다.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[파이썬 가상환경 설정 및 pip 패키지 관리 방법]]></title>
            <link>https://velog.io/@it_minsu/%ED%8C%8C%EC%9D%B4%EC%8D%AC-%EA%B0%80%EC%83%81%ED%99%98%EA%B2%BD-%EC%84%A4%EC%A0%95-%EB%B0%8F-pip-%ED%8C%A8%ED%82%A4%EC%A7%80-%EA%B4%80%EB%A6%AC-%EB%B0%A9%EB%B2%95</link>
            <guid>https://velog.io/@it_minsu/%ED%8C%8C%EC%9D%B4%EC%8D%AC-%EA%B0%80%EC%83%81%ED%99%98%EA%B2%BD-%EC%84%A4%EC%A0%95-%EB%B0%8F-pip-%ED%8C%A8%ED%82%A4%EC%A7%80-%EA%B4%80%EB%A6%AC-%EB%B0%A9%EB%B2%95</guid>
            <pubDate>Mon, 06 May 2024 08:16:08 GMT</pubDate>
            <description><![CDATA[<p>파이썬 프로젝트를 진행할 때, 가상환경을 설정하고 pip를 통해 패키지를 관리하는 것은 매우 중요합니다. 여러 프로젝트에서 동일한 패키지를 사용하다 보면 버전 충돌이 발생할 수 있기 때문에, 프로젝트별로 독립적인 가상환경을 만들어 패키지 버전을 관리하는 것이 좋습니다.</p>
<h2 id="가상환경-생성-방법">가상환경 생성 방법</h2>
<ol>
<li><p>작업을 진행할 폴더로 이동합니다.</p>
</li>
<li><p>터미널에 아래 명령어를 입력하여 가상환경을 생성합니다. 
경로와 파일명은 원하는 대로 설정할 수 있습니다. (예: <code>./env</code>)</p>
<pre><code class="language-bash">python -m venv ./env</code></pre>
</li>
<li><p>가상환경 생성 후, <code>.gitignore</code> 파일에 가상환경 폴더를 등록합니다.</p>
</li>
<li><p>가상환경으로 접속하기 위해 터미널에서 아래 명령어를 입력합니다.</p>
<pre><code class="language-bash">env\Scripts\activate.bat</code></pre>
<p>가상환경에 성공적으로 접속하면 프롬프트 앞에 <code>(env)</code>가 표시됩니다.</p>
<p><img src="https://velog.velcdn.com/images/it_minsu/post/358003a9-99b1-4130-82c8-df7eed459132/image.png" alt="가상환경 접속 화면"></p>
</li>
</ol>
<h2 id="pip-패키지-관리-방법">pip 패키지 관리 방법</h2>
<p>가상환경을 세팅한 후, 프로젝트에 필요한 패키지를 pip를 통해 설치할 수 있습니다. 프로젝트를 배포하고 다른 사람들과 패키지 버전을 공유하기 위해서는 <code>pip freeze</code> 명령어를 사용합니다.</p>
<h3 id="설치된-패키지-목록-추출하기">설치된 패키지 목록 추출하기</h3>
<pre><code class="language-bash">pip freeze &gt; requirements.txt</code></pre>
<p>위 명령어를 실행하면 현재 가상환경에 설치되어 있는 패키지 목록과 버전 정보가 <code>requirements.txt</code> 파일에 저장됩니다.</p>
<h3 id="패키지-목록에서-패키지-설치하기">패키지 목록에서 패키지 설치하기</h3>
<pre><code class="language-bash">pip install -r requirements.txt</code></pre>
<p><code>requirements.txt</code> 파일에 명시된 패키지와 버전을 한 번에 설치할 수 있습니다. 이를 통해 다른 사람들과 동일한 개발 환경을 쉽게 구성할 수 있습니다.</p>
<h2 id="주의사항">주의사항</h2>
<ul>
<li>가상환경을 사용할 때는 항상 해당 가상환경이 활성화된 상태에서 작업을 진행해야 합니다.</li>
<li>프로젝트별로 독립적인 가상환경을 사용하는 것이 좋습니다.</li>
<li><code>requirements.txt</code> 파일은 버전 관리 시스템(Git 등)에 포함시켜 관리하는 것이 좋습니다.</li>
</ul>
<p>가상환경과 pip를 적절히 활용하면 파이썬 프로젝트의 개발 환경을 효과적으로 관리할 수 있습니다. 이를 통해 패키지 버전 충돌을 방지하고, 다른 사람들과 손쉽게 개발 환경을 공유할 수 있습니다.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[Google Gemini-Pro API 호출 오류]]></title>
            <link>https://velog.io/@it_minsu/Google-Gemini-Pro-API-%ED%98%B8%EC%B6%9C-%EC%98%A4%EB%A5%98</link>
            <guid>https://velog.io/@it_minsu/Google-Gemini-Pro-API-%ED%98%B8%EC%B6%9C-%EC%98%A4%EB%A5%98</guid>
            <pubDate>Sun, 05 May 2024 09:40:02 GMT</pubDate>
            <description><![CDATA[<h1 id="google-gemini-pro-api-호출-오류">Google Gemini-Pro API 호출 오류</h1>
<p>질의응답 시스템(챗봇)을 실험하던 중, 예기치 않은 문제점이 발생했습니다. 
처음 질문을 던졌을 때는 Google Gemini 1.5 Pro 거대언어모델(Large Language Model, LLM)이 원활하게 동작하였으나, 두 번째 질문부터는 갑작스럽게 오류가 발생하기 시작했습니다. 
오류 발생 화면과 관련 코드는 아래에 첨부하였습니다. 이에 따라 저는 오류의 원인을 분석하고 적절한 해결책을 찾아보기로 했습니다.</p>
<h2 id="1-오류-화면">1. 오류 화면</h2>
<p><img src="https://velog.velcdn.com/images/it_minsu/post/4e779189-cc79-4db1-99bc-19e77b50fd73/image.png" alt="오류 화면 1"></p>
<p><img src="https://velog.velcdn.com/images/it_minsu/post/2064cadd-aa28-4096-a303-9dc432b283f7/image.png" alt="오류 화면 2"></p>
<p><img src="https://velog.velcdn.com/images/it_minsu/post/f84b4400-fb2d-435b-83bb-05d83436c5f5/image.png" alt="오류 화면 3"></p>
<h2 id="2-오류-코드">2. 오류 코드</h2>
<pre><code>langchain_google_genai.chat_models.ChatGoogleGenerativeAIError: Invalid argument provided to Gemini: 400 Developer instruction is not enabled for models/gemini-pro

google.api_core.exceptions.InvalidArgument: 400 Developer instruction is not enabled for models/gemini-pro</code></pre><h2 id="3-오류-발생-원인-분석">3. 오류 발생 원인 분석</h2>
<h3 id="1-코드-수정-여부-확인">1) 코드 수정 여부 확인</h3>
<p>먼저, 실수로 코드를 수정한 부분이 있는지 확인했습니다. 
하지만 Git을 통해 형상관리를 하고 있었기 때문에 코드에는 수정된 부분이 없음을 확인할 수 있었습니다. 
따라서 코드 수정이 오류 발생 원인이 아님을 알 수 있었습니다.</p>
<h3 id="2-api-호출-비용-확인">2) API 호출 비용 확인</h3>
<p>다음으로, Google Gemini 1.5 Pro LLM의 API 호출 비용 정책 변경 여부를 확인했습니다. 
기존에는 1분에 60회까지 무료로 호출할 수 있었는데, 혹시 무료 지원이 종료된 것은 아닌지 의심했습니다. 하지만 확인 결과, 여전히 1분에 60회 호출까지는 무료로 제공되고 있었기 때문에 이 또한 문제 발생과는 연관이 없음을 확인했습니다.</p>
<h3 id="3-공식-문서-및-호출-방법-변경-확인">3) 공식 문서 및 호출 방법 변경 확인</h3>
<p>마지막으로, 공식 문서나 API 호출 방법이 변경되었을 가능성을 고려했습니다. 에러 코드를 구글에 검색해본 결과, 최근에 올라온 관련 글을 발견할 수 있었고, 이를 통해 해결 방법을 얻을 수 있었습니다.</p>
<h2 id="4-오류-해결-방법">4. 오류 해결 방법</h2>
<p>에러가 발생한 부분은 <code>ChatGoogleGenerativeAI()</code> 함수의 <code>model=&quot;gemini-pro&quot;</code> 부분이었습니다. 이를 <code>model=&quot;gemini-1.5-pro-latest&quot;</code>로 변경하니 정상적으로 동작하는 것을 확인할 수 있었습니다.</p>
<h3 id="1-변경-전-코드">1) 변경 전 코드</h3>
<pre><code class="language-python">os.getenv(&quot;GOOGLE_API_KEY&quot;)
llm = ChatGoogleGenerativeAI(
    model=&quot;gemini-pro&quot;,
    temperature=0
)</code></pre>
<h3 id="2-변경-후-코드">2) 변경 후 코드</h3>
<pre><code class="language-python">os.getenv(&quot;GOOGLE_API_KEY&quot;)
llm = ChatGoogleGenerativeAI(
    model=&quot;gemini-1.5-pro-latest&quot;,
    temperature=0
)</code></pre>
<h2 id="5-참고문헌">5. 참고문헌</h2>
<ul>
<li><a href="https://github.com/google-gemini/generative-ai-python/issues/278">GitHub Issue - Invalid argument provided to Gemini: 400 Developer instruction is not enabled for models/gemini-pro</a></li>
</ul>
<p>이상으로 Google Gemini-Pro API 호출 오류 발생 시 해결 방법에 대해 알아보았습니다. 
오류 발생 시에는 냉정하게 원인을 분석하고, 관련 자료를 찾아보는 것이 도움이 됩니다.
이러한 접근법을 통해 빠르게 문제를 해결할 수 있을 것입니다.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[정형데이터 ]]></title>
            <link>https://velog.io/@it_minsu/%EC%A0%95%ED%98%95%EB%8D%B0%EC%9D%B4%ED%84%B0</link>
            <guid>https://velog.io/@it_minsu/%EC%A0%95%ED%98%95%EB%8D%B0%EC%9D%B4%ED%84%B0</guid>
            <pubDate>Sun, 28 Apr 2024 14:41:44 GMT</pubDate>
        </item>
    </channel>
</rss>