<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>직장인 조모씨</title>
    <link>https://minicode.tistory.com/</link>
    <description>안녕하세요 반갑습니다!
행복한 인생을 나누는 것이 목표입니다
프로그래밍, 경제, 미니멀리즘에 관심이 많습니다.</description>
    <language>ko</language>
    <pubDate>Sun, 12 Apr 2026 08:29:13 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>직장인 조모씨</managingEditor>
    <image>
      <title>직장인 조모씨</title>
      <url>https://tistory1.daumcdn.net/tistory/4182862/attach/7edafba6261b4408a86cd2a9c4ce7af2</url>
      <link>https://minicode.tistory.com</link>
    </image>
    <item>
      <title>통합본</title>
      <link>https://minicode.tistory.com/358</link>
      <description>&lt;p&gt;&lt;figure class=&quot;fileblock&quot; data-ke-align=&quot;alignCenter&quot;&gt;&lt;a href=&quot;https://blog.kakaocdn.net/dn/d5dCSs/dJMcaaYwx8r/K3hbmkMi1HfJ4Q7CtabmBk/Mods.zip?attach=1&amp;amp;knm=tfile.zip&quot; class=&quot;&quot;&gt;
    &lt;div class=&quot;image&quot;&gt;&lt;/div&gt;
    &lt;div class=&quot;desc&quot;&gt;&lt;div class=&quot;filename&quot;&gt;&lt;span class=&quot;name&quot;&gt;Mods.zip&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;size&quot;&gt;2.08MB&lt;/div&gt;
&lt;/div&gt;
  &lt;/a&gt;&lt;/figure&gt;
&lt;figure class=&quot;fileblock&quot; data-ke-align=&quot;alignCenter&quot;&gt;&lt;a href=&quot;https://blog.kakaocdn.net/dn/7UT2F/dJMcagxE2y4/7kgeQscGjIrzzkv9SZLBmK/Mods.z01?attach=1&amp;amp;knm=tfile.z01&quot; class=&quot;&quot;&gt;
    &lt;div class=&quot;image&quot;&gt;&lt;/div&gt;
    &lt;div class=&quot;desc&quot;&gt;&lt;div class=&quot;filename&quot;&gt;&lt;span class=&quot;name&quot;&gt;Mods.z01&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;size&quot;&gt;19.53MB&lt;/div&gt;
&lt;/div&gt;
  &lt;/a&gt;&lt;/figure&gt;
&lt;figure class=&quot;fileblock&quot; data-ke-align=&quot;alignCenter&quot;&gt;&lt;a href=&quot;https://blog.kakaocdn.net/dn/xh7q1/dJMcaaxtxgb/2sRg8wspcxR6kYJuJqYyr1/Mods.z02?attach=1&amp;amp;knm=tfile.z02&quot; class=&quot;&quot;&gt;
    &lt;div class=&quot;image&quot;&gt;&lt;/div&gt;
    &lt;div class=&quot;desc&quot;&gt;&lt;div class=&quot;filename&quot;&gt;&lt;span class=&quot;name&quot;&gt;Mods.z02&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;size&quot;&gt;19.53MB&lt;/div&gt;
&lt;/div&gt;
  &lt;/a&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>취미/스타듀밸리</category>
      <author>직장인 조모씨</author>
      <guid isPermaLink="true">https://minicode.tistory.com/358</guid>
      <comments>https://minicode.tistory.com/358#entry358comment</comments>
      <pubDate>Sat, 14 Feb 2026 15:46:11 +0900</pubDate>
    </item>
    <item>
      <title>[Obsidian] 6. 논문 정리해보기(예시)</title>
      <link>https://minicode.tistory.com/355</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;225&quot; data-origin-height=&quot;225&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bv1NJN/dJMcac9AmpR/xIS15E8v69DWSEAiXk1KV0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bv1NJN/dJMcac9AmpR/xIS15E8v69DWSEAiXk1KV0/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bv1NJN/dJMcac9AmpR/xIS15E8v69DWSEAiXk1KV0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbv1NJN%2FdJMcac9AmpR%2FxIS15E8v69DWSEAiXk1KV0%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;225&quot; height=&quot;225&quot; data-origin-width=&quot;225&quot; data-origin-height=&quot;225&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h1&gt;0️⃣ 논문 메타 정보 (시작 세팅)&lt;/h1&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;논문&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Semi-Supervised Domain Adaptation via Minimax Entropy&lt;/li&gt;
&lt;li&gt;CVPR 2019&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Obsidian 액션&lt;/b&gt;&lt;/p&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;PDF 열어둔 상태&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h1&gt;1️⃣ GPT 한 줄 요약 (워밍업)&lt;/h1&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;한 줄 요약&lt;/b&gt;&lt;br /&gt;소량의 타깃 라벨과 다량의 비라벨 데이터를 활용해,&lt;br /&gt;엔트로피에 대한 minimax 학습으로 도메인 간 분포 차이를 줄이는 SSDA 방법을 제안한다.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;  이 문장은 &lt;b&gt;곧 Paper 노트의 &amp;ldquo;한 줄 요약&amp;rdquo;이 됨&lt;/b&gt;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h1&gt;2️⃣ 1회독: 구조 훑기&lt;/h1&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(Title &amp;rarr; Abstract &amp;rarr; Figure 1 &amp;rarr; Conclusion)&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;이 단계에서 파악할 것&lt;/h2&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;기존 DA랑 뭐가 다른가?&lt;/li&gt;
&lt;li&gt;Figure 1이 말하려는 구조는?&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;핵심 파악 결과 (요약)&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;문제 설정&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Source: 라벨 충분&lt;/li&gt;
&lt;li&gt;Target: &lt;b&gt;소량의 라벨 + 많은 비라벨&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;기존 UDA / SSL 모두 애매하게 안 맞음&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;Figure 1의 핵심&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Classifier &amp;harr; Feature Extractor 사이에 &lt;b&gt;minimax 게임&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;엔트로피를 중심으로 양쪽 목적이 반대&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;✅ Obsidian 액션: Paper 노트 생성&lt;/h2&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;02_PAPERS/2019_SSDA_MinimaxEntropy.md&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;지금 단계에서 작성하는 내용&lt;/h3&gt;
&lt;pre id=&quot;code_1767761963273&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# Semi-Supervised Domain Adaptation via Minimax Entropy (2019)

## 한 줄 요약
소량의 타깃 라벨과 다량의 비라벨 데이터를 활용해,
엔트로피에 대한 minimax 학습으로 도메인 간 분포 차이를 줄이는 SSDA 방법을 제안한다.

---

## 문제의식
- 실제 환경에서는 타깃 도메인에 소량의 라벨만 존재
- 기존 UDA는 타깃 라벨을 사용하지 못함
- 기존 SSL은 도메인 차이를 고려하지 않음

---

## 핵심 아이디어 (초안)
- 타깃 비라벨 데이터의 예측 엔트로피를 중심으로 minimax 학습 구성
- 분류기와 특징 추출기의 목적을 반대로 설정&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;  아직 완벽할 필요 없음&lt;br /&gt;  &amp;ldquo;방향성&amp;rdquo;만 있으면 OK&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h1&gt;3️⃣ 2회독: 그림 중심 읽기&lt;/h1&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;Figure를 보며 드는 생각&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;왜 &lt;b&gt;classifier는 entropy를 최대화&lt;/b&gt;하지?&lt;/li&gt;
&lt;li&gt;왜 &lt;b&gt;feature extractor는 entropy를 최소화&lt;/b&gt;하지?&lt;/li&gt;
&lt;li&gt;decision boundary를 움직이려는 의도?&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;여기서 등장하는 &amp;ldquo;개념 후보&amp;rdquo;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제 Paper 노트에 &lt;b&gt;개념 후보만 표시&lt;/b&gt;합니다.&lt;/p&gt;
&lt;pre id=&quot;code_1767761993114&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;## 핵심 개념 후보
- [[Semi-Supervised Domain Adaptation]]
- [[Entropy]]
- [[Minimax Optimization]]
- [[Decision Boundary]]
- [[Feature Alignment]] ?&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;  아직 Concept 노트 안 만들어도 됩니다&lt;br /&gt;  물음표 붙여도 괜찮음&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h1&gt;4️⃣ 3회독: 수식 의미 파악&lt;/h1&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;이 단계의 핵심 질문&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;이 수식이 &lt;b&gt;뭘 조절하려는 수식인가&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;왜 entropy인가?&lt;/li&gt;
&lt;li&gt;pseudo-label이랑 뭐가 다른가?&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;핵심 이해 포인트&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Entropy &amp;darr; &amp;rarr; confident prediction&lt;/li&gt;
&lt;li&gt;Classifier:
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;entropy &amp;uarr; &amp;rarr; decision boundary를 타깃 데이터 쪽으로 밀어냄&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Feature Extractor:
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;entropy &amp;darr; &amp;rarr; 타깃 데이터가 클래스 중심으로 모이게 함&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;  &lt;b&gt;&amp;ldquo;경계 이동 + 군집&amp;rdquo;을 동시에 유도&lt;/b&gt;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;✅ Obsidian 액션: Concept 노트 생성 시작&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제 &lt;b&gt;Concept를 만들 타이밍&lt;/b&gt;입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우선 3개부터 만듭니다:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Entropy&lt;/li&gt;
&lt;li&gt;Minimax Optimization&lt;/li&gt;
&lt;li&gt;Semi-Supervised Domain Adaptation&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Paper 노트에는 이렇게 연결만 남깁니다.&lt;/p&gt;
&lt;pre id=&quot;code_1767762005815&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;- 엔트로피 기반 목적 함수로 [[Minimax Optimization]] 수행
- 타깃 비라벨 데이터에 대해 [[Entropy]]를 학습 신호로 사용&lt;/code&gt;&lt;/pre&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h1&gt;5️⃣ 4회독: 기존 방법과 비교&lt;/h1&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;논문이 강조하는 비교 구도&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;기존 SSDA:
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;pseudo-label 의존&lt;/li&gt;
&lt;li&gt;오류 전파 문제&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;MME:
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;확률 분포 자체(Entropy)에 집중&lt;/li&gt;
&lt;li&gt;라벨 오류 없이 학습 가능&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;Obsidian에 남길 비교 정리&lt;/h2&gt;
&lt;pre id=&quot;code_1767762014747&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;## 기존 방법과의 차이
- 기존 SSDA: pseudo-label 기반
- 본 논문: [[Entropy]] 기반 minimax 학습
- decision boundary를 직접 제어&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;  여기서 &lt;b&gt;pseudo-label&lt;/b&gt;도 Concept 후보로 자연스럽게 등장&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h1&gt;6️⃣ 읽고 나서: A4 1장 요약 &amp;rarr; Obsidian 분리&lt;/h1&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;(1) Summary 노트&lt;/h2&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;06_SUMMARIES/MME_SSDA_요약.md&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;내용:&lt;/p&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;핵심 아이디어&lt;/li&gt;
&lt;li&gt;Figure 1 구조 설명 (글로)&lt;/li&gt;
&lt;li&gt;언제 쓰면 좋은 방법인지&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;(2) Project / 활용 아이디어&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Paper 노트 하단에만 간단히:&lt;/p&gt;
&lt;pre id=&quot;code_1767762025320&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;## 활용 아이디어
- Source-free DA로 확장 가능?
- Prototype 기반 방법과 결합?&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;  나중에 Project로 승격 가능&lt;/p&gt;</description>
      <category>배움 - 차근차근 기록하자/[기타] etc ⚫</category>
      <author>직장인 조모씨</author>
      <guid isPermaLink="true">https://minicode.tistory.com/355</guid>
      <comments>https://minicode.tistory.com/355#entry355comment</comments>
      <pubDate>Wed, 7 Jan 2026 14:00:39 +0900</pubDate>
    </item>
    <item>
      <title>[Obsidian] 5. 옵시디언으로 논문 정리하기</title>
      <link>https://minicode.tistory.com/354</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;225&quot; data-origin-height=&quot;225&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bv1NJN/dJMcac9AmpR/xIS15E8v69DWSEAiXk1KV0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bv1NJN/dJMcac9AmpR/xIS15E8v69DWSEAiXk1KV0/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bv1NJN/dJMcac9AmpR/xIS15E8v69DWSEAiXk1KV0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbv1NJN%2FdJMcac9AmpR%2FxIS15E8v69DWSEAiXk1KV0%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;225&quot; height=&quot;225&quot; data-origin-width=&quot;225&quot; data-origin-height=&quot;225&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-end=&quot;2918&quot; data-start=&quot;2851&quot; data-ke-size=&quot;size23&quot;&gt;나의 논문 읽는 방법&lt;/h3&gt;
&lt;p data-end=&quot;2918&quot; data-start=&quot;2851&quot; data-ke-size=&quot;size16&quot;&gt;1. GPT에게 해당 논문 핵심 아이디어 한줄로 요약해달라고 하기&lt;/p&gt;
&lt;p data-end=&quot;2918&quot; data-start=&quot;2851&quot; data-ke-size=&quot;size16&quot;&gt;2. 1회독: 구조 훑기. Title -&amp;gt;Abstract-&amp;gt; figure1/method overview-&amp;gt;conclusion&lt;/p&gt;
&lt;p data-end=&quot;2918&quot; data-start=&quot;2851&quot; data-ke-size=&quot;size16&quot;&gt;3. 2회독: 그림 중심 읽기&lt;/p&gt;
&lt;p data-end=&quot;2918&quot; data-start=&quot;2851&quot; data-ke-size=&quot;size16&quot;&gt;4. 3회독: 수식 의미 파악&lt;/p&gt;
&lt;p data-end=&quot;2918&quot; data-start=&quot;2851&quot; data-ke-size=&quot;size16&quot;&gt;5. 4회독: 기존 방법과 비교&lt;/p&gt;
&lt;p data-end=&quot;2918&quot; data-start=&quot;2851&quot; data-ke-size=&quot;size16&quot;&gt;6. 읽고나서 a4 1장 요약(문제정의,핵심아이디어,구조 그림으로 표현, 활용 방법 생각)&lt;/p&gt;
&lt;p data-end=&quot;2918&quot; data-start=&quot;2851&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;2918&quot; data-start=&quot;2851&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h1 data-end=&quot;264&quot; data-start=&quot;229&quot;&gt;논문 읽기 방법을 Obsidian에 적용하는 프로세스&lt;/h1&gt;
&lt;h2 data-end=&quot;284&quot; data-start=&quot;266&quot; data-ke-size=&quot;size26&quot;&gt;전체 개요 (한 눈에 보기)&lt;/h2&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;pre id=&quot;code_1767761539380&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;논문 PDF
 &amp;darr;
GPT 1줄 요약
 &amp;darr;
1회독 &amp;rarr; Paper Skeleton
 &amp;darr;
2회독 &amp;rarr; Concept 후보
 &amp;darr;
3회독 &amp;rarr; Concept 심화 / 수식 메모
 &amp;darr;
4회독 &amp;rarr; Method / 비교 메모
 &amp;darr;
A4 1장 요약 &amp;rarr; Summary / Project Seed&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-end=&quot;493&quot; data-start=&quot;448&quot; data-ke-size=&quot;size16&quot;&gt;Obsidian에서는&lt;br /&gt;&lt;b&gt;매 회독마다 &amp;ldquo;무엇을 남길지&amp;rdquo;만 정해주면 됩니다.&lt;/b&gt;&lt;/p&gt;
&lt;hr data-end=&quot;498&quot; data-start=&quot;495&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-end=&quot;522&quot; data-start=&quot;500&quot; data-ke-size=&quot;size26&quot;&gt;0️⃣ 논문 시작 전 (준비 단계)&lt;/h2&gt;
&lt;h3 data-end=&quot;532&quot; data-start=&quot;524&quot; data-ke-size=&quot;size23&quot;&gt;하는 일&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;565&quot; data-start=&quot;533&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;565&quot; data-start=&quot;533&quot;&gt;GPT에게 논문 &lt;b&gt;핵심 아이디어 한 줄 요약 요청&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-end=&quot;585&quot; data-start=&quot;567&quot; data-ke-size=&quot;size23&quot;&gt;Obsidian에 남길 것&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;633&quot; data-start=&quot;586&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;603&quot; data-start=&quot;586&quot;&gt;아직 아무 것도 안 만듦 ❌&lt;/li&gt;
&lt;li data-end=&quot;633&quot; data-start=&quot;604&quot;&gt;&lt;b&gt;클립보드 or INBOX 임시 메모만 OK&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;668&quot; data-start=&quot;635&quot; data-ke-size=&quot;size16&quot;&gt;  이유&lt;br /&gt;&amp;rarr; 이건 이해를 돕는 워밍업이지, 지식이 아님&lt;/p&gt;
&lt;hr data-end=&quot;673&quot; data-start=&quot;670&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-end=&quot;694&quot; data-start=&quot;675&quot; data-ke-size=&quot;size26&quot;&gt;1️⃣ 1회독: 구조 훑기&lt;/h2&gt;
&lt;p data-end=&quot;759&quot; data-start=&quot;695&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;(Title &amp;rarr; Abstract &amp;rarr; Figure 1 / Method Overview &amp;rarr; Conclusion)&lt;/b&gt;&lt;/p&gt;
&lt;h3 data-end=&quot;773&quot; data-start=&quot;761&quot; data-ke-size=&quot;size23&quot;&gt;이 단계의 목적&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;816&quot; data-start=&quot;774&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;797&quot; data-start=&quot;774&quot;&gt;이 논문이 &lt;b&gt;뭘 하려는지 감 잡기&lt;/b&gt;&lt;/li&gt;
&lt;li data-end=&quot;816&quot; data-start=&quot;798&quot;&gt;&amp;ldquo;읽을 가치가 있는가?&amp;rdquo; 판단&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-end=&quot;838&quot; data-start=&quot;818&quot; data-ke-size=&quot;size23&quot;&gt;Obsidian 액션 (중요)&lt;/h3&gt;
&lt;p data-end=&quot;868&quot; data-start=&quot;840&quot; data-ke-size=&quot;size16&quot;&gt;  &lt;b&gt;이 시점에 Paper 노트를 만듭니다.&lt;/b&gt;&lt;/p&gt;
&lt;p data-end=&quot;876&quot; data-start=&quot;870&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;위치&lt;/b&gt;&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;span&gt;02_PAPERS/ &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p data-end=&quot;914&quot; data-start=&quot;897&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;이 단계에서 채우는 부분&lt;/b&gt;&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;pre id=&quot;code_1767761560374&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;## 한 줄 요약
( GPT 요약 + 본인 언어로 다듬기 )

## 문제의식
( Abstract 기반 )

## 핵심 아이디어 (초안)
( Figure / Conclusion 기반, 아직 거칠어도 OK )&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-end=&quot;1054&quot; data-start=&quot;1047&quot; data-ke-size=&quot;size16&quot;&gt;  규칙&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1089&quot; data-start=&quot;1055&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1063&quot; data-start=&quot;1055&quot;&gt;수식 ❌&lt;/li&gt;
&lt;li data-end=&quot;1073&quot; data-start=&quot;1064&quot;&gt;디테일 ❌&lt;/li&gt;
&lt;li data-end=&quot;1089&quot; data-start=&quot;1074&quot;&gt;정확성보다 &lt;b&gt;방향성&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-end=&quot;1094&quot; data-start=&quot;1091&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-end=&quot;1116&quot; data-start=&quot;1096&quot; data-ke-size=&quot;size26&quot;&gt;2️⃣ 2회독: 그림 중심 읽기&lt;/h2&gt;
&lt;h3 data-end=&quot;1130&quot; data-start=&quot;1118&quot; data-ke-size=&quot;size23&quot;&gt;이 단계의 목적&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1162&quot; data-start=&quot;1131&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1142&quot; data-start=&quot;1131&quot;&gt;&lt;b&gt;구조 이해&lt;/b&gt;&lt;/li&gt;
&lt;li data-end=&quot;1162&quot; data-start=&quot;1143&quot;&gt;&amp;ldquo;이 논문의 뼈대가 뭔지&amp;rdquo; 파악&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-end=&quot;1179&quot; data-start=&quot;1164&quot; data-ke-size=&quot;size23&quot;&gt;Obsidian 액션&lt;/h3&gt;
&lt;p data-end=&quot;1208&quot; data-start=&quot;1181&quot; data-ke-size=&quot;size16&quot;&gt;  &lt;b&gt;Concept 후보를 표시만 합니다.&lt;/b&gt;&lt;/p&gt;
&lt;p data-end=&quot;1225&quot; data-start=&quot;1210&quot; data-ke-size=&quot;size16&quot;&gt;논문 노트에 이렇게 씁니다:&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;pre id=&quot;code_1767761571460&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;## 핵심 개념 후보
- [[Convolution]] ?
- [[Subsampling]] ?
- [[End-to-End Learning]] ?&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-end=&quot;1336&quot; data-start=&quot;1324&quot; data-ke-size=&quot;size16&quot;&gt;  이 단계에서는&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1380&quot; data-start=&quot;1337&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1363&quot; data-start=&quot;1337&quot;&gt;Concept 노트 &lt;b&gt;만들지 않아도 됨&lt;/b&gt;&lt;/li&gt;
&lt;li data-end=&quot;1380&quot; data-start=&quot;1364&quot;&gt;물음표( ?) 붙여도 OK&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;1401&quot; data-start=&quot;1382&quot; data-ke-size=&quot;size16&quot;&gt;  &amp;ldquo;이게 개념인가?&amp;rdquo; 체크 단계&lt;/p&gt;
&lt;hr data-end=&quot;1406&quot; data-start=&quot;1403&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-end=&quot;1428&quot; data-start=&quot;1408&quot; data-ke-size=&quot;size26&quot;&gt;3️⃣ 3회독: 수식 의미 파악&lt;/h2&gt;
&lt;h3 data-end=&quot;1442&quot; data-start=&quot;1430&quot; data-ke-size=&quot;size23&quot;&gt;이 단계의 목적&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1482&quot; data-start=&quot;1443&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1468&quot; data-start=&quot;1443&quot;&gt;수식이 &lt;b&gt;무엇을 하려는 수식인지&lt;/b&gt; 이해&lt;/li&gt;
&lt;li data-end=&quot;1482&quot; data-start=&quot;1469&quot;&gt;증명 ❌, 의미 ⭕️&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-end=&quot;1499&quot; data-start=&quot;1484&quot; data-ke-size=&quot;size23&quot;&gt;Obsidian 액션&lt;/h3&gt;
&lt;p data-end=&quot;1530&quot; data-start=&quot;1501&quot; data-ke-size=&quot;size16&quot;&gt;이제 &lt;b&gt;Concept 노트를 만들 타이밍&lt;/b&gt;입니다.&lt;/p&gt;
&lt;p data-end=&quot;1550&quot; data-start=&quot;1532&quot; data-ke-size=&quot;size16&quot;&gt;  01_CONCEPTS/에&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1619&quot; data-start=&quot;1552&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1569&quot; data-start=&quot;1552&quot;&gt;Backpropagation&lt;/li&gt;
&lt;li data-end=&quot;1579&quot; data-start=&quot;1570&quot;&gt;Entropy&lt;/li&gt;
&lt;li data-end=&quot;1619&quot; data-start=&quot;1580&quot;&gt;Loss Function&lt;br /&gt;같은 &lt;b&gt;수식과 직접 연결된 개념&lt;/b&gt; 생성&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;1634&quot; data-start=&quot;1621&quot; data-ke-size=&quot;size16&quot;&gt;Concept 노트에는:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1664&quot; data-start=&quot;1635&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1644&quot; data-start=&quot;1635&quot;&gt;수식 전체 ❌&lt;/li&gt;
&lt;li data-end=&quot;1664&quot; data-start=&quot;1645&quot;&gt;&amp;ldquo;이 수식이 왜 필요한지&amp;rdquo; ⭕️&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;1687&quot; data-start=&quot;1666&quot; data-ke-size=&quot;size16&quot;&gt;  논문 노트에는 이렇게만 남깁니다:&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;pre id=&quot;code_1767761596848&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;- Loss function은 [[End-to-End Learning]]을 가능하게 함&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;hr data-end=&quot;1758&quot; data-start=&quot;1755&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-end=&quot;1781&quot; data-start=&quot;1760&quot; data-ke-size=&quot;size26&quot;&gt;4️⃣ 4회독: 기존 방법과 비교&lt;/h2&gt;
&lt;h3 data-end=&quot;1795&quot; data-start=&quot;1783&quot; data-ke-size=&quot;size23&quot;&gt;이 단계의 목적&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1831&quot; data-start=&quot;1796&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1813&quot; data-start=&quot;1796&quot;&gt;이 논문의 &lt;b&gt;위치 파악&lt;/b&gt;&lt;/li&gt;
&lt;li data-end=&quot;1831&quot; data-start=&quot;1814&quot;&gt;&amp;ldquo;그래서 뭐가 달라졌는데?&amp;rdquo;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-end=&quot;1848&quot; data-start=&quot;1833&quot; data-ke-size=&quot;size23&quot;&gt;Obsidian 액션&lt;/h3&gt;
&lt;p data-end=&quot;1872&quot; data-start=&quot;1850&quot; data-ke-size=&quot;size16&quot;&gt;  논문 노트에 &lt;b&gt;비교 섹션 추가&lt;/b&gt;&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;pre id=&quot;code_1767761619331&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;## 기존 방법과의 차이
- 기존: [[Pipeline]] 기반
- 제안: [[End-to-End Learning]]&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p data-end=&quot;1963&quot; data-start=&quot;1957&quot; data-ke-size=&quot;size16&quot;&gt;  이때:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;2006&quot; data-start=&quot;1964&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;2006&quot; data-start=&quot;1964&quot;&gt;Pipeline 같은 &lt;b&gt;대립 개념&lt;/b&gt;이 자동으로 Concept로 승격됨&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;2049&quot; data-start=&quot;2008&quot; data-ke-size=&quot;size16&quot;&gt;  이 단계부터&lt;br /&gt;Obsidian Graph가 &lt;b&gt;의미를 갖기 시작&lt;/b&gt;&lt;/p&gt;
&lt;hr data-end=&quot;2054&quot; data-start=&quot;2051&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-end=&quot;2078&quot; data-start=&quot;2056&quot; data-ke-size=&quot;size26&quot;&gt;5️⃣ 읽고 나서: A4 1장 요약&lt;/h2&gt;
&lt;p data-end=&quot;2099&quot; data-start=&quot;2080&quot; data-ke-size=&quot;size16&quot;&gt;이 단계가 &lt;b&gt;가장 중요&lt;/b&gt;합니다.&lt;/p&gt;
&lt;h3 data-end=&quot;2114&quot; data-start=&quot;2101&quot; data-ke-size=&quot;size23&quot;&gt;하던 것&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;2151&quot; data-start=&quot;2115&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;2122&quot; data-start=&quot;2115&quot;&gt;문제 정의&lt;/li&gt;
&lt;li data-end=&quot;2132&quot; data-start=&quot;2123&quot;&gt;핵심 아이디어&lt;/li&gt;
&lt;li data-end=&quot;2140&quot; data-start=&quot;2133&quot;&gt;구조 그림&lt;/li&gt;
&lt;li data-end=&quot;2151&quot; data-start=&quot;2141&quot;&gt;활용 방법 생각&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-end=&quot;2178&quot; data-start=&quot;2153&quot; data-ke-size=&quot;size23&quot;&gt;Obsidian에서는 이렇게 분리합니다&lt;/h3&gt;
&lt;h4 data-end=&quot;2212&quot; data-start=&quot;2180&quot; data-ke-size=&quot;size20&quot;&gt;① Summary 노트 (06_SUMMARIES)&lt;/h4&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;pre id=&quot;code_1767761655042&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# Gradient-Based Learning 요약

- 문제 정의
- 핵심 아이디어
- 구조 개념 그림 설명&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-end=&quot;2301&quot; data-start=&quot;2292&quot; data-ke-size=&quot;size16&quot;&gt;  발표/회고용&lt;/p&gt;
&lt;h4 data-end=&quot;2348&quot; data-start=&quot;2303&quot; data-ke-size=&quot;size20&quot;&gt;② Project Seed (04_PROJECTS or Paper 하단)&lt;/h4&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;pre id=&quot;code_1767761662431&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;## 활용 아이디어
- 현대 CNN 구조와 비교
- SSDA에 응용 가능성?&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-end=&quot;2425&quot; data-start=&quot;2409&quot; data-ke-size=&quot;size16&quot;&gt;  &lt;b&gt;생각의 씨앗 보존&lt;/b&gt;&lt;/p&gt;
&lt;hr data-end=&quot;2430&quot; data-start=&quot;2427&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-end=&quot;2448&quot; data-start=&quot;2432&quot; data-ke-size=&quot;size26&quot;&gt;이 프로세스의 핵심 장점&lt;/h2&gt;
&lt;h3 data-end=&quot;2472&quot; data-start=&quot;2450&quot; data-ke-size=&quot;size23&quot;&gt;1️⃣ 읽는 방법을 바꾸지 않는다&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;2491&quot; data-start=&quot;2473&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;2491&quot; data-start=&quot;2473&quot;&gt;선생님 기존 방식 그대로 유지&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-end=&quot;2522&quot; data-start=&quot;2493&quot; data-ke-size=&quot;size23&quot;&gt;2️⃣ Obsidian은 &amp;ldquo;기록 위치&amp;rdquo;만 제공&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;2539&quot; data-start=&quot;2523&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;2539&quot; data-start=&quot;2523&quot;&gt;언제 뭘 써야 하는지 명확&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-end=&quot;2561&quot; data-start=&quot;2541&quot; data-ke-size=&quot;size23&quot;&gt;3️⃣ 회독이 곧 구조가 된다&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;2638&quot; data-start=&quot;2562&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;2575&quot; data-start=&quot;2562&quot;&gt;1회독 &amp;rarr; Paper&lt;/li&gt;
&lt;li data-end=&quot;2593&quot; data-start=&quot;2576&quot;&gt;2~3회독 &amp;rarr; Concept&lt;/li&gt;
&lt;li data-end=&quot;2613&quot; data-start=&quot;2594&quot;&gt;4회독 &amp;rarr; Method / 비교&lt;/li&gt;
&lt;li data-end=&quot;2638&quot; data-start=&quot;2614&quot;&gt;종료 &amp;rarr; Summary / Project&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>배움 - 차근차근 기록하자/[기타] etc ⚫</category>
      <author>직장인 조모씨</author>
      <guid isPermaLink="true">https://minicode.tistory.com/354</guid>
      <comments>https://minicode.tistory.com/354#entry354comment</comments>
      <pubDate>Wed, 7 Jan 2026 13:54:41 +0900</pubDate>
    </item>
    <item>
      <title>[Obsidian] 4. 폴더 의미 구별하기 쉽게 정리하기</title>
      <link>https://minicode.tistory.com/352</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;225&quot; data-origin-height=&quot;225&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/N2pw3/dJMcaihIgxs/Xs8uvRCUD8b1Ppdno8U6L0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/N2pw3/dJMcaihIgxs/Xs8uvRCUD8b1Ppdno8U6L0/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/N2pw3/dJMcaihIgxs/Xs8uvRCUD8b1Ppdno8U6L0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FN2pw3%2FdJMcaihIgxs%2FXs8uvRCUD8b1Ppdno8U6L0%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;225&quot; height=&quot;225&quot; data-origin-width=&quot;225&quot; data-origin-height=&quot;225&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h1 data-end=&quot;178&quot; data-start=&quot;152&quot;&gt;Obsidian 폴더 구조, 과한 걸까?&lt;/h1&gt;
&lt;p data-end=&quot;204&quot; data-start=&quot;179&quot; data-ke-size=&quot;size16&quot;&gt;그리고 각 폴더 README는 이렇게 정리한다&lt;/p&gt;
&lt;p data-end=&quot;257&quot; data-start=&quot;206&quot; data-ke-size=&quot;size16&quot;&gt;Obsidian을 어느 정도 설정하고 폴더를 나누다 보면&lt;br /&gt;거의 반드시 이런 고민이 든다.&lt;/p&gt;
&lt;blockquote data-end=&quot;307&quot; data-start=&quot;259&quot; data-ke-style=&quot;style1&quot;&gt;
&lt;p data-end=&quot;307&quot; data-start=&quot;261&quot; data-ke-size=&quot;size16&quot;&gt;&amp;ldquo;폴더를 너무 많이 나눈 거 아닐까?&amp;rdquo;&lt;br /&gt;&amp;ldquo;이거 괜히 복잡해지는 거 아닌가?&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p data-end=&quot;318&quot; data-start=&quot;309&quot; data-ke-size=&quot;size16&quot;&gt;결론부터 말하면,&lt;/p&gt;
&lt;p data-end=&quot;407&quot; data-start=&quot;320&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;지금 구조는 과한 게 아니라, &amp;lsquo;커질 걸 대비한 여백&amp;rsquo;에 가깝다.&lt;/b&gt;&lt;br /&gt;그리고 이 구조를 오래 유지하게 만드는 핵심이 바로 &lt;b&gt;README 관리&lt;/b&gt;다.&lt;/p&gt;
&lt;p data-end=&quot;417&quot; data-start=&quot;409&quot; data-ke-size=&quot;size16&quot;&gt;이 글에서는&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-end=&quot;485&quot; data-start=&quot;418&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li data-end=&quot;442&quot; data-start=&quot;418&quot;&gt;지금 폴더 구조가 왜 과하지 않은지&lt;/li&gt;
&lt;li data-end=&quot;485&quot; data-start=&quot;443&quot;&gt;각 폴더를 어떻게 설명하고 관리하면 좋은지&lt;br /&gt;를 한 번에 정리해본다.&lt;/li&gt;
&lt;/ol&gt;
&lt;hr data-end=&quot;490&quot; data-start=&quot;487&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-end=&quot;511&quot; data-start=&quot;492&quot; data-ke-size=&quot;size26&quot;&gt;1. 폴더가 많아 보이는 이유&lt;/h2&gt;
&lt;p data-end=&quot;535&quot; data-start=&quot;513&quot; data-ke-size=&quot;size16&quot;&gt;현재 사용하는 구조는 대략 이런 형태다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;634&quot; data-start=&quot;537&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;546&quot; data-start=&quot;537&quot;&gt;INBOX&lt;/li&gt;
&lt;li data-end=&quot;559&quot; data-start=&quot;547&quot;&gt;CONCEPTS&lt;/li&gt;
&lt;li data-end=&quot;570&quot; data-start=&quot;560&quot;&gt;PAPERS&lt;/li&gt;
&lt;li data-end=&quot;582&quot; data-start=&quot;571&quot;&gt;METHODS&lt;/li&gt;
&lt;li data-end=&quot;595&quot; data-start=&quot;583&quot;&gt;PROJECTS&lt;/li&gt;
&lt;li data-end=&quot;611&quot; data-start=&quot;596&quot;&gt;EXPERIMENTS&lt;/li&gt;
&lt;li data-end=&quot;625&quot; data-start=&quot;612&quot;&gt;SUMMARIES&lt;/li&gt;
&lt;li data-end=&quot;634&quot; data-start=&quot;626&quot;&gt;META&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;679&quot; data-start=&quot;636&quot; data-ke-size=&quot;size16&quot;&gt;처음 보면 관리해야 할 게 많아 보인다.&lt;br /&gt;하지만 중요한 사실 하나가 있다.&lt;/p&gt;
&lt;p data-end=&quot;705&quot; data-start=&quot;681&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;이 폴더들을 매일 다 쓰지는 않는다.&lt;/b&gt;&lt;/p&gt;
&lt;p data-end=&quot;713&quot; data-start=&quot;707&quot; data-ke-size=&quot;size16&quot;&gt;실제로는&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;828&quot; data-start=&quot;714&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;743&quot; data-start=&quot;714&quot;&gt;매일 쓰는 폴더: INBOX, CONCEPTS&lt;/li&gt;
&lt;li data-end=&quot;774&quot; data-start=&quot;744&quot;&gt;가끔 쓰는 폴더: PAPERS, PROJECTS&lt;/li&gt;
&lt;li data-end=&quot;828&quot; data-start=&quot;775&quot;&gt;거의 안 여는 폴더: METHODS, EXPERIMENTS, SUMMARIES, META&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;866&quot; data-start=&quot;830&quot; data-ke-size=&quot;size16&quot;&gt;즉,&lt;br /&gt;&lt;b&gt;폴더 수가 많다고 관리 부담이 커지는 건 아니다.&lt;/b&gt;&lt;/p&gt;
&lt;hr data-end=&quot;871&quot; data-start=&quot;868&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-end=&quot;902&quot; data-start=&quot;873&quot; data-ke-size=&quot;size26&quot;&gt;2. 폴더는 &amp;ldquo;지금 채우라고 있는 것&amp;rdquo;이 아니다&lt;/h2&gt;
&lt;p data-end=&quot;941&quot; data-start=&quot;904&quot; data-ke-size=&quot;size16&quot;&gt;이 구조가 부담스럽게 느껴지는 진짜 이유는 보통 이 생각 때문이다.&lt;/p&gt;
&lt;blockquote data-end=&quot;969&quot; data-start=&quot;943&quot; data-ke-style=&quot;style1&quot;&gt;
&lt;p data-end=&quot;969&quot; data-start=&quot;945&quot; data-ke-size=&quot;size16&quot;&gt;&amp;ldquo;이 폴더들, 다 채워야 하는 거 아니야?&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p data-end=&quot;978&quot; data-start=&quot;971&quot; data-ke-size=&quot;size16&quot;&gt;전혀 아니다.&lt;/p&gt;
&lt;p data-end=&quot;985&quot; data-start=&quot;980&quot; data-ke-size=&quot;size16&quot;&gt;폴더는&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1018&quot; data-start=&quot;986&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;997&quot; data-start=&quot;986&quot;&gt;의무가 아니라&lt;/li&gt;
&lt;li data-end=&quot;1018&quot; data-start=&quot;998&quot;&gt;&lt;b&gt;미래를 위한 자리 표시&lt;/b&gt;다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;1051&quot; data-start=&quot;1020&quot; data-ke-size=&quot;size16&quot;&gt;비어 있어도 되고,&lt;br /&gt;아예 안 쓰게 되어도 문제 없다.&lt;/p&gt;
&lt;p data-end=&quot;1107&quot; data-start=&quot;1053&quot; data-ke-size=&quot;size16&quot;&gt;오히려 처음부터 나눠두지 않으면&lt;br /&gt;나중에 노트가 많아졌을 때 다시 분리하는 게 훨씬 힘들어진다.&lt;/p&gt;
&lt;hr data-end=&quot;1112&quot; data-start=&quot;1109&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-end=&quot;1141&quot; data-start=&quot;1114&quot; data-ke-size=&quot;size26&quot;&gt;3. 구조를 망치지 않는 핵심: README&lt;/h2&gt;
&lt;p data-end=&quot;1197&quot; data-start=&quot;1143&quot; data-ke-size=&quot;size16&quot;&gt;문제는 폴더 개수가 아니라&lt;br /&gt;&lt;b&gt;시간이 지나면 &amp;lsquo;왜 이렇게 나눴는지&amp;rsquo;를 잊어버린다는 것&lt;/b&gt;이다.&lt;/p&gt;
&lt;p data-end=&quot;1234&quot; data-start=&quot;1199&quot; data-ke-size=&quot;size16&quot;&gt;그래서 필요한 게 바로&lt;br /&gt;&lt;b&gt;각 폴더 안의 README&lt;/b&gt;다.&lt;/p&gt;
&lt;p data-end=&quot;1250&quot; data-start=&quot;1236&quot; data-ke-size=&quot;size16&quot;&gt;README는 그 폴더의:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1297&quot; data-start=&quot;1252&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1258&quot; data-start=&quot;1252&quot;&gt;목적&lt;/li&gt;
&lt;li data-end=&quot;1270&quot; data-start=&quot;1259&quot;&gt;무엇을 넣는지&lt;/li&gt;
&lt;li data-end=&quot;1285&quot; data-start=&quot;1271&quot;&gt;무엇을 넣지 않는지&lt;/li&gt;
&lt;li data-end=&quot;1297&quot; data-start=&quot;1286&quot;&gt;최소한의 규칙&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;1326&quot; data-start=&quot;1299&quot; data-ke-size=&quot;size16&quot;&gt;을 미래의 나에게 설명해주는 안내판 역할을 한다.&lt;/p&gt;
&lt;hr data-end=&quot;1331&quot; data-start=&quot;1328&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-end=&quot;1358&quot; data-start=&quot;1333&quot; data-ke-size=&quot;size26&quot;&gt;4. README를 두는 가장 좋은 위치&lt;/h2&gt;
&lt;p data-end=&quot;1369&quot; data-start=&quot;1360&quot; data-ke-size=&quot;size16&quot;&gt;정답은 단순하다.&lt;/p&gt;
&lt;p data-end=&quot;1394&quot; data-start=&quot;1371&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;각 폴더 안에 README 하나씩.&lt;/b&gt;&lt;/p&gt;
&lt;p data-end=&quot;1403&quot; data-start=&quot;1396&quot; data-ke-size=&quot;size16&quot;&gt;예를 들면&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1461&quot; data-start=&quot;1404&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1423&quot; data-start=&quot;1404&quot;&gt;CONCEPTS/README&lt;/li&gt;
&lt;li data-end=&quot;1441&quot; data-start=&quot;1424&quot;&gt;PAPERS/README&lt;/li&gt;
&lt;li data-end=&quot;1461&quot; data-start=&quot;1442&quot;&gt;PROJECTS/README&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;1514&quot; data-start=&quot;1463&quot; data-ke-size=&quot;size16&quot;&gt;이렇게 하면&lt;br /&gt;&amp;ldquo;이 폴더 뭐였지?&amp;rdquo;라는 질문에&lt;br /&gt;폴더를 클릭하는 순간 바로 답이 나온다.&lt;/p&gt;
&lt;hr data-end=&quot;1519&quot; data-start=&quot;1516&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-end=&quot;1542&quot; data-start=&quot;1521&quot; data-ke-size=&quot;size26&quot;&gt;5. 각 폴더별 README 예시&lt;/h2&gt;
&lt;p data-end=&quot;1580&quot; data-start=&quot;1544&quot; data-ke-size=&quot;size16&quot;&gt;아래는 그대로 써도 되는, 최소하지만 충분한 README 예시다.&lt;/p&gt;
&lt;hr data-end=&quot;1585&quot; data-start=&quot;1582&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-end=&quot;1596&quot; data-start=&quot;1587&quot; data-ke-size=&quot;size23&quot;&gt;INBOX&lt;/h3&gt;
&lt;p data-end=&quot;1630&quot; data-start=&quot;1598&quot; data-ke-size=&quot;size16&quot;&gt;이 폴더는 정리되지 않은 생각을 임시로 저장하는 공간이다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1675&quot; data-start=&quot;1632&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1649&quot; data-start=&quot;1632&quot;&gt;논문 읽다가 떠오른 생각&lt;/li&gt;
&lt;li data-end=&quot;1675&quot; data-start=&quot;1650&quot;&gt;아직 개념인지 프로젝트인지 애매한 메모&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;1735&quot; data-start=&quot;1677&quot; data-ke-size=&quot;size16&quot;&gt;규칙은 하나다.&lt;br /&gt;&lt;b&gt;어디에 둘지 모르겠으면 무조건 여기.&lt;/b&gt;&lt;br /&gt;그리고 언젠가는 다른 폴더로 옮긴다.&lt;/p&gt;
&lt;hr data-end=&quot;1740&quot; data-start=&quot;1737&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-end=&quot;1754&quot; data-start=&quot;1742&quot; data-ke-size=&quot;size23&quot;&gt;CONCEPTS&lt;/h3&gt;
&lt;p data-end=&quot;1788&quot; data-start=&quot;1756&quot; data-ke-size=&quot;size16&quot;&gt;이 폴더는 논문을 초월하는 핵심 개념을 정리하는 공간이다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1853&quot; data-start=&quot;1790&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1826&quot; data-start=&quot;1790&quot;&gt;Domain, Entropy처럼 여러 논문에 등장하는 개념&lt;/li&gt;
&lt;li data-end=&quot;1853&quot; data-start=&quot;1827&quot;&gt;정의, 왜 중요한지, 다른 개념과의 연결&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;1914&quot; data-start=&quot;1855&quot; data-ke-size=&quot;size16&quot;&gt;여기에는&lt;br /&gt;논문 요약이나 실험 결과를 넣지 않는다.&lt;br /&gt;&lt;b&gt;파일 1개 = 개념 1개&lt;/b&gt;가 기본 규칙이다.&lt;/p&gt;
&lt;hr data-end=&quot;1919&quot; data-start=&quot;1916&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-end=&quot;1931&quot; data-start=&quot;1921&quot; data-ke-size=&quot;size23&quot;&gt;PAPERS&lt;/h3&gt;
&lt;p data-end=&quot;1956&quot; data-start=&quot;1933&quot; data-ke-size=&quot;size16&quot;&gt;이 폴더는 논문 단위로 기록하는 공간이다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;2001&quot; data-start=&quot;1958&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1974&quot; data-start=&quot;1958&quot;&gt;논문 1편당 노트 1개&lt;/li&gt;
&lt;li data-end=&quot;2001&quot; data-start=&quot;1975&quot;&gt;문제의식, 핵심 아이디어, 배운 점 중심&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;2049&quot; data-start=&quot;2003&quot; data-ke-size=&quot;size16&quot;&gt;개념 정의는 여기서 하지 않는다.&lt;br /&gt;필요한 개념은 CONCEPTS로 링크만 건다.&lt;/p&gt;
&lt;hr data-end=&quot;2054&quot; data-start=&quot;2051&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-end=&quot;2067&quot; data-start=&quot;2056&quot; data-ke-size=&quot;size23&quot;&gt;METHODS&lt;/h3&gt;
&lt;p data-end=&quot;2102&quot; data-start=&quot;2069&quot; data-ke-size=&quot;size16&quot;&gt;이 폴더는 여러 논문을 관통하는 방법론을 정리하는 공간이다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;2182&quot; data-start=&quot;2104&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;2128&quot; data-start=&quot;2104&quot;&gt;Entropy Minimization&lt;/li&gt;
&lt;li data-end=&quot;2153&quot; data-start=&quot;2129&quot;&gt;Minimax Optimization&lt;/li&gt;
&lt;li data-end=&quot;2182&quot; data-start=&quot;2154&quot;&gt;Prototype-based Learning&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;2245&quot; data-start=&quot;2184&quot; data-ke-size=&quot;size16&quot;&gt;특정 논문 하나만 보고 쓰는 내용은 여기 대상이 아니다.&lt;br /&gt;&lt;b&gt;여러 논문을 묶을 수 있을 때만&lt;/b&gt; 사용한다.&lt;/p&gt;
&lt;hr data-end=&quot;2250&quot; data-start=&quot;2247&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-end=&quot;2264&quot; data-start=&quot;2252&quot; data-ke-size=&quot;size23&quot;&gt;PROJECTS&lt;/h3&gt;
&lt;p data-end=&quot;2296&quot; data-start=&quot;2266&quot; data-ke-size=&quot;size16&quot;&gt;이 폴더는 실제로 풀고 싶은 문제를 정리하는 공간이다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;2337&quot; data-start=&quot;2298&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;2309&quot; data-start=&quot;2298&quot;&gt;프로젝트 개요&lt;/li&gt;
&lt;li data-end=&quot;2319&quot; data-start=&quot;2310&quot;&gt;문제 정의&lt;/li&gt;
&lt;li data-end=&quot;2337&quot; data-start=&quot;2320&quot;&gt;적용 가능한 개념과 논문&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;2375&quot; data-start=&quot;2339&quot; data-ke-size=&quot;size16&quot;&gt;이 폴더의 목적은&lt;br /&gt;&lt;b&gt;연구를 현실 문제와 연결하는 것&lt;/b&gt;이다.&lt;/p&gt;
&lt;hr data-end=&quot;2380&quot; data-start=&quot;2377&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-end=&quot;2397&quot; data-start=&quot;2382&quot; data-ke-size=&quot;size23&quot;&gt;EXPERIMENTS&lt;/h3&gt;
&lt;p data-end=&quot;2426&quot; data-start=&quot;2399&quot; data-ke-size=&quot;size16&quot;&gt;이 폴더는 실험과 시도의 기록을 남기는 공간이다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;2456&quot; data-start=&quot;2428&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;2437&quot; data-start=&quot;2428&quot;&gt;실험 설정&lt;/li&gt;
&lt;li data-end=&quot;2446&quot; data-start=&quot;2438&quot;&gt;파라미터&lt;/li&gt;
&lt;li data-end=&quot;2456&quot; data-start=&quot;2447&quot;&gt;실패 원인&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;2497&quot; data-start=&quot;2458&quot; data-ke-size=&quot;size16&quot;&gt;정제된 결론보다&lt;br /&gt;&lt;b&gt;과정과 실패 기록&lt;/b&gt;을 남기는 데 의미가 있다.&lt;/p&gt;
&lt;hr data-end=&quot;2502&quot; data-start=&quot;2499&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-end=&quot;2517&quot; data-start=&quot;2504&quot; data-ke-size=&quot;size23&quot;&gt;SUMMARIES&lt;/h3&gt;
&lt;p data-end=&quot;2543&quot; data-start=&quot;2519&quot; data-ke-size=&quot;size16&quot;&gt;이 폴더는 압축된 지식을 모아두는 공간이다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;2579&quot; data-start=&quot;2545&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;2555&quot; data-start=&quot;2545&quot;&gt;한 장 요약&lt;/li&gt;
&lt;li data-end=&quot;2566&quot; data-start=&quot;2556&quot;&gt;발표용 정리&lt;/li&gt;
&lt;li data-end=&quot;2579&quot; data-start=&quot;2567&quot;&gt;개념 묶음 정리&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;2601&quot; data-start=&quot;2581&quot; data-ke-size=&quot;size16&quot;&gt;이미 한 번 정리된 내용만 들어온다.&lt;/p&gt;
&lt;hr data-end=&quot;2606&quot; data-start=&quot;2603&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-end=&quot;2616&quot; data-start=&quot;2608&quot; data-ke-size=&quot;size23&quot;&gt;META&lt;/h3&gt;
&lt;p data-end=&quot;2644&quot; data-start=&quot;2618&quot; data-ke-size=&quot;size16&quot;&gt;이 폴더는 Vault 자체를 관리하는 공간이다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;2677&quot; data-start=&quot;2646&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;2658&quot; data-start=&quot;2646&quot;&gt;전체 구조 설명&lt;/li&gt;
&lt;li data-end=&quot;2669&quot; data-start=&quot;2659&quot;&gt;네이밍 규칙&lt;/li&gt;
&lt;li data-end=&quot;2677&quot; data-start=&quot;2670&quot;&gt;템플릿&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;2695&quot; data-start=&quot;2679&quot; data-ke-size=&quot;size16&quot;&gt;연구 내용은 들어오지 않는다.&lt;/p&gt;
&lt;hr data-end=&quot;2700&quot; data-start=&quot;2697&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-end=&quot;2726&quot; data-start=&quot;2702&quot; data-ke-size=&quot;size26&quot;&gt;6. 구조를 부담 없이 쓰는 최소 규칙&lt;/h2&gt;
&lt;p data-end=&quot;2744&quot; data-start=&quot;2728&quot; data-ke-size=&quot;size16&quot;&gt;이 세 가지만 기억하면 된다.&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-end=&quot;2818&quot; data-start=&quot;2746&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li data-end=&quot;2768&quot; data-start=&quot;2746&quot;&gt;어디 둘지 모르겠으면 INBOX&lt;/li&gt;
&lt;li data-end=&quot;2798&quot; data-start=&quot;2769&quot;&gt;개념은 CONCEPTS, 논문은 PAPERS&lt;/li&gt;
&lt;li data-end=&quot;2818&quot; data-start=&quot;2799&quot;&gt;나머지는 필요할 때만 사용&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-end=&quot;2831&quot; data-start=&quot;2820&quot; data-ke-size=&quot;size16&quot;&gt;이 정도면 충분하다.&lt;/p&gt;
&lt;hr data-end=&quot;2836&quot; data-start=&quot;2833&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-end=&quot;2844&quot; data-start=&quot;2838&quot; data-ke-size=&quot;size26&quot;&gt;마무리&lt;/h2&gt;
&lt;p data-end=&quot;2886&quot; data-start=&quot;2846&quot; data-ke-size=&quot;size16&quot;&gt;Obsidian에서 폴더 구조는&lt;br /&gt;정리를 강요하기 위한 장치가 아니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;2935&quot; data-start=&quot;2888&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;2904&quot; data-start=&quot;2888&quot;&gt;폴더는 &lt;b&gt;여백&lt;/b&gt;이고&lt;/li&gt;
&lt;li data-end=&quot;2935&quot; data-start=&quot;2905&quot;&gt;README는 그 여백을 설명하는 &lt;b&gt;기억&lt;/b&gt;이다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;2974&quot; data-start=&quot;2937&quot; data-ke-size=&quot;size16&quot;&gt;처음부터 완벽할 필요는 없다.&lt;br /&gt;지금은 그냥 쓰기 시작하면 된다.&lt;/p&gt;
&lt;blockquote data-end=&quot;3022&quot; data-start=&quot;2976&quot; data-ke-style=&quot;style1&quot;&gt;
&lt;p data-end=&quot;3022&quot; data-start=&quot;2978&quot; data-ke-size=&quot;size16&quot;&gt;구조는 나중에 다듬을 수 있지만,&lt;br /&gt;기록하지 않은 생각은 돌아오지 않는다.&lt;/p&gt;
&lt;/blockquote&gt;</description>
      <category>배움 - 차근차근 기록하자/[기타] etc ⚫</category>
      <author>직장인 조모씨</author>
      <guid isPermaLink="true">https://minicode.tistory.com/352</guid>
      <comments>https://minicode.tistory.com/352#entry352comment</comments>
      <pubDate>Wed, 7 Jan 2026 11:54:36 +0900</pubDate>
    </item>
    <item>
      <title>[Obsidian] 3. 설치 직후 반드시 할 일</title>
      <link>https://minicode.tistory.com/351</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;225&quot; data-origin-height=&quot;225&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bHbaaf/dJMcagRI2L3/ruKWXjAW3NiAM5iDuE6TKk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bHbaaf/dJMcagRI2L3/ruKWXjAW3NiAM5iDuE6TKk/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bHbaaf/dJMcagRI2L3/ruKWXjAW3NiAM5iDuE6TKk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbHbaaf%2FdJMcagRI2L3%2FruKWXjAW3NiAM5iDuE6TKk%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;225&quot; height=&quot;225&quot; data-origin-width=&quot;225&quot; data-origin-height=&quot;225&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h1 data-end=&quot;163&quot; data-start=&quot;127&quot;&gt;1. Vault 생성하기 (가장 중요)&lt;/h1&gt;
&lt;p data-end=&quot;504&quot; data-start=&quot;430&quot; data-ke-size=&quot;size16&quot;&gt;Obsidian에서 &lt;b&gt;Vault는 작업 공간 설명서가 아니라, 그냥 폴더 하나&lt;/b&gt;다.&lt;br /&gt;모든 노트는 이 Vault 안에 저장된다.&lt;/p&gt;
&lt;p data-end=&quot;526&quot; data-start=&quot;506&quot; data-ke-size=&quot;size16&quot;&gt;Vault 생성 방법은 다음과 같다.&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-end=&quot;681&quot; data-start=&quot;528&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li data-end=&quot;544&quot; data-start=&quot;528&quot;&gt;Obsidian 실행&lt;/li&gt;
&lt;li data-end=&quot;571&quot; data-start=&quot;545&quot;&gt;Create new vault 클릭&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;650&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/tVrd7/dJMcacIzLiz/8kesTVyknhmCZaD1Ycqet0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/tVrd7/dJMcacIzLiz/8kesTVyknhmCZaD1Ycqet0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/tVrd7/dJMcacIzLiz/8kesTVyknhmCZaD1Ycqet0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FtVrd7%2FdJMcacIzLiz%2F8kesTVyknhmCZaD1Ycqet0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;800&quot; height=&quot;650&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;650&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/li&gt;
&lt;li data-end=&quot;635&quot; data-start=&quot;572&quot;&gt;Vault 이름 입력&lt;br /&gt;Research_Vault_AI&lt;br /&gt;(이름은 자유, 나중에 바꿔도 된다)&lt;/li&gt;
&lt;li data-end=&quot;681&quot; data-start=&quot;636&quot;&gt;저장 위치 선택&lt;br /&gt;Documents, D드라이브 등 아무 곳이나 가능&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;650&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/eGKvxt/dJMcacPkvxb/PKwC8NYgKUekkj1U2LOUF0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/eGKvxt/dJMcacPkvxb/PKwC8NYgKUekkj1U2LOUF0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/eGKvxt/dJMcacPkvxb/PKwC8NYgKUekkj1U2LOUF0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FeGKvxt%2FdJMcacPkvxb%2FPKwC8NYgKUekkj1U2LOUF0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;800&quot; height=&quot;650&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;650&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-end=&quot;716&quot; data-start=&quot;683&quot; data-ke-size=&quot;size16&quot;&gt;이 Vault 하나가 앞으로 &lt;b&gt;내 지식 저장소&lt;/b&gt;가 된다.&lt;/p&gt;
&lt;hr data-end=&quot;721&quot; data-start=&quot;718&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-end=&quot;741&quot; data-start=&quot;723&quot; data-ke-size=&quot;size26&quot;&gt;2. 기본 폴더 구조 만들기&lt;/h2&gt;
&lt;p data-end=&quot;797&quot; data-start=&quot;743&quot; data-ke-size=&quot;size16&quot;&gt;Vault를 만들면 내부는 비어 있다.&lt;br /&gt;먼저 &lt;b&gt;생각을 쌓기 위한 최소한의 뼈대&lt;/b&gt;를 만든다.&lt;/p&gt;
&lt;p data-end=&quot;850&quot; data-start=&quot;799&quot; data-ke-size=&quot;size16&quot;&gt;왼쪽 파일 탐색기에서&lt;br /&gt;우클릭 &amp;rarr; New folder 를 눌러 아래 폴더들을 생성한다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1024&quot; data-origin-height=&quot;800&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b0iKFi/dJMcadOa5nh/4EmftBA44xtza1Wdvyl9dK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b0iKFi/dJMcadOa5nh/4EmftBA44xtza1Wdvyl9dK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b0iKFi/dJMcadOa5nh/4EmftBA44xtza1Wdvyl9dK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb0iKFi%2FdJMcadOa5nh%2F4EmftBA44xtza1Wdvyl9dK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1024&quot; height=&quot;800&quot; data-origin-width=&quot;1024&quot; data-origin-height=&quot;800&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-end=&quot;955&quot; data-start=&quot;852&quot; data-ke-size=&quot;size16&quot;&gt;00_INBOX&lt;br /&gt;01_CONCEPTS&lt;br /&gt;02_PAPERS&lt;br /&gt;03_METHODS&lt;br /&gt;04_PROJECTS&lt;br /&gt;05_EXPERIMENTS&lt;br /&gt;06_SUMMARIES&lt;br /&gt;_META&lt;/p&gt;
&lt;p data-end=&quot;974&quot; data-start=&quot;957&quot; data-ke-size=&quot;size16&quot;&gt;각 폴더의 역할은 다음과 같다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1288&quot; data-start=&quot;976&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1020&quot; data-start=&quot;976&quot;&gt;00_INBOX&lt;br /&gt;정리되지 않은 생각, 메모, 아이디어 임시 저장소&lt;/li&gt;
&lt;li data-end=&quot;1066&quot; data-start=&quot;1022&quot;&gt;01_CONCEPTS&lt;br /&gt;Domain, Entropy 같은 개념 정리&lt;/li&gt;
&lt;li data-end=&quot;1110&quot; data-start=&quot;1068&quot;&gt;02_PAPERS&lt;br /&gt;논문 단위 정리 (논문 1편 = 노트 1개)&lt;/li&gt;
&lt;li data-end=&quot;1146&quot; data-start=&quot;1112&quot;&gt;03_METHODS&lt;br /&gt;여러 논문을 관통하는 방법론&lt;/li&gt;
&lt;li data-end=&quot;1184&quot; data-start=&quot;1148&quot;&gt;04_PROJECTS&lt;br /&gt;내 프로젝트, 실제 문제 정리&lt;/li&gt;
&lt;li data-end=&quot;1221&quot; data-start=&quot;1186&quot;&gt;05_EXPERIMENTS&lt;br /&gt;실험 기록, 실패 기록&lt;/li&gt;
&lt;li data-end=&quot;1257&quot; data-start=&quot;1223&quot;&gt;06_SUMMARIES&lt;br /&gt;나중에 꺼내 쓰는 요약본&lt;/li&gt;
&lt;li data-end=&quot;1288&quot; data-start=&quot;1259&quot;&gt;_META&lt;br /&gt;규칙, 템플릿, 관리용 노트&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;1334&quot; data-start=&quot;1290&quot; data-ke-size=&quot;size16&quot;&gt;처음부터 전부 다 쓰지 않아도 된다.&lt;br /&gt;&lt;b&gt;틀만 만들어두는 것이 중요&lt;/b&gt;하다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1189&quot; data-origin-height=&quot;800&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Iw32A/dJMcaaRv8M4/MKHQG5uXBKTjnOr44MAQH1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Iw32A/dJMcaaRv8M4/MKHQG5uXBKTjnOr44MAQH1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Iw32A/dJMcaaRv8M4/MKHQG5uXBKTjnOr44MAQH1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FIw32A%2FdJMcaaRv8M4%2FMKHQG5uXBKTjnOr44MAQH1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1189&quot; height=&quot;800&quot; data-origin-width=&quot;1189&quot; data-origin-height=&quot;800&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;hr data-end=&quot;1339&quot; data-start=&quot;1336&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-end=&quot;1360&quot; data-start=&quot;1341&quot; data-ke-size=&quot;size26&quot;&gt;3. 첫 번째 노트 만들어보기&lt;/h2&gt;
&lt;p data-end=&quot;1386&quot; data-start=&quot;1362&quot; data-ke-size=&quot;size16&quot;&gt;이제 Obsidian의 핵심을 직접 써보자.&lt;/p&gt;
&lt;p data-end=&quot;1421&quot; data-start=&quot;1388&quot; data-ke-size=&quot;size16&quot;&gt;01_CONCEPTS 폴더 안에&lt;br /&gt;새 노트를 하나 만든다.&lt;/p&gt;
&lt;p data-end=&quot;1441&quot; data-start=&quot;1423&quot; data-ke-size=&quot;size16&quot;&gt;파일 이름은 Domain.md&lt;/p&gt;
&lt;p data-end=&quot;1463&quot; data-start=&quot;1443&quot; data-ke-size=&quot;size16&quot;&gt;노트 내용은 아래처럼 간단히 적는다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1189&quot; data-origin-height=&quot;800&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/zIpcZ/dJMcadAEDB7/XPyd97USMzH62aZlA1ok2k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/zIpcZ/dJMcadAEDB7/XPyd97USMzH62aZlA1ok2k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/zIpcZ/dJMcadAEDB7/XPyd97USMzH62aZlA1ok2k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FzIpcZ%2FdJMcadAEDB7%2FXPyd97USMzH62aZlA1ok2k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1189&quot; height=&quot;800&quot; data-origin-width=&quot;1189&quot; data-origin-height=&quot;800&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1767753613939&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# Concept: Domain

## 정의
- 데이터가 생성된 환경 또는 분포 조건

## 왜 중요한가
- 학습 환경과 추론 환경이 다르면 성능 붕괴

## 관련 개념
- [[DomainShift]]
- [[Distribution]]&lt;/code&gt;&lt;/pre&gt;
&lt;p data-end=&quot;1614&quot; data-start=&quot;1605&quot; data-ke-size=&quot;size16&quot;&gt;저장하면 끝이다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1189&quot; data-origin-height=&quot;800&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/mikL2/dJMcab3XigW/eb0CZwSQMhyWho8zjUjHWK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/mikL2/dJMcab3XigW/eb0CZwSQMhyWho8zjUjHWK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/mikL2/dJMcab3XigW/eb0CZwSQMhyWho8zjUjHWK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmikL2%2FdJMcab3XigW%2Feb0CZwSQMhyWho8zjUjHWK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1189&quot; height=&quot;800&quot; data-origin-width=&quot;1189&quot; data-origin-height=&quot;800&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;hr data-end=&quot;1619&quot; data-start=&quot;1616&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-end=&quot;1646&quot; data-start=&quot;1621&quot; data-ke-size=&quot;size26&quot;&gt;4. Obsidian의 핵심 기능: 링크&lt;/h2&gt;
&lt;p data-end=&quot;1683&quot; data-start=&quot;1648&quot; data-ke-size=&quot;size16&quot;&gt;위 노트에서&lt;br /&gt;[[DomainShift]] 를 클릭해보자.&lt;/p&gt;
&lt;p data-end=&quot;1739&quot; data-start=&quot;1685&quot; data-ke-size=&quot;size16&quot;&gt;Create new note를 누르면&lt;br /&gt;자동으로 DomainShift.md 노트가 생성된다.&lt;/p&gt;
&lt;p data-end=&quot;1800&quot; data-start=&quot;1741&quot; data-ke-size=&quot;size16&quot;&gt;Obsidian에서는&lt;br /&gt;&lt;b&gt;노트를 먼저 만들 필요가 없다.&lt;/b&gt;&lt;br /&gt;&lt;b&gt;링크를 만들면 노트가 따라온다.&lt;/b&gt;&lt;/p&gt;
&lt;p data-end=&quot;1829&quot; data-start=&quot;1802&quot; data-ke-size=&quot;size16&quot;&gt;이게 Obsidian이 &amp;ldquo;지식 그래프&amp;rdquo;인 이유다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1189&quot; data-origin-height=&quot;800&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bCa2y0/dJMcaiWhpua/v6Z1ua8Hf3xC46Zeebv4D1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bCa2y0/dJMcaiWhpua/v6Z1ua8Hf3xC46Zeebv4D1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bCa2y0/dJMcaiWhpua/v6Z1ua8Hf3xC46Zeebv4D1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbCa2y0%2FdJMcaiWhpua%2Fv6Z1ua8Hf3xC46Zeebv4D1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1189&quot; height=&quot;800&quot; data-origin-width=&quot;1189&quot; data-origin-height=&quot;800&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;hr data-end=&quot;1834&quot; data-start=&quot;1831&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-end=&quot;1857&quot; data-start=&quot;1836&quot; data-ke-size=&quot;size26&quot;&gt;5. Graph View 열어보기&lt;/h2&gt;
&lt;p data-end=&quot;1909&quot; data-start=&quot;1859&quot; data-ke-size=&quot;size16&quot;&gt;왼쪽 사이드바에서&lt;br /&gt;점들이 연결된 아이콘을 클릭하면 &lt;b&gt;Graph View&lt;/b&gt;가 열린다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1189&quot; data-origin-height=&quot;800&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/2YvfX/dJMcahJSEtB/O3OcVGWRjhmPD2qWih3Hek/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/2YvfX/dJMcahJSEtB/O3OcVGWRjhmPD2qWih3Hek/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/2YvfX/dJMcahJSEtB/O3OcVGWRjhmPD2qWih3Hek/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F2YvfX%2FdJMcahJSEtB%2FO3OcVGWRjhmPD2qWih3Hek%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1189&quot; height=&quot;800&quot; data-origin-width=&quot;1189&quot; data-origin-height=&quot;800&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-end=&quot;1938&quot; data-start=&quot;1911&quot; data-ke-size=&quot;size16&quot;&gt;지금은&lt;br /&gt;점 몇 개, 선 몇 개만 보일 것이다.&lt;/p&gt;
&lt;p data-end=&quot;1983&quot; data-start=&quot;1940&quot; data-ke-size=&quot;size16&quot;&gt;하지만 개념과 논문이 쌓이면&lt;br /&gt;&lt;b&gt;지식이 신경망처럼 시각화되기 시작한다.&lt;/b&gt;&lt;/p&gt;
&lt;hr data-end=&quot;1988&quot; data-start=&quot;1985&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-end=&quot;2010&quot; data-start=&quot;1990&quot; data-ke-size=&quot;size26&quot;&gt;6. 초보자 필수 설정 (5분)&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1189&quot; data-origin-height=&quot;800&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cTGjve/dJMcajt56LG/PrupkklTeCH0qe8k0ZWj00/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cTGjve/dJMcajt56LG/PrupkklTeCH0qe8k0ZWj00/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cTGjve/dJMcajt56LG/PrupkklTeCH0qe8k0ZWj00/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcTGjve%2FdJMcajt56LG%2FPrupkklTeCH0qe8k0ZWj00%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1189&quot; height=&quot;800&quot; data-origin-width=&quot;1189&quot; data-origin-height=&quot;800&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-end=&quot;2031&quot; data-start=&quot;2012&quot; data-ke-size=&quot;size16&quot;&gt;Settings &amp;rarr; Editor&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;2089&quot; data-start=&quot;2032&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;2061&quot; data-start=&quot;2032&quot;&gt;Readable line length : ON&lt;/li&gt;
&lt;li data-end=&quot;2089&quot; data-start=&quot;2062&quot;&gt;Show line numbers : OFF&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;2109&quot; data-start=&quot;2091&quot; data-ke-size=&quot;size16&quot;&gt;Settings &amp;rarr; Files&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;2176&quot; data-start=&quot;2110&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;2176&quot; data-start=&quot;2110&quot;&gt;Default location for new notes&lt;br /&gt;Same folder as current file&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1189&quot; data-origin-height=&quot;800&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bSVdEy/dJMcahJSEBc/U6IhhThw8f7m5gqhkZMyKK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bSVdEy/dJMcahJSEBc/U6IhhThw8f7m5gqhkZMyKK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bSVdEy/dJMcahJSEBc/U6IhhThw8f7m5gqhkZMyKK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbSVdEy%2FdJMcahJSEBc%2FU6IhhThw8f7m5gqhkZMyKK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1189&quot; height=&quot;800&quot; data-origin-width=&quot;1189&quot; data-origin-height=&quot;800&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-end=&quot;2218&quot; data-start=&quot;2178&quot; data-ke-size=&quot;size16&quot;&gt;이 설정만 해도&lt;br /&gt;새 노트가 엉뚱한 위치에 생기는 일을 막을 수 있다.&lt;/p&gt;
&lt;p data-end=&quot;2218&quot; data-start=&quot;2178&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;2218&quot; data-start=&quot;2178&quot; data-ke-size=&quot;size16&quot;&gt;만약에 새로 생성되는 파일을 특정 폴더에만 저장되게 하고 싶다면 아래처럼 하면 된다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1189&quot; data-origin-height=&quot;800&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dRz4xX/dJMcabQpUD9/u6xBOeFU9dgepcRszGgqS0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dRz4xX/dJMcabQpUD9/u6xBOeFU9dgepcRszGgqS0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dRz4xX/dJMcabQpUD9/u6xBOeFU9dgepcRszGgqS0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdRz4xX%2FdJMcabQpUD9%2Fu6xBOeFU9dgepcRszGgqS0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1189&quot; height=&quot;800&quot; data-origin-width=&quot;1189&quot; data-origin-height=&quot;800&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;hr data-end=&quot;2223&quot; data-start=&quot;2220&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-end=&quot;2248&quot; data-start=&quot;2225&quot; data-ke-size=&quot;size26&quot;&gt;7. 설치 직후 꼭 기억할 것 3가지&lt;/h2&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-end=&quot;2337&quot; data-start=&quot;2250&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li data-end=&quot;2276&quot; data-start=&quot;2250&quot;&gt;처음부터 완벽하게 정리하려 하지 말 것&lt;/li&gt;
&lt;li data-end=&quot;2302&quot; data-start=&quot;2277&quot;&gt;개념은 짧게, 링크 위주로 작성할 것&lt;/li&gt;
&lt;li data-end=&quot;2337&quot; data-start=&quot;2303&quot;&gt;Obsidian은 &amp;ldquo;정리 앱&amp;rdquo;이 아니라 &lt;b&gt;사고 도구&lt;/b&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;hr data-end=&quot;2342&quot; data-start=&quot;2339&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-end=&quot;2354&quot; data-start=&quot;2344&quot; data-ke-size=&quot;size26&quot;&gt;마무리 한 줄&lt;/h2&gt;
&lt;p data-end=&quot;2417&quot; data-start=&quot;2356&quot; data-ke-size=&quot;size16&quot;&gt;Obsidian은 잘 정리하려고 쓰는 도구가 아니라,&lt;br /&gt;&lt;b&gt;생각을 남기다 보면 정리가 만들어지는 도구&lt;/b&gt;다.&lt;/p&gt;</description>
      <category>배움 - 차근차근 기록하자/[기타] etc ⚫</category>
      <author>직장인 조모씨</author>
      <guid isPermaLink="true">https://minicode.tistory.com/351</guid>
      <comments>https://minicode.tistory.com/351#entry351comment</comments>
      <pubDate>Wed, 7 Jan 2026 11:50:00 +0900</pubDate>
    </item>
    <item>
      <title>[Obsidian] 2. 설치 방법</title>
      <link>https://minicode.tistory.com/350</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;225&quot; data-origin-height=&quot;225&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ErBRb/dJMcaaqrvdd/AXZc4DxxeUw7zeWbDfzDJK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ErBRb/dJMcaaqrvdd/AXZc4DxxeUw7zeWbDfzDJK/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ErBRb/dJMcaaqrvdd/AXZc4DxxeUw7zeWbDfzDJK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FErBRb%2FdJMcaaqrvdd%2FAXZc4DxxeUw7zeWbDfzDJK%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;225&quot; height=&quot;225&quot; data-origin-width=&quot;225&quot; data-origin-height=&quot;225&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. 아래 사이트에서 옵시디언 다운로드 후 실행&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://obsidian.md/download&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://obsidian.md/download&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1767753034451&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;Download - Obsidian&quot; data-og-description=&quot;Obsidian is available on all major platforms. Download Obsidian for iOS, Android, macOS, Windows and Linux.&quot; data-og-host=&quot;obsidian.md&quot; data-og-source-url=&quot;https://obsidian.md/download&quot; data-og-url=&quot;https://obsidian.md/download&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/tuiu1/hyZRggoKMZ/Pk3LcfwPSmB7Imdd4yLhaK/img.png?width=1200&amp;amp;height=688&amp;amp;face=0_0_1200_688,https://scrap.kakaocdn.net/dn/b4c253/hyZPO7gGml/YhuGCOlwsh2o9xMeAbX1DK/img.png?width=1200&amp;amp;height=688&amp;amp;face=0_0_1200_688&quot;&gt;&lt;a href=&quot;https://obsidian.md/download&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://obsidian.md/download&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/tuiu1/hyZRggoKMZ/Pk3LcfwPSmB7Imdd4yLhaK/img.png?width=1200&amp;amp;height=688&amp;amp;face=0_0_1200_688,https://scrap.kakaocdn.net/dn/b4c253/hyZPO7gGml/YhuGCOlwsh2o9xMeAbX1DK/img.png?width=1200&amp;amp;height=688&amp;amp;face=0_0_1200_688');&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;Download - Obsidian&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Obsidian is available on all major platforms. Download Obsidian for iOS, Android, macOS, Windows and Linux.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;obsidian.md&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;</description>
      <category>배움 - 차근차근 기록하자/[기타] etc ⚫</category>
      <author>직장인 조모씨</author>
      <guid isPermaLink="true">https://minicode.tistory.com/350</guid>
      <comments>https://minicode.tistory.com/350#entry350comment</comments>
      <pubDate>Wed, 7 Jan 2026 11:32:07 +0900</pubDate>
    </item>
    <item>
      <title>[Obsidian] 1. 설명 및 기본 개념</title>
      <link>https://minicode.tistory.com/349</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;225&quot; data-origin-height=&quot;225&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bPy2hx/dJMcafFicS7/m6Fj2eBovPfYw9x4PLTodk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bPy2hx/dJMcafFicS7/m6Fj2eBovPfYw9x4PLTodk/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bPy2hx/dJMcafFicS7/m6Fj2eBovPfYw9x4PLTodk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbPy2hx%2FdJMcafFicS7%2Fm6Fj2eBovPfYw9x4PLTodk%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;225&quot; height=&quot;225&quot; data-origin-width=&quot;225&quot; data-origin-height=&quot;225&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h1 data-end=&quot;164&quot; data-start=&quot;138&quot;&gt;Obsidian을 한 문장으로 말하면&lt;/h1&gt;
&lt;blockquote data-end=&quot;223&quot; data-start=&quot;166&quot; data-ke-style=&quot;style1&quot;&gt;
&lt;p data-end=&quot;223&quot; data-start=&quot;168&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Obsidian은 &amp;lsquo;파일 기반으로 작동하는, 내 머리를 확장한 위키 + 지식 그래프&amp;rsquo;입니다.&lt;/b&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;280&quot; data-start=&quot;225&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;236&quot; data-start=&quot;225&quot;&gt;웹 서비스 ❌&lt;/li&gt;
&lt;li data-end=&quot;245&quot; data-start=&quot;237&quot;&gt;서버 ❌&lt;/li&gt;
&lt;li data-end=&quot;280&quot; data-start=&quot;246&quot;&gt;내 PC 폴더 안의 &lt;b&gt;.md 텍스트 파일&lt;/b&gt;들만 사용 ⭕&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;286&quot; data-start=&quot;282&quot; data-ke-size=&quot;size16&quot;&gt;그래서:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;316&quot; data-start=&quot;287&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;292&quot; data-start=&quot;287&quot;&gt;가볍고&lt;/li&gt;
&lt;li data-end=&quot;299&quot; data-start=&quot;293&quot;&gt;오래가고&lt;/li&gt;
&lt;li data-end=&quot;316&quot; data-start=&quot;300&quot;&gt;연구자에게 매우 안전합니다&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h1 data-end=&quot;362&quot; data-start=&quot;323&quot;&gt;Obsidian 기본 개념 5가지 (이거만 알면 시작 가능)&lt;/h1&gt;
&lt;h2 data-end=&quot;379&quot; data-start=&quot;364&quot; data-ke-size=&quot;size26&quot;&gt;① Vault (볼트)&lt;/h2&gt;
&lt;h3 data-end=&quot;401&quot; data-start=&quot;381&quot; data-ke-size=&quot;size23&quot;&gt;Vault = 작업 폴더 하나&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;440&quot; data-start=&quot;402&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;440&quot; data-start=&quot;402&quot;&gt;Obsidian은 &lt;b&gt;폴더 하나를 통째로 작업 공간&lt;/b&gt;으로 씁니다&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;444&quot; data-start=&quot;442&quot; data-ke-size=&quot;size16&quot;&gt;예:&lt;/p&gt;
&lt;pre id=&quot;code_1767752959591&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;Research_Vault_AI/&lt;/code&gt;&lt;/pre&gt;
&lt;p data-end=&quot;517&quot; data-start=&quot;473&quot; data-ke-size=&quot;size16&quot;&gt;  우리가 전에 만든 &amp;ldquo;연구자 Vault 구조&amp;rdquo; = 이 Vault 안에 들어감&lt;/p&gt;
&lt;hr data-end=&quot;522&quot; data-start=&quot;519&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-end=&quot;538&quot; data-start=&quot;524&quot; data-ke-size=&quot;size26&quot;&gt;② Note (노트)&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;576&quot; data-start=&quot;540&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;563&quot; data-start=&quot;540&quot;&gt;노트 = 그냥 &lt;b&gt;텍스트 파일 1개&lt;/b&gt;&lt;/li&gt;
&lt;li data-end=&quot;576&quot; data-start=&quot;564&quot;&gt;확장자: .md&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;580&quot; data-start=&quot;578&quot; data-ke-size=&quot;size16&quot;&gt;예:&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;pre id=&quot;code_1767752949238&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;Domain.md
Entropy.md
MME_2019.md&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-end=&quot;642&quot; data-start=&quot;623&quot; data-ke-size=&quot;size16&quot;&gt;  Word 문서처럼 생각하면 됨&lt;/p&gt;
&lt;hr data-end=&quot;647&quot; data-start=&quot;644&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-end=&quot;672&quot; data-start=&quot;649&quot; data-ke-size=&quot;size26&quot;&gt;③ Markdown (겁먹지 마세요)&lt;/h2&gt;
&lt;p data-end=&quot;702&quot; data-start=&quot;674&quot; data-ke-size=&quot;size16&quot;&gt;Markdown = &lt;b&gt;아주 간단한 글쓰기 문법&lt;/b&gt;&lt;/p&gt;
&lt;p data-end=&quot;719&quot; data-start=&quot;704&quot; data-ke-size=&quot;size16&quot;&gt;이것만 알면 충분합니다  &lt;/p&gt;
&lt;div&gt;
&lt;div&gt;
&lt;pre id=&quot;code_1767752916313&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# 제목
## 소제목

- 리스트
- 리스트

[[다른노트]]&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-end=&quot;804&quot; data-start=&quot;765&quot; data-ke-size=&quot;size16&quot;&gt;  Word보다 단순함&lt;br /&gt;  익숙해지면 &lt;b&gt;생각 속도가 빨라짐&lt;/b&gt;&lt;/p&gt;
&lt;hr data-end=&quot;809&quot; data-start=&quot;806&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-end=&quot;833&quot; data-start=&quot;811&quot; data-ke-size=&quot;size26&quot;&gt;④ 링크 (Obsidian의 핵심)&lt;/h2&gt;
&lt;h3 data-end=&quot;857&quot; data-start=&quot;835&quot; data-ke-size=&quot;size23&quot;&gt;[[ ]] &amp;larr; 이게 전부입니다&lt;/h3&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;pre id=&quot;code_1767752975029&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;[[Domain]]
[[Entropy]]&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;932&quot; data-start=&quot;891&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;909&quot; data-start=&quot;891&quot;&gt;없는 노트여도 링크 생성 가능&lt;/li&gt;
&lt;li data-end=&quot;932&quot; data-start=&quot;910&quot;&gt;나중에 클릭하면 바로 새 노트 생성됨&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;954&quot; data-start=&quot;934&quot; data-ke-size=&quot;size16&quot;&gt;  &lt;b&gt;이게 개념 신경망의 시작&lt;/b&gt;&lt;/p&gt;
&lt;hr data-end=&quot;959&quot; data-start=&quot;956&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-end=&quot;986&quot; data-start=&quot;961&quot; data-ke-size=&quot;size26&quot;&gt;⑤ Graph View (옵시디언의 꽃)&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1026&quot; data-start=&quot;988&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1006&quot; data-start=&quot;988&quot;&gt;노트들이 점(dot)으로 보임&lt;/li&gt;
&lt;li data-end=&quot;1026&quot; data-start=&quot;1007&quot;&gt;링크가 선(line)으로 연결됨&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;1053&quot; data-start=&quot;1028&quot; data-ke-size=&quot;size16&quot;&gt;  &amp;ldquo;내가 뭘 많이 생각하고 있는지&amp;rdquo;가 보임&lt;/p&gt;</description>
      <category>배움 - 차근차근 기록하자/[기타] etc ⚫</category>
      <author>직장인 조모씨</author>
      <guid isPermaLink="true">https://minicode.tistory.com/349</guid>
      <comments>https://minicode.tistory.com/349#entry349comment</comments>
      <pubDate>Wed, 7 Jan 2026 11:29:55 +0900</pubDate>
    </item>
    <item>
      <title>[Firebase] 5. 사용자별 앱별 기기 제한 기반 등록 및 초과 시 차단 로직 구현</title>
      <link>https://minicode.tistory.com/345</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;목표&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;앱 실행 시 로그인 후:&lt;br /&gt;Firestore users/{uid}에서 deviceLimits[appId]를 읽어 해당 앱의 최대 허용 기기 수 확인&lt;br /&gt;users/{uid}/devices_{appId}에 등록된 기기 수 확인&lt;br /&gt;제한 이내면 현재 기기를 등록 후 사용 허용&lt;br /&gt;제한&amp;nbsp;초과&amp;nbsp;시&amp;nbsp;로그인&amp;nbsp;차단&amp;nbsp;및&amp;nbsp;안내&amp;nbsp;출력&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1751442291206&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# main_device_register.py

from firebase_config import auth
from firestore_client import db
import getpass
import datetime
import socket
import random
import string

def generate_device_id():
    hostname = socket.gethostname()
    rand_suffix = ''.join(random.choices(string.ascii_uppercase + string.digits, k=5))
    return f&quot;{hostname}_{rand_suffix}&quot;

def sign_in_and_register_device(app_id):
    email = input(&quot;로그인 이메일: &quot;)
    password = getpass.getpass(&quot;로그인 비밀번호: &quot;)

    try:
        user = auth.sign_in_with_email_and_password(email, password)
        print(&quot;✅ 로그인 성공:&quot;, user['email'])

        id_token = user['idToken']
        account_info = auth.get_account_info(id_token)
        uid = account_info['users'][0]['localId']

        user_ref = db.collection(&quot;users&quot;).document(uid)
        user_doc = user_ref.get()
        if not user_doc.exists:
            print(&quot;❌ Firestore에 사용자 정보가 없습니다.&quot;)
            return

        user_data = user_doc.to_dict()
        device_limits = user_data.get(&quot;deviceLimits&quot;, {})
        max_devices = device_limits.get(app_id, 1)

        devices_ref = user_ref.collection(f&quot;devices_{app_id}&quot;)
        devices = devices_ref.stream()
        devices_list = [d.id for d in devices]
        device_count = len(devices_list)

        print(f&quot;  현재 {app_id} 등록 기기 수: {device_count}/{max_devices}&quot;)

        device_id = generate_device_id()

        if device_id in devices_list:
            print(f&quot;✅ 현재 기기({device_id})는 이미 등록되어 있어 사용 가능.&quot;)
        elif device_count &amp;lt; max_devices:
            device_name = input(&quot;등록할 기기명을 입력하세요: &quot;).strip()
            now = datetime.datetime.utcnow()
            devices_ref.document(device_id).set({
                &quot;deviceName&quot;: device_name,
                &quot;registeredAt&quot;: now,
                &quot;lastPing&quot;: now
            })
            print(f&quot;✅ 현재 기기({device_id})를 '{device_name}'로 등록 완료, 사용 가능.&quot;)
        else:
            print(&quot;❌ 기기 등록 수가 제한을 초과하여 사용이 차단되었습니다.&quot;)
            print(f&quot;등록된 기기 목록: {devices_list}&quot;)
            print(&quot;앱 내에서 사용하지 않는 기기를 해제한 후 다시 시도해 주세요.&quot;)

    except Exception as e:
        print(&quot;❌ 로그인/기기 등록 실패:&quot;, e)

if __name__ == &quot;__main__&quot;:
    app_id = input(&quot;앱 ID 입력 (예: appA, appB): &quot;).strip()
    sign_in_and_register_device(app_id)&lt;/code&gt;&lt;/pre&gt;</description>
      <author>직장인 조모씨</author>
      <guid isPermaLink="true">https://minicode.tistory.com/345</guid>
      <comments>https://minicode.tistory.com/345#entry345comment</comments>
      <pubDate>Wed, 2 Jul 2025 20:06:39 +0900</pubDate>
    </item>
    <item>
      <title>[Firebase] 4. Python 앱에 Firebase SDK 연동 및 로그인 기능 구현</title>
      <link>https://minicode.tistory.com/344</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dZkgGV/btsO1xVmwi3/raxWOkwhjEqznDP04CZE11/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dZkgGV/btsO1xVmwi3/raxWOkwhjEqznDP04CZE11/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dZkgGV/btsO1xVmwi3/raxWOkwhjEqznDP04CZE11/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdZkgGV%2FbtsO1xVmwi3%2FraxWOkwhjEqznDP04CZE11%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1920&quot; height=&quot;1080&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bPBkCU/btsO1GLUSDM/4OFbUZMBpKInq2bACJzxAK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bPBkCU/btsO1GLUSDM/4OFbUZMBpKInq2bACJzxAK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bPBkCU/btsO1GLUSDM/4OFbUZMBpKInq2bACJzxAK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbPBkCU%2FbtsO1GLUSDM%2F4OFbUZMBpKInq2bACJzxAK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1920&quot; height=&quot;1080&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/MkhGJ/btsO17hOjDn/kNiZkfRoLCt4KyNpTg9Ur0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/MkhGJ/btsO17hOjDn/kNiZkfRoLCt4KyNpTg9Ur0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/MkhGJ/btsO17hOjDn/kNiZkfRoLCt4KyNpTg9Ur0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FMkhGJ%2FbtsO17hOjDn%2FkNiZkfRoLCt4KyNpTg9Ur0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1920&quot; height=&quot;1080&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/RwXvh/btsO0OiY9x2/8xlC6vdlTukFkNRcQqa4Y0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/RwXvh/btsO0OiY9x2/8xlC6vdlTukFkNRcQqa4Y0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/RwXvh/btsO0OiY9x2/8xlC6vdlTukFkNRcQqa4Y0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FRwXvh%2FbtsO0OiY9x2%2F8xlC6vdlTukFkNRcQqa4Y0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1920&quot; height=&quot;1080&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;/figure&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;
&lt;p data-ke-size=&quot;size16&quot;&gt;firebase_config.py&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1386&quot; data-origin-height=&quot;985&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/rZZ47/btsO1TYyt41/NnCqGpKdxdvHsGXEUXE5Gk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/rZZ47/btsO1TYyt41/NnCqGpKdxdvHsGXEUXE5Gk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/rZZ47/btsO1TYyt41/NnCqGpKdxdvHsGXEUXE5Gk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FrZZ47%2FbtsO1TYyt41%2FNnCqGpKdxdvHsGXEUXE5Gk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1386&quot; height=&quot;985&quot; data-origin-width=&quot;1386&quot; data-origin-height=&quot;985&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1386&quot; data-origin-height=&quot;985&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/0IvRD/btsOZUK4xIp/1qqsxzt1tiAVU2gDZuZknK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/0IvRD/btsOZUK4xIp/1qqsxzt1tiAVU2gDZuZknK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/0IvRD/btsOZUK4xIp/1qqsxzt1tiAVU2gDZuZknK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F0IvRD%2FbtsOZUK4xIp%2F1qqsxzt1tiAVU2gDZuZknK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1386&quot; height=&quot;985&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1386&quot; data-origin-height=&quot;985&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;360&quot; data-origin-height=&quot;289&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cCKMVD/btsO0KVcAsw/I9KVvr6PeqDL6LyjkfDhm0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cCKMVD/btsO0KVcAsw/I9KVvr6PeqDL6LyjkfDhm0/img.png&quot; data-alt=&quot;초기 이름을 main-&amp;amp;gt; firebase_config.py로 변경&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cCKMVD/btsO0KVcAsw/I9KVvr6PeqDL6LyjkfDhm0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcCKMVD%2FbtsO0KVcAsw%2FI9KVvr6PeqDL6LyjkfDhm0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;360&quot; height=&quot;289&quot; data-origin-width=&quot;360&quot; data-origin-height=&quot;289&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;초기 이름을 main-&amp;gt; firebase_config.py로 변경&lt;/figcaption&gt;
&lt;/figure&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;
&lt;p data-ke-size=&quot;size16&quot;&gt;main_auth_test.py&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1386&quot; data-origin-height=&quot;985&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/brJMae/btsO0djnfnI/sQRYSIXoFDTpTqT0Und5a1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/brJMae/btsO0djnfnI/sQRYSIXoFDTpTqT0Und5a1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/brJMae/btsO0djnfnI/sQRYSIXoFDTpTqT0Und5a1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbrJMae%2FbtsO0djnfnI%2FsQRYSIXoFDTpTqT0Und5a1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1386&quot; height=&quot;985&quot; data-origin-width=&quot;1386&quot; data-origin-height=&quot;985&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1751440762162&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;from firebase_config import auth
import getpass

def sign_up():
    email = input(&quot;가입할 이메일: &quot;)
    password = getpass.getpass(&quot;가입할 비밀번호 (콘솔에 안 보임): &quot;)
    try:
        user = auth.create_user_with_email_and_password(email, password)
        print(&quot;✅ 회원가입 성공:&quot;, user['email'])
    except Exception as e:
        print(&quot;❌ 회원가입 실패:&quot;, e)

def sign_in():
    email = input(&quot;로그인 이메일: &quot;)
    password = getpass.getpass(&quot;로그인 비밀번호 (콘솔에 안 보임): &quot;)
    try:
        user = auth.sign_in_with_email_and_password(email, password)
        print(&quot;✅ 로그인 성공:&quot;, user['email'])
        print(&quot;ID Token:&quot;, user['idToken'][:40], &quot;...&quot;)  # 확인용 일부 출력
        return user
    except Exception as e:
        print(&quot;❌ 로그인 실패:&quot;, e)
        return None

if __name__ == &quot;__main__&quot;:
    mode = input(&quot;회원가입은 1, 로그인은 2 입력: &quot;)
    if mode == &quot;1&quot;:
        sign_up()
    elif mode == &quot;2&quot;:
        user = sign_in()
    else:
        print(&quot;1 또는 2만 입력하세요.&quot;)&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1386&quot; data-origin-height=&quot;985&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Hhvpz/btsO0WaDwGh/cK33mCGiF9JggT9rbYNme1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Hhvpz/btsO0WaDwGh/cK33mCGiF9JggT9rbYNme1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Hhvpz/btsO0WaDwGh/cK33mCGiF9JggT9rbYNme1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FHhvpz%2FbtsO0WaDwGh%2FcK33mCGiF9JggT9rbYNme1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1386&quot; height=&quot;985&quot; data-origin-width=&quot;1386&quot; data-origin-height=&quot;985&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cajRUM/btsO1IweT2a/MQgjpw9egBkkbEPK5v5qak/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cajRUM/btsO1IweT2a/MQgjpw9egBkkbEPK5v5qak/img.png&quot; data-origin-width=&quot;1386&quot; data-origin-height=&quot;985&quot; data-is-animation=&quot;false&quot; style=&quot;width: 43.667%; margin-right: 10px;&quot; data-widthpercent=&quot;44.18&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cajRUM/btsO1IweT2a/MQgjpw9egBkkbEPK5v5qak/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcajRUM%2FbtsO1IweT2a%2FMQgjpw9egBkkbEPK5v5qak%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1386&quot; height=&quot;985&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cpHKMb/btsO1iYPHSf/i69IAN5sVLwIfv2cdVkbK1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cpHKMb/btsO1iYPHSf/i69IAN5sVLwIfv2cdVkbK1/img.png&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot; data-is-animation=&quot;false&quot; style=&quot;width: 55.1702%;&quot; data-widthpercent=&quot;55.82&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cpHKMb/btsO1iYPHSf/i69IAN5sVLwIfv2cdVkbK1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcpHKMb%2FbtsO1iYPHSf%2Fi69IAN5sVLwIfv2cdVkbK1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1920&quot; height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
  &lt;figcaption&gt;오류나면 Authentication 로그인 방법 확인. 필자는 제공업체 선택이 안되어있었음&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1386&quot; data-origin-height=&quot;985&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bs2a9R/btsO1IQxjiW/6UTeB3iVLNUVkciPcyqxn1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bs2a9R/btsO1IQxjiW/6UTeB3iVLNUVkciPcyqxn1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bs2a9R/btsO1IQxjiW/6UTeB3iVLNUVkciPcyqxn1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbs2a9R%2FbtsO1IQxjiW%2F6UTeB3iVLNUVkciPcyqxn1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1386&quot; height=&quot;985&quot; data-origin-width=&quot;1386&quot; data-origin-height=&quot;985&quot;/&gt;&lt;/span&gt;&lt;/figure&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;
&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;Firestore에 로그인 사용자 정보 저장(users/{uid})&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1386&quot; data-origin-height=&quot;985&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/czRi3n/btsO2nx438V/ufGfe90na9WfqMVQTYGUhK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/czRi3n/btsO2nx438V/ufGfe90na9WfqMVQTYGUhK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/czRi3n/btsO2nx438V/ufGfe90na9WfqMVQTYGUhK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FczRi3n%2FbtsO2nx438V%2FufGfe90na9WfqMVQTYGUhK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1386&quot; height=&quot;985&quot; data-origin-width=&quot;1386&quot; data-origin-height=&quot;985&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cFssg0/btsO2dibOHI/nO5kEl7yPpkKMIH2jh7S21/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cFssg0/btsO2dibOHI/nO5kEl7yPpkKMIH2jh7S21/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cFssg0/btsO2dibOHI/nO5kEl7yPpkKMIH2jh7S21/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcFssg0%2FbtsO2dibOHI%2FnO5kEl7yPpkKMIH2jh7S21%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1920&quot; height=&quot;1080&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c5F5z3/btsO0Kn6c37/eoCpcQsT8Qg7KTWF68DdE0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c5F5z3/btsO0Kn6c37/eoCpcQsT8Qg7KTWF68DdE0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c5F5z3/btsO0Kn6c37/eoCpcQsT8Qg7KTWF68DdE0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc5F5z3%2FbtsO0Kn6c37%2FeoCpcQsT8Qg7KTWF68DdE0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1920&quot; height=&quot;1080&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b6BhJF/btsO0vdzvt3/1WIa1DrOL4aKqGzxG5GWLK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b6BhJF/btsO0vdzvt3/1WIa1DrOL4aKqGzxG5GWLK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b6BhJF/btsO0vdzvt3/1WIa1DrOL4aKqGzxG5GWLK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb6BhJF%2FbtsO0vdzvt3%2F1WIa1DrOL4aKqGzxG5GWLK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1920&quot; height=&quot;1080&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다운받은 파일명 변경: serviceAccountKey.json&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;479&quot; data-origin-height=&quot;213&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/btAtNq/btsO2po8bS5/dUnoKpcppG4SpXjkcOThek/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/btAtNq/btsO2po8bS5/dUnoKpcppG4SpXjkcOThek/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/btAtNq/btsO2po8bS5/dUnoKpcppG4SpXjkcOThek/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbtAtNq%2FbtsO2po8bS5%2FdUnoKpcppG4SpXjkcOThek%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;479&quot; height=&quot;213&quot; data-origin-width=&quot;479&quot; data-origin-height=&quot;213&quot;/&gt;&lt;/span&gt;&lt;/figure&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;&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;&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;firestore_client.py&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1386&quot; data-origin-height=&quot;985&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bUt5cM/btsO2ye5v3v/n6kv3Pn3KGNEm0eSCo7xOK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bUt5cM/btsO2ye5v3v/n6kv3Pn3KGNEm0eSCo7xOK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bUt5cM/btsO2ye5v3v/n6kv3Pn3KGNEm0eSCo7xOK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbUt5cM%2FbtsO2ye5v3v%2Fn6kv3Pn3KGNEm0eSCo7xOK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1386&quot; height=&quot;985&quot; data-origin-width=&quot;1386&quot; data-origin-height=&quot;985&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1751441456186&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# firestore_client.py

import firebase_admin
from firebase_admin import credentials, firestore

# 서비스 계정 키 경로
cred = credentials.Certificate(&quot;serviceAccountKey.json&quot;)

# 앱 초기화 (이미 초기화 되어있으면 예외 방지)
try:
    firebase_admin.initialize_app(cred)
except ValueError:
    pass

# Firestore 클라이언트
db = firestore.client()&lt;/code&gt;&lt;/pre&gt;
&lt;pre id=&quot;code_1751441599936&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# main_auth_test.py 수정

from firebase_config import auth
from firestore_client import db
import getpass
import datetime

def sign_up():
    email = input(&quot;가입할 이메일: &quot;)
    password = getpass.getpass(&quot;가입할 비밀번호: &quot;)
    try:
        user = auth.create_user_with_email_and_password(email, password)
        print(&quot;✅ 회원가입 성공:&quot;, user['email'])
    except Exception as e:
        print(&quot;❌ 회원가입 실패:&quot;, e)

def sign_in():
    email = input(&quot;로그인 이메일: &quot;)
    password = getpass.getpass(&quot;로그인 비밀번호: &quot;)
    try:
        user = auth.sign_in_with_email_and_password(email, password)
        print(&quot;✅ 로그인 성공:&quot;, user['email'])

        # JWT에서 UID 추출
        id_token = user['idToken']
        account_info = auth.get_account_info(id_token)
        uid = account_info['users'][0]['localId']

        # Firestore에 사용자 정보 저장
        user_ref = db.collection(&quot;users&quot;).document(uid)
        now = datetime.datetime.utcnow()
        user_doc = user_ref.get()
        if user_doc.exists:
            # 기존 유저: lastLogin 업데이트
            user_ref.update({
                &quot;lastLogin&quot;: now
            })
            print(&quot;  기존 사용자 lastLogin 업데이트 완료&quot;)
        else:
            # 신규 유저: 정보 등록
            user_ref.set({
                &quot;email&quot;: email,
                &quot;createdAt&quot;: now,
                &quot;lastLogin&quot;: now
            })
            print(&quot;  신규 사용자 정보 Firestore 등록 완료&quot;)

        return user

    except Exception as e:
        print(&quot;❌ 로그인 실패:&quot;, e)
        return None

if __name__ == &quot;__main__&quot;:
    mode = input(&quot;회원가입은 1, 로그인은 2 입력: &quot;)
    if mode == &quot;1&quot;:
        sign_up()
    elif mode == &quot;2&quot;:
        user = sign_in()
    else:
        print(&quot;1 또는 2만 입력하세요.&quot;)&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1032&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bjrLUN/btsO2nZenqB/uCVGdoYr3GVJ0A7YcPmvgK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bjrLUN/btsO2nZenqB/uCVGdoYr3GVJ0A7YcPmvgK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bjrLUN/btsO2nZenqB/uCVGdoYr3GVJ0A7YcPmvgK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbjrLUN%2FbtsO2nZenqB%2FuCVGdoYr3GVJ0A7YcPmvgK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1920&quot; height=&quot;1032&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1032&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/06Bja/btsO0kisr6W/jsez19zLGUmDD27fGLN4GK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/06Bja/btsO0kisr6W/jsez19zLGUmDD27fGLN4GK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/06Bja/btsO0kisr6W/jsez19zLGUmDD27fGLN4GK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F06Bja%2FbtsO0kisr6W%2Fjsez19zLGUmDD27fGLN4GK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1920&quot; height=&quot;1080&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bOAdkw/btsO0C4c4Eo/vjNCr8Pi4VV4iAE39lTP81/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bOAdkw/btsO0C4c4Eo/vjNCr8Pi4VV4iAE39lTP81/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bOAdkw/btsO0C4c4Eo/vjNCr8Pi4VV4iAE39lTP81/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbOAdkw%2FbtsO0C4c4Eo%2FvjNCr8Pi4VV4iAE39lTP81%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1920&quot; height=&quot;1080&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <author>직장인 조모씨</author>
      <guid isPermaLink="true">https://minicode.tistory.com/344</guid>
      <comments>https://minicode.tistory.com/344#entry344comment</comments>
      <pubDate>Wed, 2 Jul 2025 16:42:12 +0900</pubDate>
    </item>
    <item>
      <title>[Firebase] 3. Firestore 활성화</title>
      <link>https://minicode.tistory.com/343</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/crGhwU/btsO0BKXJku/nrmgOgjrRLnLon6m3SrHkk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/crGhwU/btsO0BKXJku/nrmgOgjrRLnLon6m3SrHkk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/crGhwU/btsO0BKXJku/nrmgOgjrRLnLon6m3SrHkk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcrGhwU%2FbtsO0BKXJku%2FnrmgOgjrRLnLon6m3SrHkk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1920&quot; height=&quot;1080&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cQgqoH/btsO2qVO2X3/9aXkT4qcqK01AXsXqdn3mK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cQgqoH/btsO2qVO2X3/9aXkT4qcqK01AXsXqdn3mK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cQgqoH/btsO2qVO2X3/9aXkT4qcqK01AXsXqdn3mK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcQgqoH%2FbtsO2qVO2X3%2F9aXkT4qcqK01AXsXqdn3mK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1920&quot; height=&quot;1080&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/sogQF/btsO2FkFemG/kTAhvfKUXyk7BkRYHrVKg1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/sogQF/btsO2FkFemG/kTAhvfKUXyk7BkRYHrVKg1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/sogQF/btsO2FkFemG/kTAhvfKUXyk7BkRYHrVKg1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FsogQF%2FbtsO2FkFemG%2FkTAhvfKUXyk7BkRYHrVKg1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1920&quot; height=&quot;1080&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cCNQEO/btsO2lNC68m/x15cBLhQPRWSymQGXvfpe1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cCNQEO/btsO2lNC68m/x15cBLhQPRWSymQGXvfpe1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cCNQEO/btsO2lNC68m/x15cBLhQPRWSymQGXvfpe1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcCNQEO%2FbtsO2lNC68m%2Fx15cBLhQPRWSymQGXvfpe1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1920&quot; height=&quot;1080&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Cv1g8/btsO1GZttqq/tOIYYGfrCJKthCknAzWKhK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Cv1g8/btsO1GZttqq/tOIYYGfrCJKthCknAzWKhK/img.png&quot; data-alt=&quot;만들기 누르면 해당 화면이 뜸&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Cv1g8/btsO1GZttqq/tOIYYGfrCJKthCknAzWKhK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FCv1g8%2FbtsO1GZttqq%2FtOIYYGfrCJKthCknAzWKhK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1920&quot; height=&quot;1080&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;만들기 누르면 해당 화면이 뜸&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <author>직장인 조모씨</author>
      <guid isPermaLink="true">https://minicode.tistory.com/343</guid>
      <comments>https://minicode.tistory.com/343#entry343comment</comments>
      <pubDate>Wed, 2 Jul 2025 16:08:11 +0900</pubDate>
    </item>
    <item>
      <title>[Firebase] 2. Firebase Auth 활성화 (이메일/비밀번호)</title>
      <link>https://minicode.tistory.com/342</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bcYHM9/btsO1aszo5V/g4PjHcG5gYqSBilvgliCI1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bcYHM9/btsO1aszo5V/g4PjHcG5gYqSBilvgliCI1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bcYHM9/btsO1aszo5V/g4PjHcG5gYqSBilvgliCI1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbcYHM9%2FbtsO1aszo5V%2Fg4PjHcG5gYqSBilvgliCI1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1920&quot; height=&quot;1080&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bUSktk/btsO1GE9rPE/qARqIGrY8dEHcb4BKpswXk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bUSktk/btsO1GE9rPE/qARqIGrY8dEHcb4BKpswXk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bUSktk/btsO1GE9rPE/qARqIGrY8dEHcb4BKpswXk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbUSktk%2FbtsO1GE9rPE%2FqARqIGrY8dEHcb4BKpswXk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1920&quot; height=&quot;1080&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1079&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/F0xSY/btsO0MZO99q/12bvFFA71vrkh94zCbTgQ1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/F0xSY/btsO0MZO99q/12bvFFA71vrkh94zCbTgQ1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/F0xSY/btsO0MZO99q/12bvFFA71vrkh94zCbTgQ1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FF0xSY%2FbtsO0MZO99q%2F12bvFFA71vrkh94zCbTgQ1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1920&quot; height=&quot;1079&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1079&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cjlwW5/btsO2z521Ik/9BHbFOYkAYFyL7IfQp4K51/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cjlwW5/btsO2z521Ik/9BHbFOYkAYFyL7IfQp4K51/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cjlwW5/btsO2z521Ik/9BHbFOYkAYFyL7IfQp4K51/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcjlwW5%2FbtsO2z521Ik%2F9BHbFOYkAYFyL7IfQp4K51%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1920&quot; height=&quot;1080&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <author>직장인 조모씨</author>
      <guid isPermaLink="true">https://minicode.tistory.com/342</guid>
      <comments>https://minicode.tistory.com/342#entry342comment</comments>
      <pubDate>Wed, 2 Jul 2025 16:05:22 +0900</pubDate>
    </item>
    <item>
      <title>[Firebase] 1. Firebase Project 생성</title>
      <link>https://minicode.tistory.com/341</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/7voMa/btsO08Bunh5/ZeZWwXxSr1BB9radWJ6w51/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/7voMa/btsO08Bunh5/ZeZWwXxSr1BB9radWJ6w51/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/7voMa/btsO08Bunh5/ZeZWwXxSr1BB9radWJ6w51/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F7voMa%2FbtsO08Bunh5%2FZeZWwXxSr1BB9radWJ6w51%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1920&quot; height=&quot;1080&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/HjZic/btsO1IXgcPO/YKEf8LjzTzcEH6nhFXrm60/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/HjZic/btsO1IXgcPO/YKEf8LjzTzcEH6nhFXrm60/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/HjZic/btsO1IXgcPO/YKEf8LjzTzcEH6nhFXrm60/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FHjZic%2FbtsO1IXgcPO%2FYKEf8LjzTzcEH6nhFXrm60%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1920&quot; height=&quot;1080&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dcBYVX/btsO0IKt03k/NYaDp8lqsgX2dsqVm3qBmk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dcBYVX/btsO0IKt03k/NYaDp8lqsgX2dsqVm3qBmk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dcBYVX/btsO0IKt03k/NYaDp8lqsgX2dsqVm3qBmk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdcBYVX%2FbtsO0IKt03k%2FNYaDp8lqsgX2dsqVm3qBmk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1920&quot; height=&quot;1080&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/zn8qQ/btsO2bdyfoN/ijJTmtL9Yow1MHoomBABmK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/zn8qQ/btsO2bdyfoN/ijJTmtL9Yow1MHoomBABmK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/zn8qQ/btsO2bdyfoN/ijJTmtL9Yow1MHoomBABmK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fzn8qQ%2FbtsO2bdyfoN%2FijJTmtL9Yow1MHoomBABmK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1920&quot; height=&quot;1080&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/rlxAD/btsO09UIP8P/gUyWOKPsYBBgm8VcPJmj4k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/rlxAD/btsO09UIP8P/gUyWOKPsYBBgm8VcPJmj4k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/rlxAD/btsO09UIP8P/gUyWOKPsYBBgm8VcPJmj4k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FrlxAD%2FbtsO09UIP8P%2FgUyWOKPsYBBgm8VcPJmj4k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1920&quot; height=&quot;1080&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c3spxM/btsO0OccZPX/KeljUQVK3Dm5HIMcIq5Yq1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c3spxM/btsO0OccZPX/KeljUQVK3Dm5HIMcIq5Yq1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c3spxM/btsO0OccZPX/KeljUQVK3Dm5HIMcIq5Yq1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc3spxM%2FbtsO0OccZPX%2FKeljUQVK3Dm5HIMcIq5Yq1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1920&quot; height=&quot;1080&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <author>직장인 조모씨</author>
      <guid isPermaLink="true">https://minicode.tistory.com/341</guid>
      <comments>https://minicode.tistory.com/341#entry341comment</comments>
      <pubDate>Wed, 2 Jul 2025 16:02:55 +0900</pubDate>
    </item>
    <item>
      <title>PyInstaller 빌드 후 settings.json 경로 이슈 해결 기록</title>
      <link>https://minicode.tistory.com/340</link>
      <description>&lt;h2 data-end=&quot;96&quot; data-start=&quot;48&quot; data-ke-size=&quot;size26&quot;&gt;  PyInstaller 빌드 후 settings.json 경로 이슈 해결 기록&lt;/h2&gt;
&lt;h3 data-end=&quot;104&quot; data-start=&quot;98&quot; data-ke-size=&quot;size23&quot;&gt;문제&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;224&quot; data-start=&quot;105&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;180&quot; data-start=&quot;105&quot;&gt;PyInstaller 빌드 후 실행 시 settings.json이 &lt;b&gt;exe 경로가 아닌 _internal 경로에 생성&lt;/b&gt;됨&lt;/li&gt;
&lt;li data-end=&quot;224&quot; data-start=&quot;181&quot;&gt;_internal은 읽기 전용이라 &lt;b&gt;설정 저장/불러오기 작동 안함&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-end=&quot;232&quot; data-start=&quot;226&quot; data-ke-size=&quot;size23&quot;&gt;원인&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;309&quot; data-start=&quot;233&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;309&quot; data-start=&quot;233&quot;&gt;resource_path()에서 sys._MEIPASS를 사용하여 &lt;b&gt;리소스와 유저 데이터 경로를 구분 없이 처리&lt;/b&gt;했기 때문&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-end=&quot;317&quot; data-start=&quot;311&quot; data-ke-size=&quot;size23&quot;&gt;해결&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;472&quot; data-start=&quot;318&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;387&quot; data-start=&quot;318&quot;&gt;&lt;b&gt;리소스(icon, version.txt 등)&lt;/b&gt; &amp;rarr; resource_path()에서 _MEIPASS 경로 사용&lt;/li&gt;
&lt;li data-end=&quot;472&quot; data-start=&quot;388&quot;&gt;&lt;b&gt;유저 데이터(settings.json)&lt;/b&gt; &amp;rarr; settings_path() 함수 추가, sys.executable 기준 exe 경로 사용&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;pre class=&quot;python&quot;&gt;&lt;code&gt;
def resource_path(relative_path):
    &quot;&quot;&quot;
    PyInstaller 환경 및 개발 환경 모두에서 리소스(icon, version.txt) 경로 반환용
    &quot;&quot;&quot;
    if hasattr(sys, '_MEIPASS'):
        return os.path.join(sys._MEIPASS, relative_path)
    return os.path.join(os.path.abspath(&quot;.&quot;), relative_path)

def settings_path():
    &quot;&quot;&quot;
    settings.json 경로: exe 경로(또는 개발 경로)에서 항상 관리되도록
    &quot;&quot;&quot;
    if getattr(sys, 'frozen', False):
        # PyInstaller 실행 중이면 exe의 경로를 사용
        return os.path.join(os.path.dirname(sys.executable), &quot;settings.json&quot;)
    else:
        # 개발 환경이면 현재 경로 사용
        return os.path.join(os.path.abspath(&quot;.&quot;), &quot;settings.json&quot;)

def load_settings():
    path = settings_path()
    if not os.path.exists(path):
        with open(path, 'w', encoding='utf-8') as f:
            json.dump(DEFAULT_SETTINGS, f, ensure_ascii=False, indent=4)
        return DEFAULT_SETTINGS
    with open(path, 'r', encoding='utf-8') as f:
        return json.load(f)

def save_settings(settings):
    path = settings_path()
    with open(path, 'w', encoding='utf-8') as f:
        json.dump(settings, f, ensure_ascii=False, indent=4)&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3 data-end=&quot;709&quot; data-start=&quot;703&quot; data-ke-size=&quot;size23&quot;&gt;결과&lt;/h3&gt;
&lt;p data-end=&quot;808&quot; data-start=&quot;710&quot; data-ke-size=&quot;size16&quot;&gt;✅ 빌드 후 실행 시 &lt;b&gt;settings.json이 exe 경로에만 생성 및 사용&lt;/b&gt;&lt;br /&gt;✅ 설정 저장/불러오기 정상 작동&lt;br /&gt;✅ 개발 환경과 빌드 환경 모두 동일하게 작동&lt;/p&gt;</description>
      <category>배움 - 차근차근 기록하자/[개발] 파이썬  </category>
      <author>직장인 조모씨</author>
      <guid isPermaLink="true">https://minicode.tistory.com/340</guid>
      <comments>https://minicode.tistory.com/340#entry340comment</comments>
      <pubDate>Tue, 1 Jul 2025 13:10:40 +0900</pubDate>
    </item>
    <item>
      <title>티켓링크 20250615</title>
      <link>https://minicode.tistory.com/337</link>
      <description>&lt;p&gt;&lt;figure class=&quot;fileblock&quot; data-ke-align=&quot;alignCenter&quot;&gt;&lt;a href=&quot;https://blog.kakaocdn.net/dn/cVqVBb/btsOAJiFGgN/pMUtDtTO3ehdZAnkGa7nNK/%ED%8B%B0%EC%BC%93%EB%A7%81%ED%81%AC%2020250615.mp4?attach=1&amp;amp;knm=tfile.mp4&quot; class=&quot;&quot;&gt;
    &lt;div class=&quot;image&quot;&gt;&lt;/div&gt;
    &lt;div class=&quot;desc&quot;&gt;&lt;div class=&quot;filename&quot;&gt;&lt;span class=&quot;name&quot;&gt;티켓링크 20250615.mp4&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;size&quot;&gt;17.94MB&lt;/div&gt;
&lt;/div&gt;
  &lt;/a&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <author>직장인 조모씨</author>
      <guid isPermaLink="true">https://minicode.tistory.com/337</guid>
      <comments>https://minicode.tistory.com/337#entry337comment</comments>
      <pubDate>Sun, 15 Jun 2025 12:13:16 +0900</pubDate>
    </item>
    <item>
      <title>아나콘다 설치법 정리</title>
      <link>https://minicode.tistory.com/335</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;499&quot; data-origin-height=&quot;388&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/32i1T/btsN2evcFe1/t1ulgqS4vQHMjcl8bVMa60/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/32i1T/btsN2evcFe1/t1ulgqS4vQHMjcl8bVMa60/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/32i1T/btsN2evcFe1/t1ulgqS4vQHMjcl8bVMa60/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F32i1T%2FbtsN2evcFe1%2Ft1ulgqS4vQHMjcl8bVMa60%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;499&quot; height=&quot;388&quot; data-origin-width=&quot;499&quot; data-origin-height=&quot;388&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;499&quot; data-origin-height=&quot;388&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/UVlGA/btsN0w5tNrK/ikkCmXAU26gCBQeAcKW6a1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/UVlGA/btsN0w5tNrK/ikkCmXAU26gCBQeAcKW6a1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/UVlGA/btsN0w5tNrK/ikkCmXAU26gCBQeAcKW6a1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FUVlGA%2FbtsN0w5tNrK%2FikkCmXAU26gCBQeAcKW6a1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;499&quot; height=&quot;388&quot; data-origin-width=&quot;499&quot; data-origin-height=&quot;388&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;499&quot; data-origin-height=&quot;388&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/buR9rB/btsN1hT1Pcr/Cm6bpBuESCGWZaIIkR35CK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/buR9rB/btsN1hT1Pcr/Cm6bpBuESCGWZaIIkR35CK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/buR9rB/btsN1hT1Pcr/Cm6bpBuESCGWZaIIkR35CK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbuR9rB%2FbtsN1hT1Pcr%2FCm6bpBuESCGWZaIIkR35CK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;499&quot; height=&quot;388&quot; data-origin-width=&quot;499&quot; data-origin-height=&quot;388&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;499&quot; data-origin-height=&quot;388&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/yuNQ6/btsN1aN98CT/SvkPYOkwS5reDoSbEh4hLK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/yuNQ6/btsN1aN98CT/SvkPYOkwS5reDoSbEh4hLK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/yuNQ6/btsN1aN98CT/SvkPYOkwS5reDoSbEh4hLK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FyuNQ6%2FbtsN1aN98CT%2FSvkPYOkwS5reDoSbEh4hLK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;499&quot; height=&quot;388&quot; data-origin-width=&quot;499&quot; data-origin-height=&quot;388&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;499&quot; data-origin-height=&quot;388&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/mPnLd/btsN2f1UyKL/I8pKuIUjH7eOqmrIC8rdR1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/mPnLd/btsN2f1UyKL/I8pKuIUjH7eOqmrIC8rdR1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/mPnLd/btsN2f1UyKL/I8pKuIUjH7eOqmrIC8rdR1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmPnLd%2FbtsN2f1UyKL%2FI8pKuIUjH7eOqmrIC8rdR1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;499&quot; height=&quot;388&quot; data-origin-width=&quot;499&quot; data-origin-height=&quot;388&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;499&quot; data-origin-height=&quot;388&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/OEZiR/btsN12aHei3/4RgBrYvAirSo7vNkfaPnnK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/OEZiR/btsN12aHei3/4RgBrYvAirSo7vNkfaPnnK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/OEZiR/btsN12aHei3/4RgBrYvAirSo7vNkfaPnnK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FOEZiR%2FbtsN12aHei3%2F4RgBrYvAirSo7vNkfaPnnK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;499&quot; height=&quot;388&quot; data-origin-width=&quot;499&quot; data-origin-height=&quot;388&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;499&quot; data-origin-height=&quot;388&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/mQ87H/btsN1hzIeTn/8shMNK2LrZByxNI4bHH3ek/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/mQ87H/btsN1hzIeTn/8shMNK2LrZByxNI4bHH3ek/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/mQ87H/btsN1hzIeTn/8shMNK2LrZByxNI4bHH3ek/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmQ87H%2FbtsN1hzIeTn%2F8shMNK2LrZByxNI4bHH3ek%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;499&quot; height=&quot;388&quot; data-origin-width=&quot;499&quot; data-origin-height=&quot;388&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;499&quot; data-origin-height=&quot;388&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/KcXEI/btsN0PpvVz4/fMvGRZHC2NUGPGoMvG1ax1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/KcXEI/btsN0PpvVz4/fMvGRZHC2NUGPGoMvG1ax1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/KcXEI/btsN0PpvVz4/fMvGRZHC2NUGPGoMvG1ax1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FKcXEI%2FbtsN0PpvVz4%2FfMvGRZHC2NUGPGoMvG1ax1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;499&quot; height=&quot;388&quot; data-origin-width=&quot;499&quot; data-origin-height=&quot;388&quot;/&gt;&lt;/span&gt;&lt;/figure&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;
&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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;527&quot; data-origin-height=&quot;501&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/UBN7C/btsN0Jp28RC/jnLlfMfbBKLkdC8dlk6Rok/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/UBN7C/btsN0Jp28RC/jnLlfMfbBKLkdC8dlk6Rok/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/UBN7C/btsN0Jp28RC/jnLlfMfbBKLkdC8dlk6Rok/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FUBN7C%2FbtsN0Jp28RC%2FjnLlfMfbBKLkdC8dlk6Rok%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;527&quot; height=&quot;501&quot; data-origin-width=&quot;527&quot; data-origin-height=&quot;501&quot;/&gt;&lt;/span&gt;&lt;/figure&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;pycharm 에서 콘다 지정(초기 1회는 새로 생성)&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1000&quot; data-origin-height=&quot;713&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bQ736y/btsN0PKf94M/Nk7xY4fc1gRrhq2zxji48K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bQ736y/btsN0PKf94M/Nk7xY4fc1gRrhq2zxji48K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bQ736y/btsN0PKf94M/Nk7xY4fc1gRrhq2zxji48K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbQ736y%2FbtsN0PKf94M%2FNk7xY4fc1gRrhq2zxji48K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1000&quot; height=&quot;713&quot; data-origin-width=&quot;1000&quot; data-origin-height=&quot;713&quot;/&gt;&lt;/span&gt;&lt;/figure&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;</description>
      <category>배움 - 차근차근 기록하자/[개발] 딥러닝  </category>
      <author>직장인 조모씨</author>
      <guid isPermaLink="true">https://minicode.tistory.com/335</guid>
      <comments>https://minicode.tistory.com/335#entry335comment</comments>
      <pubDate>Fri, 16 May 2025 23:13:13 +0900</pubDate>
    </item>
    <item>
      <title>[Hyper-V] 1. 윈도우 가상머신 기본 제공 Hyper-V 사용법</title>
      <link>https://minicode.tistory.com/333</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://blog.naver.com/yujuit/223237345171&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://blog.naver.com/yujuit/223237345171&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1746750683618&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;윈도우 10 11 가상머신 하이퍼 V(Hyper-V) 설치 및 사용 방법&quot; data-og-description=&quot;최근 회사에서 사용하던 노트북이 꽤 오래되어 데스크톱으로 교체하면서 자연스레 운영체제도 윈도우10에서...&quot; data-og-host=&quot;blog.naver.com&quot; data-og-source-url=&quot;https://blog.naver.com/yujuit/223237345171&quot; data-og-url=&quot;https://blog.naver.com/yujuit/223237345171&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/dY8TxH/hyYPfEfU3B/nMtK4XKbcguar29rOdNrb1/img.png?width=743&amp;amp;height=495&amp;amp;face=0_0_743_495&quot;&gt;&lt;a href=&quot;https://blog.naver.com/yujuit/223237345171&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://blog.naver.com/yujuit/223237345171&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/dY8TxH/hyYPfEfU3B/nMtK4XKbcguar29rOdNrb1/img.png?width=743&amp;amp;height=495&amp;amp;face=0_0_743_495');&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;윈도우 10 11 가상머신 하이퍼 V(Hyper-V) 설치 및 사용 방법&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;최근 회사에서 사용하던 노트북이 꽤 오래되어 데스크톱으로 교체하면서 자연스레 운영체제도 윈도우10에서...&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;blog.naver.com&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>배움 - 차근차근 기록하자/[기타] etc ⚫</category>
      <author>직장인 조모씨</author>
      <guid isPermaLink="true">https://minicode.tistory.com/333</guid>
      <comments>https://minicode.tistory.com/333#entry333comment</comments>
      <pubDate>Fri, 9 May 2025 09:31:41 +0900</pubDate>
    </item>
    <item>
      <title>[엑셀] 여러 이미지 세로 간격을 동일하게 조정하는 스크립트</title>
      <link>https://minicode.tistory.com/332</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;Alt + F11&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;pre id=&quot;code_1745300848182&quot; class=&quot;vbnet&quot; data-ke-language=&quot;vbnet&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;Sub 이미지_세로정렬_간격5()
    Dim ws As Worksheet
    Dim shp As Shape
    Dim pictureShapes() As Shape
    Dim count As Integer
    Dim i As Integer, j As Integer
    Dim temp As Shape
    Dim topPos As Single
    Dim spacing As Single

    Set ws = ActiveSheet
    spacing = 5
    count = 0

    ' 이미지 개수 세고 배열에 저장
    For Each shp In ws.Shapes
        If shp.Type = msoPicture Then
            count = count + 1
            ReDim Preserve pictureShapes(1 To count)
            Set pictureShapes(count) = shp
        End If
    Next shp

    ' Y 좌표 기준으로 버블 정렬
    For i = 1 To count - 1
        For j = i + 1 To count
            If pictureShapes(i).Top &amp;gt; pictureShapes(j).Top Then
                Set temp = pictureShapes(i)
                Set pictureShapes(i) = pictureShapes(j)
                Set pictureShapes(j) = temp
            End If
        Next j
    Next i

    ' 정렬 및 위치 재배치
    topPos = 10
    For i = 1 To count
        With pictureShapes(i)
            .Top = topPos
            .Left = Range(&quot;A1&quot;).Left
            topPos = topPos + .Height + spacing
        End With
    Next i
End Sub&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;472&quot; data-origin-height=&quot;493&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bAPGqi/btsNrtuwJx2/iGGq5gNdb8l1JO9PNwVcvk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bAPGqi/btsNrtuwJx2/iGGq5gNdb8l1JO9PNwVcvk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bAPGqi/btsNrtuwJx2/iGGq5gNdb8l1JO9PNwVcvk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbAPGqi%2FbtsNrtuwJx2%2FiGGq5gNdb8l1JO9PNwVcvk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;472&quot; height=&quot;493&quot; data-origin-width=&quot;472&quot; data-origin-height=&quot;493&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>배움 - 차근차근 기록하자/[정보] 업무  </category>
      <author>직장인 조모씨</author>
      <guid isPermaLink="true">https://minicode.tistory.com/332</guid>
      <comments>https://minicode.tistory.com/332#entry332comment</comments>
      <pubDate>Tue, 22 Apr 2025 14:48:50 +0900</pubDate>
    </item>
    <item>
      <title>여러 이미지를 엑셀에 복사하는 툴, Image2Excel 소개 및 다운로드</title>
      <link>https://minicode.tistory.com/331</link>
      <description>&lt;h2 data-end=&quot;180&quot; data-start=&quot;130&quot; data-ke-size=&quot;size26&quot;&gt; ️ 이미지 &amp;rarr; 엑셀 자동 복사 툴, &lt;b&gt;Image2Excel&lt;/b&gt; 소개 및 다운로드&lt;/h2&gt;
&lt;p data-end=&quot;319&quot; data-start=&quot;182&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Image2Excel&lt;/b&gt;은 데이터 과학자나 리서처가 자주 마주치는 이미지 결과물 정리 문제를 깔끔하게 해결해주는 윈도우용 데스크탑 프로그램입니다. 이미지를 한 번에 불러와 Excel에 손쉽게 복사하고 정렬할 수 있는 기능을 제공합니다.&lt;/p&gt;
&lt;hr data-end=&quot;324&quot; data-start=&quot;321&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-end=&quot;343&quot; data-start=&quot;326&quot; data-ke-size=&quot;size23&quot;&gt;  프로그램 주요 기능&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;464&quot; data-start=&quot;345&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;371&quot; data-start=&quot;345&quot;&gt;  이미지 폴더 또는 개별 이미지 불러오기&lt;/li&gt;
&lt;li data-end=&quot;395&quot; data-start=&quot;372&quot;&gt;  미리보기 + 가로/세로 정렬 선택&lt;/li&gt;
&lt;li data-end=&quot;429&quot; data-start=&quot;396&quot;&gt;  이미지 너비 조절 및 Excel 셀 크기 예측 제공&lt;/li&gt;
&lt;li data-end=&quot;464&quot; data-start=&quot;430&quot;&gt;✅ 복사(Ctrl+C) &amp;rarr; Excel에 붙여넣으면 그대로!&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-end=&quot;469&quot; data-start=&quot;466&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-end=&quot;502&quot; data-start=&quot;471&quot; data-ke-size=&quot;size23&quot;&gt; 사용 가이드&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;앱 실행 화면&lt;/b&gt;&lt;br /&gt;&amp;rarr; 앱이 켜졌을 때 전체 인터페이스 모습&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;802&quot; data-origin-height=&quot;632&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/d33YQf/btsNl6qVPev/z4gMChv9D8BnSmcawdXxTk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/d33YQf/btsNl6qVPev/z4gMChv9D8BnSmcawdXxTk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/d33YQf/btsNl6qVPev/z4gMChv9D8BnSmcawdXxTk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fd33YQf%2FbtsNl6qVPev%2Fz4gMChv9D8BnSmcawdXxTk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;802&quot; height=&quot;632&quot; data-origin-width=&quot;802&quot; data-origin-height=&quot;632&quot;/&gt;&lt;/span&gt;&lt;/figure&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;br /&gt;&amp;rarr; 여러 이미지가 썸네일로 나열된 모습&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;802&quot; data-origin-height=&quot;632&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/GM5BD/btsNkOxJUkO/nQD9V8doywV8FkGqrzrWV1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/GM5BD/btsNkOxJUkO/nQD9V8doywV8FkGqrzrWV1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/GM5BD/btsNkOxJUkO/nQD9V8doywV8FkGqrzrWV1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FGM5BD%2FbtsNkOxJUkO%2FnQD9V8doywV8FkGqrzrWV1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;802&quot; height=&quot;632&quot; data-origin-width=&quot;802&quot; data-origin-height=&quot;632&quot;/&gt;&lt;/span&gt;&lt;/figure&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;br /&gt;&amp;rarr; 정렬 방식에 따라 이미지 배치가 달라짐&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;802&quot; data-origin-height=&quot;632&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ZTS1d/btsNldjM9Ej/QgkLBVJhTZaO9gG3WAIAf1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ZTS1d/btsNldjM9Ej/QgkLBVJhTZaO9gG3WAIAf1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ZTS1d/btsNldjM9Ej/QgkLBVJhTZaO9gG3WAIAf1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FZTS1d%2FbtsNldjM9Ej%2FQgkLBVJhTZaO9gG3WAIAf1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;802&quot; height=&quot;632&quot; data-origin-width=&quot;802&quot; data-origin-height=&quot;632&quot;/&gt;&lt;/span&gt;&lt;/figure&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;Excel 셀 크기 예측 표시&lt;/b&gt;&lt;br /&gt;&amp;rarr; 너비에 따라 계산되는 예상 셀 크기 텍스트(1:1 비율 이미지 기준)&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;338&quot; data-origin-height=&quot;215&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/JiHx6/btsNlLg2aQW/UKyCEn8pRTCkm6ALbYCGyK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/JiHx6/btsNlLg2aQW/UKyCEn8pRTCkm6ALbYCGyK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/JiHx6/btsNlLg2aQW/UKyCEn8pRTCkm6ALbYCGyK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FJiHx6%2FbtsNlLg2aQW%2FUKyCEn8pRTCkm6ALbYCGyK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;338&quot; height=&quot;215&quot; data-origin-width=&quot;338&quot; data-origin-height=&quot;215&quot;/&gt;&lt;/span&gt;&lt;/figure&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;Excel에 붙여넣기 된 화면 (선택 사항)&lt;/b&gt;&lt;br /&gt;&amp;rarr; 복사 후 Excel에 Ctrl+V 한 결과 모습&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dJlrVo/btsNmk36nHe/cXYVnVbZMco9dObQ5j2Vk1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dJlrVo/btsNmk36nHe/cXYVnVbZMco9dObQ5j2Vk1/img.png&quot; data-origin-width=&quot;960&quot; data-origin-height=&quot;1032&quot; data-is-animation=&quot;false&quot; style=&quot;width: 49.4186%; margin-right: 10px;&quot; data-widthpercent=&quot;50&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dJlrVo/btsNmk36nHe/cXYVnVbZMco9dObQ5j2Vk1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdJlrVo%2FbtsNmk36nHe%2FcXYVnVbZMco9dObQ5j2Vk1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;960&quot; height=&quot;1032&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c77iNd/btsNh1rsj99/ZsBxxa2Lof3BOnCPNmjs31/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c77iNd/btsNh1rsj99/ZsBxxa2Lof3BOnCPNmjs31/img.png&quot; data-origin-width=&quot;960&quot; data-origin-height=&quot;1032&quot; data-is-animation=&quot;false&quot; style=&quot;width: 49.4186%;&quot; data-widthpercent=&quot;50&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c77iNd/btsNh1rsj99/ZsBxxa2Lof3BOnCPNmjs31/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc77iNd%2FbtsNh1rsj99%2FZsBxxa2Lof3BOnCPNmjs31%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;960&quot; height=&quot;1032&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
  &lt;figcaption&gt;좌: 세로 나열 모드, 우: 가로 나열 모드&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-end=&quot;978&quot; data-start=&quot;975&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-end=&quot;994&quot; data-start=&quot;980&quot; data-ke-size=&quot;size23&quot;&gt;  다운로드 안내&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1172&quot; data-start=&quot;996&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1018&quot; data-start=&quot;996&quot;&gt;  대상: Windows 10 이상&lt;/li&gt;
&lt;li data-end=&quot;1054&quot; data-start=&quot;1019&quot;&gt;  설치 방식: 설치 불필요 (단일 실행파일 .exe)&lt;/li&gt;
&lt;li data-end=&quot;1172&quot; data-start=&quot;1055&quot;&gt;  &lt;a href=&quot;https://drive.google.com/file/d/16CbdIuqoMZw4hdNmqSMX8As5WtbPJ80f/view?usp=sharing&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-end=&quot;1133&quot; data-start=&quot;1060&quot;&gt;Image2Excel 다운로드 (버전 1.0)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-end=&quot;1177&quot; data-start=&quot;1174&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-end=&quot;1198&quot; data-start=&quot;1179&quot; data-ke-size=&quot;size23&quot;&gt;  설치 없이 바로 실행!&lt;/h3&gt;
&lt;p data-end=&quot;1287&quot; data-start=&quot;1200&quot; data-ke-size=&quot;size16&quot;&gt;.exe 파일을 더블 클릭하면 바로 실행되며, 콘솔 창 없이 깔끔한 GUI만 표시됩니다.&lt;br /&gt;아이콘도 설정되어 있어 바탕화면 바로가기로 사용해도 좋아요.&lt;/p&gt;
&lt;hr data-end=&quot;1292&quot; data-start=&quot;1289&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-end=&quot;1307&quot; data-start=&quot;1294&quot; data-ke-size=&quot;size23&quot;&gt; ️ 기술 스택&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1390&quot; data-start=&quot;1309&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1323&quot; data-start=&quot;1309&quot;&gt;Python 3.10+&lt;/li&gt;
&lt;li data-end=&quot;1343&quot; data-start=&quot;1324&quot;&gt;PyQt5 (GUI 프레임워크)&lt;/li&gt;
&lt;li data-end=&quot;1362&quot; data-start=&quot;1344&quot;&gt;HTML 기반 이미지 미리보기&lt;/li&gt;
&lt;li data-end=&quot;1390&quot; data-start=&quot;1363&quot;&gt;PyInstaller로 단일 .exe 생성&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-end=&quot;1395&quot; data-start=&quot;1392&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-end=&quot;1426&quot; data-start=&quot;1397&quot; data-ke-size=&quot;size23&quot;&gt; &amp;zwj;♂️ 개발자가 직접 사용하면서 만든 이유&lt;/h3&gt;
&lt;blockquote data-end=&quot;1527&quot; data-start=&quot;1428&quot; data-ke-style=&quot;style1&quot;&gt;
&lt;p data-end=&quot;1527&quot; data-start=&quot;1430&quot; data-ke-size=&quot;size16&quot;&gt;이미지 기반 실험 데이터를 매번 수작업으로 붙여넣는 게 너무 귀찮았고,&lt;br /&gt;뷰어도 불편해서 직접 만들게 되었습니다.&lt;br /&gt;기능은 심플하지만 반복 업무를 확실히 줄여줘요!&lt;/p&gt;
&lt;/blockquote&gt;</description>
      <category>사이드 프로젝트/[Image2Excel] 여러 이미지를 엑셀에 복사  ️</category>
      <author>직장인 조모씨</author>
      <guid isPermaLink="true">https://minicode.tistory.com/331</guid>
      <comments>https://minicode.tistory.com/331#entry331comment</comments>
      <pubDate>Tue, 15 Apr 2025 14:40:55 +0900</pubDate>
    </item>
    <item>
      <title>[나노캐드] 객체 스냅 설정 drafting setting</title>
      <link>https://minicode.tistory.com/330</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;Tools - Drafting Settings&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2560&quot; data-origin-height=&quot;1475&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bHyDt9/btsL1gpvIXv/A0Lqozgmg8KbUz2MMHE1eK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bHyDt9/btsL1gpvIXv/A0Lqozgmg8KbUz2MMHE1eK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bHyDt9/btsL1gpvIXv/A0Lqozgmg8KbUz2MMHE1eK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbHyDt9%2FbtsL1gpvIXv%2FA0Lqozgmg8KbUz2MMHE1eK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;2560&quot; height=&quot;1475&quot; data-origin-width=&quot;2560&quot; data-origin-height=&quot;1475&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;1. Snap and Grid 메뉴&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1034&quot; data-origin-height=&quot;734&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/eIpy1r/btsL1DEtNdr/GR0fBlCS1EugPsTS3gvpYk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/eIpy1r/btsL1DEtNdr/GR0fBlCS1EugPsTS3gvpYk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/eIpy1r/btsL1DEtNdr/GR0fBlCS1EugPsTS3gvpYk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FeIpy1r%2FbtsL1DEtNdr%2FGR0fBlCS1EugPsTS3gvpYk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1034&quot; height=&quot;734&quot; data-origin-width=&quot;1034&quot; data-origin-height=&quot;734&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;Snap On&lt;/b&gt;:&lt;br /&gt;이 옵션을 활성화하면 마우스 커서가 설정된 간격으로 스냅됩니다. 정확한 위치 지정이 필요할 때 사용합니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Snap Spacing&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;Snap X spacing / Snap Y spacing&lt;/b&gt;: X축과 Y축 방향으로 커서가 스냅되는 간격을 설정합니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Equal X and Y spacing&lt;/b&gt;: X축과 Y축 간격을 동일하게 유지하려면 이 옵션을 선택합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Grid On&lt;/b&gt;:&lt;br /&gt;이 옵션을 활성화하면 작업 화면에 그리드(격자)가 표시됩니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Grid Spacing&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;Grid X spacing / Grid Y spacing&lt;/b&gt;: 화면에 표시되는 그리드의 간격을 설정합니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Major line every&lt;/b&gt;: 설정한 주기의 간격마다 굵은 그리드 라인을 표시합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Grid Behavior&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;Adaptive grid&lt;/b&gt;: 확대 및 축소 시 그리드의 간격이 자동으로 조정됩니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Allow subdivision below grid spacing&lt;/b&gt;: 그리드 간격보다 작은 세부 그리드를 표시합니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Display grid beyond Limits&lt;/b&gt;: 도면의 제한 영역을 넘어 그리드를 표시할지를 선택합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;2. Polar Tracking 메뉴&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1043&quot; data-origin-height=&quot;734&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dWEVLY/btsL1EKceqK/teM9qOeo1Gwwj7hO7bKKJK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dWEVLY/btsL1EKceqK/teM9qOeo1Gwwj7hO7bKKJK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dWEVLY/btsL1EKceqK/teM9qOeo1Gwwj7hO7bKKJK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdWEVLY%2FbtsL1EKceqK%2FteM9qOeo1Gwwj7hO7bKKJK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1043&quot; height=&quot;734&quot; data-origin-width=&quot;1043&quot; data-origin-height=&quot;734&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;Polar Tracking On&lt;/b&gt;:&lt;br /&gt;이 옵션을 활성화하면 특정 각도로만 커서가 움직이도록 제한됩니다(예: 0&amp;deg;, 90&amp;deg;).&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Polar Angle Settings&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;Increment angle&lt;/b&gt;: 기본적으로 사용할 추적 각도를 설정합니다(예: 30&amp;deg;, 45&amp;deg;).&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Additional angles&lt;/b&gt;: 추가적으로 추적할 각도를 설정하려면 각도를 입력하고 Add 버튼을 클릭합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Object Snap Tracking Settings&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;Track orthogonal only&lt;/b&gt;: 수직 및 수평 방향(90&amp;deg; 간격)으로만 커서를 추적합니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Track using all polar angle settings&lt;/b&gt;: 설정된 모든 각도를 기준으로 커서를 추적합니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Do not track Polar&lt;/b&gt;: Polar Tracking을 비활성화합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;3. Object Snap 메뉴&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1419&quot; data-origin-height=&quot;1010&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bmze6Q/btsL0Zhfptx/BZ3v7DlPyHeqAEeNmuf4yk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bmze6Q/btsL0Zhfptx/BZ3v7DlPyHeqAEeNmuf4yk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bmze6Q/btsL0Zhfptx/BZ3v7DlPyHeqAEeNmuf4yk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbmze6Q%2FbtsL0Zhfptx%2FBZ3v7DlPyHeqAEeNmuf4yk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1419&quot; height=&quot;1010&quot; data-origin-width=&quot;1419&quot; data-origin-height=&quot;1010&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;Object Snap On&lt;/b&gt;:&lt;br /&gt;도면 객체의 특정 지점(끝점, 중심점 등)에 커서가 자동으로 맞춰지도록 설정합니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Object Snap models&lt;/b&gt;:&lt;br /&gt;아래 옵션을 선택하여 특정한 객체 스냅 포인트를 활성화할 수 있습니다.
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;Endpoint&lt;/b&gt;: 선의 끝점에 스냅됩니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Midpoint&lt;/b&gt;: 선의 중간점에 스냅됩니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Center&lt;/b&gt;: 원 또는 호의 중심점에 스냅됩니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Node&lt;/b&gt;: 포인트 객체에 스냅됩니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Quadrant&lt;/b&gt;: 원 또는 호의 사분면 점에 스냅됩니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Intersection&lt;/b&gt;: 두 객체의 교차점에 스냅됩니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Extension&lt;/b&gt;: 객체의 연장선을 따라 스냅됩니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Insertion&lt;/b&gt;: 블록 삽입점에 스냅됩니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Perpendicular&lt;/b&gt;: 객체에 대해 수직으로 스냅됩니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Tangent&lt;/b&gt;: 객체에 대해 접선 위치에 스냅됩니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Nearest&lt;/b&gt;: 객체의 가장 가까운 점에 스냅됩니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;</description>
      <author>직장인 조모씨</author>
      <guid isPermaLink="true">https://minicode.tistory.com/330</guid>
      <comments>https://minicode.tistory.com/330#entry330comment</comments>
      <pubDate>Sat, 25 Jan 2025 14:48:55 +0900</pubDate>
    </item>
    <item>
      <title>무료 캐드 나노 캐드 nanoCad5.0 다운로드 방법 및 설치 방법 정리(라이센스 오류 해결)</title>
      <link>https://minicode.tistory.com/329</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;1. &lt;a href=&quot;https://nanocad.com/products/nanocad-free/download/&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://nanocad.com/products/nanocad-free/download/&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1737382478350&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;nanoCAD Free - Free 2D/3D CAD Software&quot; data-og-description=&quot;&quot; data-og-host=&quot;nanocad.com&quot; data-og-source-url=&quot;https://nanocad.com/products/nanocad-free/download/&quot; data-og-url=&quot;https://nanocad.com/products/nanocad-free/download/&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://nanocad.com/products/nanocad-free/download/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://nanocad.com/products/nanocad-free/download/&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;nanoCAD Free - Free 2D/3D CAD Software&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;nanocad.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;나노캐드5.0이 무료버전임&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1152&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/doJIID/btsLSMbcJDZ/yQhmrUS03hmflqaO6NB07K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/doJIID/btsLSMbcJDZ/yQhmrUS03hmflqaO6NB07K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/doJIID/btsLSMbcJDZ/yQhmrUS03hmflqaO6NB07K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdoJIID%2FbtsLSMbcJDZ%2FyQhmrUS03hmflqaO6NB07K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1920&quot; height=&quot;1152&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1152&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다운로드&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;453&quot; data-origin-height=&quot;314&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/BS0Oj/btsLUFoaw2v/5FRljDVgOHqkbQ60dkkk40/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/BS0Oj/btsLUFoaw2v/5FRljDVgOHqkbQ60dkkk40/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/BS0Oj/btsLUFoaw2v/5FRljDVgOHqkbQ60dkkk40/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FBS0Oj%2FbtsLUFoaw2v%2F5FRljDVgOHqkbQ60dkkk40%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;453&quot; height=&quot;314&quot; data-origin-width=&quot;453&quot; data-origin-height=&quot;314&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;493&quot; data-origin-height=&quot;391&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b7pbc7/btsLSNOKxGF/GIcOlJ2z2IWoDN9wKhQNy1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b7pbc7/btsLSNOKxGF/GIcOlJ2z2IWoDN9wKhQNy1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b7pbc7/btsLSNOKxGF/GIcOlJ2z2IWoDN9wKhQNy1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb7pbc7%2FbtsLSNOKxGF%2FGIcOlJ2z2IWoDN9wKhQNy1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;493&quot; height=&quot;391&quot; data-origin-width=&quot;493&quot; data-origin-height=&quot;391&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;493&quot; data-origin-height=&quot;391&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dBlArb/btsLUjeSLp6/zI7qZE67ghecNYJxKIHeMK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dBlArb/btsLUjeSLp6/zI7qZE67ghecNYJxKIHeMK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dBlArb/btsLUjeSLp6/zI7qZE67ghecNYJxKIHeMK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdBlArb%2FbtsLUjeSLp6%2FzI7qZE67ghecNYJxKIHeMK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;493&quot; height=&quot;391&quot; data-origin-width=&quot;493&quot; data-origin-height=&quot;391&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;493&quot; data-origin-height=&quot;391&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bbsx6R/btsLUYVkgeB/sC1VVovRWCKFhfS5kVtdP0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bbsx6R/btsLUYVkgeB/sC1VVovRWCKFhfS5kVtdP0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bbsx6R/btsLUYVkgeB/sC1VVovRWCKFhfS5kVtdP0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbbsx6R%2FbtsLUYVkgeB%2FsC1VVovRWCKFhfS5kVtdP0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;493&quot; height=&quot;391&quot; data-origin-width=&quot;493&quot; data-origin-height=&quot;391&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;493&quot; data-origin-height=&quot;391&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c8M6yD/btsLUI6gYjx/Q8Li1RehtJtXjt56JR0pvK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c8M6yD/btsLUI6gYjx/Q8Li1RehtJtXjt56JR0pvK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c8M6yD/btsLUI6gYjx/Q8Li1RehtJtXjt56JR0pvK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc8M6yD%2FbtsLUI6gYjx%2FQ8Li1RehtJtXjt56JR0pvK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;493&quot; height=&quot;391&quot; data-origin-width=&quot;493&quot; data-origin-height=&quot;391&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;493&quot; data-origin-height=&quot;391&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ecS9c5/btsLUn9ca0R/4LuCuNd2GK8DhpAfBwdnC1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ecS9c5/btsLUn9ca0R/4LuCuNd2GK8DhpAfBwdnC1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ecS9c5/btsLUn9ca0R/4LuCuNd2GK8DhpAfBwdnC1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FecS9c5%2FbtsLUn9ca0R%2F4LuCuNd2GK8DhpAfBwdnC1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;493&quot; height=&quot;391&quot; data-origin-width=&quot;493&quot; data-origin-height=&quot;391&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;493&quot; data-origin-height=&quot;391&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/xglom/btsLSP63Pff/kQamuJV4YfCQXsIEyBLPO0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/xglom/btsLSP63Pff/kQamuJV4YfCQXsIEyBLPO0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/xglom/btsLSP63Pff/kQamuJV4YfCQXsIEyBLPO0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fxglom%2FbtsLSP63Pff%2FkQamuJV4YfCQXsIEyBLPO0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;493&quot; height=&quot;391&quot; data-origin-width=&quot;493&quot; data-origin-height=&quot;391&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;493&quot; data-origin-height=&quot;391&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b4GhDW/btsLUfKiqVT/wSHoM2Kk2Q14ejvUVSZDMK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b4GhDW/btsLUfKiqVT/wSHoM2Kk2Q14ejvUVSZDMK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b4GhDW/btsLUfKiqVT/wSHoM2Kk2Q14ejvUVSZDMK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb4GhDW%2FbtsLUfKiqVT%2FwSHoM2Kk2Q14ejvUVSZDMK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;493&quot; height=&quot;391&quot; data-origin-width=&quot;493&quot; data-origin-height=&quot;391&quot;/&gt;&lt;/span&gt;&lt;/figure&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://nanocad.com/personal/&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://nanocad.com/personal/&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1737783427501&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;Sign In&quot; data-og-description=&quot;&quot; data-og-host=&quot;nanocad.com&quot; data-og-source-url=&quot;https://nanocad.com/personal/&quot; data-og-url=&quot;https://nanocad.com/personal/&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://nanocad.com/personal/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://nanocad.com/personal/&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;Sign In&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;nanocad.com&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;
&lt;p data-ke-size=&quot;size16&quot;&gt;설치 완료 후 라이센스 키 확인 페이지&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1152&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Bn2jJ/btsL03DqIsK/RdiaaxDDZjFMZJKUepE8Kk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Bn2jJ/btsL03DqIsK/RdiaaxDDZjFMZJKUepE8Kk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Bn2jJ/btsL03DqIsK/RdiaaxDDZjFMZJKUepE8Kk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FBn2jJ%2FbtsL03DqIsK%2FRdiaaxDDZjFMZJKUepE8Kk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1920&quot; height=&quot;1152&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1152&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot;&gt;NC5NVAS로 시작하는 라이센스 키로 해야함&lt;/div&gt;
&lt;div style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;background-color: #ffffff; color: #000000; text-align: center;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;555&quot; data-origin-height=&quot;381&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/MBfmd/btsL1rqLQIp/bfkj2kHfAHkklRAe2E5KC1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/MBfmd/btsL1rqLQIp/bfkj2kHfAHkklRAe2E5KC1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/MBfmd/btsL1rqLQIp/bfkj2kHfAHkklRAe2E5KC1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FMBfmd%2FbtsL1rqLQIp%2Fbfkj2kHfAHkklRAe2E5KC1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;555&quot; height=&quot;381&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;555&quot; data-origin-height=&quot;381&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;561&quot; data-origin-height=&quot;383&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/4O5vJ/btsL0z303Hl/ZZaDRQQ7IuE8l8gPPrHPC0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/4O5vJ/btsL0z303Hl/ZZaDRQQ7IuE8l8gPPrHPC0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/4O5vJ/btsL0z303Hl/ZZaDRQQ7IuE8l8gPPrHPC0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F4O5vJ%2FbtsL0z303Hl%2FZZaDRQQ7IuE8l8gPPrHPC0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;561&quot; height=&quot;383&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;561&quot; data-origin-height=&quot;383&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;556&quot; data-origin-height=&quot;383&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dsS4yV/btsLUnBijWR/WjyoG04aoqqc5j9f0wG8o1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dsS4yV/btsLUnBijWR/WjyoG04aoqqc5j9f0wG8o1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dsS4yV/btsLUnBijWR/WjyoG04aoqqc5j9f0wG8o1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdsS4yV%2FbtsLUnBijWR%2FWjyoG04aoqqc5j9f0wG8o1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;556&quot; height=&quot;383&quot; data-origin-width=&quot;556&quot; data-origin-height=&quot;383&quot;/&gt;&lt;/span&gt;&lt;/figure&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;250122&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;250125&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;</description>
      <author>직장인 조모씨</author>
      <guid isPermaLink="true">https://minicode.tistory.com/329</guid>
      <comments>https://minicode.tistory.com/329#entry329comment</comments>
      <pubDate>Sat, 25 Jan 2025 14:38:25 +0900</pubDate>
    </item>
    <item>
      <title>Python에서 GPT-4o mini API 사용하는 방법 정리(ChatGPT)</title>
      <link>https://minicode.tistory.com/326</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;ChatGPT 4o mini API를 파이썬에서 사용하는 방법은 다음과 같습니다. 이 과정에서 &lt;code&gt;openai&lt;/code&gt; 패키지를 사용하고, API 키를 설정한 뒤 GPT-4o mini 모델을 호출하는 예시입니다.&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;1. &lt;code&gt;openai&lt;/code&gt; 라이브러리 설치&lt;/h4&gt;
&lt;pre class=&quot;python&quot; data-ke-language=&quot;python&quot;&gt;&lt;code&gt;pip install openai&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1729836074539&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;pip install openai==0.28&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;저는 동작중에 에러 발생하여 0.28 버전으로 설치하였습니다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;863&quot; data-origin-height=&quot;364&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bGRR4J/btsKiAqcYyk/aFejmjnsxZX2VIKOf1Th5k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bGRR4J/btsKiAqcYyk/aFejmjnsxZX2VIKOf1Th5k/img.png&quot; data-alt=&quot;pycharm 터미널로 명령어 입력&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bGRR4J/btsKiAqcYyk/aFejmjnsxZX2VIKOf1Th5k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbGRR4J%2FbtsKiAqcYyk%2FaFejmjnsxZX2VIKOf1Th5k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;863&quot; height=&quot;364&quot; data-origin-width=&quot;863&quot; data-origin-height=&quot;364&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;pycharm 터미널로 명령어 입력&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1231&quot; data-origin-height=&quot;337&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/FbhBI/btsKkj7UgK6/n3VpcIwQSsjyYoCX11f630/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/FbhBI/btsKkj7UgK6/n3VpcIwQSsjyYoCX11f630/img.png&quot; data-alt=&quot;설치 완료된 모습&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/FbhBI/btsKkj7UgK6/n3VpcIwQSsjyYoCX11f630/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FFbhBI%2FbtsKkj7UgK6%2Fn3VpcIwQSsjyYoCX11f630%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1231&quot; height=&quot;337&quot; data-origin-width=&quot;1231&quot; data-origin-height=&quot;337&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;설치 완료된 모습&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;2. API 키 설정&lt;/h4&gt;
&lt;pre class=&quot;python&quot; data-ke-language=&quot;python&quot;&gt;&lt;code&gt;import openai
from getpass import getpass

# API 키 입력
OPENAI_YOUR_KEY = &quot;YOUR API KEY&quot;
openai.api_key = &quot;OPENAI_YOUR_KEY&quot;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;246&quot; data-origin-height=&quot;136&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bKJI5J/btsKkoVMQDb/O5lsP0Bx4KRozOj2VyNDh1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bKJI5J/btsKkoVMQDb/O5lsP0Bx4KRozOj2VyNDh1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bKJI5J/btsKkoVMQDb/O5lsP0Bx4KRozOj2VyNDh1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbKJI5J%2FbtsKkoVMQDb%2FO5lsP0Bx4KRozOj2VyNDh1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;246&quot; height=&quot;136&quot; data-origin-width=&quot;246&quot; data-origin-height=&quot;136&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;3. GPT-4o mini를 사용하는 API 호출 함수 작성&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음 코드는 &lt;code&gt;gpt-4o-mini&lt;/code&gt; 모델을 사용하여 메시지를 보내고 응답을 받는 함수입니다.&lt;/p&gt;
&lt;pre class=&quot;python&quot;&gt;&lt;code&gt;def call_gpt4o_mini(prompt):
    response = openai.ChatCompletion.create(
        model=&quot;gpt-4o-mini&quot;,  # 모델 선택
        messages=[
            {&quot;role&quot;: &quot;user&quot;, &quot;content&quot;: prompt}
        ],
        max_tokens=150  # 출력 제한
    )
    return response['choices'][0]['message']['content']

# 예시 호출
result = call_gpt4o_mini(&quot;Explain how AI works.&quot;)
print(result)&lt;/code&gt;&lt;/pre&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;4. 예시 호출&lt;/h4&gt;
&lt;pre id=&quot;code_1729836134955&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# 예시 호출
user_prompt = &quot;&quot;&quot;
안녕 너는 누구니?
&quot;&quot;&quot;
result = call_gpt4o_mini(user_prompt)
print(result)&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;답변이 나온다!!&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;274&quot; data-origin-height=&quot;194&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bKPx9z/btsKknP7jYX/eDlcma7Tq7pVmXKLt7KLK1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bKPx9z/btsKknP7jYX/eDlcma7Tq7pVmXKLt7KLK1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bKPx9z/btsKknP7jYX/eDlcma7Tq7pVmXKLt7KLK1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbKPx9z%2FbtsKknP7jYX%2FeDlcma7Tq7pVmXKLt7KLK1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;274&quot; height=&quot;194&quot; data-origin-width=&quot;274&quot; data-origin-height=&quot;194&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>배움 - 차근차근 기록하자/[개발] 딥러닝  </category>
      <author>직장인 조모씨</author>
      <guid isPermaLink="true">https://minicode.tistory.com/326</guid>
      <comments>https://minicode.tistory.com/326#entry326comment</comments>
      <pubDate>Fri, 25 Oct 2024 15:03:14 +0900</pubDate>
    </item>
    <item>
      <title>ChatGPT API 사용을 위한 카드 등록 방법 설명</title>
      <link>https://minicode.tistory.com/325</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;OpenAI API 결제를 위한 카드 등록 방법&lt;/h3&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;1. &lt;b&gt;OpenAI 플랫폼 로그인&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;먼저 &lt;a href=&quot;https://platform.openai.com/&quot;&gt;OpenAI 플랫폼&lt;/a&gt;에 로그인합니다. 계정이 없다면, 계정을 생성한 후 로그인하세요.&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;2. &lt;b&gt;결제 설정으로 이동&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;로그인 후, 오른쪽 상단의 &lt;b&gt;프로필 아이콘&lt;/b&gt;을 클릭한 뒤 &lt;b&gt;Billing(결제)&lt;/b&gt; 메뉴를 선택합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://platform.openai.com/settings/organization/billing/overview&quot;&gt;https://platform.openai.com/settings/organization/billing/overview&lt;/a&gt;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;3. &lt;b&gt;결제 방법 추가&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Billing 페이지에서 &lt;b&gt;결제 방법 추가(Add Payment details)&lt;/b&gt; 버튼을 클릭합니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;983&quot; data-origin-height=&quot;752&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/drHl3s/btsKkmKmZRG/OIzvJ70OIFvPikRv5RHck0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/drHl3s/btsKkmKmZRG/OIzvJ70OIFvPikRv5RHck0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/drHl3s/btsKkmKmZRG/OIzvJ70OIFvPikRv5RHck0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdrHl3s%2FbtsKkmKmZRG%2FOIzvJ70OIFvPikRv5RHck0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;983&quot; height=&quot;752&quot; data-origin-width=&quot;983&quot; data-origin-height=&quot;752&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;사용자를 선택합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;저는 개인이라 Individual로 선택했어요.&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;br /&gt;카드 정보를 입력해줍니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;690&quot; data-origin-height=&quot;795&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/7eZw1/btsKjHBJuhl/P4LWkH7OothJHBSs0xKKQ1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/7eZw1/btsKjHBJuhl/P4LWkH7OothJHBSs0xKKQ1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/7eZw1/btsKjHBJuhl/P4LWkH7OothJHBSs0xKKQ1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F7eZw1%2FbtsKjHBJuhl%2FP4LWkH7OothJHBSs0xKKQ1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;690&quot; height=&quot;795&quot; data-origin-width=&quot;690&quot; data-origin-height=&quot;795&quot;/&gt;&lt;/span&gt;&lt;/figure&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;저는 10달러 먼저 결재할게요.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;자동 결재 여부도 선택할 수 있어요. (저는 끔)&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;566&quot; data-origin-height=&quot;615&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dkYjQH/btsKjJM7TyX/5YZWmmIyVZvTF8TrSzMv2K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dkYjQH/btsKjJM7TyX/5YZWmmIyVZvTF8TrSzMv2K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dkYjQH/btsKjJM7TyX/5YZWmmIyVZvTF8TrSzMv2K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdkYjQH%2FbtsKjJM7TyX%2F5YZWmmIyVZvTF8TrSzMv2K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;566&quot; height=&quot;615&quot; data-origin-width=&quot;566&quot; data-origin-height=&quot;615&quot;/&gt;&lt;/span&gt;&lt;/figure&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;Continue를 누르면 결재 확인창이 뜹니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;544&quot; data-origin-height=&quot;488&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/nolgA/btsKiMRBlcm/LAkdt9aukyYmZGYsScgWhk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/nolgA/btsKiMRBlcm/LAkdt9aukyYmZGYsScgWhk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/nolgA/btsKiMRBlcm/LAkdt9aukyYmZGYsScgWhk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnolgA%2FbtsKiMRBlcm%2FLAkdt9aukyYmZGYsScgWhk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;544&quot; height=&quot;488&quot; data-origin-width=&quot;544&quot; data-origin-height=&quot;488&quot;/&gt;&lt;/span&gt;&lt;/figure&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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;332&quot; data-origin-height=&quot;191&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bliAKd/btsKjIgmzSD/IpUvT5cou5D4zJRUzosjqk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bliAKd/btsKjIgmzSD/IpUvT5cou5D4zJRUzosjqk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bliAKd/btsKjIgmzSD/IpUvT5cou5D4zJRUzosjqk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbliAKd%2FbtsKjIgmzSD%2FIpUvT5cou5D4zJRUzosjqk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;332&quot; height=&quot;191&quot; data-origin-width=&quot;332&quot; data-origin-height=&quot;191&quot;/&gt;&lt;/span&gt;&lt;/figure&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;API 사용법은 다음 글에!&lt;/p&gt;</description>
      <category>배움 - 차근차근 기록하자/[개발] 딥러닝  </category>
      <author>직장인 조모씨</author>
      <guid isPermaLink="true">https://minicode.tistory.com/325</guid>
      <comments>https://minicode.tistory.com/325#entry325comment</comments>
      <pubDate>Fri, 25 Oct 2024 14:45:22 +0900</pubDate>
    </item>
    <item>
      <title>ChatGPT API 발급 받는 방법 (python에서 사용)</title>
      <link>https://minicode.tistory.com/324</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;ChatGPT&amp;nbsp;API&amp;nbsp;발급&amp;nbsp;받는&amp;nbsp;방법&amp;nbsp;(python에서&amp;nbsp;사용)&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;308&quot; data-origin-height=&quot;291&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/GDNQZ/btsKkgwPOfT/wflgkCLMBcNkbJxaYU3bI0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/GDNQZ/btsKkgwPOfT/wflgkCLMBcNkbJxaYU3bI0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/GDNQZ/btsKkgwPOfT/wflgkCLMBcNkbJxaYU3bI0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FGDNQZ%2FbtsKkgwPOfT%2FwflgkCLMBcNkbJxaYU3bI0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;308&quot; height=&quot;291&quot; data-origin-width=&quot;308&quot; data-origin-height=&quot;291&quot;/&gt;&lt;/span&gt;&lt;/figure&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;ChatGPT API를 발급받으려면 다음 절차를 따르면 됩니다:&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;1. OpenAI 웹사이트 방문&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;먼저&lt;b&gt; &lt;a href=&quot;https://auth.openai.com/authorize?issuer=auth0.openai.com&amp;amp;client_id=DRivsnm2Mu42T3KOpqdtwB3NYviHYzwD&amp;amp;audience=https%3A%2F%2Fapi.openai.com%2Fv1&amp;amp;redirect_uri=https%3A%2F%2Fplatform.openai.com%2Fauth%2Fcallback&amp;amp;device_id=7dd0a994-aa48-4b75-8fff-12aa38b8794d&amp;amp;screen_hint=signup&amp;amp;max_age=0&amp;amp;scope=openid+profile+email+offline_access&amp;amp;response_type=code&amp;amp;response_mode=query&amp;amp;state=NFdTb25SeW9DYV9QQXl6TElQZVBRM040U2NIaXBSRm9mWlFCV1Bjb0dqaA%3D%3D&amp;amp;nonce=Tzd2OU42dWpIcU9weTFMYVJfYW84ckdnNTFIQWJmem9KWEJwcjhnOHI2Qw%3D%3D&amp;amp;code_challenge=3BvszIV-K4jVcbBcfy7upQAUmVJjZdqFAepX-jZJqaY&amp;amp;code_challenge_method=S256&amp;amp;auth0Client=eyJuYW1lIjoiYXV0aDAtc3BhLWpzIiwidmVyc2lvbiI6IjEuMjEuMCJ9&amp;amp;flow=control&quot;&gt;OpenAI 홈페이지&lt;/a&gt;&lt;/b&gt;에서 계정을 생성해야 합니다. 계정이 없다면 이메일 또는 Google 계정으로 쉽게 등록할 수 있습니다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;2. API 키 발급&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;계정을 생성한 후, &lt;a href=&quot;https://platform.openai.com/api-keys&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;&lt;b&gt;API 대시보드&lt;/b&gt;&lt;/a&gt;로 이동합니다.&lt;/li&gt;
&lt;li&gt;대시보드에서 &quot;API 키 관리&quot; 페이지로 들어갑니다.&lt;/li&gt;
&lt;li&gt;&quot;새로운 API 키 생성&quot; 버튼을 클릭하여 새로운 API 키를 발급받습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;발급된 API 키는 나중에 사용할 수 있도록 안전하게 보관하세요. 이 키를 사용하여 Python 등에서 OpenAI의 API를 호출할 수 있습니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1241&quot; data-origin-height=&quot;548&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bzUZWR/btsKjLD5vF5/sBzSEe3aABhw3pVLT9Dkn1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bzUZWR/btsKjLD5vF5/sBzSEe3aABhw3pVLT9Dkn1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bzUZWR/btsKjLD5vF5/sBzSEe3aABhw3pVLT9Dkn1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbzUZWR%2FbtsKjLD5vF5%2FsBzSEe3aABhw3pVLT9Dkn1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1241&quot; height=&quot;548&quot; data-origin-width=&quot;1241&quot; data-origin-height=&quot;548&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1245&quot; data-origin-height=&quot;747&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/FW2WM/btsKiZwjQZ2/TDPTDHtmxt1TPhrrKDXkRK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/FW2WM/btsKiZwjQZ2/TDPTDHtmxt1TPhrrKDXkRK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/FW2WM/btsKiZwjQZ2/TDPTDHtmxt1TPhrrKDXkRK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FFW2WM%2FbtsKiZwjQZ2%2FTDPTDHtmxt1TPhrrKDXkRK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1245&quot; height=&quot;747&quot; data-origin-width=&quot;1245&quot; data-origin-height=&quot;747&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;3. 사용량 모니터링&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;API 대시보드에서 사용량과 관련된 정보를 모니터링할 수 있으며, 특정 한도를 설정하여 과도한 사용을 방지할 수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>배움 - 차근차근 기록하자/[개발] 딥러닝  </category>
      <author>직장인 조모씨</author>
      <guid isPermaLink="true">https://minicode.tistory.com/324</guid>
      <comments>https://minicode.tistory.com/324#entry324comment</comments>
      <pubDate>Fri, 25 Oct 2024 14:34:34 +0900</pubDate>
    </item>
    <item>
      <title>파일 '수정된 날짜' 변경 방법(+dll 날짜 변경 팁)</title>
      <link>https://minicode.tistory.com/322</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;파일&amp;nbsp;'수정된&amp;nbsp;날짜'&amp;nbsp;변경&amp;nbsp;방법&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;392&quot; data-origin-height=&quot;59&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/08sTU/btsKib4nMen/glKPTyfKdYcjaYGwKcR561/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/08sTU/btsKib4nMen/glKPTyfKdYcjaYGwKcR561/img.png&quot; data-alt=&quot;같은 두 파일의 날짜가 변경된 모습&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/08sTU/btsKib4nMen/glKPTyfKdYcjaYGwKcR561/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F08sTU%2FbtsKib4nMen%2FglKPTyfKdYcjaYGwKcR561%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;392&quot; height=&quot;59&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;392&quot; data-origin-height=&quot;59&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;같은 두 파일의 날짜가 변경된 모습&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;PowerShell로 DLL 파일의 수정 날짜 변경 방법&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;DLL 파일의 수정 날짜는 기본적으로 파일 시스템에 의해 관리되며, 파일이 수정될 때 자동으로 현재 날짜로 설정됩니다. 하지만 PowerShell이나 서드파티 도구를 사용하여 수정 날짜를 수동으로 변경할 수 있습니다.&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;PowerShell을 사용한 수정 날짜 변경&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Windows에서는 PowerShell을 사용하여 DLL 파일의 수정 날짜를 손쉽게 변경할 수 있습니다. 아래 명령어를 사용하여 원하는 날짜로 수정할 수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;PowerShell 명령어 예시:&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;armasm&quot;&gt;&lt;code&gt;(Get-Item &quot;C:\path\to\your.dll&quot;).LastWriteTime = &quot;2024-10-01 12:00:00&quot;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 명령어는 &lt;code&gt;your.dll&lt;/code&gt; 파일의 마지막 수정 시간을 &lt;code&gt;2024년 10월 1일 12:00:00&lt;/code&gt;로 변경합니다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;주의 사항&lt;/h3&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;수정 날짜 변경은 파일 관리에 도움이 될 수 있지만, 실제 파일 동작에는 영향을 미치지 않으므로 이 점을 고려하여 사용해야 합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;추가 정보&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;파일의 수정 날짜를 변경하는 작업은 파일 백업 관리, 프로젝트 버전 관리 등 다양한 상황에서 유용할 수 있습니다. 이 작업을 자동화하거나 여러 파일에 대해 한 번에 적용하려면 PowerShell 스크립트를 사용할 수 있습니다.&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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;91&quot; data-origin-height=&quot;107&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bdalTo/btsKhIVJBeK/1n4l6FYqNKYTcr7R6E4Gy1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bdalTo/btsKhIVJBeK/1n4l6FYqNKYTcr7R6E4Gy1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bdalTo/btsKhIVJBeK/1n4l6FYqNKYTcr7R6E4Gy1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbdalTo%2FbtsKhIVJBeK%2F1n4l6FYqNKYTcr7R6E4Gy1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;91&quot; height=&quot;107&quot; data-origin-width=&quot;91&quot; data-origin-height=&quot;107&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>배움 - 차근차근 기록하자/[기타] etc ⚫</category>
      <author>직장인 조모씨</author>
      <guid isPermaLink="true">https://minicode.tistory.com/322</guid>
      <comments>https://minicode.tistory.com/322#entry322comment</comments>
      <pubDate>Thu, 24 Oct 2024 19:14:35 +0900</pubDate>
    </item>
    <item>
      <title>텔레그램으로 전자책 읽어주는 봇</title>
      <link>https://minicode.tistory.com/321</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://minicode.tistory.com/318&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;2024.10.22 - [사이드 프로젝트/텔레그램으로 전자책 읽기  ] - 카카오톡 API vs 텔레그램 Bot 선택 과정&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1729564504928&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;카카오톡 API vs 텔레그램 Bot 선택 과정&quot; data-og-description=&quot;책 읽기 불편해평소에 이북 리더기 킨들로 책을 읽는다.언제인가 리더기 조차 가방에서 꺼내기 귀찮을 때가 있었다.핸드폰은 손에서 안 때고 잘 보는데이북 리더기도 그럴 수는 없을까?&amp;nbsp;&amp;nbsp;핸드&quot; data-og-host=&quot;minicode.tistory.com&quot; data-og-source-url=&quot;https://minicode.tistory.com/318&quot; data-og-url=&quot;https://minicode.tistory.com/318&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/cLlwbZ/hyXlTowXCX/ne6k0XOGPIL3hs9ko7JSS0/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/ev92a1/hyXlUnrwbl/dnermjqdKV3cZKbJ4Ue3Ek/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/c7SHKV/hyXlMiDA15/mQhwk9lPJsiWB9pfoPyiEk/img.png?width=960&amp;amp;height=960&amp;amp;face=0_0_960_960&quot;&gt;&lt;a href=&quot;https://minicode.tistory.com/318&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://minicode.tistory.com/318&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/cLlwbZ/hyXlTowXCX/ne6k0XOGPIL3hs9ko7JSS0/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/ev92a1/hyXlUnrwbl/dnermjqdKV3cZKbJ4Ue3Ek/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/c7SHKV/hyXlMiDA15/mQhwk9lPJsiWB9pfoPyiEk/img.png?width=960&amp;amp;height=960&amp;amp;face=0_0_960_960');&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;카카오톡 API vs 텔레그램 Bot 선택 과정&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;책 읽기 불편해평소에 이북 리더기 킨들로 책을 읽는다.언제인가 리더기 조차 가방에서 꺼내기 귀찮을 때가 있었다.핸드폰은 손에서 안 때고 잘 보는데이북 리더기도 그럴 수는 없을까?&amp;nbsp;&amp;nbsp;핸드&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;minicode.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://minicode.tistory.com/319&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;2024.10.22 - [사이드 프로젝트/텔레그램으로 전자책 읽기  ] - 텔레그램 봇 생성과 토큰 얻는 방법 + 챗 아이디 얻기&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1729564509928&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;텔레그램 봇 생성과 토큰 얻는 방법 + 챗 아이디 얻기&quot; data-og-description=&quot;텔레그램 봇 생성 &amp;amp; 토큰 얻기&amp;nbsp;1. BotFather 검색 후 대화 시작 ( 텔레그램 봇은 모두 BotFather를 거친다)2. /newbot3. 봇 이름 입력4. 봇 아이디 입력5. 장문의 답장 속 토큰 확인하기&amp;nbsp;&amp;nbsp;챗 아이디 얻기&amp;nbsp;1. &quot; data-og-host=&quot;minicode.tistory.com&quot; data-og-source-url=&quot;https://minicode.tistory.com/319&quot; data-og-url=&quot;https://minicode.tistory.com/319&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bpLOcA/hyXlWFyHqW/XOBIeAVrMAiorqt4O7oqhK/img.png?width=800&amp;amp;height=750&amp;amp;face=0_0_800_750,https://scrap.kakaocdn.net/dn/U3K43/hyXlT9TDie/kzz5m2D4JF0qM50rHYoSZk/img.png?width=800&amp;amp;height=750&amp;amp;face=0_0_800_750,https://scrap.kakaocdn.net/dn/rGsDs/hyXlKrzwb7/DTzijoAQKumjs8q9s1GJ7K/img.png?width=855&amp;amp;height=802&amp;amp;face=0_0_855_802&quot;&gt;&lt;a href=&quot;https://minicode.tistory.com/319&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://minicode.tistory.com/319&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bpLOcA/hyXlWFyHqW/XOBIeAVrMAiorqt4O7oqhK/img.png?width=800&amp;amp;height=750&amp;amp;face=0_0_800_750,https://scrap.kakaocdn.net/dn/U3K43/hyXlT9TDie/kzz5m2D4JF0qM50rHYoSZk/img.png?width=800&amp;amp;height=750&amp;amp;face=0_0_800_750,https://scrap.kakaocdn.net/dn/rGsDs/hyXlKrzwb7/DTzijoAQKumjs8q9s1GJ7K/img.png?width=855&amp;amp;height=802&amp;amp;face=0_0_855_802');&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;텔레그램 봇 생성과 토큰 얻는 방법 + 챗 아이디 얻기&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;텔레그램 봇 생성 &amp;amp; 토큰 얻기&amp;nbsp;1. BotFather 검색 후 대화 시작 ( 텔레그램 봇은 모두 BotFather를 거친다)2. /newbot3. 봇 이름 입력4. 봇 아이디 입력5. 장문의 답장 속 토큰 확인하기&amp;nbsp;&amp;nbsp;챗 아이디 얻기&amp;nbsp;1.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;minicode.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://minicode.tistory.com/320&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;2024.10.22 - [사이드 프로젝트/텔레그램으로 전자책 읽기  ] - python으로 epub 목차 가져오기&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1729564525729&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;python으로 epub 목차 가져오기&quot; data-og-description=&quot;python으로&amp;nbsp;epub&amp;nbsp;목차&amp;nbsp;가져오기&amp;nbsp;처음에는 toc.ncx 을 읽어 하나 하나 파싱하려고 했는데좋은 라이브러리가 있었다.book 객체에 epub 정보 담아두고book.toc 불러오면 바로 읽히더라 굿import ebooklibfrom ebo&quot; data-og-host=&quot;minicode.tistory.com&quot; data-og-source-url=&quot;https://minicode.tistory.com/320&quot; data-og-url=&quot;https://minicode.tistory.com/320&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/OVlIf/hyXlRYwg8x/w1DlEPY1Si7q4RrDCEu070/img.png?width=780&amp;amp;height=890&amp;amp;face=0_0_780_890,https://scrap.kakaocdn.net/dn/bexj1p/hyXlPTXird/Gp3Eoa3JGNK1FLFpfAgOu0/img.png?width=780&amp;amp;height=890&amp;amp;face=0_0_780_890&quot;&gt;&lt;a href=&quot;https://minicode.tistory.com/320&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://minicode.tistory.com/320&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/OVlIf/hyXlRYwg8x/w1DlEPY1Si7q4RrDCEu070/img.png?width=780&amp;amp;height=890&amp;amp;face=0_0_780_890,https://scrap.kakaocdn.net/dn/bexj1p/hyXlPTXird/Gp3Eoa3JGNK1FLFpfAgOu0/img.png?width=780&amp;amp;height=890&amp;amp;face=0_0_780_890');&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;python으로 epub 목차 가져오기&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;python으로&amp;nbsp;epub&amp;nbsp;목차&amp;nbsp;가져오기&amp;nbsp;처음에는 toc.ncx 을 읽어 하나 하나 파싱하려고 했는데좋은 라이브러리가 있었다.book 객체에 epub 정보 담아두고book.toc 불러오면 바로 읽히더라 굿import ebooklibfrom ebo&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;minicode.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&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;EbookLib, python-telegram-bot 라이브러리에게 무수한 감사를 :)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;봇 소개&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;/help 명령어를 통해 도움말을 확인할 수 있다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;490&quot; data-origin-height=&quot;763&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bFvwQV/btsKeEZqjLz/ZizREYKdw0HFcqgE0em1g1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bFvwQV/btsKeEZqjLz/ZizREYKdw0HFcqgE0em1g1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bFvwQV/btsKeEZqjLz/ZizREYKdw0HFcqgE0em1g1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbFvwQV%2FbtsKeEZqjLz%2FZizREYKdw0HFcqgE0em1g1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;490&quot; height=&quot;763&quot; data-origin-width=&quot;490&quot; data-origin-height=&quot;763&quot;/&gt;&lt;/span&gt;&lt;/figure&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;
&lt;p data-ke-size=&quot;size16&quot;&gt;먼저 epub 파일을 전송해주자&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;참고로 20mb 넘는 파일은 라이브러리 특성 상 처리하지 못한다. (해결 방법이 있는지는 알아보지 않음)&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/df9DAq/btsKdRx9r2f/FmJigxi2EK9CToEVR043O1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/df9DAq/btsKdRx9r2f/FmJigxi2EK9CToEVR043O1/img.png&quot; data-origin-width=&quot;490&quot; data-origin-height=&quot;763&quot; data-is-animation=&quot;false&quot; style=&quot;width: 49.4186%; margin-right: 10px;&quot; data-widthpercent=&quot;50&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/df9DAq/btsKdRx9r2f/FmJigxi2EK9CToEVR043O1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fdf9DAq%2FbtsKdRx9r2f%2FFmJigxi2EK9CToEVR043O1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;490&quot; height=&quot;763&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bC1pCK/btsKeQZm8CO/wIGsGWaJNhyRHjwSINek8k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bC1pCK/btsKeQZm8CO/wIGsGWaJNhyRHjwSINek8k/img.png&quot; data-origin-width=&quot;490&quot; data-origin-height=&quot;763&quot; data-is-animation=&quot;false&quot; style=&quot;width: 49.4186%;&quot; data-widthpercent=&quot;50&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bC1pCK/btsKeQZm8CO/wIGsGWaJNhyRHjwSINek8k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbC1pCK%2FbtsKeQZm8CO%2FwIGsGWaJNhyRHjwSINek8k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;490&quot; height=&quot;763&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&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;/book 명령어를 통해 현재 책 정보를 알 수 있다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;490&quot; data-origin-height=&quot;763&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/R5rKL/btsKeLcT0zb/g6jkXygBcs0cnCC5rK6ZFk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/R5rKL/btsKeLcT0zb/g6jkXygBcs0cnCC5rK6ZFk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/R5rKL/btsKeLcT0zb/g6jkXygBcs0cnCC5rK6ZFk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FR5rKL%2FbtsKeLcT0zb%2Fg6jkXygBcs0cnCC5rK6ZFk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;490&quot; height=&quot;763&quot; data-origin-width=&quot;490&quot; data-origin-height=&quot;763&quot;/&gt;&lt;/span&gt;&lt;/figure&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;/index 명령을 통해 목차를 확인할 수 있다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;490&quot; data-origin-height=&quot;763&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dlujC4/btsKc2HaA3W/wMTzY9dKY97glsACXDieP0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dlujC4/btsKc2HaA3W/wMTzY9dKY97glsACXDieP0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dlujC4/btsKc2HaA3W/wMTzY9dKY97glsACXDieP0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdlujC4%2FbtsKc2HaA3W%2FwMTzY9dKY97glsACXDieP0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;490&quot; height=&quot;763&quot; data-origin-width=&quot;490&quot; data-origin-height=&quot;763&quot;/&gt;&lt;/span&gt;&lt;/figure&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;
&lt;p data-ke-size=&quot;size16&quot;&gt;1번 목차로 가보겠다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;490&quot; data-origin-height=&quot;763&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/xyEOO/btsKeF428uq/sG0NX25jqApCY9THtQiY6k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/xyEOO/btsKeF428uq/sG0NX25jqApCY9THtQiY6k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/xyEOO/btsKeF428uq/sG0NX25jqApCY9THtQiY6k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FxyEOO%2FbtsKeF428uq%2FsG0NX25jqApCY9THtQiY6k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;490&quot; height=&quot;763&quot; data-origin-width=&quot;490&quot; data-origin-height=&quot;763&quot;/&gt;&lt;/span&gt;&lt;/figure&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&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bA3rpp/btsKdxUunq1/jzKuJW9AHyoawG0AC6mkc0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bA3rpp/btsKdxUunq1/jzKuJW9AHyoawG0AC6mkc0/img.png&quot; data-origin-width=&quot;490&quot; data-origin-height=&quot;788&quot; data-is-animation=&quot;false&quot; style=&quot;width: 32.5581%; margin-right: 10px;&quot; data-widthpercent=&quot;33.33&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bA3rpp/btsKdxUunq1/jzKuJW9AHyoawG0AC6mkc0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbA3rpp%2FbtsKdxUunq1%2FjzKuJW9AHyoawG0AC6mkc0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;490&quot; height=&quot;788&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bSmvoy/btsKeRDXDAS/szECWHsH8fqgda7K25pwUk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bSmvoy/btsKeRDXDAS/szECWHsH8fqgda7K25pwUk/img.png&quot; data-origin-width=&quot;490&quot; data-origin-height=&quot;788&quot; data-is-animation=&quot;false&quot; style=&quot;width: 32.5581%; margin-right: 10px;&quot; data-widthpercent=&quot;33.33&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bSmvoy/btsKeRDXDAS/szECWHsH8fqgda7K25pwUk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbSmvoy%2FbtsKeRDXDAS%2FszECWHsH8fqgda7K25pwUk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;490&quot; height=&quot;788&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/oXGrT/btsKdScNvPJ/N7BeB7vxg2CPkabk2B2SNk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/oXGrT/btsKdScNvPJ/N7BeB7vxg2CPkabk2B2SNk/img.png&quot; data-origin-width=&quot;490&quot; data-origin-height=&quot;788&quot; data-is-animation=&quot;false&quot; style=&quot;width: 32.5581%;&quot; data-widthpercent=&quot;33.34&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/oXGrT/btsKdScNvPJ/N7BeB7vxg2CPkabk2B2SNk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FoXGrT%2FbtsKdScNvPJ%2FN7BeB7vxg2CPkabk2B2SNk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;490&quot; height=&quot;788&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&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;일부로 240자 가량으로 끊어 보내지게 했다.&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;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;마치며&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 봇이 실행되고 있는 한, PC, 모바일환경 상관 없이 가볍게 채팅하듯 책을 읽을 수 있게 되었다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;물론 epub 파일을 개인이 소유하고 있어야 한다는 단점이 있지만...!&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>사이드 프로젝트/[TeleReaderBot] 텔레그램으로 전자책 읽기  </category>
      <author>직장인 조모씨</author>
      <guid isPermaLink="true">https://minicode.tistory.com/321</guid>
      <comments>https://minicode.tistory.com/321#entry321comment</comments>
      <pubDate>Tue, 22 Oct 2024 11:48:07 +0900</pubDate>
    </item>
    <item>
      <title>python으로 epub 목차 가져오기</title>
      <link>https://minicode.tistory.com/320</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;python으로&amp;nbsp;epub&amp;nbsp;목차&amp;nbsp;가져오기&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;처음에는 toc.ncx 을 읽어 하나 하나 파싱하려고 했는데&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;좋은 라이브러리가 있었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;book 객체에 epub 정보 담아두고&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;book.toc 불러오면 바로 읽히더라 굿&lt;/p&gt;
&lt;pre id=&quot;code_1729564168768&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import ebooklib
from ebooklib import epub
from bs4 import BeautifulSoup


# EPUB 파일의 목차를 리스트로 저장하는 함수 (book.toc 사용)
def get_toc(epub_file):
    book = epub.read_epub(epub_file)

    # book.toc을 통해 목차 정보 가져오기
    toc_list = []

    def parse_toc(toc_items):
        for item in toc_items:
            if isinstance(item, tuple):
                toc_list.append((item[0].title, item[0].href))  # 제목과 파일 경로 저장
                if item[1]:  # 하위 항목이 있는 경우 재귀적으로 처리
                    parse_toc(item[1])
            else:
                toc_list.append((item.title, item.href))

    parse_toc(book.toc)

    return toc_list, book&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;html 파일 순서 알아내는 방법&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이건 content.opf 파일에 들어있는데, spine 항목을 보면 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;마찬가지로 book.spine을 이용하면 됨.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;780&quot; data-origin-height=&quot;890&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dbeTUQ/btsKeFcTFoI/Doh8uYBAn9rSSbZoQq1NZ1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dbeTUQ/btsKeFcTFoI/Doh8uYBAn9rSSbZoQq1NZ1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dbeTUQ/btsKeFcTFoI/Doh8uYBAn9rSSbZoQq1NZ1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdbeTUQ%2FbtsKeFcTFoI%2FDoh8uYBAn9rSSbZoQq1NZ1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;780&quot; height=&quot;890&quot; data-origin-width=&quot;780&quot; data-origin-height=&quot;890&quot;/&gt;&lt;/span&gt;&lt;/figure&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;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>사이드 프로젝트/[TeleReaderBot] 텔레그램으로 전자책 읽기  </category>
      <author>직장인 조모씨</author>
      <guid isPermaLink="true">https://minicode.tistory.com/320</guid>
      <comments>https://minicode.tistory.com/320#entry320comment</comments>
      <pubDate>Tue, 22 Oct 2024 11:33:58 +0900</pubDate>
    </item>
    <item>
      <title>텔레그램 봇 생성과 토큰 얻는 방법 + 챗 아이디 얻기</title>
      <link>https://minicode.tistory.com/319</link>
      <description>&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;텔레그램 봇 생성 &amp;amp; 토큰 얻기&lt;/b&gt;&lt;/h4&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. BotFather 검색 후 대화 시작 ( 텔레그램 봇은 모두 BotFather를 거친다)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. /newbot&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. 봇 이름 입력&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4. 봇 아이디 입력&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;5. 장문의 답장 속 토큰 확인하기&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;855&quot; data-origin-height=&quot;802&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/czBRT5/btsKdLEQWWL/Uqyo7mKhWXSbboKS3sgWI1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/czBRT5/btsKdLEQWWL/Uqyo7mKhWXSbboKS3sgWI1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/czBRT5/btsKdLEQWWL/Uqyo7mKhWXSbboKS3sgWI1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FczBRT5%2FbtsKdLEQWWL%2FUqyo7mKhWXSbboKS3sgWI1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;855&quot; height=&quot;802&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;855&quot; data-origin-height=&quot;802&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;챗 아이디 얻기&lt;/b&gt;&lt;/h4&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. GetIDs Bot 검색 후 대화&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. /start 입력&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. 장문의 답장 속 id 확인하기&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;855&quot; data-origin-height=&quot;802&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/vna6l/btsKeVfeeLH/setQbBKYhgysyTAzhwfXp0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/vna6l/btsKeVfeeLH/setQbBKYhgysyTAzhwfXp0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/vna6l/btsKeVfeeLH/setQbBKYhgysyTAzhwfXp0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fvna6l%2FbtsKeVfeeLH%2FsetQbBKYhgysyTAzhwfXp0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;855&quot; height=&quot;802&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;855&quot; data-origin-height=&quot;802&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>사이드 프로젝트/[TeleReaderBot] 텔레그램으로 전자책 읽기  </category>
      <author>직장인 조모씨</author>
      <guid isPermaLink="true">https://minicode.tistory.com/319</guid>
      <comments>https://minicode.tistory.com/319#entry319comment</comments>
      <pubDate>Tue, 22 Oct 2024 11:22:22 +0900</pubDate>
    </item>
    <item>
      <title>카카오톡 API vs 텔레그램 Bot 선택 과정</title>
      <link>https://minicode.tistory.com/318</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;제목을 입력해주세요_-001 (2).png&quot; data-origin-width=&quot;960&quot; data-origin-height=&quot;960&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/by4eAX/btsKdCOJYdt/7lbIfVbOLStKzMPW4xFVr0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/by4eAX/btsKdCOJYdt/7lbIfVbOLStKzMPW4xFVr0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/by4eAX/btsKdCOJYdt/7lbIfVbOLStKzMPW4xFVr0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fby4eAX%2FbtsKdCOJYdt%2F7lbIfVbOLStKzMPW4xFVr0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;272&quot; height=&quot;272&quot; data-filename=&quot;제목을 입력해주세요_-001 (2).png&quot; data-origin-width=&quot;960&quot; data-origin-height=&quot;960&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;책 읽기 불편해&lt;/b&gt;&lt;/h4&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;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;핸드폰? 이북 리더기?&lt;/b&gt;&lt;/h4&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;1. 핸드폰 크기의 이북 리더기&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;2. 핸드폰 어플로 전자책 읽기&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;b&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;&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;&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;b&gt;생각보다 가독성이 좋았다.&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;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;카톡이 좋은 방법일까?&lt;/b&gt;&lt;/h4&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;이전에 다른 프로젝트를 진행할 때, 카카오 API 를 사용해 본 적이 있었다.&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;b&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;이 때 자동화 도구의 대표적인 텔레그램 Bot이 생각이 났다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&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: 33.3333%; text-align: center;&quot;&gt;구분&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center;&quot;&gt;카카오톡&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center;&quot;&gt;텔레그램&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 33.3333%; text-align: left;&quot;&gt;접근성 / 사용성&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; text-align: left;&quot;&gt;API 사용을 위해 개발자 계정이 필요&lt;br /&gt;제한, 승인 절차도 존재&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; text-align: left;&quot;&gt;API 접근 용이, Python 개발이 쉬움&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 33.3333%; text-align: left;&quot;&gt;메시지 처리량&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; text-align: left;&quot;&gt;비즈니스 메시지인 경우 일정 수 이상 비용 발생&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; text-align: left;&quot;&gt;거의 무제한&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 33.3333%; text-align: left;&quot;&gt;비용&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; text-align: left;&quot;&gt;비즈니스 메시지인 경우 일정 수 이상 비용 발생&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; text-align: left;&quot;&gt;무료&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;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;구현이 쉽고 제한이 없는 &lt;b&gt;텔레그램을 사용하기로 결정했다.&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Bot을 한번 사용해보고 싶기도 했고, 재미있는 도전이 될 것 같았다.&lt;/p&gt;</description>
      <category>사이드 프로젝트/[TeleReaderBot] 텔레그램으로 전자책 읽기  </category>
      <author>직장인 조모씨</author>
      <guid isPermaLink="true">https://minicode.tistory.com/318</guid>
      <comments>https://minicode.tistory.com/318#entry318comment</comments>
      <pubDate>Tue, 22 Oct 2024 10:18:17 +0900</pubDate>
    </item>
    <item>
      <title>⭐⭐⭐ 프로그램 개발 의뢰 받아요 ⭐⭐⭐ (2024년 10월부터)</title>
      <link>https://minicode.tistory.com/316</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;428&quot; data-origin-height=&quot;428&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dhzJQA/btsKeEdwKl4/pIAtSWpSMBg8Kg62HrmXlk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dhzJQA/btsKeEdwKl4/pIAtSWpSMBg8Kg62HrmXlk/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dhzJQA/btsKeEdwKl4/pIAtSWpSMBg8Kg62HrmXlk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdhzJQA%2FbtsKeEdwKl4%2FpIAtSWpSMBg8Kg62HrmXlk%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;428&quot; height=&quot;428&quot; data-origin-width=&quot;428&quot; data-origin-height=&quot;428&quot;/&gt;&lt;/span&gt;&lt;/figure&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;/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;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;간단한 기능인데 프로그래밍을 잘 몰라서 망설이셨던 분들&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;새로운 기능 구현을 원하시는 분들 &lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;반복 작업에 지치신 분들 &lt;/b&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;같이 의논하면 문제 해결이 쉬워질 수 있습니다.&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style2&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;분야: 윈도우 응용 프로그램, 매크로, 자동화, 영상처리&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;언어: Python,&amp;nbsp; C++&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #303441; letter-spacing: 0px;&quot;&gt;&amp;nbsp;&lt;/span&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: 33.3333%;&quot;&gt;별 하나 플랜 ⭐&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;별 두개 플랜 ⭐ ⭐&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;별 세개 플랜 ⭐ ⭐ ⭐&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;&lt;span style=&quot;color: #303441; text-align: start;&quot;&gt;간단한 프로그래밍&lt;br /&gt;( 기존 코드 수정 및 단순 문제풀이)&lt;br /&gt;- GUI 없음&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;&lt;span&gt;데스크톱 어플리케이션 개발&lt;/span&gt;&lt;br /&gt;&lt;span&gt;- Pyqt, MFC를 통한 간단한 GUI 연동&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;협의&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;작업일 2일&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;작업일 7일&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;협의&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;30,000원 부터&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;100,000원 부터&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;협의&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;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://open.kakao.com/o/sNPJzLVg&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://open.kakao.com/o/sNPJzLVg&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1729495950795&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;직장인 조모씨님의 오픈프로필&quot; data-og-description=&quot;python,&amp;nbsp;c++&amp;nbsp;응용&amp;nbsp;프로그램&amp;nbsp;개발&amp;nbsp;의뢰&amp;nbsp;받습니다.&amp;nbsp;minicode.tistory.com&quot; data-og-host=&quot;open.kakao.com&quot; data-og-source-url=&quot;https://open.kakao.com/o/sNPJzLVg&quot; data-og-url=&quot;https://open.kakao.com/o/sNPJzLVg&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/i8mN8/hyXlNO5KAe/kf50UG31RFwArsRljkP4O0/img.jpg?width=1200&amp;amp;height=628&amp;amp;face=0_0_1200_628&quot;&gt;&lt;a href=&quot;https://open.kakao.com/o/sNPJzLVg&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://open.kakao.com/o/sNPJzLVg&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/i8mN8/hyXlNO5KAe/kf50UG31RFwArsRljkP4O0/img.jpg?width=1200&amp;amp;height=628&amp;amp;face=0_0_1200_628');&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;직장인 조모씨님의 오픈프로필&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;python,&amp;nbsp;c++&amp;nbsp;응용&amp;nbsp;프로그램&amp;nbsp;개발&amp;nbsp;의뢰&amp;nbsp;받습니다.&amp;nbsp;minicode.tistory.com&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;open.kakao.com&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>
      <author>직장인 조모씨</author>
      <guid isPermaLink="true">https://minicode.tistory.com/316</guid>
      <comments>https://minicode.tistory.com/316#entry316comment</comments>
      <pubDate>Mon, 21 Oct 2024 16:41:24 +0900</pubDate>
    </item>
    <item>
      <title>[Git] 원격 리포지토리에 푸시하지 못했습니다. Out of memory, malloc failed</title>
      <link>https://minicode.tistory.com/314</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;844&quot; data-origin-height=&quot;512&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bnxelq/btsJ59dUIk9/iAleaIr5vqiEJKoS6HQuW0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bnxelq/btsJ59dUIk9/iAleaIr5vqiEJKoS6HQuW0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bnxelq/btsJ59dUIk9/iAleaIr5vqiEJKoS6HQuW0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbnxelq%2FbtsJ59dUIk9%2FiAleaIr5vqiEJKoS6HQuW0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;844&quot; height=&quot;512&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;844&quot; data-origin-height=&quot;512&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;원격 리포지토리에 푸시하지 못했습니다. 자세한 내용은 출력 창을 참조하세요.&lt;br /&gt;Enumerating objects: 2812, done.&lt;br /&gt;Delta compression using up to 20 threads&lt;br /&gt;원격 리포지토리에 푸시하는 동안 오류가 발생했습니다. Git failed with a fatal error.&lt;br /&gt;Git failed with a fatal error.&lt;br /&gt;Out of memory, malloc failed (tried to allocate 388617217 bytes)&lt;br /&gt;the remote end hung up unexpectedly&lt;br /&gt;send-pack: unexpected disconnect while reading sideband packet&lt;br /&gt;the remote end hung up unexpectedly&lt;br /&gt;failed to push some refs to&lt;/p&gt;
&lt;p&gt;&lt;del&gt;~&lt;/del&gt;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;해결방법&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;737&quot; data-origin-height=&quot;173&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/PJULr/btsJ6tiKqnC/2RYbHolw4UnstywGK0Ip4k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/PJULr/btsJ6tiKqnC/2RYbHolw4UnstywGK0Ip4k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/PJULr/btsJ6tiKqnC/2RYbHolw4UnstywGK0Ip4k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FPJULr%2FbtsJ6tiKqnC%2F2RYbHolw4UnstywGK0Ip4k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;737&quot; height=&quot;173&quot; data-origin-width=&quot;737&quot; data-origin-height=&quot;173&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;설명&lt;/b&gt;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;Git &lt;code&gt;http.postBuffer&lt;/code&gt; 설정: 대규모 푸시 시 HTTP 버퍼 문제 해결하기&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Git을 통해 대규모 데이터를 원격 리포지토리에 푸시할 때, &lt;code&gt;http.postBuffer&lt;/code&gt; 설정은 매우 중요한 역할을 한다. 특히, 원격 서버로 데이터를 전송하는 과정에서 &quot;the remote end hung up unexpectedly&quot; 또는 &quot;mmap failed&quot;와 같은 오류가 발생한다면, Git이 사용하는 HTTP 버퍼 크기가 제한되어 문제가 발생했을 가능성이 있다. 이번 포스팅에서는 &lt;code&gt;http.postBuffer&lt;/code&gt; 설정을 통해 대규모 파일 푸시 문제를 해결하는 방법을 소개한다.&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;HTTP 버퍼란?&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Git은 데이터를 HTTP 프로토콜을 사용하여 원격 리포지토리로 전송할 때, 일정한 크기의 버퍼를 사용해 데이터를 나누어 보낸다. 이때, 버퍼 크기가 너무 작으면 대용량 데이터나 파일을 전송하는 과정에서 전송이 중단되거나, 원격 서버가 갑자기 연결을 끊어버리는 문제가 발생할 수 있다. 이러한 문제는 파일이 너무 커서 HTTP 버퍼를 초과할 때 주로 발생한다.&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;code&gt;http.postBuffer&lt;/code&gt; 설정이란?&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;http.postBuffer&lt;/code&gt;는 Git에서 HTTP 프로토콜을 사용해 데이터를 전송할 때 사용할 수 있는 버퍼의 최대 크기를 설정하는 옵션이다. 기본적으로 이 값은 1MB로 설정되어 있다. 하지만 대규모 파일을 푸시할 경우 이 크기를 늘려주면 전송이 안정적으로 이루어질 수 있다.&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;code&gt;http.postBuffer&lt;/code&gt; 설정 방법&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음 명령어를 사용하여 Git의 &lt;code&gt;http.postBuffer&lt;/code&gt; 크기를 500MB로 설정할 수 있다:&lt;/p&gt;
&lt;pre class=&quot;routeros&quot;&gt;&lt;code&gt;git config --global http.postBuffer 524288000&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 명령어는 HTTP 버퍼 크기를 500MB로 설정하여, Git이 대용량 데이터를 전송할 때 더 큰 버퍼를 사용하도록 한다. 이렇게 하면 대규모 데이터를 전송하는 과정에서 발생할 수 있는 &quot;unexpectedly hung up&quot; 오류를 줄일 수 있다.&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;언제 이 설정이 필요할까?&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 설정은 특히 다음과 같은 상황에서 유용하다:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;대용량 파일&lt;/b&gt;을 포함한 리포지토리를 푸시할 때.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;네트워크 연결이 불안정&lt;/b&gt;할 때, 데이터가 작은 크기로 나뉘어 전송될 때마다 연결이 끊기는 문제가 발생할 수 있다. 이때 버퍼 크기를 늘리면 한 번에 더 많은 데이터를 전송하게 되어 문제를 해결할 수 있다.&lt;/li&gt;
&lt;li&gt;원격 서버에서 &lt;b&gt;HTTP 프로토콜&lt;/b&gt;을 사용할 때, SSH나 Git 프로토콜이 아닌 경우에 HTTP 버퍼 크기 문제로 인해 전송 오류가 발생할 가능성이 높다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;마무리&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;http.postBuffer&lt;/code&gt; 설정을 통해 Git이 데이터를 푸시할 때 사용할 수 있는 버퍼 크기를 적절히 조정함으로써, 대규모 파일이나 데이터 전송 문제를 해결할 수 있다. 특히, 원격 서버로 대량의 데이터를 전송할 때 발생하는 전송 중단 문제는 이 설정을 통해 해결되는 경우가 많다. 따라서 대규모 리포지토리를 운영하거나 대용량 파일을 자주 다루는 경우, 이 설정을 적절히 조정하여 Git 환경을 최적화하자.&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;Git 메모리 사용 최적화: 대규모 푸시 문제 해결하기&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Git을 사용하여 대규모 리포지토리를 원격 서버에 푸시할 때, 메모리 사용량이 급격히 증가하여 오류가 발생할 수 있다. 특히, &amp;ldquo;mmap failed&amp;rdquo;나 &quot;Out of memory&quot; 같은 메시지가 보인다면, 이는 Git이 푸시할 데이터를 압축하는 과정에서 과도한 메모리를 사용하는 것이 원인일 가능성이 높다. 이러한 문제는 푸시할 파일의 크기와 델타 압축 처리 방식이 결합되어 발생하는 경우가 많다.&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;1. &lt;code&gt;pack.windowMemory&lt;/code&gt; 설정으로 메모리 제어하기&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Git은 푸시할 파일을 패킹(pack)하고 델타 압축을 처리하는 과정에서 많은 메모리를 사용한다. 이때 &lt;code&gt;pack.windowMemory&lt;/code&gt; 설정을 통해 Git이 사용하는 메모리 양을 제한할 수 있다. 기본적으로 Git은 대규모 파일을 처리할 때 더 많은 메모리를 할당하는데, 이 값을 적절히 줄이면 메모리 부족 문제를 피할 수 있다.&lt;/p&gt;
&lt;pre class=&quot;routeros&quot;&gt;&lt;code&gt;git config --global pack.windowMemory 100m&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 명령어는 Git이 압축을 처리할 때 사용할 수 있는 메모리를 100MB로 제한한다. 이로 인해 델타 압축 과정에서 필요한 메모리 양을 줄일 수 있어 메모리 부족 문제를 예방할 수 있다.&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;2. &lt;code&gt;pack.packSizeLimit&lt;/code&gt;으로 패키지 크기 제한하기&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;pack.packSizeLimit&lt;/code&gt; 옵션은 Git이 한 번에 패킹할 수 있는 최대 파일 크기를 제한한다. 이 설정을 통해 대규모 파일을 한 번에 처리하지 않도록 할 수 있으며, 이는 메모리 사용량을 더욱 효과적으로 줄이는 데 기여한다.&lt;/p&gt;
&lt;pre class=&quot;routeros&quot;&gt;&lt;code&gt;git config --global pack.packSizeLimit 100m&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 설정은 Git이 100MB 이상 크기의 파일을 한 번에 처리하지 않도록 제한한다. 대형 파일을 여러 작은 패킷으로 나누어 처리하게 되어 메모리 사용을 효율적으로 분산시킬 수 있다.&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;3. &lt;code&gt;pack.threads&lt;/code&gt;로 병렬 처리 스레드 수 줄이기&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Git은 기본적으로 푸시할 데이터를 병렬로 처리하기 위해 여러 개의 스레드를 사용한다. 그러나 많은 스레드를 사용할수록 메모리 사용량이 증가할 수 있다. 이를 방지하기 위해 &lt;code&gt;pack.threads&lt;/code&gt; 옵션을 사용하여 병렬 처리에 사용되는 스레드 수를 제한할 수 있다.&lt;/p&gt;
&lt;pre class=&quot;routeros&quot;&gt;&lt;code&gt;git config --global pack.threads &quot;1&quot;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 설정은 Git이 압축 작업을 단일 스레드로 처리하도록 한다. 이는 메모리 사용량을 최소화하는 데 유리하며, 특히 시스템 메모리가 제한된 환경에서 효과적이다.&lt;/p&gt;</description>
      <category>배움 - 차근차근 기록하자/[기타] etc ⚫</category>
      <author>직장인 조모씨</author>
      <guid isPermaLink="true">https://minicode.tistory.com/314</guid>
      <comments>https://minicode.tistory.com/314#entry314comment</comments>
      <pubDate>Tue, 15 Oct 2024 10:12:48 +0900</pubDate>
    </item>
    <item>
      <title>NSIS 설치파일 만들기</title>
      <link>https://minicode.tistory.com/313</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;1. NSIS 다운로드&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://nsis.sourceforge.io/Download&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://nsis.sourceforge.io/Download&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1727418560555&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;Download - NSIS&quot; data-og-description=&quot;&quot; data-og-host=&quot;nsis.sourceforge.io&quot; data-og-source-url=&quot;https://nsis.sourceforge.io/Download&quot; data-og-url=&quot;https://nsis.sourceforge.io/Download&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://nsis.sourceforge.io/Download&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://nsis.sourceforge.io/Download&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;Download - NSIS&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;nsis.sourceforge.io&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;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. HS NIS Edit 다운로드&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://hmne.sourceforge.net/&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://hmne.sourceforge.net/&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1727418576816&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;HM NIS Edit: A Free NSIS Editor/IDE&quot; data-og-description=&quot;HM NIS EDIT: A Free NSIS Editor/IDE &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; HM NIS Edit is the best Editor/IDE for Nullsoft Scriptable Install System (NSIS). Its useful for experts and beginners in the creation of Setup programs with the NSIS. Its S&quot; data-og-host=&quot;hmne.sourceforge.net&quot; data-og-source-url=&quot;https://hmne.sourceforge.net/&quot; data-og-url=&quot;https://hmne.sourceforge.net/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/mW4xY/hyXaG3krbq/UkwqBLcJzrkNV4TtuMstx1/img.jpg?width=335&amp;amp;height=252&amp;amp;face=0_0_335_252,https://scrap.kakaocdn.net/dn/loOxP/hyW6FygpV6/dwS98KRJLQeLKA1piXKWXK/img.jpg?width=334&amp;amp;height=251&amp;amp;face=0_0_334_251&quot;&gt;&lt;a href=&quot;https://hmne.sourceforge.net/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://hmne.sourceforge.net/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/mW4xY/hyXaG3krbq/UkwqBLcJzrkNV4TtuMstx1/img.jpg?width=335&amp;amp;height=252&amp;amp;face=0_0_335_252,https://scrap.kakaocdn.net/dn/loOxP/hyW6FygpV6/dwS98KRJLQeLKA1piXKWXK/img.jpg?width=334&amp;amp;height=251&amp;amp;face=0_0_334_251');&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;HM NIS Edit: A Free NSIS Editor/IDE&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;HM NIS EDIT: A Free NSIS Editor/IDE &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; HM NIS Edit is the best Editor/IDE for Nullsoft Scriptable Install System (NSIS). Its useful for experts and beginners in the creation of Setup programs with the NSIS. Its S&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;hmne.sourceforge.net&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;
&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;3. (선택사항) 기존 설치파일 만들 때 사용하던 이미지가 있는 경우 Contrib 폴더 덮어써주기.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;C:\Program&amp;nbsp;Files&amp;nbsp;(x86)\NSIS\Contrib&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;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Refenrence&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. &lt;a href=&quot;https://luckygg.tistory.com/258&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://luckygg.tistory.com/258&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1727418590084&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;[NSIS] NSIS 프로그램 다운로드 및 설치하기&quot; data-og-description=&quot;NSIS 다운로드 아래 링크에 접속하여 NSIS 최신 버전을 다운로드합니다. 링크: nsis.sourceforge.io/Download 접속하면 아래와 같은 화면이 표시됩니다. Download 버튼을 클릭합니다. Download 버튼을 클릭하면 S&quot; data-og-host=&quot;luckygg.tistory.com&quot; data-og-source-url=&quot;https://luckygg.tistory.com/258&quot; data-og-url=&quot;https://luckygg.tistory.com/258&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/qDQju/hyXaCT8SaV/aKcuEluPxfOEPeJtww3Fo1/img.png?width=503&amp;amp;height=392&amp;amp;face=0_0_503_392,https://scrap.kakaocdn.net/dn/sQA6w/hyXaC7soos/JcMkN9fRhOcUy1ESWKwtYk/img.png?width=503&amp;amp;height=392&amp;amp;face=0_0_503_392,https://scrap.kakaocdn.net/dn/bKZvix/hyXaE5ukmT/hvLSHY4zy8AqboXsD0T3KK/img.png?width=503&amp;amp;height=392&amp;amp;face=0_0_503_392&quot;&gt;&lt;a href=&quot;https://luckygg.tistory.com/258&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://luckygg.tistory.com/258&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/qDQju/hyXaCT8SaV/aKcuEluPxfOEPeJtww3Fo1/img.png?width=503&amp;amp;height=392&amp;amp;face=0_0_503_392,https://scrap.kakaocdn.net/dn/sQA6w/hyXaC7soos/JcMkN9fRhOcUy1ESWKwtYk/img.png?width=503&amp;amp;height=392&amp;amp;face=0_0_503_392,https://scrap.kakaocdn.net/dn/bKZvix/hyXaE5ukmT/hvLSHY4zy8AqboXsD0T3KK/img.png?width=503&amp;amp;height=392&amp;amp;face=0_0_503_392');&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;[NSIS] NSIS 프로그램 다운로드 및 설치하기&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;NSIS 다운로드 아래 링크에 접속하여 NSIS 최신 버전을 다운로드합니다. 링크: nsis.sourceforge.io/Download 접속하면 아래와 같은 화면이 표시됩니다. Download 버튼을 클릭합니다. Download 버튼을 클릭하면 S&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;luckygg.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. &lt;a href=&quot;https://luckygg.tistory.com/259&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://luckygg.tistory.com/259&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1727418597992&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;[NSIS] HM NIS Edit 프로그램 다운로드 및 설치하기&quot; data-og-description=&quot;소개 이전 포스팅에서 NSIS 프로그램 다운로드 및 설치 방법을 소개했었습니다. [NSIS] NSIS 프로그램 다운로드 및 설치하기 그런데 막상 실행해보면 어떻게 사용해야 하는지 모를 겁니다. 문서나 &quot; data-og-host=&quot;luckygg.tistory.com&quot; data-og-source-url=&quot;https://luckygg.tistory.com/259&quot; data-og-url=&quot;https://luckygg.tistory.com/259&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/dZohy0/hyXaFDk9Yk/XejPJPc7Hz9LuflAaSfb8K/img.png?width=800&amp;amp;height=683&amp;amp;face=0_0_800_683,https://scrap.kakaocdn.net/dn/hIzr1/hyXaJThF3T/xKS3pfp619Oa0001hHqK90/img.png?width=800&amp;amp;height=683&amp;amp;face=0_0_800_683,https://scrap.kakaocdn.net/dn/w5TK4/hyW6yFRZaM/FyykvOmp1ZUmXttsK2oKIk/img.png?width=858&amp;amp;height=724&amp;amp;face=0_0_858_724&quot;&gt;&lt;a href=&quot;https://luckygg.tistory.com/259&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://luckygg.tistory.com/259&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/dZohy0/hyXaFDk9Yk/XejPJPc7Hz9LuflAaSfb8K/img.png?width=800&amp;amp;height=683&amp;amp;face=0_0_800_683,https://scrap.kakaocdn.net/dn/hIzr1/hyXaJThF3T/xKS3pfp619Oa0001hHqK90/img.png?width=800&amp;amp;height=683&amp;amp;face=0_0_800_683,https://scrap.kakaocdn.net/dn/w5TK4/hyW6yFRZaM/FyykvOmp1ZUmXttsK2oKIk/img.png?width=858&amp;amp;height=724&amp;amp;face=0_0_858_724');&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;[NSIS] HM NIS Edit 프로그램 다운로드 및 설치하기&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;소개 이전 포스팅에서 NSIS 프로그램 다운로드 및 설치 방법을 소개했었습니다. [NSIS] NSIS 프로그램 다운로드 및 설치하기 그런데 막상 실행해보면 어떻게 사용해야 하는지 모를 겁니다. 문서나&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;luckygg.tistory.com&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>배움 - 차근차근 기록하자/[기타] etc ⚫</category>
      <author>직장인 조모씨</author>
      <guid isPermaLink="true">https://minicode.tistory.com/313</guid>
      <comments>https://minicode.tistory.com/313#entry313comment</comments>
      <pubDate>Fri, 27 Sep 2024 16:54:09 +0900</pubDate>
    </item>
    <item>
      <title>libtorch serialize (RT Convert) 오류 1</title>
      <link>https://minicode.tistory.com/312</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;inference library framework 변경 중 발생한 오류.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;m_Engine_RTs 객체 초기화가 안되어 발생하였다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1602&quot; data-origin-height=&quot;916&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bO8u2i/btsJHZhRsKS/JgVqxSx9uS3jiSzg75aMdk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bO8u2i/btsJHZhRsKS/JgVqxSx9uS3jiSzg75aMdk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bO8u2i/btsJHZhRsKS/JgVqxSx9uS3jiSzg75aMdk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbO8u2i%2FbtsJHZhRsKS%2FJgVqxSx9uS3jiSzg75aMdk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1602&quot; height=&quot;916&quot; data-origin-width=&quot;1602&quot; data-origin-height=&quot;916&quot;/&gt;&lt;/span&gt;&lt;/figure&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;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;* setDimensions 파라미터 순서 변경&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;-&amp;gt; 주석달린&amp;nbsp;TensorFlow의&amp;nbsp;경우에는&amp;nbsp;NHWC&amp;nbsp;순서,&amp;nbsp;주석이&amp;nbsp;없는&amp;nbsp;PyTorch의&amp;nbsp;경우에는&amp;nbsp;NCHW&amp;nbsp;순서&amp;nbsp;(N:&amp;nbsp;배치,&amp;nbsp;H:&amp;nbsp;높이,&amp;nbsp;W:&amp;nbsp;너비,&amp;nbsp;C:&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;* inputLayer, outputLayer 이름 변경&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;-&amp;gt; 아래 사진의 좌측은 tensorflow, 우측은 pytorch 이다. 같은 모델이더라도 layer 이름이 바뀌어서 맞춰줘야 한다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1907&quot; data-origin-height=&quot;913&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/N9XXd/btsJF4ZOQ12/kmARENzd7KaJRed0oD4FNk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/N9XXd/btsJF4ZOQ12/kmARENzd7KaJRed0oD4FNk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/N9XXd/btsJF4ZOQ12/kmARENzd7KaJRed0oD4FNk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FN9XXd%2FbtsJF4ZOQ12%2FkmARENzd7KaJRed0oD4FNk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1907&quot; height=&quot;913&quot; data-origin-width=&quot;1907&quot; data-origin-height=&quot;913&quot;/&gt;&lt;/span&gt;&lt;/figure&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;RT convert 완료&lt;/p&gt;</description>
      <category>배움 - 차근차근 기록하자/[개발] 딥러닝  </category>
      <author>직장인 조모씨</author>
      <guid isPermaLink="true">https://minicode.tistory.com/312</guid>
      <comments>https://minicode.tistory.com/312#entry312comment</comments>
      <pubDate>Fri, 20 Sep 2024 17:04:34 +0900</pubDate>
    </item>
    <item>
      <title>libtorch classification inference , torch::jit::load fail</title>
      <link>https://minicode.tistory.com/311</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;아래 부분에서 에러 발생&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;650&quot; data-origin-height=&quot;280&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bJgfkw/btsJAXyDwP2/H9gKqsCGsrMyihQtLRJiSk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bJgfkw/btsJAXyDwP2/H9gKqsCGsrMyihQtLRJiSk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bJgfkw/btsJAXyDwP2/H9gKqsCGsrMyihQtLRJiSk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbJgfkw%2FbtsJAXyDwP2%2FH9gKqsCGsrMyihQtLRJiSk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;650&quot; height=&quot;280&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;650&quot; data-origin-height=&quot;280&quot;/&gt;&lt;/span&gt;&lt;/figure&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;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래는 pytorch 모델 훈련 결과물이다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;dummy_cls_heatmap.pth 로드할 때 문제가 생기는데&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;dummy_cls_heatmap_jit.pth 파일을 로드해야 하나?&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;630&quot; data-origin-height=&quot;239&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b2djwd/btsJBkG10Zx/8ffZgbWPWOBZ3kwTc6bcyK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b2djwd/btsJBkG10Zx/8ffZgbWPWOBZ3kwTc6bcyK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b2djwd/btsJBkG10Zx/8ffZgbWPWOBZ3kwTc6bcyK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb2djwd%2FbtsJBkG10Zx%2F8ffZgbWPWOBZ3kwTc6bcyK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;630&quot; height=&quot;239&quot; data-origin-width=&quot;630&quot; data-origin-height=&quot;239&quot;/&gt;&lt;/span&gt;&lt;/figure&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;dummy_cls_heatmap_jit.pth 이름을 dummy_cls_heatmap.pth 로 변경 후 정상 동작함.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;heatmap model 말고 일반 모델같은 경우에는 jit.pth 파일 아닌 원래 pth 파일 로드해도 정상 동작한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;torch::jit&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;torch::jit::load는 PyTorch에서 JIT (Just-In-Time) 컴파일된 TorchScript 모델을 로드하는 함수입니다. PyTorch의 모델은 일반적으로 Python에서 작성되지만, C++에서도 PyTorch 모델을 사용할 수 있게 하기 위해 TorchScript로 변환하는 방법이 있습니다. torch::jit::load는 이 TorchScript로 변환된 모델을 C++에서 불러오기 위해 사용됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;주요 이유는 다음과 같습니다:&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b&gt;C++로의 모델 배포&lt;/b&gt;: Python으로 개발한 모델을 C++로 배포할 때 TorchScript로 변환하여 torch::jit::load로 로드함으로써 Python에 의존하지 않고도 C++에서 모델을 실행할 수 있습니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;성능 향상&lt;/b&gt;: TorchScript 모델은 JIT 컴파일을 통해 최적화될 수 있으며, 이는 특히 성능이 중요한 상황에서 유리합니다. C++로 모델을 실행할 때 JIT 컴파일을 이용하면 속도와 메모리 측면에서 이점이 있습니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;멀티 플랫폼 사용&lt;/b&gt;: C++에서는 GPU(CUDA) 또는 CPU를 선택적으로 사용할 수 있으며, torch::jit::load를 통해 동일한 모델을 다양한 하드웨어에서 실행할 수 있습니다. 코드에서도 torch::cuda::is_available()로 GPU의 사용 여부를 확인하고, 이에 따라 GPU 또는 CPU에서 모델을 실행하도록 하고 있습니다.&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;따라서 torch::jit::load는 PyTorch 모델을 Python 환경 외에서, 특히 성능과 배포를 고려한 C++ 애플리케이션에서 사용할 수 있게 해주는 중요한 함수입니다.&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;h2 data-ke-size=&quot;size26&quot;&gt;결론&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;jit 변환된 파일로 기존 pytorch 모델 transfer learning 되는지 확인해보자.&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;* transfer learning 이&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp;-. 된다면&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; -&amp;gt; jit 변환된 파일을 다른 이름으로 저장하지 말고, 그냥 원래 이름으로 덮어쓰기 해버리자. 해당 파일만 사용해도 무리 없기 때문&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp;-. 안된다면&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; -&amp;gt; Inference Library 단에서 heatmap.pth 로드 대신 heatmap_jit.pth 파일을 로드하도록 변경할 필요가 있음.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>배움 - 차근차근 기록하자/[개발] 딥러닝  </category>
      <author>직장인 조모씨</author>
      <guid isPermaLink="true">https://minicode.tistory.com/311</guid>
      <comments>https://minicode.tistory.com/311#entry311comment</comments>
      <pubDate>Fri, 13 Sep 2024 12:18:01 +0900</pubDate>
    </item>
    <item>
      <title>전처리 단계에서의 예외처리, 런타임 단계에서의 예외처리</title>
      <link>https://minicode.tistory.com/310</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;Define.h&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;302&quot; data-origin-height=&quot;132&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/be5TJ6/btsJyIvgxCW/2JjzSVCSbohugsrIqI65FK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/be5TJ6/btsJyIvgxCW/2JjzSVCSbohugsrIqI65FK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/be5TJ6/btsJyIvgxCW/2JjzSVCSbohugsrIqI65FK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbe5TJ6%2FbtsJyIvgxCW%2F2JjzSVCSbohugsrIqI65FK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;302&quot; height=&quot;132&quot; data-origin-width=&quot;302&quot; data-origin-height=&quot;132&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;global variable class&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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;329&quot; data-origin-height=&quot;18&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bFcUfz/btsJyGRIHE5/Qe8KGktS8wFpKzJTcsVks0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bFcUfz/btsJyGRIHE5/Qe8KGktS8wFpKzJTcsVks0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bFcUfz/btsJyGRIHE5/Qe8KGktS8wFpKzJTcsVks0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbFcUfz%2FbtsJyGRIHE5%2FQe8KGktS8wFpKzJTcsVks0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;329&quot; height=&quot;18&quot; data-origin-width=&quot;329&quot; data-origin-height=&quot;18&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;변수 할당&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;451&quot; data-origin-height=&quot;99&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/8xHZY/btsJz0VCvPM/1AD3lMOtBZZWMYKAbOwlm1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/8xHZY/btsJz0VCvPM/1AD3lMOtBZZWMYKAbOwlm1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/8xHZY/btsJz0VCvPM/1AD3lMOtBZZWMYKAbOwlm1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F8xHZY%2FbtsJz0VCvPM%2F1AD3lMOtBZZWMYKAbOwlm1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;451&quot; height=&quot;99&quot; data-origin-width=&quot;451&quot; data-origin-height=&quot;99&quot;/&gt;&lt;/span&gt;&lt;/figure&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;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;814&quot; data-origin-height=&quot;53&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ST3XQ/btsJyMR99ZE/PjEkKbLFq8x1JbkT5PKVo1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ST3XQ/btsJyMR99ZE/PjEkKbLFq8x1JbkT5PKVo1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ST3XQ/btsJyMR99ZE/PjEkKbLFq8x1JbkT5PKVo1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FST3XQ%2FbtsJyMR99ZE%2FPjEkKbLFq8x1JbkT5PKVo1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;814&quot; height=&quot;53&quot; data-origin-width=&quot;814&quot; data-origin-height=&quot;53&quot;/&gt;&lt;/span&gt;&lt;/figure&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;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;전처리 단에서 막으려면 if defined(PYTORCH_VERSION)&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;런타임 단에서 막으려면 if(is_pytorch_framework())&lt;/b&gt;&lt;/p&gt;</description>
      <category>배움 - 차근차근 기록하자/[개발] C++  </category>
      <author>직장인 조모씨</author>
      <guid isPermaLink="true">https://minicode.tistory.com/310</guid>
      <comments>https://minicode.tistory.com/310#entry310comment</comments>
      <pubDate>Thu, 12 Sep 2024 11:16:41 +0900</pubDate>
    </item>
    <item>
      <title>범주형 데이터의 종속변수와 모델링 기법들</title>
      <link>https://minicode.tistory.com/309</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;590&quot; data-origin-height=&quot;279&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/brkOlh/btsJx5JFW97/aSfsTgzkbRPnmdkmFwGeL0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/brkOlh/btsJx5JFW97/aSfsTgzkbRPnmdkmFwGeL0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/brkOlh/btsJx5JFW97/aSfsTgzkbRPnmdkmFwGeL0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbrkOlh%2FbtsJx5JFW97%2FaSfsTgzkbRPnmdkmFwGeL0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;590&quot; height=&quot;279&quot; data-origin-width=&quot;590&quot; data-origin-height=&quot;279&quot;/&gt;&lt;/span&gt;&lt;/figure&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;주가 분석: 비정상수익을 사용한 회귀분석 / RNN&lt;/p&gt;</description>
      <category>배움 - 차근차근 기록하자/[개발] 딥러닝  </category>
      <author>직장인 조모씨</author>
      <guid isPermaLink="true">https://minicode.tistory.com/309</guid>
      <comments>https://minicode.tistory.com/309#entry309comment</comments>
      <pubDate>Tue, 10 Sep 2024 17:01:31 +0900</pubDate>
    </item>
    <item>
      <title>[Pytorch] Libtorch 1.9.1의 Visual Studio 2015 빌드 실패</title>
      <link>https://minicode.tistory.com/308</link>
      <description>&lt;h3 style=&quot;background-color: #ffffff; color: #333333; text-align: left;&quot; data-ke-size=&quot;size23&quot;&gt;이슈: Libtorch 1.9.1의 Visual Studio 2015 빌드 실패&lt;/h3&gt;
&lt;p style=&quot;background-color: #ffffff; color: #333333; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;환경&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #333333; text-align: left;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;테스트: Windows 11 / Visual Studio 2015 / Libtorch 1.9.1&lt;/li&gt;
&lt;li&gt;Inference Library 빌드 환경: Windows 10 / Visual Studio 2019 / Libtorch 1.9.1&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&quot;background-color: #ffffff; color: #333333; text-align: left;&quot;&gt;&lt;b&gt;문제&lt;/b&gt; Libtorch 1.9.1이 Visual Studio 2015에서 빌드되지 않음.&lt;/div&gt;
&lt;div style=&quot;background-color: #ffffff; color: #333333; text-align: left;&quot;&gt;&lt;b&gt;상세&lt;/b&gt; Visual Studio 2019에서 빌드된 Inference Library를 AI Tool에서 테스트하려 했으나, Visual Studio 2015로 빌드 시 컴파일 오류 발생.&lt;/div&gt;
&lt;div style=&quot;background-color: #ffffff; color: #333333; text-align: left;&quot;&gt;&lt;b&gt;원인&lt;/b&gt; Libtorch 1.9.1은 C++14 이상의 컴파일러 환경이 필요하나, Visual Studio 2015는 C++14를 불완전하게 지원.&lt;/div&gt;
&lt;div style=&quot;background-color: #ffffff; color: #333333; text-align: left;&quot;&gt;&lt;b&gt;해결&lt;/b&gt; Visual Studio 2019에서는 정상 빌드 확인. VS2017 이상으로 업그레이드 필요.&lt;/div&gt;
&lt;div style=&quot;background-color: #ffffff; color: #333333; text-align: left;&quot;&gt;
&lt;div&gt;
&lt;div&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;786&quot; data-origin-height=&quot;364&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/rCHbQ/btsJw3Z5fMq/I7LrmODi1HGWQ3BcTSDJ1K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/rCHbQ/btsJw3Z5fMq/I7LrmODi1HGWQ3BcTSDJ1K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/rCHbQ/btsJw3Z5fMq/I7LrmODi1HGWQ3BcTSDJ1K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FrCHbQ%2FbtsJw3Z5fMq%2FI7LrmODi1HGWQ3BcTSDJ1K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;786&quot; height=&quot;364&quot; data-origin-width=&quot;786&quot; data-origin-height=&quot;364&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;background-color: #ffffff; color: #333333; text-align: left;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;background-color: #ffffff; color: #333333; text-align: left;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #333333; text-align: left;&quot;&gt;기록들...&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1859&quot; data-origin-height=&quot;355&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Bvph7/btsJvmspnhJ/kv4ZNNhkadkNzB8i1MhsBK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Bvph7/btsJvmspnhJ/kv4ZNNhkadkNzB8i1MhsBK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Bvph7/btsJvmspnhJ/kv4ZNNhkadkNzB8i1MhsBK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FBvph7%2FbtsJvmspnhJ%2Fkv4ZNNhkadkNzB8i1MhsBK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1859&quot; height=&quot;355&quot; data-origin-width=&quot;1859&quot; data-origin-height=&quot;355&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1716&quot; data-origin-height=&quot;265&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bSGatM/btsJvUJtMKS/wbdkeVl8gAKdjIYXQ5QgHk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bSGatM/btsJvUJtMKS/wbdkeVl8gAKdjIYXQ5QgHk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bSGatM/btsJvUJtMKS/wbdkeVl8gAKdjIYXQ5QgHk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbSGatM%2FbtsJvUJtMKS%2FwbdkeVl8gAKdjIYXQ5QgHk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1716&quot; height=&quot;265&quot; data-origin-width=&quot;1716&quot; data-origin-height=&quot;265&quot;/&gt;&lt;/span&gt;&lt;/figure&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;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;vs2015 가 지원하는 c++ 버전의 libtorch 일정 버전 이상에서 요구하는 c++ 버전에 못미치기 때문에 문제가 발생하는 듯...&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://github.com/pytorch/pytorch/issues/48165&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://github.com/pytorch/pytorch/issues/48165&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1725945315009&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;object&quot; data-og-title=&quot;Libtorch 1.7,1.6, 1.5 did not work on visual studio 2015 &amp;middot; Issue #48165 &amp;middot; pytorch/pytorch&quot; data-og-description=&quot;  Bug Hi Guys: I try to run libtorch 1.7 on visual studio 2015, as your website recommends and solution was created by following CMake from pytorch.org website. I encounter 102 errors and have no c...&quot; data-og-host=&quot;github.com&quot; data-og-source-url=&quot;https://github.com/pytorch/pytorch/issues/48165&quot; data-og-url=&quot;https://github.com/pytorch/pytorch/issues/48165&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bgd3HO/hyW2VGgNVA/0n9w7otqykUylSkbAyPJR1/img.png?width=1200&amp;amp;height=600&amp;amp;face=0_0_1200_600&quot;&gt;&lt;a href=&quot;https://github.com/pytorch/pytorch/issues/48165&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://github.com/pytorch/pytorch/issues/48165&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bgd3HO/hyW2VGgNVA/0n9w7otqykUylSkbAyPJR1/img.png?width=1200&amp;amp;height=600&amp;amp;face=0_0_1200_600');&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;Libtorch 1.7,1.6, 1.5 did not work on visual studio 2015 &amp;middot; Issue #48165 &amp;middot; pytorch/pytorch&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;  Bug Hi Guys: I try to run libtorch 1.7 on visual studio 2015, as your website recommends and solution was created by following CMake from pytorch.org website. I encounter 102 errors and have no c...&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;github.com&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;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;917&quot; data-origin-height=&quot;452&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dpyf3g/btsJwSdksgq/3NkBrKJbQLw6KYt5LekpJk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dpyf3g/btsJwSdksgq/3NkBrKJbQLw6KYt5LekpJk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dpyf3g/btsJwSdksgq/3NkBrKJbQLw6KYt5LekpJk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fdpyf3g%2FbtsJwSdksgq%2F3NkBrKJbQLw6KYt5LekpJk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;917&quot; height=&quot;452&quot; data-origin-width=&quot;917&quot; data-origin-height=&quot;452&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://github.com/pytorch/pytorch/issues/33333&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://github.com/pytorch/pytorch/issues/33333&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1725946425613&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;object&quot; data-og-title=&quot;windows10 + Vs2015,Compiling libtorch1.4 failed &amp;middot; Issue #33333 &amp;middot; pytorch/pytorch&quot; data-og-description=&quot;I downloaded the Release version of libtorch1.4, and built the project through cmake on win10, Vs2015. When generating a solution, the following error is prompted. Has anyone encountered this kind ...&quot; data-og-host=&quot;github.com&quot; data-og-source-url=&quot;https://github.com/pytorch/pytorch/issues/33333&quot; data-og-url=&quot;https://github.com/pytorch/pytorch/issues/33333&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bP7mVG/hyW2YCZHCc/j7XJh8QZKbVUhWk55LttaK/img.png?width=1200&amp;amp;height=600&amp;amp;face=1014_150_1057_198&quot;&gt;&lt;a href=&quot;https://github.com/pytorch/pytorch/issues/33333&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://github.com/pytorch/pytorch/issues/33333&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bP7mVG/hyW2YCZHCc/j7XJh8QZKbVUhWk55LttaK/img.png?width=1200&amp;amp;height=600&amp;amp;face=1014_150_1057_198');&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;windows10 + Vs2015,Compiling libtorch1.4 failed &amp;middot; Issue #33333 &amp;middot; pytorch/pytorch&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;I downloaded the Release version of libtorch1.4, and built the project through cmake on win10, Vs2015. When generating a solution, the following error is prompted. Has anyone encountered this kind ...&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;github.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;861&quot; data-origin-height=&quot;454&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/zv5pn/btsJyvunSYq/otSDKk1yFTSRM0JVElom10/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/zv5pn/btsJyvunSYq/otSDKk1yFTSRM0JVElom10/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/zv5pn/btsJyvunSYq/otSDKk1yFTSRM0JVElom10/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fzv5pn%2FbtsJyvunSYq%2FotSDKk1yFTSRM0JVElom10%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;861&quot; height=&quot;454&quot; data-origin-width=&quot;861&quot; data-origin-height=&quot;454&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://github.com/pytorch/pytorch/issues/21768&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://github.com/pytorch/pytorch/issues/21768&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1725946841378&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;object&quot; data-og-title=&quot;compile error when using Libtorch 1.1 on windows 7 vs2015 &amp;middot; Issue #21768 &amp;middot; pytorch/pytorch&quot; data-og-description=&quot;❓ Questions and Help I followed the guidence from pytorch.org to make a project which recall the libtorch using Vs2015. Cuda version 8.0 cudnn 7.0 libtorch version 1.1 but when i compile the projec...&quot; data-og-host=&quot;github.com&quot; data-og-source-url=&quot;https://github.com/pytorch/pytorch/issues/21768&quot; data-og-url=&quot;https://github.com/pytorch/pytorch/issues/21768&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/IMMXY/hyW217zymQ/wIyIn6Vy7a19S0KrSZ3y11/img.png?width=1200&amp;amp;height=600&amp;amp;face=0_0_1200_600&quot;&gt;&lt;a href=&quot;https://github.com/pytorch/pytorch/issues/21768&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://github.com/pytorch/pytorch/issues/21768&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/IMMXY/hyW217zymQ/wIyIn6Vy7a19S0KrSZ3y11/img.png?width=1200&amp;amp;height=600&amp;amp;face=0_0_1200_600');&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;compile error when using Libtorch 1.1 on windows 7 vs2015 &amp;middot; Issue #21768 &amp;middot; pytorch/pytorch&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;❓ Questions and Help I followed the guidence from pytorch.org to make a project which recall the libtorch using Vs2015. Cuda version 8.0 cudnn 7.0 libtorch version 1.1 but when i compile the projec...&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;github.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Update3 설치?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://go.microsoft.com/fwlink/?LinkId=691129&quot;&gt;https://go.microsoft.com/fwlink/?LinkId=691129&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;460&quot; data-origin-height=&quot;644&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bdyv6o/btsJxm5289Z/N7l6LKpnuf7nca8SIemUfk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bdyv6o/btsJxm5289Z/N7l6LKpnuf7nca8SIemUfk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bdyv6o/btsJxm5289Z/N7l6LKpnuf7nca8SIemUfk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbdyv6o%2FbtsJxm5289Z%2FN7l6LKpnuf7nca8SIemUfk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;460&quot; height=&quot;644&quot; data-origin-width=&quot;460&quot; data-origin-height=&quot;644&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>배움 - 차근차근 기록하자/[개발] 딥러닝  </category>
      <author>직장인 조모씨</author>
      <guid isPermaLink="true">https://minicode.tistory.com/308</guid>
      <comments>https://minicode.tistory.com/308#entry308comment</comments>
      <pubDate>Tue, 10 Sep 2024 16:13:11 +0900</pubDate>
    </item>
    <item>
      <title>[Pytorch] libtorch버전 확인 방법. how to check version of libtorch library</title>
      <link>https://minicode.tistory.com/307</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;경로:&amp;nbsp;Pytorch\include\torch\csrc\api\include\torch\version.h&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 style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;version.h 파일을 확인해보면 정보가 나온다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;사진에서는 &lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;1.9.1&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;450&quot; data-origin-height=&quot;416&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/kVaKq/btsJw4D8YR2/P6EwKOSaFnUBy9EOH7lMTK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/kVaKq/btsJw4D8YR2/P6EwKOSaFnUBy9EOH7lMTK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/kVaKq/btsJw4D8YR2/P6EwKOSaFnUBy9EOH7lMTK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkVaKq%2FbtsJw4D8YR2%2FP6EwKOSaFnUBy9EOH7lMTK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;450&quot; height=&quot;416&quot; data-origin-width=&quot;450&quot; data-origin-height=&quot;416&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>배움 - 차근차근 기록하자/[개발] 딥러닝  </category>
      <author>직장인 조모씨</author>
      <guid isPermaLink="true">https://minicode.tistory.com/307</guid>
      <comments>https://minicode.tistory.com/307#entry307comment</comments>
      <pubDate>Tue, 10 Sep 2024 12:19:54 +0900</pubDate>
    </item>
    <item>
      <title>AI 개발자에 대한 목표</title>
      <link>https://minicode.tistory.com/306</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;1. Backbone Network 에 대한 이해&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. 응용 Domain에 맞기 modification&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. Hyperparameter의 정확한 적용과 학습결과 해석&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4. 응용 Domain과 deep learning과의 연관성 이해&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;5. Data 관리 실력 확보 (crawling, augmentation, purification, annotation)&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;</description>
      <category>배움 - 차근차근 기록하자/[개발] 딥러닝  </category>
      <author>직장인 조모씨</author>
      <guid isPermaLink="true">https://minicode.tistory.com/306</guid>
      <comments>https://minicode.tistory.com/306#entry306comment</comments>
      <pubDate>Mon, 9 Sep 2024 11:37:48 +0900</pubDate>
    </item>
    <item>
      <title>용어 (인공지능, 기계학습, 딥러닝)</title>
      <link>https://minicode.tistory.com/305</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;영상처리: 영상의 품질 개선, 압축, 기하학적 처리, 특징 추출&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;컴퓨터 비전: 영상으로 부터 특징 추출. 특징은 히스토그램, 그레디언트, 색, 기하학적 특징, edge 등&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;딥러닝: 신경망(NN), 머신 러닝을 실현하는 기술, 뇌의 뉴런과 유사한 정보 입출력 계층을 활용&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;머신러닝: NN, SVM같은 학습기반 인식(분류)기술, 대량의 Data와 Algorithm을 통해 컴퓨터 자체를 학습시켜 작업 수행&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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;482&quot; data-origin-height=&quot;391&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cUEFwG/btsJwpA1tFw/XCbHQikRV6dtXKoGkCkd31/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cUEFwG/btsJwpA1tFw/XCbHQikRV6dtXKoGkCkd31/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cUEFwG/btsJwpA1tFw/XCbHQikRV6dtXKoGkCkd31/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcUEFwG%2FbtsJwpA1tFw%2FXCbHQikRV6dtXKoGkCkd31%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;482&quot; height=&quot;391&quot; data-origin-width=&quot;482&quot; data-origin-height=&quot;391&quot;/&gt;&lt;/span&gt;&lt;/figure&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;뇌의 활동을 묘사한 것 중 deep-learning이 있음. spiking은 연구 중(번뜩이는 착상)&lt;/p&gt;</description>
      <category>배움 - 차근차근 기록하자/[개발] 딥러닝  </category>
      <author>직장인 조모씨</author>
      <guid isPermaLink="true">https://minicode.tistory.com/305</guid>
      <comments>https://minicode.tistory.com/305#entry305comment</comments>
      <pubDate>Mon, 9 Sep 2024 11:26:52 +0900</pubDate>
    </item>
    <item>
      <title>Segmentation (semantic or instance)</title>
      <link>https://minicode.tistory.com/304</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;436&quot; data-origin-height=&quot;386&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cPfkpC/btsJuCoaVtB/2RCpjZSV4jvpVkB7gggCAk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cPfkpC/btsJuCoaVtB/2RCpjZSV4jvpVkB7gggCAk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cPfkpC/btsJuCoaVtB/2RCpjZSV4jvpVkB7gggCAk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcPfkpC%2FbtsJuCoaVtB%2F2RCpjZSV4jvpVkB7gggCAk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;436&quot; height=&quot;386&quot; data-origin-width=&quot;436&quot; data-origin-height=&quot;386&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;semantic: 객체 유형별로 구분 (나무, 의자, 바닥, ...)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;instance: 객체도 개별로 구분 (나무1, 나무2, 나무3, 의자1, 의자2, ...)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;panoptic: semantic과 instance 결합&lt;/p&gt;</description>
      <category>배움 - 차근차근 기록하자/[개발] 딥러닝  </category>
      <author>직장인 조모씨</author>
      <guid isPermaLink="true">https://minicode.tistory.com/304</guid>
      <comments>https://minicode.tistory.com/304#entry304comment</comments>
      <pubDate>Mon, 9 Sep 2024 11:15:54 +0900</pubDate>
    </item>
    <item>
      <title>딥러닝 개발 구성요소</title>
      <link>https://minicode.tistory.com/303</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;컴퓨터 OS: Windows, Ubuntu, Linux, Mac&lt;br /&gt;&lt;br /&gt;개발&amp;nbsp;환경:&amp;nbsp;anaconda,&amp;nbsp;Jupyter&amp;nbsp;notebook&lt;br /&gt;&lt;br /&gt;IDE(integrated development environment) and editor: vscode, Pycharm, Jupyter&amp;nbsp;notebook&lt;br /&gt;&lt;br /&gt;프로그램&amp;nbsp;언어:&amp;nbsp;Python,&amp;nbsp;C/C++,&amp;nbsp;Lua,&amp;nbsp;Matlab&lt;br /&gt;&lt;br /&gt;딥러닝 Frameworks(라이브러리): PyTorch, TensorFlow, Keras, MXNet, Caffe, Torch,&amp;nbsp;Theano,&amp;nbsp;Sonnet,&amp;nbsp;Glion,&amp;nbsp;ONNX,&amp;nbsp;DL4J&lt;br /&gt;&lt;br /&gt;Third party libraries: Scikit-Learn, Numpy, Pandas, SciPy, Pyplot, Tensorboard&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;Library&amp;nbsp;for&amp;nbsp;vision:&amp;nbsp;OpenCV&lt;br /&gt;&lt;br /&gt;Deep Learning Models: CNN, GAN, RNN, Auto-encoder, LSTM, Transformer, Reinforcement, Stable diffusion, DBN, RBN&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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;778&quot; data-origin-height=&quot;667&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dFlscm/btsJwA3uv1A/BkE1DdoyQ4XTL0ipADcIf0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dFlscm/btsJwA3uv1A/BkE1DdoyQ4XTL0ipADcIf0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dFlscm/btsJwA3uv1A/BkE1DdoyQ4XTL0ipADcIf0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdFlscm%2FbtsJwA3uv1A%2FBkE1DdoyQ4XTL0ipADcIf0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;409&quot; height=&quot;351&quot; data-origin-width=&quot;778&quot; data-origin-height=&quot;667&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>배움 - 차근차근 기록하자/[개발] 딥러닝  </category>
      <author>직장인 조모씨</author>
      <guid isPermaLink="true">https://minicode.tistory.com/303</guid>
      <comments>https://minicode.tistory.com/303#entry303comment</comments>
      <pubDate>Mon, 9 Sep 2024 11:06:56 +0900</pubDate>
    </item>
    <item>
      <title>darknet Error: cuDNN isn't found FWD algo for convolution</title>
      <link>https://minicode.tistory.com/302</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;모델 구조를 생성할 때 필요한 메모리가 GPU VRAM을 초과하여 생기는 문제.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;배치 사이즈를 줄여보자.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1440&quot; data-origin-height=&quot;765&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/yUG1M/btsJkUVFVPq/hh6SSSqSVWbSd0WAD2phe1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/yUG1M/btsJkUVFVPq/hh6SSSqSVWbSd0WAD2phe1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/yUG1M/btsJkUVFVPq/hh6SSSqSVWbSd0WAD2phe1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FyUG1M%2FbtsJkUVFVPq%2Fhh6SSSqSVWbSd0WAD2phe1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1440&quot; height=&quot;765&quot; data-origin-width=&quot;1440&quot; data-origin-height=&quot;765&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1828&quot; data-origin-height=&quot;1267&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Ik77L/btsJiVaOEyc/RQik84fwSOViyjqgnrQbDk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Ik77L/btsJiVaOEyc/RQik84fwSOViyjqgnrQbDk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Ik77L/btsJiVaOEyc/RQik84fwSOViyjqgnrQbDk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FIk77L%2FbtsJiVaOEyc%2FRQik84fwSOViyjqgnrQbDk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1828&quot; height=&quot;1267&quot; data-origin-width=&quot;1828&quot; data-origin-height=&quot;1267&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>배움 - 차근차근 기록하자/[개발] 딥러닝  </category>
      <author>직장인 조모씨</author>
      <guid isPermaLink="true">https://minicode.tistory.com/302</guid>
      <comments>https://minicode.tistory.com/302#entry302comment</comments>
      <pubDate>Thu, 29 Aug 2024 14:46:21 +0900</pubDate>
    </item>
    <item>
      <title>GPU VRAM (전용 메모리) 확인</title>
      <link>https://minicode.tistory.com/301</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;작업 관리자 &amp;gt; 성능 &amp;gt; GPU 선택 &amp;gt; 전용 GPU 메모리 확인&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;GPU&amp;nbsp;1 &lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;NVIDIA&amp;nbsp;GeForce&amp;nbsp;RTX&amp;nbsp;3080&amp;nbsp;Ti&amp;nbsp;Laptop&amp;nbsp;GPU&lt;/span&gt;&lt;/b&gt; &lt;br /&gt;&lt;br /&gt;드라이버&amp;nbsp;버전: 31.0.15.4680 &lt;br /&gt;드라이버&amp;nbsp;날짜: 2024-02-22 &lt;br /&gt;DirectX&amp;nbsp;버전: 12&amp;nbsp;(FL&amp;nbsp;12.1) &lt;br /&gt;실제&amp;nbsp;위치: PCI&amp;nbsp;버스&amp;nbsp;1,&amp;nbsp;장치&amp;nbsp;0,&amp;nbsp;기능&amp;nbsp;0 &lt;br /&gt;&lt;br /&gt;사용률 0% &lt;br /&gt;전용&amp;nbsp;GPU&amp;nbsp;메모리 0.3/&lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;16.0GB&lt;/span&gt;&lt;/b&gt; &lt;br /&gt;공유&amp;nbsp;GPU&amp;nbsp;메모리 0.0/23.8GB &lt;br /&gt;GPU&amp;nbsp;메모리 0.4/39.8GB&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2560&quot; data-origin-height=&quot;1539&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/UYgA5/btsJiHRjEXx/D3EgKJWCuRITUKKKb4C4R1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/UYgA5/btsJiHRjEXx/D3EgKJWCuRITUKKKb4C4R1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/UYgA5/btsJiHRjEXx/D3EgKJWCuRITUKKKb4C4R1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FUYgA5%2FbtsJiHRjEXx%2FD3EgKJWCuRITUKKKb4C4R1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;2560&quot; height=&quot;1539&quot; data-origin-width=&quot;2560&quot; data-origin-height=&quot;1539&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2560&quot; data-origin-height=&quot;1539&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/qEIDD/btsJi5xw23L/HtqQWxP7g23q8s1jTAMcK0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/qEIDD/btsJi5xw23L/HtqQWxP7g23q8s1jTAMcK0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/qEIDD/btsJi5xw23L/HtqQWxP7g23q8s1jTAMcK0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FqEIDD%2FbtsJi5xw23L%2FHtqQWxP7g23q8s1jTAMcK0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;2560&quot; height=&quot;1539&quot; data-origin-width=&quot;2560&quot; data-origin-height=&quot;1539&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>배움 - 차근차근 기록하자/[개발] 딥러닝  </category>
      <author>직장인 조모씨</author>
      <guid isPermaLink="true">https://minicode.tistory.com/301</guid>
      <comments>https://minicode.tistory.com/301#entry301comment</comments>
      <pubDate>Thu, 29 Aug 2024 14:09:49 +0900</pubDate>
    </item>
    <item>
      <title>[펌] 윈도우 10 무료 정품인증 제품키</title>
      <link>https://minicode.tistory.com/300</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://kenee.tistory.com/166&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://kenee.tistory.com/166&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1724897029373&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;윈도우10 정품인증 영구 무료 인증 방법(How to activate Windows 10 for free permanently)&quot; data-og-description=&quot;먼저 윈도우 인증 여부 확인이랑 버전을 확인해야 합니다. 윈도우 검색창에 &amp;quot;정품 인증 설정&amp;quot; 이라고 입력해서 열어주세요. 윈도우 에디션 부분을 확인해 봅니다. 정품인증을 받지 않은 상태라&quot; data-og-host=&quot;kenee.tistory.com&quot; data-og-source-url=&quot;https://kenee.tistory.com/166&quot; data-og-url=&quot;https://kenee.tistory.com/166&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/csWm3S/hyWVUafJnE/OTzKu1CMkC4qTBSANAQ331/img.jpg?width=800&amp;amp;height=600&amp;amp;face=0_0_800_600,https://scrap.kakaocdn.net/dn/qTmty/hyWVSwLOb8/f86VtdFE8P5m6JzLHruKAK/img.jpg?width=800&amp;amp;height=600&amp;amp;face=0_0_800_600,https://scrap.kakaocdn.net/dn/dYWr2R/hyWVZJoO05/kBXQmDqrTRSGuKq3KC3CN1/img.jpg?width=1566&amp;amp;height=1357&amp;amp;face=0_0_1566_1357&quot;&gt;&lt;a href=&quot;https://kenee.tistory.com/166&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://kenee.tistory.com/166&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/csWm3S/hyWVUafJnE/OTzKu1CMkC4qTBSANAQ331/img.jpg?width=800&amp;amp;height=600&amp;amp;face=0_0_800_600,https://scrap.kakaocdn.net/dn/qTmty/hyWVSwLOb8/f86VtdFE8P5m6JzLHruKAK/img.jpg?width=800&amp;amp;height=600&amp;amp;face=0_0_800_600,https://scrap.kakaocdn.net/dn/dYWr2R/hyWVZJoO05/kBXQmDqrTRSGuKq3KC3CN1/img.jpg?width=1566&amp;amp;height=1357&amp;amp;face=0_0_1566_1357');&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;윈도우10 정품인증 영구 무료 인증 방법(How to activate Windows 10 for free permanently)&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;먼저 윈도우 인증 여부 확인이랑 버전을 확인해야 합니다. 윈도우 검색창에 &quot;정품 인증 설정&quot; 이라고 입력해서 열어주세요. 윈도우 에디션 부분을 확인해 봅니다. 정품인증을 받지 않은 상태라&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;kenee.tistory.com&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>배움 - 차근차근 기록하자/[기타] etc ⚫</category>
      <author>직장인 조모씨</author>
      <guid isPermaLink="true">https://minicode.tistory.com/300</guid>
      <comments>https://minicode.tistory.com/300#entry300comment</comments>
      <pubDate>Thu, 29 Aug 2024 11:04:02 +0900</pubDate>
    </item>
    <item>
      <title>[금융 계산기 도구 모음 사이트] 연평균 수익률 계산기 / 복리 계산기 / 평균단가 계산기 / 대출 상환 계산기</title>
      <link>https://minicode.tistory.com/299</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1002&quot; data-origin-height=&quot;732&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bbRbtS/btsJg8zo8Gv/dsrwIR8WB0qIP4jKRII3Bk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bbRbtS/btsJg8zo8Gv/dsrwIR8WB0qIP4jKRII3Bk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bbRbtS/btsJg8zo8Gv/dsrwIR8WB0qIP4jKRII3Bk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbbRbtS%2FbtsJg8zo8Gv%2FdsrwIR8WB0qIP4jKRII3Bk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1002&quot; height=&quot;732&quot; data-origin-width=&quot;1002&quot; data-origin-height=&quot;732&quot;/&gt;&lt;/span&gt;&lt;/figure&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;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;1. 사이트 소개&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;약 3년 전쯤 구글 스프레드 시트로 만든 복리 계산기 시트를 많은 분들이 찾아주시고 사용해 주셨다.&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;span style=&quot;color: #ee2323;&quot;&gt;&lt;a style=&quot;color: #ee2323;&quot; href=&quot;https://xpile98.github.io/financial-tools-website/&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://xpile98.github.io/financial-tools-website/&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1724658068551&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;금융 도구 모음&quot; data-og-description=&quot;&quot; data-og-host=&quot;xpile98.github.io&quot; data-og-source-url=&quot;https://xpile98.github.io/financial-tools-website/&quot; data-og-url=&quot;https://xpile98.github.io/financial-tools-website/&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://xpile98.github.io/financial-tools-website/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://xpile98.github.io/financial-tools-website/&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;금융 도구 모음&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;xpile98.github.io&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;
&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;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;2-1) 연평균 수익률 계산기&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1267&quot; data-origin-height=&quot;1314&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/VGpJp/btsJeQOiZ7z/CZYWwMDAt6U7PK9mGACqc0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/VGpJp/btsJeQOiZ7z/CZYWwMDAt6U7PK9mGACqc0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/VGpJp/btsJeQOiZ7z/CZYWwMDAt6U7PK9mGACqc0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FVGpJp%2FbtsJeQOiZ7z%2FCZYWwMDAt6U7PK9mGACqc0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1267&quot; height=&quot;1314&quot; data-origin-width=&quot;1267&quot; data-origin-height=&quot;1314&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;2-2) 복리 계산기&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1264&quot; data-origin-height=&quot;1326&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bGrt8r/btsJfndOjmN/lyMCJDC0iGp0ITrFhaOrTk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bGrt8r/btsJfndOjmN/lyMCJDC0iGp0ITrFhaOrTk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bGrt8r/btsJfndOjmN/lyMCJDC0iGp0ITrFhaOrTk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbGrt8r%2FbtsJfndOjmN%2FlyMCJDC0iGp0ITrFhaOrTk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1264&quot; height=&quot;1326&quot; data-origin-width=&quot;1264&quot; data-origin-height=&quot;1326&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;2-3) 평단가 계산기&amp;nbsp;&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1268&quot; data-origin-height=&quot;1336&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c6ODfE/btsJguQH1VI/kUHe95yJcFgAPms9LL9Gkk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c6ODfE/btsJguQH1VI/kUHe95yJcFgAPms9LL9Gkk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c6ODfE/btsJguQH1VI/kUHe95yJcFgAPms9LL9Gkk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc6ODfE%2FbtsJguQH1VI%2FkUHe95yJcFgAPms9LL9Gkk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1268&quot; height=&quot;1336&quot; data-origin-width=&quot;1268&quot; data-origin-height=&quot;1336&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;2-4) 대출 상환 계산기&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1245&quot; data-origin-height=&quot;625&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bc394c/btsJgub8TVl/kWKos1xVumtWl92EGMkPM1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bc394c/btsJgub8TVl/kWKos1xVumtWl92EGMkPM1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bc394c/btsJgub8TVl/kWKos1xVumtWl92EGMkPM1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbc394c%2FbtsJgub8TVl%2FkWKos1xVumtWl92EGMkPM1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1245&quot; height=&quot;625&quot; data-origin-width=&quot;1245&quot; data-origin-height=&quot;625&quot;/&gt;&lt;/span&gt;&lt;/figure&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;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Fq0cN/btsJfNXvJrN/jzDukR07LYZKXAL9U2T6V0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Fq0cN/btsJfNXvJrN/jzDukR07LYZKXAL9U2T6V0/img.png&quot; data-origin-width=&quot;1228&quot; data-origin-height=&quot;846&quot; data-is-animation=&quot;false&quot; style=&quot;width: 49.5594%; margin-right: 10px;&quot; data-widthpercent=&quot;50.14&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Fq0cN/btsJfNXvJrN/jzDukR07LYZKXAL9U2T6V0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FFq0cN%2FbtsJfNXvJrN%2FjzDukR07LYZKXAL9U2T6V0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1228&quot; height=&quot;846&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/CWXt0/btsJfaFOHkQ/oDjJVBBEt8av5wuW23DAs0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/CWXt0/btsJfaFOHkQ/oDjJVBBEt8av5wuW23DAs0/img.png&quot; data-origin-width=&quot;1247&quot; data-origin-height=&quot;864&quot; data-is-animation=&quot;false&quot; style=&quot;width: 49.2778%;&quot; data-widthpercent=&quot;49.86&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/CWXt0/btsJfaFOHkQ/oDjJVBBEt8av5wuW23DAs0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FCWXt0%2FbtsJfaFOHkQ%2FoDjJVBBEt8av5wuW23DAs0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1247&quot; height=&quot;864&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&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;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;마치며&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이번 프로젝트를 진행하면서 Github Page에 React 프로젝트를 올리는 법에 대해 익혀서 기뻤다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여러 에러들과 싸우고 git 커밋들과의 미로 같은 문제들과 싸웠지만 결국 방법은 있더라.&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;누군가의 금융 생활에 조금이나마 도움이 되었으면 좋겠다는 맘으로 이만  &lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;899&quot; data-origin-height=&quot;594&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/rrM68/btsJf88c9k4/3KXFsK0o5cc0awaT8sTCu1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/rrM68/btsJf88c9k4/3KXFsK0o5cc0awaT8sTCu1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/rrM68/btsJf88c9k4/3KXFsK0o5cc0awaT8sTCu1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FrrM68%2FbtsJf88c9k4%2F3KXFsK0o5cc0awaT8sTCu1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;547&quot; height=&quot;361&quot; data-origin-width=&quot;899&quot; data-origin-height=&quot;594&quot;/&gt;&lt;/span&gt;&lt;/figure&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;
&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;&amp;nbsp;&lt;/p&gt;</description>
      <category>사이드 프로젝트/[FinancialToolsWeb] 금융 계산기 모음 사이트  </category>
      <category>금융계산기</category>
      <category>금융도구</category>
      <category>금융사이트</category>
      <category>대출계산기</category>
      <category>대출상환계산기</category>
      <category>복리계산기</category>
      <category>수익률계산기</category>
      <category>연평균계산기</category>
      <category>평균단가계산</category>
      <category>평단가계산기</category>
      <author>직장인 조모씨</author>
      <guid isPermaLink="true">https://minicode.tistory.com/299</guid>
      <comments>https://minicode.tistory.com/299#entry299comment</comments>
      <pubDate>Mon, 26 Aug 2024 17:03:08 +0900</pubDate>
    </item>
    <item>
      <title>[VS2015] 이 작업을 수행하려면 응용 프로그램이 관리자 권한을 가져야 합니다. (다른 자격 증명을 사용하여 다시 시작) 해결 방법, win11</title>
      <link>https://minicode.tistory.com/298</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;677&quot; data-origin-height=&quot;366&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cUV74C/btsJcW0UMJm/KiHBXdF5c9WOQjeBwesZK0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cUV74C/btsJcW0UMJm/KiHBXdF5c9WOQjeBwesZK0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cUV74C/btsJcW0UMJm/KiHBXdF5c9WOQjeBwesZK0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcUV74C%2FbtsJcW0UMJm%2FKiHBXdF5c9WOQjeBwesZK0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;677&quot; height=&quot;366&quot; data-origin-width=&quot;677&quot; data-origin-height=&quot;366&quot;/&gt;&lt;/span&gt;&lt;/figure&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;속성에서 관리자 권한도 주고 이것 저것 다 해봤는데도 계속 뜸...&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;win10이랑 win11의 호환성 마법사 접근 방식이 다르다.&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: #ee2323;&quot;&gt;win10&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;1. Visual Studio 설치 경로에 들어가줍니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ex) C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1329&quot; data-origin-height=&quot;826&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c7dBGo/btsJdcWJreC/VcMghFkBh3ZlXZqNiIRLN0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c7dBGo/btsJdcWJreC/VcMghFkBh3ZlXZqNiIRLN0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c7dBGo/btsJdcWJreC/VcMghFkBh3ZlXZqNiIRLN0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc7dBGo%2FbtsJdcWJreC%2FVcMghFkBh3ZlXZqNiIRLN0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1329&quot; height=&quot;826&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1329&quot; data-origin-height=&quot;826&quot;/&gt;&lt;/span&gt;&lt;/figure&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;우클릭 후 &quot;호환성 ... 어쩌구&quot; 클릭해줍니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;제 PC는 win11이라 정확한 메뉴 명칭이 기억나지 않네요.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;443&quot; data-origin-height=&quot;934&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/CMsns/btsJcTiYm89/V5d2fE1q82cl0eWm2A28t0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/CMsns/btsJcTiYm89/V5d2fE1q82cl0eWm2A28t0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/CMsns/btsJcTiYm89/V5d2fE1q82cl0eWm2A28t0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FCMsns%2FbtsJcTiYm89%2FV5d2fE1q82cl0eWm2A28t0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;443&quot; height=&quot;934&quot; data-origin-width=&quot;443&quot; data-origin-height=&quot;934&quot;/&gt;&lt;/span&gt;&lt;/figure&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;span style=&quot;color: #ee2323;&quot;&gt;win11&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;제어판에서 &quot;호환성&quot; 검색 -&amp;gt; '이전 버전의 Windows용ㅇ으로 만든 프로그램 실행' 클릭&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1406&quot; data-origin-height=&quot;922&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Dq0V3/btsJdfePpnr/nADKKnMCQVkqUk3dxlIRL0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Dq0V3/btsJdfePpnr/nADKKnMCQVkqUk3dxlIRL0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Dq0V3/btsJdfePpnr/nADKKnMCQVkqUk3dxlIRL0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FDq0V3%2FbtsJdfePpnr%2FnADKKnMCQVkqUk3dxlIRL0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1406&quot; height=&quot;922&quot; data-origin-width=&quot;1406&quot; data-origin-height=&quot;922&quot;/&gt;&lt;/span&gt;&lt;/figure&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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;712&quot; data-origin-height=&quot;552&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cH91QT/btsJdpnYQvp/iCw1FPN7euRvokbziaDAQK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cH91QT/btsJdpnYQvp/iCw1FPN7euRvokbziaDAQK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cH91QT/btsJdpnYQvp/iCw1FPN7euRvokbziaDAQK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcH91QT%2FbtsJdpnYQvp%2FiCw1FPN7euRvokbziaDAQK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;712&quot; height=&quot;552&quot; data-origin-width=&quot;712&quot; data-origin-height=&quot;552&quot;/&gt;&lt;/span&gt;&lt;/figure&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;본인 Visual Studio 버전 클릭 -&amp;gt; 다음&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/M8Yxf/btsJdzD3HGw/GIS9kvqbGUZOsMXFKuprwk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/M8Yxf/btsJdzD3HGw/GIS9kvqbGUZOsMXFKuprwk/img.png&quot; data-origin-width=&quot;712&quot; data-origin-height=&quot;552&quot; data-is-animation=&quot;false&quot; style=&quot;width: 49.4186%; margin-right: 10px;&quot; data-widthpercent=&quot;50&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/M8Yxf/btsJdzD3HGw/GIS9kvqbGUZOsMXFKuprwk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FM8Yxf%2FbtsJdzD3HGw%2FGIS9kvqbGUZOsMXFKuprwk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;712&quot; height=&quot;552&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bOmx4A/btsJdphcIPV/n6hlbfBhzXea46N339l7c1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bOmx4A/btsJdphcIPV/n6hlbfBhzXea46N339l7c1/img.png&quot; data-origin-width=&quot;712&quot; data-origin-height=&quot;552&quot; data-is-animation=&quot;false&quot; style=&quot;width: 49.4186%;&quot; data-widthpercent=&quot;50&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bOmx4A/btsJdphcIPV/n6hlbfBhzXea46N339l7c1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbOmx4A%2FbtsJdphcIPV%2Fn6hlbfBhzXea46N339l7c1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;712&quot; height=&quot;552&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;712&quot; data-origin-height=&quot;552&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bAmJVt/btsJchxKRUX/uAiwzs8ox479dqXkjbUZlK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bAmJVt/btsJchxKRUX/uAiwzs8ox479dqXkjbUZlK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bAmJVt/btsJchxKRUX/uAiwzs8ox479dqXkjbUZlK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbAmJVt%2FbtsJchxKRUX%2FuAiwzs8ox479dqXkjbUZlK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;712&quot; height=&quot;552&quot; data-origin-width=&quot;712&quot; data-origin-height=&quot;552&quot;/&gt;&lt;/span&gt;&lt;/figure&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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;712&quot; data-origin-height=&quot;552&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b4FXuq/btsJb4S5ivw/miJ2wv14Ik4sSrWmKekCUk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b4FXuq/btsJb4S5ivw/miJ2wv14Ik4sSrWmKekCUk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b4FXuq/btsJb4S5ivw/miJ2wv14Ik4sSrWmKekCUk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb4FXuq%2FbtsJb4S5ivw%2FmiJ2wv14Ik4sSrWmKekCUk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;712&quot; height=&quot;552&quot; data-origin-width=&quot;712&quot; data-origin-height=&quot;552&quot;/&gt;&lt;/span&gt;&lt;/figure&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;amp; 실행 되는지 확인!&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;712&quot; data-origin-height=&quot;552&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/QA56e/btsJcjvxbRw/yji0vIfutaZ4gUV9KsRkk1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/QA56e/btsJcjvxbRw/yji0vIfutaZ4gUV9KsRkk1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/QA56e/btsJcjvxbRw/yji0vIfutaZ4gUV9KsRkk1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FQA56e%2FbtsJcjvxbRw%2Fyji0vIfutaZ4gUV9KsRkk1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;712&quot; height=&quot;552&quot; data-origin-width=&quot;712&quot; data-origin-height=&quot;552&quot;/&gt;&lt;/span&gt;&lt;/figure&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&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/mijlJ/btsJcBv8uD3/KhoqYMtaHhfqG7PZWR4i80/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/mijlJ/btsJcBv8uD3/KhoqYMtaHhfqG7PZWR4i80/img.png&quot; data-origin-width=&quot;712&quot; data-origin-height=&quot;552&quot; data-is-animation=&quot;false&quot; style=&quot;width: 50.641%; margin-right: 10px;&quot; data-widthpercent=&quot;51.24&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/mijlJ/btsJcBv8uD3/KhoqYMtaHhfqG7PZWR4i80/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmijlJ%2FbtsJcBv8uD3%2FKhoqYMtaHhfqG7PZWR4i80%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;712&quot; height=&quot;552&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cAWXT7/btsJb0JKzNb/4NJ01G7t8A0gmKfl62x9A0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cAWXT7/btsJb0JKzNb/4NJ01G7t8A0gmKfl62x9A0/img.png&quot; data-origin-width=&quot;712&quot; data-origin-height=&quot;580&quot; data-is-animation=&quot;false&quot; style=&quot;width: 48.1962%;&quot; data-widthpercent=&quot;48.76&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cAWXT7/btsJb0JKzNb/4NJ01G7t8A0gmKfl62x9A0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcAWXT7%2FbtsJb0JKzNb%2F4NJ01G7t8A0gmKfl62x9A0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;712&quot; height=&quot;580&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&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;
&lt;p data-ke-size=&quot;size16&quot;&gt;굿~~&lt;/p&gt;</description>
      <category>배움 - 차근차근 기록하자/[기타] etc ⚫</category>
      <category>visualstudio</category>
      <category>window10</category>
      <category>window11</category>
      <category>관리자 권한</category>
      <category>비주얼스튜디오</category>
      <author>직장인 조모씨</author>
      <guid isPermaLink="true">https://minicode.tistory.com/298</guid>
      <comments>https://minicode.tistory.com/298#entry298comment</comments>
      <pubDate>Fri, 23 Aug 2024 11:28:42 +0900</pubDate>
    </item>
    <item>
      <title>리디북스 DRM 해제, 복호화 프로그램 (Dummy)</title>
      <link>https://minicode.tistory.com/297</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt; &lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;아래 프로그램은 실제 동작하지 않는 허구의 (Dummy) 프로그램입니다.&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: #ee2323;&quot;&gt;개인적인 공유나 작동 방식에 대한 문의는 받지 않습니다.&amp;nbsp;&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;주요하게 생각한 것은 아래 3가지&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;JSON 파싱&lt;/li&gt;
&lt;li&gt;UI 배치&lt;/li&gt;
&lt;li&gt;사용자 편의성을 높여보는 시도&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;1. 기기 선택 기능&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;1031&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/sXx07/btsI3gEseP7/6naf1aPZK7J4XEDePs2YF1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/sXx07/btsI3gEseP7/6naf1aPZK7J4XEDePs2YF1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/sXx07/btsI3gEseP7/6naf1aPZK7J4XEDePs2YF1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FsXx07%2FbtsI3gEseP7%2F6naf1aPZK7J4XEDePs2YF1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;800&quot; height=&quot;1031&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;1031&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/FtXZQ/btsI02aj5dc/eWF87EVu5QyrPCoASyGBwk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/FtXZQ/btsI02aj5dc/eWF87EVu5QyrPCoASyGBwk/img.png&quot; data-origin-width=&quot;500&quot; data-origin-height=&quot;142&quot; data-is-animation=&quot;false&quot; style=&quot;width: 68.8143%; margin-right: 10px;&quot; data-widthpercent=&quot;69.62&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/FtXZQ/btsI02aj5dc/eWF87EVu5QyrPCoASyGBwk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FFtXZQ%2FbtsI02aj5dc%2FeWF87EVu5QyrPCoASyGBwk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;500&quot; height=&quot;142&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/OhJ03/btsI2wgWrlZ/FNaUzfum2qGu3yE6Xtkb8k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/OhJ03/btsI2wgWrlZ/FNaUzfum2qGu3yE6Xtkb8k/img.png&quot; data-origin-width=&quot;212&quot; data-origin-height=&quot;138&quot; data-is-animation=&quot;false&quot; style=&quot;width: 30.023%;&quot; data-widthpercent=&quot;30.38&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/OhJ03/btsI2wgWrlZ/FNaUzfum2qGu3yE6Xtkb8k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FOhJ03%2FbtsI2wgWrlZ%2FFNaUzfum2qGu3yE6Xtkb8k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;212&quot; height=&quot;138&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b2LcOd/btsI2KeVTjV/Kf4Fr9psSSyKUgn1RXlFc0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b2LcOd/btsI2KeVTjV/Kf4Fr9psSSyKUgn1RXlFc0/img.png&quot; data-origin-width=&quot;400&quot; data-origin-height=&quot;831&quot; data-is-animation=&quot;false&quot; data-widthpercent=&quot;50&quot; data-filename=&quot;blob&quot; style=&quot;width: 49.4186%; margin-right: 10px;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b2LcOd/btsI2KeVTjV/Kf4Fr9psSSyKUgn1RXlFc0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb2LcOd%2FbtsI2KeVTjV%2FKf4Fr9psSSyKUgn1RXlFc0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;400&quot; height=&quot;831&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/r2i0o/btsI03ttG0o/IqowCuUN0Fi3kZMcsdEY8k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/r2i0o/btsI03ttG0o/IqowCuUN0Fi3kZMcsdEY8k/img.png&quot; data-origin-width=&quot;400&quot; data-origin-height=&quot;831&quot; data-is-animation=&quot;false&quot; data-widthpercent=&quot;50&quot; data-filename=&quot;blob&quot; style=&quot;width: 49.4186%;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/r2i0o/btsI03ttG0o/IqowCuUN0Fi3kZMcsdEY8k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fr2i0o%2FbtsI03ttG0o%2FIqowCuUN0Fi3kZMcsdEY8k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;400&quot; height=&quot;831&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;293&quot; data-origin-height=&quot;138&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bmlMtW/btsI26owIGd/KVKu1BQXuLmrbkijXbkk80/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bmlMtW/btsI26owIGd/KVKu1BQXuLmrbkijXbkk80/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bmlMtW/btsI26owIGd/KVKu1BQXuLmrbkijXbkk80/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbmlMtW%2FbtsI26owIGd%2FKVKu1BQXuLmrbkijXbkk80%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;293&quot; height=&quot;138&quot; data-origin-width=&quot;293&quot; data-origin-height=&quot;138&quot;/&gt;&lt;/span&gt;&lt;/figure&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. 도서 목록 불러오기 기능&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;1031&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/mynl0/btsI0R7TmOc/7C4iVvaEtzslhUTWbQy5YK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/mynl0/btsI0R7TmOc/7C4iVvaEtzslhUTWbQy5YK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/mynl0/btsI0R7TmOc/7C4iVvaEtzslhUTWbQy5YK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fmynl0%2FbtsI0R7TmOc%2F7C4iVvaEtzslhUTWbQy5YK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;800&quot; height=&quot;1031&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;1031&quot;/&gt;&lt;/span&gt;&lt;/figure&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;3. 복호화 기능&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;1031&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bgeSGR/btsI1X7ai3z/q1L8ZmVquUKxYZeseSPSEK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bgeSGR/btsI1X7ai3z/q1L8ZmVquUKxYZeseSPSEK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bgeSGR/btsI1X7ai3z/q1L8ZmVquUKxYZeseSPSEK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbgeSGR%2FbtsI1X7ai3z%2Fq1L8ZmVquUKxYZeseSPSEK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;800&quot; height=&quot;1031&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;1031&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_blob&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;1031&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b1eXTm/btsLbmJ42wO/9dmQd97GJbTPPuZN0ZVI9K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b1eXTm/btsLbmJ42wO/9dmQd97GJbTPPuZN0ZVI9K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b1eXTm/btsLbmJ42wO/9dmQd97GJbTPPuZN0ZVI9K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb1eXTm%2FbtsLbmJ42wO%2F9dmQd97GJbTPPuZN0ZVI9K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;800&quot; height=&quot;1031&quot; data-filename=&quot;edited_blob&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;1031&quot;/&gt;&lt;/span&gt;&lt;/figure&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;4. 결과물 출력&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;648&quot; data-origin-height=&quot;452&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/0AATR/btsI2SX8aF5/MBEH6bZIZlnBqo7M60YrJ0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/0AATR/btsI2SX8aF5/MBEH6bZIZlnBqo7M60YrJ0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/0AATR/btsI2SX8aF5/MBEH6bZIZlnBqo7M60YrJ0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F0AATR%2FbtsI2SX8aF5%2FMBEH6bZIZlnBqo7M60YrJ0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;648&quot; height=&quot;452&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;648&quot; data-origin-height=&quot;452&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>사이드 프로젝트/[RidiDecrypter] 리디북스 복호화 프로그램  </category>
      <category>DRM</category>
      <category>리디</category>
      <category>리디북스</category>
      <category>복호화</category>
      <category>프로그램</category>
      <category>허구입니다</category>
      <author>직장인 조모씨</author>
      <guid isPermaLink="true">https://minicode.tistory.com/297</guid>
      <comments>https://minicode.tistory.com/297#entry297comment</comments>
      <pubDate>Mon, 12 Aug 2024 22:39:12 +0900</pubDate>
    </item>
    <item>
      <title>RedBoxCapture, 빨간 네모만 그리면 캡처가 저절로! (Ver 2.1 공유)</title>
      <link>https://minicode.tistory.com/296</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;202&quot; data-origin-height=&quot;201&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cuEQNr/btsI1cX3gkA/0qD5h6Jo35pkLtwJS2OuoK/tfile.ico&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cuEQNr/btsI1cX3gkA/0qD5h6Jo35pkLtwJS2OuoK/tfile.ico&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cuEQNr/btsI1cX3gkA/0qD5h6Jo35pkLtwJS2OuoK/tfile.ico&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcuEQNr%2FbtsI1cX3gkA%2F0qD5h6Jo35pkLtwJS2OuoK%2Ftfile.ico&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;202&quot; height=&quot;201&quot; data-origin-width=&quot;202&quot; data-origin-height=&quot;201&quot;/&gt;&lt;/span&gt;&lt;/figure&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;br /&gt;단축키를 눌러 원하는 영역을 드래그 후 원하는 곳에 붙여넣으면 끝!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래는 RedBoxCapture를 사용해서 캡처한 창의 예시들입니다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cdSX6s/btsI2cQxJc2/fijXV6iakGqhZoVob0YnV1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cdSX6s/btsI2cQxJc2/fijXV6iakGqhZoVob0YnV1/img.png&quot; data-origin-width=&quot;1123&quot; data-origin-height=&quot;633&quot; data-is-animation=&quot;false&quot; style=&quot;width: 66.3469%; margin-right: 10px;&quot; data-widthpercent=&quot;67.13&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cdSX6s/btsI2cQxJc2/fijXV6iakGqhZoVob0YnV1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcdSX6s%2FbtsI2cQxJc2%2FfijXV6iakGqhZoVob0YnV1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1123&quot; height=&quot;633&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dvbJDU/btsI2jIUwe8/vuG9Mq2QMZO47Kk71AoISK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dvbJDU/btsI2jIUwe8/vuG9Mq2QMZO47Kk71AoISK/img.png&quot; data-origin-width=&quot;384&quot; data-origin-height=&quot;442&quot; data-is-animation=&quot;false&quot; style=&quot;width: 32.4903%;&quot; data-widthpercent=&quot;32.87&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dvbJDU/btsI2jIUwe8/vuG9Mq2QMZO47Kk71AoISK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdvbJDU%2FbtsI2jIUwe8%2FvuG9Mq2QMZO47Kk71AoISK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;384&quot; height=&quot;442&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1152&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b6Um3Z/btsI0LfvqBh/LbhQ7jUBbpJn9XzrRhBOak/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b6Um3Z/btsI0LfvqBh/LbhQ7jUBbpJn9XzrRhBOak/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b6Um3Z/btsI0LfvqBh/LbhQ7jUBbpJn9XzrRhBOak/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb6Um3Z%2FbtsI0LfvqBh%2FLbhQ7jUBbpJn9XzrRhBOak%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1920&quot; height=&quot;1152&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1152&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h1 style=&quot;color: #000000; text-align: start;&quot;&gt;RedBoxCapture 다운로드&amp;nbsp;&lt;/h1&gt;
&lt;p&gt;&lt;figure class=&quot;fileblock&quot; data-ke-align=&quot;alignCenter&quot;&gt;&lt;a href=&quot;https://blog.kakaocdn.net/dn/HVAlf/btsI2DfPyeJ/90kTbbq81yHdMNw4VgGmiK/RedBoxCapture_2.1.zip?attach=1&amp;amp;knm=tfile.zip&quot; class=&quot;&quot;&gt;
    &lt;div class=&quot;image&quot;&gt;&lt;/div&gt;
    &lt;div class=&quot;desc&quot;&gt;&lt;div class=&quot;filename&quot;&gt;&lt;span class=&quot;name&quot;&gt;RedBoxCapture_2.1.zip&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;size&quot;&gt;0.04MB&lt;/div&gt;
&lt;/div&gt;
  &lt;/a&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h1&gt;RedBoxCapture 사용 설명서&lt;/h1&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;1. 프로그램 개요&lt;/h2&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;h2 data-ke-size=&quot;size26&quot;&gt;2. 주요 기능&lt;/h2&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;사용자가 선택한 영역을 사각형 테두리로 강조&lt;/li&gt;
&lt;li&gt;캡처된 이미지를 비트맵으로 저장&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;3. 사용 방법&lt;/h2&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;캡처하고자 하는 창의 원하는 부분을 드래그합니다.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;프로그램이 자동으로 해당 창을 인식하고 캡처합니다.&lt;/li&gt;
&lt;li&gt;캡처된 이미지는 프로그램 내에서 확인할 수 있습니다.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;4. 주의사항&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;프로그램은 Windows Vista 이상의 운영 체제에서 정상 작동합니다.&lt;/li&gt;
&lt;li&gt;일부 특수한 애플리케이션의 경우 캡처가 정확하지 않을 수 있습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;5. 문제 해결&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;캡처가 정확하지 않은 경우:&lt;/p&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;/li&gt;
&lt;li&gt;시스템의 디스플레이 설정에서 DPI 스케일링이 올바르게 설정되었는지 확인하세요.&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;듀얼 모니터를 사용하시는 경우에는 주의가 필요하겠습니다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;각 모니터들의 배율이 다른 경우에는 캡처가 잘 안되더군요.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;시간이 날때 수정을 해야겠습니다.&lt;/p&gt;</description>
      <category>사이드 프로젝트/[RedBoxCapture] 블로거를 위한 캡처 프로그램 ⏹️</category>
      <category>red box capture</category>
      <category>snipping tool</category>
      <category>window snipping tool</category>
      <category>박스캡처</category>
      <category>블로거캡처</category>
      <category>블로그캡처</category>
      <category>빨간네모</category>
      <category>윈도우캡처</category>
      <category>창캡처</category>
      <category>캡처프로그램</category>
      <author>직장인 조모씨</author>
      <guid isPermaLink="true">https://minicode.tistory.com/296</guid>
      <comments>https://minicode.tistory.com/296#entry296comment</comments>
      <pubDate>Mon, 12 Aug 2024 21:50:48 +0900</pubDate>
    </item>
    <item>
      <title>RedBoxCapture 기능 추가 및 버그 수정!</title>
      <link>https://minicode.tistory.com/295</link>
      <description>&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;이전 글에서 추가 작업이 필요하다고 한 것들이 있다.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;&lt;b&gt;* 추가 개선 필요한 작업들 *&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;버그&lt;/b&gt;&lt;br /&gt;- 일부 창 캡처 크기가 맞지 않는 버그&lt;br /&gt;- 파일 탐색기의 메뉴 및 네비게이션 바 안보이는 버그&lt;br /&gt;&lt;br /&gt;&lt;b&gt;기능&lt;/b&gt;&lt;br /&gt;- 메뉴 - 단축키 지정 기능&lt;br /&gt;- 메뉴 - 이미지 저장 기능 ON/OFF, Path&lt;br /&gt;- 메뉴 - 빨간 선 두께 설정 기능&lt;br /&gt;- 캡처 중 ESC 눌러 취소 기능&lt;br /&gt;&lt;br /&gt;&lt;b&gt;마무리&lt;/b&gt;&lt;br /&gt;- 아이콘 추가&lt;br /&gt;- 배포&lt;/blockquote&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://minicode.tistory.com/294#google_vignette&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://minicode.tistory.com/294#google_vignette&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1723191474989&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;RedBoxCapture, 블로거를 위한 캡처 프로그램 (1.0 베타)&quot; data-og-description=&quot;테크 블로그를 할 때 드는 생각은 캡처를 하기 귀찮다는 것.&amp;nbsp;언제 캡처해서,&amp;nbsp;언제 네모 그리고,&amp;nbsp;언제 첨부할 것인가......&amp;nbsp;그냥 빨간 네모만 그리면 알아서 캡처되게 하자!&amp;nbsp;1.0 버전 주요 기능1. &quot; data-og-host=&quot;minicode.tistory.com&quot; data-og-source-url=&quot;https://minicode.tistory.com/294#google_vignette&quot; data-og-url=&quot;https://minicode.tistory.com/294&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/n335B/hyWKDghqif/f9Ts8heiUghQ8lilyvEVK0/img.png?width=800&amp;amp;height=437&amp;amp;face=0_0_800_437,https://scrap.kakaocdn.net/dn/bSjtlE/hyWKwIeKLd/bkJWiafi8bnH76kOcVulu0/img.png?width=800&amp;amp;height=437&amp;amp;face=0_0_800_437,https://scrap.kakaocdn.net/dn/6l2hi/hyWKGKQBPV/44unNqzqnPfBrvg2qs5Bo1/img.png?width=1118&amp;amp;height=612&amp;amp;face=0_0_1118_612&quot;&gt;&lt;a href=&quot;https://minicode.tistory.com/294#google_vignette&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://minicode.tistory.com/294#google_vignette&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/n335B/hyWKDghqif/f9Ts8heiUghQ8lilyvEVK0/img.png?width=800&amp;amp;height=437&amp;amp;face=0_0_800_437,https://scrap.kakaocdn.net/dn/bSjtlE/hyWKwIeKLd/bkJWiafi8bnH76kOcVulu0/img.png?width=800&amp;amp;height=437&amp;amp;face=0_0_800_437,https://scrap.kakaocdn.net/dn/6l2hi/hyWKGKQBPV/44unNqzqnPfBrvg2qs5Bo1/img.png?width=1118&amp;amp;height=612&amp;amp;face=0_0_1118_612');&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;RedBoxCapture, 블로거를 위한 캡처 프로그램 (1.0 베타)&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;테크 블로그를 할 때 드는 생각은 캡처를 하기 귀찮다는 것.&amp;nbsp;언제 캡처해서,&amp;nbsp;언제 네모 그리고,&amp;nbsp;언제 첨부할 것인가......&amp;nbsp;그냥 빨간 네모만 그리면 알아서 캡처되게 하자!&amp;nbsp;1.0 버전 주요 기능1.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;minicode.tistory.com&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;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제서야 굵직한 버그 수정 및 기능 안정화가 되어 버전 2.0을 올려본다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래 프로그램 소개글은 모두 RedBoxCapture 프로그램으로 캡처한 것을 밝힌다.&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;먼저 RedBoxCapture...응? 프로그램 이름이 잘못되었네... 수정할거 하나 추가.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아무튼 exe 프로그램을 실행시켜주자.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1149&quot; data-origin-height=&quot;564&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/4ddiu/btsIZObsFA0/lRPGuzbmW06E1x6rabK1f1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/4ddiu/btsIZObsFA0/lRPGuzbmW06E1x6rabK1f1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/4ddiu/btsIZObsFA0/lRPGuzbmW06E1x6rabK1f1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F4ddiu%2FbtsIZObsFA0%2FlRPGuzbmW06E1x6rabK1f1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1149&quot; height=&quot;564&quot; data-origin-width=&quot;1149&quot; data-origin-height=&quot;564&quot;/&gt;&lt;/span&gt;&lt;/figure&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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;234&quot; data-origin-height=&quot;114&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/rpOUY/btsIZW1zEbW/yFvGtQJJXHY9jr7zoKmRBK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/rpOUY/btsIZW1zEbW/yFvGtQJJXHY9jr7zoKmRBK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/rpOUY/btsIZW1zEbW/yFvGtQJJXHY9jr7zoKmRBK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FrpOUY%2FbtsIZW1zEbW%2FyFvGtQJJXHY9jr7zoKmRBK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;234&quot; height=&quot;114&quot; data-origin-width=&quot;234&quot; data-origin-height=&quot;114&quot;/&gt;&lt;/span&gt;&lt;/figure&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;&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;아이콘을 우클릭하면 Setting을 변경할 수 있다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;315&quot; data-origin-height=&quot;121&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/qlsEy/btsI0uwNkqS/4jP8KkfkhCVKFP8TpHebl1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/qlsEy/btsI0uwNkqS/4jP8KkfkhCVKFP8TpHebl1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/qlsEy/btsI0uwNkqS/4jP8KkfkhCVKFP8TpHebl1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FqlsEy%2FbtsI0uwNkqS%2F4jP8KkfkhCVKFP8TpHebl1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;315&quot; height=&quot;121&quot; data-origin-width=&quot;315&quot; data-origin-height=&quot;121&quot;/&gt;&lt;/span&gt;&lt;/figure&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;이미지가 저장되는 경로를 C드라이브로 바꾸고, 선 색도 초록색으로 바꿔서 저장을 해보겠다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(여기서는 Title Bar 캡처가 안되네.. 수정할거 추가...)&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;384&quot; data-origin-height=&quot;411&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/etasqv/btsIZMx7AI2/SzRMfMcoxzrtjPFuPONzf0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/etasqv/btsIZMx7AI2/SzRMfMcoxzrtjPFuPONzf0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/etasqv/btsIZMx7AI2/SzRMfMcoxzrtjPFuPONzf0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fetasqv%2FbtsIZMx7AI2%2FSzRMfMcoxzrtjPFuPONzf0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;384&quot; height=&quot;411&quot; data-origin-width=&quot;384&quot; data-origin-height=&quot;411&quot;/&gt;&lt;/span&gt;&lt;/figure&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;단축키 ctrl + D (변경 가능)을 눌러 캡처를 해보았다.&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;span style=&quot;color: #ee2323;&quot;&gt;C드라이브에는 저장이 안된다.(관리자 권한 문제인듯)&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;그리고 저장이 안되면 클립보드에도 복사가 안되네.&lt;/span&gt;&lt;br /&gt;D드라이브에는 저장이 잘 되는 것 확인!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1152&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/w4CR0/btsI0Gw0QC1/nsqJvvFt5yrKhEDxaItQ6k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/w4CR0/btsI0Gw0QC1/nsqJvvFt5yrKhEDxaItQ6k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/w4CR0/btsI0Gw0QC1/nsqJvvFt5yrKhEDxaItQ6k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fw4CR0%2FbtsI0Gw0QC1%2FnsqJvvFt5yrKhEDxaItQ6k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1920&quot; height=&quot;1152&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1152&quot;/&gt;&lt;/span&gt;&lt;/figure&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;
&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&gt;&lt;figure class=&quot;fileblock&quot; data-ke-align=&quot;alignCenter&quot;&gt;&lt;a href=&quot;https://blog.kakaocdn.net/dn/bAAYKy/btsI0gS9ARM/pNRs3Ji6lT3oSkRjl02skk/RedBoxCapture_2.0.zip?attach=1&amp;amp;knm=tfile.zip&quot; class=&quot;&quot;&gt;
    &lt;div class=&quot;image&quot;&gt;&lt;/div&gt;
    &lt;div class=&quot;desc&quot;&gt;&lt;div class=&quot;filename&quot;&gt;&lt;span class=&quot;name&quot;&gt;RedBoxCapture_2.0.zip&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;size&quot;&gt;0.07MB&lt;/div&gt;
&lt;/div&gt;
  &lt;/a&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>사이드 프로젝트/[RedBoxCapture] 블로거를 위한 캡처 프로그램 ⏹️</category>
      <author>직장인 조모씨</author>
      <guid isPermaLink="true">https://minicode.tistory.com/295</guid>
      <comments>https://minicode.tistory.com/295#entry295comment</comments>
      <pubDate>Fri, 9 Aug 2024 18:00:07 +0900</pubDate>
    </item>
    <item>
      <title>RedBoxCapture, 블로거를 위한 캡처 프로그램 (1.0 베타)</title>
      <link>https://minicode.tistory.com/294</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;언제 캡처해서,&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;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;1.0 버전 주요 기능&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. 프로그램 시작 후 ctrl+D 단축키 누르면 박스 그리기 시작&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1118&quot; data-origin-height=&quot;612&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/2n0vZ/btsIZ87rDrp/hbYJCTjTPZAW7czHYvYBU0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/2n0vZ/btsIZ87rDrp/hbYJCTjTPZAW7czHYvYBU0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/2n0vZ/btsIZ87rDrp/hbYJCTjTPZAW7czHYvYBU0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F2n0vZ%2FbtsIZ87rDrp%2FhbYJCTjTPZAW7czHYvYBU0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1118&quot; height=&quot;612&quot; data-origin-width=&quot;1118&quot; data-origin-height=&quot;612&quot;/&gt;&lt;/span&gt;&lt;/figure&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;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. 드래그해서 박스 그리면 알아서 해당 창까지 캡처 완료(바로 복사까지 된다)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;붙여 넣은 모습&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;959&quot; data-origin-height=&quot;447&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/duV98L/btsIZMRfAkX/Fvb0WWyfFYLukq2luP2LSK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/duV98L/btsIZMRfAkX/Fvb0WWyfFYLukq2luP2LSK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/duV98L/btsIZMRfAkX/Fvb0WWyfFYLukq2luP2LSK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FduV98L%2FbtsIZMRfAkX%2FFvb0WWyfFYLukq2luP2LSK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;959&quot; height=&quot;447&quot; data-origin-width=&quot;959&quot; data-origin-height=&quot;447&quot;/&gt;&lt;/span&gt;&lt;/figure&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;&lt;a href=&quot;https://minicode.tistory.com/293&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://minicode.tistory.com/293&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1723136758939&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;node.js 설치 방법 (2024년 08월)&quot; data-og-description=&quot;https://nodejs.org/en 접속&amp;nbsp;Download&amp;nbsp;설치 진행(Next만 누름)&amp;nbsp;CMD 창 열고&amp;nbsp;npm -vnode -v&amp;nbsp;입력해서 버전이 나오면 설치 성공&quot; data-og-host=&quot;minicode.tistory.com&quot; data-og-source-url=&quot;https://minicode.tistory.com/293&quot; data-og-url=&quot;https://minicode.tistory.com/293&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/gN3E5/hyWKvbnWin/ZJqwd26kLOYPaOABjcc6OK/img.png?width=287&amp;amp;height=175&amp;amp;face=0_0_287_175,https://scrap.kakaocdn.net/dn/PvYro/hyWOj8bUJj/rvtUkyOGXHkHW8BmXmvTjK/img.png?width=287&amp;amp;height=175&amp;amp;face=0_0_287_175,https://scrap.kakaocdn.net/dn/dxbCfc/hyWKBQcVL4/25WIn9H5PZ9R5bkZDdTopk/img.png?width=1259&amp;amp;height=781&amp;amp;face=0_0_1259_781&quot;&gt;&lt;a href=&quot;https://minicode.tistory.com/293&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://minicode.tistory.com/293&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/gN3E5/hyWKvbnWin/ZJqwd26kLOYPaOABjcc6OK/img.png?width=287&amp;amp;height=175&amp;amp;face=0_0_287_175,https://scrap.kakaocdn.net/dn/PvYro/hyWOj8bUJj/rvtUkyOGXHkHW8BmXmvTjK/img.png?width=287&amp;amp;height=175&amp;amp;face=0_0_287_175,https://scrap.kakaocdn.net/dn/dxbCfc/hyWKBQcVL4/25WIn9H5PZ9R5bkZDdTopk/img.png?width=1259&amp;amp;height=781&amp;amp;face=0_0_1259_781');&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;node.js 설치 방법 (2024년 08월)&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;https://nodejs.org/en 접속&amp;nbsp;Download&amp;nbsp;설치 진행(Next만 누름)&amp;nbsp;CMD 창 열고&amp;nbsp;npm -vnode -v&amp;nbsp;입력해서 버전이 나오면 설치 성공&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;minicode.tistory.com&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;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;다운로드드&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;fileblock&quot; data-ke-align=&quot;alignCenter&quot;&gt;&lt;a href=&quot;https://blog.kakaocdn.net/dn/MUOhV/btsIZtdljef/lD21uK7kZ6Ujk6YwPcXXH0/RedBoxCapture_1.0.zip?attach=1&amp;amp;knm=tfile.zip&quot; class=&quot;&quot;&gt;
    &lt;div class=&quot;image&quot;&gt;&lt;/div&gt;
    &lt;div class=&quot;desc&quot;&gt;&lt;div class=&quot;filename&quot;&gt;&lt;span class=&quot;name&quot;&gt;RedBoxCapture_1.0.zip&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;size&quot;&gt;0.30MB&lt;/div&gt;
&lt;/div&gt;
  &lt;/a&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;추가 개선 필요한 작업들&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;버그&lt;/p&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;파일 탐색기의 메뉴 및 네비게이션 바 안보이는 버그&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;기능&lt;/p&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;메뉴 - 이미지 저장 기능 ON/OFF, Path&lt;/li&gt;
&lt;li&gt;메뉴 - 빨간 선 두께 설정 기능&lt;/li&gt;
&lt;li&gt;캡처 중 ESC 눌러 취소 기능&lt;/li&gt;
&lt;li&gt;파일 탐색기의 경우&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;마무리&lt;/p&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;배포&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>사이드 프로젝트/[RedBoxCapture] 블로거를 위한 캡처 프로그램 ⏹️</category>
      <author>직장인 조모씨</author>
      <guid isPermaLink="true">https://minicode.tistory.com/294</guid>
      <comments>https://minicode.tistory.com/294#entry294comment</comments>
      <pubDate>Fri, 9 Aug 2024 02:07:34 +0900</pubDate>
    </item>
  </channel>
</rss>