<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>홀로 떠나는 여행</title>
    <link>https://driz2le.tistory.com/</link>
    <description></description>
    <language>ko</language>
    <pubDate>Sun, 31 May 2026 13:22:08 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>driz2le</managingEditor>
    <item>
      <title>[펌] RAG와 QLoRA에 대해</title>
      <link>https://driz2le.tistory.com/568</link>
      <description>&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;하기 링크의 글을 읽고 요약함&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://arca.live/b/alpaca/153704606&quot;&gt;https://arca.live/b/alpaca/153704606&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;1. 왜 RAG가 필요한가&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc; color: #000000; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;기본 LLM(예: GPT, Gemini, Grok)은&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;자기 가중치(머릿속 지식)&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;만으로 답을 만들어서
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;환각(Hallucination)이 발생하기 쉽고&lt;/li&gt;
&lt;li&gt;학습 시점 이후의&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;최신 정보&lt;/b&gt;를 모른다는 한계가 있음.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;마치&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;법전&amp;middot;판례 없이 기억만으로 상담하는 변호사&lt;/b&gt;와 같아서, 복잡한 질문에는 오답 가능성이 급증함.&lt;/li&gt;
&lt;li&gt;이를 보완하기 위해 &amp;ldquo;AI도 변호사처럼&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;검색&amp;middot;자료참조&lt;/b&gt;를 하게 하자&amp;rdquo;는 발상에서&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;RAG&lt;/b&gt;가 등장.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;2. RAG(Retrieval-Augmented Generation)의 역할&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc; color: #000000; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;구조:
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;사용자의 질문을 받으면&lt;/li&gt;
&lt;li&gt;먼저&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;검색 모듈(벡터DB 등)&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;로 관련 문서&amp;middot;데이터를 찾고&lt;/li&gt;
&lt;li&gt;그 자료들을 질문과 함께 LLM에 넣어&lt;/li&gt;
&lt;li&gt;LLM이 이를 기반으로 답변을 생성하게 함.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;즉,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;LLM은 생성(Generation)&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;에만 집중하고, &lt;b&gt;Retrieval(검색)&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;은 별도 모듈이 담당하는 구조.&lt;/li&gt;
&lt;li&gt;효과:
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;최신 정보 반영 가능&lt;/li&gt;
&lt;li&gt;출처&amp;middot;근거를 제시할 수 있음&lt;/li&gt;
&lt;li&gt;환각이 눈에 띄게 감소&lt;/li&gt;
&lt;li&gt;인터넷 전체가 아니라&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;회사 내부 DB만 검색&lt;/b&gt;하도록 설정해 B2B/엔터프라이즈 활용이 가능&lt;/li&gt;
&lt;li&gt;&amp;ldquo;모델 다시 학습&amp;rdquo; 없이도&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;Low risk, High return&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;으로 품질 개선 가능.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;3. LoRA / QLoRA의 등장 배경과 핵심 아이디어&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc; color: #000000; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;RAG는&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;&amp;ldquo;무슨 내용을 말할지(지식)&amp;rdquo;&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;는 개선하지만, &lt;b&gt;모델의 성격&amp;middot;말투&amp;middot;전문성(행동, 스타일)&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;은 바꾸지 못함.&lt;br /&gt;&amp;rarr; 이를 바꾸려면 원래는&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;Full Fine-tuning(전체 뇌수술)&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;이 필요했는데, 이는 GPU&amp;middot;시간&amp;middot;비용이 너무 큼.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;LoRA&lt;/b&gt;:
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;거대한 모델 전체를 다시 학습시키지 않고,&lt;/li&gt;
&lt;li&gt;&amp;nbsp;기존 모델은 그대로&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;얼려두고(Freeze)&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&amp;nbsp;그 위에&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;작은 어댑터(보조 장치)&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;만 학습.&lt;/li&gt;
&lt;li&gt;이 어댑터 파라미터는 작아서 파일 크기&amp;middot;훈련비용이 매우 작고, 성능은 풀 파인튜닝에 근접.&lt;/li&gt;
&lt;li&gt;단점: 여전히&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;VRAM(GPU 메모리) 사용량이 크다&lt;/b&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;QLoRA&lt;/b&gt;:
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;여기서 한 단계 더 나아가, 원본 모델을&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;양자화(예: 16bit &amp;rarr; 4bit)&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;해서 메모리 점유를 극단적으로 줄임.&lt;/li&gt;
&lt;li&gt;결과적으로&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;일반 게이머용 GPU&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;에서도 LoRA 기반 파인튜닝이 가능해져&lt;br /&gt;&amp;rarr; AI 파인튜닝의&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;비용&amp;middot;진입장벽을 크게 낮춤(민주화)&lt;/b&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;4. RAG(지식) + QLoRA(행동/전문성)의 조합&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc; color: #000000; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;비유:
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;QLoRA/LoRA&lt;/b&gt;: 변호사를&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;특정 분야 전문 + 특정 말투&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;로 훈련시키는 과정
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;예: &amp;ldquo;특허법 전문 변호사 + 근엄한 대법관 말투&amp;rdquo;로 만드는 것(모델의 행동/전문성 변경).&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;RAG&lt;/b&gt;: 이렇게 훈련된 변호사에게
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;최신 법전&amp;middot;판례&amp;middot;오늘자 서류&lt;/b&gt;를 계속 쥐여주는 역할(실시간 지식 공급).&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;결과:
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;전문화된 태도&amp;middot;스타일&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;을 가진 AI가&lt;/li&gt;
&lt;li&gt;&lt;b&gt;최신&amp;middot;실제 데이터&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;를 근거로 답변을 생성.&lt;/li&gt;
&lt;li&gt;둘 중 하나만으로는 불가능한,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;고품질&amp;middot;실무형 AI&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;가 완성됨.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;5. 비즈니스 관점에서의 임팩트&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc; color: #000000; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;기업은 이제 단순히 &amp;ldquo;남이 만든 AI를 쓰는 것&amp;rdquo;을 넘어서,
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;(QLoRA/LoRA로)&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;자사 용어&amp;middot;규칙&amp;middot;코딩 스타일에 맞춘 전용 AI&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;를 만들고&lt;/li&gt;
&lt;li&gt;(RAG로) 그 AI에게&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;사내 코드베이스, 문서, DB 전체&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;를 붙여 실무를 맡길 수 있음.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;정리하면,
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;RAG = 지식&amp;middot;데이터 측면 강화 (무엇을 말할지)&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;LoRA/QLoRA = 행동&amp;middot;전문성&amp;middot;스타일 강화 (어떻게 말할지)&lt;/b&gt;&lt;br /&gt;&amp;rarr; 이 조합이 현재 기업용&amp;middot;산업용 AI 전략의 핵심 축이 됨.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>인공지능</category>
      <author>driz2le</author>
      <guid isPermaLink="true">https://driz2le.tistory.com/568</guid>
      <comments>https://driz2le.tistory.com/568#entry568comment</comments>
      <pubDate>Tue, 18 Nov 2025 20:07:03 +0900</pubDate>
    </item>
    <item>
      <title>Vs code 실행되지 않을 때</title>
      <link>https://driz2le.tistory.com/566</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;Vs code (Visual Studio Code)가 아래와 같이&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 갑자기 실행되지 않거나 (프로그램 위치를 찾을 수 없다..)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 설치된 디렉토리에서 삭제된 경우&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;가 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;보통 자동 업데이트 후 발생한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 문제를 해결하는 방법은 세 가지가 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;1. 자동 업데이트 설정 변경&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;File 메뉴에서 설정을 아래와 같이 변경한다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; - File - Preperences - Setting - Application - Update - Enable Windows Background Updates - disable &lt;br /&gt;&amp;nbsp; &amp;nbsp; - File - Preperences - Setting - Application - Update - mode - manual &lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;2. 비설치형 파일 다운로드&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;VS code는 비설치형 파일을 압축 파일(zip) 형태로 제공한다. 해당 파일을 다운로드한 후 압축 해제 후 사용한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;3. 백업 파일과 폴더 복원&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;VS code가 설치된 디렉토리에 가면 under bar( &quot;_폴더명&quot; ) 로 시작되는 폴더에 백업(backup)되어 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;내용을 복사해서 복원이 가능하다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>programming</category>
      <category>vscode 사라짐</category>
      <category>vscode 삭제</category>
      <category>vscode 실행 안됨</category>
      <category>vscode 실행 오류</category>
      <author>driz2le</author>
      <guid isPermaLink="true">https://driz2le.tistory.com/566</guid>
      <comments>https://driz2le.tistory.com/566#entry566comment</comments>
      <pubDate>Sat, 24 May 2025 23:37:24 +0900</pubDate>
    </item>
    <item>
      <title>고유 식별자(unique id) 생성</title>
      <link>https://driz2le.tistory.com/564</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;UUID 개요&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;UUID는 Universally Unique IDentifier의 약자로 말 그대로 범용 고유 식별자(일련 번호)라고 해석이 가능하다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;탄생 배경은 RFC 4122 에서 명시된 규약으로 네트워크 상에서 유일성(고유성)을 보장하는 식별자(ID)를 생성하기 위한 규약이다. 즉, UUID 규약을 통해 생성한 식별자(ID)는 중복되지 않는다고 생각하면 된다. (중복될 확률이 0에 가까움)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;※ RFC(Request for Comments) : IFTF(국제 인터넷 표준화 기구, Internet Engineering Task Force)에서 제공하는 문서&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;UUID 형식&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;UUID는 128bit 숫자로 구성되며 보통 8, 4, 4, 12자리로 구성된 32자리 16진수로 표현하며 하이픈(-)을 써서 구분한다.&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 11.6279%; text-align: center;&quot;&gt;time_low&lt;/td&gt;
&lt;td style=&quot;width: 11.6279%; text-align: center;&quot;&gt;time_mid&lt;/td&gt;
&lt;td style=&quot;width: 20.1163%; text-align: center;&quot;&gt;time_hi_and_version&lt;/td&gt;
&lt;td style=&quot;width: 36.1628%; text-align: center;&quot;&gt;clock_seq_hi_and_resclock_seq_low&lt;/td&gt;
&lt;td style=&quot;width: 20.4651%; text-align: center;&quot;&gt;node&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 11.6279%; text-align: center;&quot;&gt;8&lt;/td&gt;
&lt;td style=&quot;width: 11.6279%; text-align: center;&quot;&gt;4&lt;/td&gt;
&lt;td style=&quot;width: 20.1163%; text-align: center;&quot;&gt;4&lt;/td&gt;
&lt;td style=&quot;width: 36.1628%; text-align: center;&quot;&gt;4&lt;/td&gt;
&lt;td style=&quot;width: 20.4651%; text-align: center;&quot;&gt;12&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;예)&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;f91877b8-388e-4557-9951-f1d90d8e8e0b&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;UUID 각 부위별 내용&lt;/b&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 31.7441%; text-align: center;&quot;&gt;명칭&lt;/td&gt;
&lt;td style=&quot;width: 11.1629%; text-align: center;&quot;&gt;저장 크기&lt;br /&gt;(byte)&lt;/td&gt;
&lt;td style=&quot;width: 10.8139%; text-align: center;&quot;&gt;표현 길이&lt;br /&gt;(16진수)&lt;/td&gt;
&lt;td style=&quot;width: 46.2791%; text-align: center;&quot;&gt;의미 (Wiki 제공)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 31.7441%;&quot;&gt;time_low&lt;/td&gt;
&lt;td style=&quot;width: 11.1629%; text-align: center;&quot;&gt;4&lt;/td&gt;
&lt;td style=&quot;width: 10.8139%; text-align: center;&quot;&gt;8&lt;/td&gt;
&lt;td style=&quot;width: 46.2791%;&quot;&gt;integer&amp;nbsp;giving&amp;nbsp;the&amp;nbsp;low&amp;nbsp;32&amp;nbsp;bits&amp;nbsp;of&amp;nbsp;the&amp;nbsp;time&lt;br /&gt;시간의 low 32 bit를 부여하는 정수&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 31.7441%;&quot;&gt;time_mid&lt;/td&gt;
&lt;td style=&quot;width: 11.1629%; text-align: center;&quot;&gt;2&lt;/td&gt;
&lt;td style=&quot;width: 10.8139%; text-align: center;&quot;&gt;4&lt;/td&gt;
&lt;td style=&quot;width: 46.2791%;&quot;&gt;integer&amp;nbsp;giving&amp;nbsp;the&amp;nbsp;middle&amp;nbsp;16&amp;nbsp;bits&amp;nbsp;of&amp;nbsp;the&amp;nbsp;time&lt;br /&gt;시간의 middle 16 bit를 부여하는 정수&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 31.7441%;&quot;&gt;time_hi_and_version&lt;/td&gt;
&lt;td style=&quot;width: 11.1629%; text-align: center;&quot;&gt;2&lt;/td&gt;
&lt;td style=&quot;width: 10.8139%; text-align: center;&quot;&gt;4&lt;/td&gt;
&lt;td style=&quot;width: 46.2791%;&quot;&gt;&lt;span style=&quot;background-color: #fbfcfd; color: #34343c; text-align: left;&quot;&gt;4-bit &amp;ldquo;version&amp;rdquo; in the most significant bits, followed by the high 12 bits of the time&lt;/span&gt; &lt;br /&gt;최상위 bit에서 4 bit의 &quot;version&quot; 그리고 시간의 high 12 bit&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 31.7441%;&quot;&gt;clock_seq_hi_and_resclock_seq_low&lt;/td&gt;
&lt;td style=&quot;width: 11.1629%; text-align: center;&quot;&gt;2&lt;/td&gt;
&lt;td style=&quot;width: 10.8139%; text-align: center;&quot;&gt;4&lt;/td&gt;
&lt;td style=&quot;width: 46.2791%;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #34343c; text-align: left;&quot;&gt;1 to 3-bit &amp;ldquo;variant&amp;rdquo; in the most significant bits, followed by the 13 to 15-bit clock sequence&lt;/span&gt; &lt;br /&gt;최상위 bit에서 1~3 bit는 UUID의 레이아웃 형식, 그리고 13~15 bit는 clock sequence&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 31.7441%;&quot;&gt;node&lt;/td&gt;
&lt;td style=&quot;width: 11.1629%; text-align: center;&quot;&gt;5&lt;/td&gt;
&lt;td style=&quot;width: 10.8139%; text-align: center;&quot;&gt;12&lt;/td&gt;
&lt;td style=&quot;width: 46.2791%;&quot;&gt;the&amp;nbsp;48-bit&amp;nbsp;node&amp;nbsp;id&lt;br /&gt;48 bit 노드 id&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;python에서 uuid 생성 방법&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아주 간단하다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;import&amp;nbsp;uuid &lt;br /&gt;&lt;br /&gt;#&amp;nbsp;랜덤&amp;nbsp;UUID&amp;nbsp;생성 &lt;br /&gt;v_uuid = uuid.uuid4() &lt;br /&gt;print( v_uuid&amp;nbsp;&amp;nbsp;)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;여러가지 uuid 생성 방법&lt;/b&gt;&lt;br /&gt;좀 더 구체적으로 하기와 같이 쓸 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;import uuid&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;# 1. 호스트 ID, sequence, 현재 시간을 기준으로 uuid 생성&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;print(uuid.uuid1())&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;#&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt; 2a. uuid1 규칙을 이용하되, 현 시스템의 MAC 주소(get_mac_address)를 추가해서 보다 강한 중복 방지를 부여함&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;unique_id&amp;nbsp;=&amp;nbsp;uuid.uuid1(node=get_mac_address())&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;#&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt; 2b. namespace uuid와 name에 대한 MD5 hash에서 uuid 생성, name은 아무 값이나 상관없으나 보통 url 주소(www.sample.com 과 같은)를 사용&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;print(uuid.uuid3(uuid.NAMESPACE_URL, name))&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;#&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt; 3. 램덤한 uuid 생성&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;print(uuid.uuid4())&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;#&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt; 4 namespace uuid와 name에 대한 SHA-1 hash에서 uuid 생성 , name은 아무 값이나 상관없으나 보통 url 주소(www.sample.com 과 같은)를 사용&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;print(uuid.uuid5(uuid.NAMESPACE_URL, url))&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;특이 사항&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;생성된 uuid는 uuid 객체 이므로 그대로 사용하면&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;UUID('022dfbec-7a09-4f9a-98e7-ab35254a401f')&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;처럼 UUID( '문자열' ) 형식으로 저장된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;따라서&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;uuid_str = str( uuid.uuid4())&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;로 변환하여 사용하는 것이 필요하다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예제)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;a = uuid.uuid4()&amp;nbsp;&amp;nbsp;&amp;nbsp;; print(a)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;&amp;rarr; &lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;print문이 내부 변환(즉 class 내 toString()을 호출..)하여&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;d227f781-3a25-40b2-929d-4a48922effee 로 출력&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;b = [a]&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ; print(b)&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;rarr;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt; [UUID('d227f781-3a25-40b2-929d-4a48922effee')] 처럼 uuid 객체 형태를 출력&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;c = str(a)&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ; print(c)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;rarr;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;&amp;nbsp;문자열&lt;/span&gt;&lt;/span&gt; d227f781-3a25-40b2-929d-4a48922effee 출력&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>programming/Python</category>
      <category>UUID</category>
      <category>uuid string 변환</category>
      <category>uuid 문자열 변환</category>
      <category>파이썬 고유 식별자</category>
      <author>driz2le</author>
      <guid isPermaLink="true">https://driz2le.tistory.com/564</guid>
      <comments>https://driz2le.tistory.com/564#entry564comment</comments>
      <pubDate>Mon, 28 Apr 2025 18:41:41 +0900</pubDate>
    </item>
    <item>
      <title>안 쓰는 docker container 삭제</title>
      <link>https://driz2le.tistory.com/562</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;안쓰는 docker container를 삭제한다. 다만, 일시적으로 안쓰던 것도 삭제될 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$ docker container prune&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;일정 시간 사용하지 않은 docker container를 삭제한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$ docker container prune --filter &quot;until=2400h&quot;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2400h : 사용한지 100일(24h x 100) 이상 지난 docker container를 모두 삭제한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이후 아래를 추가로 해주는 것도 좋다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;container와 연결이 없는 image를 삭제한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$ docker image prune -a&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Linux</category>
      <category>docker container purne</category>
      <category>docker prune</category>
      <category>도커 컨테이너 삭제</category>
      <category>안 쓰는 docker container</category>
      <author>driz2le</author>
      <guid isPermaLink="true">https://driz2le.tistory.com/562</guid>
      <comments>https://driz2le.tistory.com/562#entry562comment</comments>
      <pubDate>Thu, 17 Apr 2025 19:57:06 +0900</pubDate>
    </item>
    <item>
      <title>os.walk - 하위 디렉토리 포함 모든 파일 탐색</title>
      <link>https://driz2le.tistory.com/561</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;os.walk( dir )는 주어진 디렉토리( &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;dir&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt; ) 내의 모든 하위 디렉토리와 파일을 재귀적으로 탐색한다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;os.listdir()가 주어진 디렉토리 내 정보만 가져오는 것과 대비된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;os.walk 사용법&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;for (root, dirs, files) in os.walk(path_dir):&amp;nbsp;&amp;nbsp;# path_dir : 탐색할 루트 폴더 &lt;br /&gt;&amp;nbsp; &amp;nbsp; print(&quot;# root : &quot; + root)&amp;nbsp;&amp;nbsp;# 현재 폴더의 전체 경로 &lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; if len(dirs) &amp;gt; 0: &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; for dir_name in dirs:&amp;nbsp;&amp;nbsp;# '현재' 폴더에 포함된 하위 디렉토리 명단. &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; print(&quot;dir: &quot; + dir_name) &lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; if len(files) &amp;gt; 0:&amp;nbsp;&amp;nbsp;# 디렉토리가 아닌, '현재' 폴더에 포함된 파일 명단. &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; for file_name in files: &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; print(&quot;file: &quot; + file_name)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>programming/Python</category>
      <category>os.walk</category>
      <category>Python</category>
      <category>모든 파일 검색</category>
      <category>파이썬</category>
      <author>driz2le</author>
      <guid isPermaLink="true">https://driz2le.tistory.com/561</guid>
      <comments>https://driz2le.tistory.com/561#entry561comment</comments>
      <pubDate>Thu, 10 Apr 2025 21:13:52 +0900</pubDate>
    </item>
    <item>
      <title>nvidia-docker 수동 설치</title>
      <link>https://driz2le.tistory.com/556</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;Nvidia-docker 설치 시 오프라인, 외부망 접근 금지 등으로 인해서 pip install 이 불가능하여 수작업으로 설치해야하는 경우가 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 경우 아래와 같은 순서로 설치한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;libnvidia-container1_1.13.5-1_amd64.deb&lt;br /&gt;libnvidia-container-tools_1.13.5-1_amd64.deb&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;nvidia-container-toolkit-base_1.13.5-1_amd64.deb&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;nvidia-container-toolkit_1.13.5-1_amd64.deb&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1) 기존 nvidia-docker dpkg를 삭제&lt;/p&gt;
&lt;pre id=&quot;code_1736496071639&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# 설치된 패키지 검색
$ dpkg --list | grep nvidia
ii  libnvidia-container-tools  1.9.0-1  amd64 NVIDIA container runtime library (command-line tools)
ii  libnvidia-container1:amd64 1.10.0-1 amd64 NVIDIA container runtime library
ii  nvidia-container-toolkit   1.9.0-1  amd64 NVIDIA container runtime hook
...

# 출력된 리스트 중 불필요한 구 파일 삭제
# dpkg -r [패키지명]
$ dpkg -r libnvidia-container-tools
$ dpkg -r libnvidia-container1:amd64
$ dpkg -r nvidia-container-toolkit&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2) 순서대로 설치&lt;/p&gt;
&lt;pre id=&quot;code_1736496204523&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$ dpkg - i libnvidia-container1_1.13.5-1_amd64.deb
$ dpkg - i libnvidia-container-tools_1.13.5-1_amd64.deb
$ dpkg - i nvidia-container-toolkit-base_1.13.5-1_amd64.deb
$ dpkg - i nvidia-container-toolkit_1.13.5-1_amd64.deb&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3) &lt;b&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;[필수] &lt;/span&gt;&lt;/b&gt;도커 서비스 재가동 (docker service restart)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot;&gt;$ systemctl restart docker&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;※ 참고사항&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 순서가 바뀌거나 더 필요한 게 있다면 하기와 같이 친절히 표기가 되니, 맞추어 설치한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp;dpkg: dependency problems prevent configuration of nvidia-container-toolkit: &lt;br /&gt;&amp;nbsp; &amp;nbsp; nvidia-container-toolkit depends on nvidia-container-toolkit-base (= 1.13.5-1); however: &lt;br /&gt;&amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #ee2323;&quot;&gt;Package&amp;nbsp;nvidia-container-toolkit-base&amp;nbsp;is&amp;nbsp;not&amp;nbsp;installed.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 버전에 따라서, (&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;1.10 이하) &lt;/span&gt;toolkit-base 설치가 필요없다. (toolkit-base 패키지도 없다.)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 아래는 설치 안해도 괜찮다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp;nvidia-container-runtime_3.13.0-1_all.deb&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp;nvidia-docker2_2.13.0-1_all.deb&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- nvidia-docker 설치 패키지(deb) 받는 곳&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://mirror.cs.uchicago.edu/nvidia-docker/libnvidia-container/stable/ubuntu20.04/amd64/&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://mirror.cs.uchicago.edu/nvidia-docker/libnvidia-container/stable/ubuntu20.04/amd64/&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1736496469588&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;Index of /nvidia-docker/libnvidia-container/stable/ubuntu20.04/amd64/&quot; data-og-description=&quot;&quot; data-og-host=&quot;mirror.cs.uchicago.edu&quot; data-og-source-url=&quot;https://mirror.cs.uchicago.edu/nvidia-docker/libnvidia-container/stable/ubuntu20.04/amd64/&quot; data-og-url=&quot;https://mirror.cs.uchicago.edu/nvidia-docker/libnvidia-container/stable/ubuntu20.04/amd64/&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://mirror.cs.uchicago.edu/nvidia-docker/libnvidia-container/stable/ubuntu20.04/amd64/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://mirror.cs.uchicago.edu/nvidia-docker/libnvidia-container/stable/ubuntu20.04/amd64/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url();&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;Index of /nvidia-docker/libnvidia-container/stable/ubuntu20.04/amd64/&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;mirror.cs.uchicago.edu&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Linux</category>
      <category>docker</category>
      <category>nvidia docker</category>
      <category>nvidia-docker</category>
      <category>nvidia-docker 수동 설치</category>
      <author>driz2le</author>
      <guid isPermaLink="true">https://driz2le.tistory.com/556</guid>
      <comments>https://driz2le.tistory.com/556#entry556comment</comments>
      <pubDate>Fri, 10 Jan 2025 17:07:02 +0900</pubDate>
    </item>
    <item>
      <title>docker repository &amp;lt;none&amp;gt;</title>
      <link>https://driz2le.tistory.com/551</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;하기처럼 docker 이미지를 출력하면 docker repository 와 tag가 &amp;lt;none&amp;gt;으로 출력되는 경우가 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$&amp;nbsp; docker images &lt;br /&gt;REPOSITORY&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; TAG&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;IMAGE ID&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CREATED&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SIZE &lt;br /&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;&amp;lt;none&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;none&amp;gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 4d78d3e67cb5&amp;nbsp; &amp;nbsp;1 months ago&amp;nbsp;&amp;nbsp;&amp;nbsp;30.8GB&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;sys&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; v1.4&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;d38be44fe367&amp;nbsp; &amp;nbsp; 1 weeks ago&amp;nbsp; &amp;nbsp; &amp;nbsp;20.8GB&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; ... ...&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;opt&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; v1.1&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;a38be45fe457&amp;nbsp; &amp;nbsp; &amp;nbsp;2 weeks ago&amp;nbsp; &amp;nbsp; &amp;nbsp;10.1GB&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;lt;none&amp;gt;으로 표기된 이미지를 삭제하지 않고 이름을 붙일 필요가 있다면,&amp;nbsp;하기 명령으로 repository와 tag를 부여할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;docker image tag [image_id] [repository name:tag]&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사례)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$ docker image tag &lt;span style=&quot;color: #0000ff; text-align: start;&quot;&gt;4d78d3e67cb5&amp;nbsp; test:v1.0&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$ docker images&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;REPOSITORY&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; TAG&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;IMAGE ID&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CREATED&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SIZE &lt;br /&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;test&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; v1.0&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;4d78d3e67cb5&amp;nbsp; &amp;nbsp;1 months ago&amp;nbsp;&amp;nbsp;&amp;nbsp;30.8GB&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;sys&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; v1.4&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;d38be44fe367&amp;nbsp; &amp;nbsp; 1 weeks ago&amp;nbsp; &amp;nbsp; &amp;nbsp;20.8GB&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;해당 원인은 여러 개가 있는데 주로&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;빌드 할 때, 이미 존재하는 레포지토리:태그명과 중복된 상태로 빌드하거나 이미지가 제대로 빌드 되지 않아서 발생하며 Dangling Image라고 부른다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;위처럼 repository와 tag 명을 강제로 붙여줄 수도 있으나 삭제하는 게 좋을 경우가 많다.&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;이 경우 하기 명령으로 삭제 한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;아래 세 개 명령은 약간으 ㅣ차이는 있으나 모두 &lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;Dangling Image를 삭제하게 된다.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;1) $ docker iamge prune&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;2) docker&amp;nbsp;rmi&amp;nbsp;$(docker&amp;nbsp;images&amp;nbsp;--filter&amp;nbsp;&quot;dangling=true&quot;&amp;nbsp;-q&amp;nbsp;--no-trunc)&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;3) $&amp;nbsp;docker&amp;nbsp;rmi&amp;nbsp;$(docker&amp;nbsp;images&amp;nbsp;-a|grep&amp;nbsp;&quot;&amp;lt;none&amp;gt;&quot;|awk&amp;nbsp;'$1==&quot;&amp;lt;none&amp;gt;&quot;&amp;nbsp;{print&amp;nbsp;$3}')&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Linux</category>
      <category>docker load &amp;lt;none&amp;gt;</category>
      <category>docker repository &amp;lt;none&amp;gt;</category>
      <category>docker repository none</category>
      <category>docker tag &amp;lt;none&amp;gt;</category>
      <category>docker tag none</category>
      <author>driz2le</author>
      <guid isPermaLink="true">https://driz2le.tistory.com/551</guid>
      <comments>https://driz2le.tistory.com/551#entry551comment</comments>
      <pubDate>Fri, 4 Oct 2024 18:52:41 +0900</pubDate>
    </item>
    <item>
      <title>모바텀(MobaXterm) 세션 죽는 현상 개선</title>
      <link>https://driz2le.tistory.com/550</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;모바텀은 매우 편한 터미널이지만 종종 세션이 끊어지거나 연결이 죽는 현상(freezing)이 발생한다.&amp;nbsp;모바텀 세션이 끊기거나 죽는 현상은 2개이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; -&amp;nbsp;세션이 죽거나 화면이 멈추는 현상 (freezing)&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; - 사용이 오래되어 세션이 끊기는 현상 (stopped session)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;1. 세션이 죽거나 화면이 멈추는 현상 (freezing)&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이것은 상당히 쓰기 불편한데, 하단과 같이 처리하면 해결된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;모바텀 메뉴 Settings &amp;rarr; Configuration &amp;rarr;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;SSH (tab) &amp;rarr;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;&lt;span&gt; GSSAPI Kerberos 체크 제거&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;리눅스에서 종종 있는 문제로 GSSAPI kerberos 가 활성화되어 있으면 keberos DNS에 질의를 하는데 DNS 응답이 늦어질 경우 접속지연이 발생한다. 이로 인해&amp;nbsp;간헐적으로 접속지연이 발생하거나 화면이 멈추는 현상이 발생한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;만약 서버에서 설정하고 싶다면&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;vi /etc/ssh/sshd_config&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;GSSAPIAuthentication &lt;b&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;no&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;을 입력하고 저장한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;2. 사용이 오래되어 세션이 끊기는 현상 (stopped session)&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이것은 사실 정상적인 애플리케이션의 처리현상이다. 다만, 역시 불편하다. &amp;nbsp;하기와 같이 나올 때 세션이 끊긴 것이다.&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;&amp;nbsp;Network error: Software caused connection abort &lt;br /&gt;&amp;nbsp;─────────────────────────────────────────────────────&lt;br /&gt;&amp;nbsp;Session stopped &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;- Press &amp;lt;Return&amp;gt; to exit tab &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;- Press R to restart session &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;- Press S to save terminal output to file&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;모바텀 메뉴 Settings &amp;rarr; Configuration &amp;rarr;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;SSH (tab) &amp;rarr;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt; SSH keepalive&lt;/span&gt; 체크 추가&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;&lt;span&gt;(버전에 따라 다른데, Fix connection issues 체크 버튼이 보이면 추가로 체크해야 한다.)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Linux</category>
      <category>mobaXterm</category>
      <category>mobaxterm freezing</category>
      <category>mobaxterm session error</category>
      <category>mobaxterm session freezing</category>
      <category>mobaxterm session kill</category>
      <category>mobaxterm 멈춤</category>
      <category>모바텀 끊김</category>
      <category>모바텀 멈춤</category>
      <category>모바텀 세션 멈춤</category>
      <author>driz2le</author>
      <guid isPermaLink="true">https://driz2le.tistory.com/550</guid>
      <comments>https://driz2le.tistory.com/550#entry550comment</comments>
      <pubDate>Tue, 10 Sep 2024 16:58:22 +0900</pubDate>
    </item>
    <item>
      <title>venv 가상환경</title>
      <link>https://driz2le.tistory.com/549</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;□ 가상 환경 생성&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;cd&amp;nbsp;가상환경을&amp;nbsp;설치할&amp;nbsp;경로&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;python&amp;nbsp;-m&amp;nbsp;venv&amp;nbsp;가상환경이름&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;□&lt;span&gt; &lt;/span&gt;Windows - 가상환경 실행(활성화)&lt;/b&gt;&lt;br /&gt;가상환경이름\Scripts\activate &lt;br /&gt;&lt;br /&gt;&lt;b&gt;□ macOS, Linux - 가상환경 실행(활성화)&lt;/b&gt; &lt;br /&gt;source 가상환경이름/bin/activate&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;□&lt;span&gt; Windows, &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;macOS, Linux -&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;가상환경 종료(비활성화)&lt;/b&gt;&lt;br /&gt;deactivate&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;설치된&amp;nbsp;패키지&amp;nbsp;리스트&amp;nbsp;txt&amp;nbsp;파일로&amp;nbsp;변환&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #fafafa; color: #383a42; text-align: start;&quot;&gt;pip freeze &amp;gt; requirements.txt&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #fafafa; color: #383a42; text-align: start;&quot;&gt;변환된&amp;nbsp;txt&amp;nbsp;파일로&amp;nbsp;패키지&amp;nbsp;설치하기 &lt;br /&gt;pip&amp;nbsp;install&amp;nbsp;-r&amp;nbsp;파일이름.txt&lt;/span&gt;&lt;/p&gt;</description>
      <category>programming/Python</category>
      <category>Python</category>
      <category>venv</category>
      <author>driz2le</author>
      <guid isPermaLink="true">https://driz2le.tistory.com/549</guid>
      <comments>https://driz2le.tistory.com/549#entry549comment</comments>
      <pubDate>Wed, 21 Aug 2024 13:14:52 +0900</pubDate>
    </item>
    <item>
      <title>[펌] 데이터 분석을 위한 5단계 절차</title>
      <link>https://driz2le.tistory.com/546</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;잘 쓰여진 데이터 분석 관련 글&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://brunch.co.kr/@data/10&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://brunch.co.kr/@data/10&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1721618856919&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;데이터 분석을 위한 5단계 절차&quot; data-og-description=&quot;Part1. 공공데이터 분석의 개념 | 이번 글에서는 공공분야 데이터 분석 절차를 설명한다. 필자의 경험상, 공공데이터 분석은 통상 5가지 단계에 의하여 이루어진다. 이 단계는 폭포수 모델&amp;nbsp;처럼 &quot; data-og-host=&quot;brunch.co.kr&quot; data-og-source-url=&quot;https://brunch.co.kr/@data/10&quot; data-og-url=&quot;https://brunch.co.kr/@data/10&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/DNLTd/hyWCFY47M9/2vnNOW6LyMHidkcKudOZ2K/img.png?width=416&amp;amp;height=371&amp;amp;face=0_0_416_371,https://scrap.kakaocdn.net/dn/b1aftI/hyWCADrpby/nzmUhHpgWbMEW9e0PHtkMK/img.png?width=500&amp;amp;height=500&amp;amp;face=0_0_500_500,https://scrap.kakaocdn.net/dn/kZ5dw/hyWCPHlwbS/jb0I7nnTGvrGWxjN9hLHR1/img.png?width=1271&amp;amp;height=687&amp;amp;face=0_0_1271_687&quot;&gt;&lt;a href=&quot;https://brunch.co.kr/@data/10&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://brunch.co.kr/@data/10&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/DNLTd/hyWCFY47M9/2vnNOW6LyMHidkcKudOZ2K/img.png?width=416&amp;amp;height=371&amp;amp;face=0_0_416_371,https://scrap.kakaocdn.net/dn/b1aftI/hyWCADrpby/nzmUhHpgWbMEW9e0PHtkMK/img.png?width=500&amp;amp;height=500&amp;amp;face=0_0_500_500,https://scrap.kakaocdn.net/dn/kZ5dw/hyWCPHlwbS/jb0I7nnTGvrGWxjN9hLHR1/img.png?width=1271&amp;amp;height=687&amp;amp;face=0_0_1271_687');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;데이터 분석을 위한 5단계 절차&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Part1. 공공데이터 분석의 개념 | 이번 글에서는 공공분야 데이터 분석 절차를 설명한다. 필자의 경험상, 공공데이터 분석은 통상 5가지 단계에 의하여 이루어진다. 이 단계는 폭포수 모델&amp;nbsp;처럼&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;brunch.co.kr&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>인공지능</category>
      <category>데이터 분석</category>
      <author>driz2le</author>
      <guid isPermaLink="true">https://driz2le.tistory.com/546</guid>
      <comments>https://driz2le.tistory.com/546#entry546comment</comments>
      <pubDate>Mon, 22 Jul 2024 12:31:25 +0900</pubDate>
    </item>
  </channel>
</rss>