<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>mvsw</title>
    <link>https://mvsw.tistory.com/</link>
    <description>mvsw 님의 블로그 입니다.</description>
    <language>ko</language>
    <pubDate>Wed, 8 Apr 2026 11:22:35 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>mvsw</managingEditor>
    <item>
      <title>3D 객체 생성은 SketchUp대신 FreeCAD를 써보자</title>
      <link>https://mvsw.tistory.com/18</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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;대학생때 어쩌다가 쓰게된 SketchUp으로 3D printer로 인쇄할거를 이거저거 만들었는데&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;SketchUp의 최대 단점이라고 느껴지는건 이거 왜 자꾸 닫힘 객체로 만드는게 안되는지 정확한 설계가 잘 안되는지&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;그런데 만들어진 객체를 인쇄를 하려고하면 도대체 원인이 뭔지 닫힘 객체가 잘 안된다.&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;bamboo Studio에 넣으면 객체가 이상하게 불러와지고 어딘가 비어 있고 그런식이라서&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;다른 CAD둘을 써보려고 하는데 AutoDesk는 너무 비싸서 FreeCAD를 써보려고 한다.&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;오늘은 하루종일 FreeCAD공부만 하고&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>etc</category>
      <author>mvsw</author>
      <guid isPermaLink="true">https://mvsw.tistory.com/18</guid>
      <comments>https://mvsw.tistory.com/18#entry18comment</comments>
      <pubDate>Wed, 14 Jan 2026 10:23:57 +0900</pubDate>
    </item>
    <item>
      <title>LayerNorm 정리</title>
      <link>https://mvsw.tistory.com/17</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;a href=&quot;https://arxiv.org/abs/1607.06450&quot;&gt;https://arxiv.org/abs/1607.06450&lt;/a&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;LayerNorm은 딥러닝 모델에서 데이터 샘플별로 특징들의 평균과 분산을 계산하여 데이터의 분포를 일정한 범위로 정규화 하는 기법&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;465&quot; data-origin-height=&quot;181&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bbfXp2/dJMcajgBkdt/t0f6bHtD6kT1Xf8VEskCm1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bbfXp2/dJMcajgBkdt/t0f6bHtD6kT1Xf8VEskCm1/img.png&quot; data-alt=&quot;Layer Normalization Paper에 13p Supplementary Material&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bbfXp2/dJMcajgBkdt/t0f6bHtD6kT1Xf8VEskCm1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbbfXp2%2FdJMcajgBkdt%2Ft0f6bHtD6kT1Xf8VEskCm1%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;465&quot; height=&quot;181&quot; data-origin-width=&quot;465&quot; data-origin-height=&quot;181&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Layer Normalization Paper에 13p Supplementary Material&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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;779&quot; data-origin-height=&quot;306&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/baAR6S/dJMcadm8Q8T/c9uuy3WTkCT1c5Pa5MGaKk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/baAR6S/dJMcadm8Q8T/c9uuy3WTkCT1c5Pa5MGaKk/img.png&quot; data-alt=&quot;https://docs.pytorch.org/docs/stable/generated/torch.nn.modules.normalization.LayerNorm.html&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/baAR6S/dJMcadm8Q8T/c9uuy3WTkCT1c5Pa5MGaKk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbaAR6S%2FdJMcadm8Q8T%2Fc9uuy3WTkCT1c5Pa5MGaKk%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;779&quot; height=&quot;306&quot; data-origin-width=&quot;779&quot; data-origin-height=&quot;306&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;https://docs.pytorch.org/docs/stable/generated/torch.nn.modules.normalization.LayerNorm.html&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;pytorch에&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;nn.LayerNorm은 input tensor에 각 요소별로 alpha와 beta 값을 구하는, pytorch 웹사이트에는 gamma와 beta로 표시된&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;input크기와 동일한 weight와 bias가 학습된다.&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.LayerNorm은 input이 [1,5,5] size로 들어가면 weight&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;pre id=&quot;code_1768145365806&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import math
import random
import numpy as np

import torch
import torch.nn as nn

from pprint import pprint

class model(nn.Module):
    def __init__(self,normalized_shape=[5,5]):
        super().__init__()
        self.layer = nn.LayerNorm(normalized_shape, eps=1e-05, elementwise_affine=True, bias=True, device=None, dtype=None)
        
    def forward(self,x):
        x = self.act(x)
        return x
 
 
 v = []

for i in range(1):
    l1 = []
    for j in range(5):
        l2 = []
        for k in range(5):
            l2.append(random.randint(-5,5))
        l1.append(l2)
    v.append(l1)
 
 
i_arr = torch.Tensor(v)
m(i_arr)

Avg = i_arr.numpy().mean()
Var = i_arr.numpy().var()
eps = 1e-5

arr = i_arr.numpy()[0]
result = []
for i in range(5):
    r_l1 = []
    for j in range(5):
        val = arr[i][j]
        single_result = round((val - eps) / math.sqrt(Var + eps),5)
        r_l1.append( single_result )
    result.append(r_l1)

pprint(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;&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;single_result 부분을 보면&amp;nbsp; 실제 학습에 쓰는 gamma와 beta 값이 안적혀 있다.&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;gamma와 beta 값이 nn.LayerNorm의 weight와 bias 값으로&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,0으로 되어 있어서 그렇다.&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;궁금하면 m.layer.weight&amp;nbsp; 와 m.layer.bias를 &amp;nbsp;넣어보면된다.&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;weight가 gamma,&amp;nbsp; bias가 beta다&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;ViT에서는&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;input_data = torch.randn(&lt;span&gt;1&lt;/span&gt;, &lt;span&gt;196&lt;/span&gt;, &lt;span&gt;768&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;이런 input이 들어오면&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;ln = nn.LayerNorm(&lt;span&gt;768&lt;/span&gt;)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이렇게 받으면 되는데&lt;/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;print(ln.weight.shape) 해보면 768나오고&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;print(ln.bias.shape) 이것도 768 나온다.&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;물론 초기값은 ln.weight는 1, ln.bias는 0이다.&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>
      <author>mvsw</author>
      <guid isPermaLink="true">https://mvsw.tistory.com/17</guid>
      <comments>https://mvsw.tistory.com/17#entry17comment</comments>
      <pubDate>Mon, 12 Jan 2026 00:56:49 +0900</pubDate>
    </item>
    <item>
      <title>PaddleOCR 한국어 OCR 하기</title>
      <link>https://mvsw.tistory.com/16</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;한국어 OCR하는 OpenSource 모델이 쓸만한게 참 없다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;EasyOCR이 있지만 아직 써보진 않았고&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;PaddleOCR은 써봤는데 나쁘지 않다.&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;언젠가 기회가 되면 직접 만들어보고 싶다.&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;아무튼, PaddleOCR로 한국어 OCR 하는 방법을 적어보겠다.&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;세팅은 PaddlePaddle이라는 package를 먼저 설치 해야되는데&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;과거 딥러닝 패키지 춘추전국시대부터 살아남은 얼마 안되는 패키지중 하나다&lt;br /&gt;(Caffe, Caffe, torch, Pytorch, TensorFlow, MXNet, Chainer 등등) 참 많기도 했다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그 중 중국에서 만든 PaddlePaddle은 바이두가 만들어서 이어져 오는 딥러닝 프레임워크로&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;PaddleOCR이 paddlepaddle 기반으로 돌아가기 때문에 GPU 가속을 하려면 설치를 해야한다.&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;내가다 하는 방법이 있어 라던지&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;그냥 conda 가상환경 잡고 하는게 최고다.&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;pre id=&quot;code_1758547327538&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;conda create -n paddleocr python=3.11
conda activate paddleocr

# 본인의 OS와 Accelerator 사용에 따라 아래 명령어는 달라질 수 있으므로 본 글의 참조1을 확인하자 
# 아래 명령어는 Windows 11 CUDA12.6 기준 설치방식이다.
python -m pip install paddlepaddle-gpu==3.2.0 -i https://www.paddlepaddle.org.cn/packages/stable/cu126/

# PaddleOCR 설치
python -m pip install paddleocr
# Scipy 설치
pip install scikit-learn&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;자 위에 내용까지 마치면 사실 설치 끝이다.&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.py로 저장하고 image_path 변수만 바꿔서 실행해보면 된다.&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1758547574146&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import time
import cv2
from PIL import Image, ImageDraw, ImageFont
import numpy as np
from paddleocr import PaddleOCR

ocr = PaddleOCR(lang='korean')
image_path = &amp;lt;YOUR_IMAGE_PATH&amp;gt;

img = cv2.imread(img_path)
start = time.time()
result = ocr.predict(resized_image)
end = time.time()
print(f&quot;Time taken for OCR: {end - start} seconds&quot;)
#print(result)

for res in result:
    res.save_to_img(&quot;output&quot;)
    res.save_to_json(&quot;output&quot;)&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;이렇게 쓰면되는데&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-filename=&quot;test.png&quot; data-origin-width=&quot;2382&quot; data-origin-height=&quot;633&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bhI2F3/btsQHCIQ8KN/QvBndsXqQXlCtvFKyJDsrK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bhI2F3/btsQHCIQ8KN/QvBndsXqQXlCtvFKyJDsrK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bhI2F3/btsQHCIQ8KN/QvBndsXqQXlCtvFKyJDsrK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbhI2F3%2FbtsQHCIQ8KN%2FQvBndsXqQXlCtvFKyJDsrK%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;2382&quot; height=&quot;633&quot; data-filename=&quot;test.png&quot; data-origin-width=&quot;2382&quot; data-origin-height=&quot;633&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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;1758548302_3044_ocr_res_img.png&quot; data-origin-width=&quot;2048&quot; data-origin-height=&quot;272&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lYggc/btsQKGiOuLI/3cZ3C96pnjPhKjY3ewkD4k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lYggc/btsQKGiOuLI/3cZ3C96pnjPhKjY3ewkD4k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lYggc/btsQKGiOuLI/3cZ3C96pnjPhKjY3ewkD4k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlYggc%2FbtsQKGiOuLI%2F3cZ3C96pnjPhKjY3ewkD4k%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;2048&quot; height=&quot;272&quot; data-filename=&quot;1758548302_3044_ocr_res_img.png&quot; data-origin-width=&quot;2048&quot; data-origin-height=&quot;272&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;1758548302_3044_preprocessed_img.png&quot; data-origin-width=&quot;3072&quot; data-origin-height=&quot;297&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lWNvb/btsQKHhG7xA/dS4iy8rkmpq6ZvKcDcU9o1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lWNvb/btsQKHhG7xA/dS4iy8rkmpq6ZvKcDcU9o1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lWNvb/btsQKHhG7xA/dS4iy8rkmpq6ZvKcDcU9o1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlWNvb%2FbtsQKHhG7xA%2FdS4iy8rkmpq6ZvKcDcU9o1%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;3072&quot; height=&quot;297&quot; data-filename=&quot;1758548302_3044_preprocessed_img.png&quot; data-origin-width=&quot;3072&quot; data-origin-height=&quot;297&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;PaddleOCR부를때 parameter를 좀 줘야되는데 아래 처럼 바꿔주면된다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1758548761870&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;ocr = PaddleOCR(
    lang='korean',
    use_doc_orientation_classify=False,
    use_doc_unwarping=False,
    use_textline_orientation=False
    )&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;1758548676_4059_preprocessed_img.png&quot; data-origin-width=&quot;3072&quot; data-origin-height=&quot;297&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dsgX4w/btsQII9A2R4/VV0kx6BngQkkBoi3I6gQK1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dsgX4w/btsQII9A2R4/VV0kx6BngQkkBoi3I6gQK1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dsgX4w/btsQII9A2R4/VV0kx6BngQkkBoi3I6gQK1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdsgX4w%2FbtsQII9A2R4%2FVV0kx6BngQkkBoi3I6gQK1%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;3072&quot; height=&quot;297&quot; data-filename=&quot;1758548676_4059_preprocessed_img.png&quot; data-origin-width=&quot;3072&quot; data-origin-height=&quot;297&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;1758548676_4059_ocr_res_img.png&quot; data-origin-width=&quot;2048&quot; data-origin-height=&quot;272&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/O3zZ0/btsQKdgIU4k/cKtt97Iu6XnJhS9Kt6h2Zk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/O3zZ0/btsQKdgIU4k/cKtt97Iu6XnJhS9Kt6h2Zk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/O3zZ0/btsQKdgIU4k/cKtt97Iu6XnJhS9Kt6h2Zk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FO3zZ0%2FbtsQKdgIU4k%2FcKtt97Iu6XnJhS9Kt6h2Zk%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;2048&quot; height=&quot;272&quot; data-filename=&quot;1758548676_4059_ocr_res_img.png&quot; data-origin-width=&quot;2048&quot; data-origin-height=&quot;272&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;기회가 되면 꼭 한국어 OCR 모델을 만들어 봐야겠다.&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;&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;참조 1. PaddlePaddle 설치&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;1322&quot; data-origin-height=&quot;1138&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/PDpEt/btsQIak3kqj/sqUNXKUxiJRZQIlHYaP9Q0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/PDpEt/btsQIak3kqj/sqUNXKUxiJRZQIlHYaP9Q0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/PDpEt/btsQIak3kqj/sqUNXKUxiJRZQIlHYaP9Q0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FPDpEt%2FbtsQIak3kqj%2FsqUNXKUxiJRZQIlHYaP9Q0%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;1322&quot; height=&quot;1138&quot; data-origin-width=&quot;1322&quot; data-origin-height=&quot;1138&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://www.paddlepaddle.org.cn/en/install/quick?docurl=/documentation/docs/en/develop/install/pip/windows-pip_en.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.paddlepaddle.org.cn/en/install/quick?docurl=/documentation/docs/en/develop/install/pip/windows-pip_en.html&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1758547123384&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;Run the following command to install&quot; data-og-description=&quot;&quot; data-og-host=&quot;www.paddlepaddle.org.cn&quot; data-og-source-url=&quot;https://www.paddlepaddle.org.cn/en/install/quick?docurl=/documentation/docs/en/develop/install/pip/windows-pip_en.html&quot; data-og-url=&quot;https://www.paddlepaddle.org.cn/en/install/quick?docurl=%2Fdocumentation%2Fdocs%2Fen%2Fdevelop%2Finstall%2Fpip%2Fwindows-pip_en.html&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://www.paddlepaddle.org.cn/en/install/quick?docurl=/documentation/docs/en/develop/install/pip/windows-pip_en.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.paddlepaddle.org.cn/en/install/quick?docurl=/documentation/docs/en/develop/install/pip/windows-pip_en.html&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;Run the following command to install&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;www.paddlepaddle.org.cn&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;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;&amp;nbsp;&lt;/p&gt;</description>
      <category>sw</category>
      <author>mvsw</author>
      <guid isPermaLink="true">https://mvsw.tistory.com/16</guid>
      <comments>https://mvsw.tistory.com/16#entry16comment</comments>
      <pubDate>Mon, 22 Sep 2025 22:49:15 +0900</pubDate>
    </item>
    <item>
      <title>micropython은 time.time대신 ntptime.time으로 timestamp를 찍자 (raspberry pico2w, esp32)</title>
      <link>https://mvsw.tistory.com/15</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;/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;놀랍게도 Edge Device가 인터넷에 연결되어 있더라도 time sink가 안맞는 경우가 생긴다.&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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1004&quot; data-origin-height=&quot;948&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/WKL0S/btsQjCnQ8WS/ktksVnzWEjDQgspaZWRMzK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/WKL0S/btsQjCnQ8WS/ktksVnzWEjDQgspaZWRMzK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/WKL0S/btsQjCnQ8WS/ktksVnzWEjDQgspaZWRMzK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FWKL0S%2FbtsQjCnQ8WS%2FktksVnzWEjDQgspaZWRMzK%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;1004&quot; height=&quot;948&quot; data-origin-width=&quot;1004&quot; data-origin-height=&quot;948&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;지금 25년 9월 3일 오후 9시 56분 KST 기준인데 timestamp가 안맞아도 너무 안맞는다.&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;해당 제품은 raspberry pi pico 2w 이고 인터넷에 검색을 해보니&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;a href=&quot;https://stackoverflow.com/questions/73059598/how-to-have-the-pico-w-set-correct-time-on-boot&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://stackoverflow.com/questions/73059598/how-to-have-the-pico-w-set-correct-time-on-boot&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1756908406389&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;How to have the Pico W set correct time on boot&quot; data-og-description=&quot;When running on batteries the Pico W's clock/utime starts at 2021-01-01 00:00:00 by default. At every boot it obviously should: Get the current time on its own, likely off the internet. Set it's&quot; data-og-host=&quot;stackoverflow.com&quot; data-og-source-url=&quot;https://stackoverflow.com/questions/73059598/how-to-have-the-pico-w-set-correct-time-on-boot&quot; data-og-url=&quot;https://stackoverflow.com/questions/73059598/how-to-have-the-pico-w-set-correct-time-on-boot&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/c8S4kn/hyZGe5u05Y/8UtvMKkDdBhOSuP9Qy7TAk/img.png?width=316&amp;amp;height=316&amp;amp;face=0_0_316_316&quot;&gt;&lt;a href=&quot;https://stackoverflow.com/questions/73059598/how-to-have-the-pico-w-set-correct-time-on-boot&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://stackoverflow.com/questions/73059598/how-to-have-the-pico-w-set-correct-time-on-boot&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/c8S4kn/hyZGe5u05Y/8UtvMKkDdBhOSuP9Qy7TAk/img.png?width=316&amp;amp;height=316&amp;amp;face=0_0_316_316');&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;How to have the Pico W set correct time on boot&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;When running on batteries the Pico W's clock/utime starts at 2021-01-01 00:00:00 by default. At every boot it obviously should: Get the current time on its own, likely off the internet. Set it's&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;stackoverflow.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;어떤 사람은 2021-01-01로 세팅 되어 있다고 하더라&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;micropython의 time.time()으로 만들어지는 timestamp는 기준이 디바이스 마다 다른거 같다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 그냥 x86_64에서 할때는 1970년 1월 1일 기준이었는데....&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;1365&quot; data-origin-height=&quot;371&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/brSY0n/btsQiAROnFo/SJS3KnmCnxkW8RdtRDkJN0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/brSY0n/btsQiAROnFo/SJS3KnmCnxkW8RdtRDkJN0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/brSY0n/btsQiAROnFo/SJS3KnmCnxkW8RdtRDkJN0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbrSY0n%2FbtsQiAROnFo%2FSJS3KnmCnxkW8RdtRDkJN0%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;1365&quot; height=&quot;371&quot; data-origin-width=&quot;1365&quot; data-origin-height=&quot;371&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;왼쪽은 지금 날라오는 raspberry pi pico 2w&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;오른쪽은 지금 찍어본 ESP-32D&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;왼쪽에 있는건 심지어 1970 기준인데 default가 진짜 2021-01-01인거 같은데?&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;time.time()을 사용하는게 아니라&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;network가 연결된 상태에서 ntptime 을 이용한&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;ntpime.time()을 사용하는것이다.&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;지금 집에 raspberry pi pico 2w가 없어서 ESP-32D를 기준으로 보면&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1756908069907&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# conn.py

import time
import json
import ntptime
import network

#WiFi 설정 
ssid = &quot;&amp;lt;SSID&amp;gt;&quot;
password = &quot;&amp;lt;PW&amp;gt;&quot;

# WiFi 연결
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.connect(ssid, password)
# 
while not wlan.isconnected():
    
    print(&quot;Waiting for WiFi connection...&quot;)
    time.sleep(1)

print(&quot;WiFi connected:&quot;, wlan.ifconfig(), time.localtime())
while(True):
    print(time.time(), time.gmtime(time.time()))
    print(ntptime.time(), time.gmtime(ntptime.time()))
    time.sleep(1)&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; 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;위 코드를 그냥 실행하면 얼추 결과를 볼 수 있는데&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;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;MPY:&amp;nbsp;soft&amp;nbsp;reboot&lt;br /&gt;WiFi connected: ('---.---.---.---', '255.255.255.0', '---.---.---.---', '---.---.---.---')&lt;br /&gt;810255742&amp;nbsp;(2025,&amp;nbsp;9,&amp;nbsp;3,&amp;nbsp;23,&amp;nbsp;2,&amp;nbsp;22,&amp;nbsp;2,&amp;nbsp;246)&lt;br /&gt;810223350&amp;nbsp;(2025,&amp;nbsp;9,&amp;nbsp;3,&amp;nbsp;14,&amp;nbsp;2,&amp;nbsp;31,&amp;nbsp;2,&amp;nbsp;246)&lt;br /&gt;810255746&amp;nbsp;(2025,&amp;nbsp;9,&amp;nbsp;3,&amp;nbsp;23,&amp;nbsp;2,&amp;nbsp;26,&amp;nbsp;2,&amp;nbsp;246)&lt;br /&gt;810223352&amp;nbsp;(2025,&amp;nbsp;9,&amp;nbsp;3,&amp;nbsp;14,&amp;nbsp;2,&amp;nbsp;32,&amp;nbsp;2,&amp;nbsp;246)&lt;br /&gt;810255748&amp;nbsp;(2025,&amp;nbsp;9,&amp;nbsp;3,&amp;nbsp;23,&amp;nbsp;2,&amp;nbsp;28,&amp;nbsp;2,&amp;nbsp;246)&lt;br /&gt;810223354&amp;nbsp;(2025,&amp;nbsp;9,&amp;nbsp;3,&amp;nbsp;14,&amp;nbsp;2,&amp;nbsp;34,&amp;nbsp;2,&amp;nbsp;246)&lt;br /&gt;810255750&amp;nbsp;(2025,&amp;nbsp;9,&amp;nbsp;3,&amp;nbsp;23,&amp;nbsp;2,&amp;nbsp;30,&amp;nbsp;2,&amp;nbsp;246)&lt;br /&gt;810223355&amp;nbsp;(2025,&amp;nbsp;9,&amp;nbsp;3,&amp;nbsp;14,&amp;nbsp;2,&amp;nbsp;36,&amp;nbsp;2,&amp;nbsp;246)&lt;br /&gt;810255751&amp;nbsp;(2025,&amp;nbsp;9,&amp;nbsp;3,&amp;nbsp;23,&amp;nbsp;2,&amp;nbsp;31,&amp;nbsp;2,&amp;nbsp;246)&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;
&lt;p style=&quot;color: #333333; text-align: start;&quot; 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;&amp;nbsp;&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;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;이거는 Thonny IDE가 자동으로 board의 시간을 연결된 PC의 시간과 동기화 해주기 때문이다.&amp;nbsp;&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;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;따라서 차이를 보고 싶다면 Thonny로 코드 넣고 reset 버튼을 눌러서 테스트 해봐야 된다.&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 data-ke-size=&quot;size16&quot;&gt;entry&amp;nbsp;0x400805b0 &lt;br /&gt;Waiting&amp;nbsp;for&amp;nbsp;WiFi&amp;nbsp;connection... &lt;br /&gt;Waiting&amp;nbsp;for&amp;nbsp;WiFi&amp;nbsp;connection... &lt;br /&gt;Waiting&amp;nbsp;for&amp;nbsp;WiFi&amp;nbsp;connection... &lt;br /&gt;Waiting&amp;nbsp;for&amp;nbsp;WiFi&amp;nbsp;connection... &lt;br /&gt;Waiting&amp;nbsp;for&amp;nbsp;WiFi&amp;nbsp;connection... &lt;br /&gt;WiFi connected: ('---,---,---,---', '255.255.255.0', '---,---,---,---, '---.---.---.---') (2000, 1, 1, 0, 0, 5, 5, 1) &lt;br /&gt;5&amp;nbsp;(2000,&amp;nbsp;1,&amp;nbsp;1,&amp;nbsp;0,&amp;nbsp;0,&amp;nbsp;5,&amp;nbsp;5,&amp;nbsp;1) &lt;br /&gt;810223295&amp;nbsp;(2025,&amp;nbsp;9,&amp;nbsp;3,&amp;nbsp;14,&amp;nbsp;1,&amp;nbsp;35,&amp;nbsp;2,&amp;nbsp;246) &lt;br /&gt;6&amp;nbsp;(2000,&amp;nbsp;1,&amp;nbsp;1,&amp;nbsp;0,&amp;nbsp;0,&amp;nbsp;6,&amp;nbsp;5,&amp;nbsp;1) &lt;br /&gt;810223296&amp;nbsp;(2025,&amp;nbsp;9,&amp;nbsp;3,&amp;nbsp;14,&amp;nbsp;1,&amp;nbsp;36,&amp;nbsp;2,&amp;nbsp;246) &lt;br /&gt;7&amp;nbsp;(2000,&amp;nbsp;1,&amp;nbsp;1,&amp;nbsp;0,&amp;nbsp;0,&amp;nbsp;7,&amp;nbsp;5,&amp;nbsp;1) &lt;br /&gt;810223297&amp;nbsp;(2025,&amp;nbsp;9,&amp;nbsp;3,&amp;nbsp;14,&amp;nbsp;1,&amp;nbsp;37,&amp;nbsp;2,&amp;nbsp;246) &lt;br /&gt;8&amp;nbsp;(2000,&amp;nbsp;1,&amp;nbsp;1,&amp;nbsp;0,&amp;nbsp;0,&amp;nbsp;8,&amp;nbsp;5,&amp;nbsp;1) &lt;br /&gt;810223298&amp;nbsp;(2025,&amp;nbsp;9,&amp;nbsp;3,&amp;nbsp;14,&amp;nbsp;1,&amp;nbsp;38,&amp;nbsp;2,&amp;nbsp;246) &lt;br /&gt;9&amp;nbsp;(2000,&amp;nbsp;1,&amp;nbsp;1,&amp;nbsp;0,&amp;nbsp;0,&amp;nbsp;9,&amp;nbsp;5,&amp;nbsp;1) &lt;br /&gt;810223299&amp;nbsp;(2025,&amp;nbsp;9,&amp;nbsp;3,&amp;nbsp;14,&amp;nbsp;1,&amp;nbsp;39,&amp;nbsp;2,&amp;nbsp;246)&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;아 그런데 이미 현장에 코드 가져다 넣어버렸는데 어떻게 바꾸지...&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;다음에는 OTA를 세팅해봐야겠다....&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>sw</category>
      <category>ESP32</category>
      <category>iot</category>
      <category>ntptime</category>
      <category>pico2</category>
      <category>raspberrypi</category>
      <category>Timestamp</category>
      <category>unixtime</category>
      <author>mvsw</author>
      <guid isPermaLink="true">https://mvsw.tistory.com/15</guid>
      <comments>https://mvsw.tistory.com/15#entry15comment</comments>
      <pubDate>Wed, 3 Sep 2025 23:09:24 +0900</pubDate>
    </item>
    <item>
      <title>MQTT mosquitto_sub으로 구독하고 저장</title>
      <link>https://mvsw.tistory.com/14</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;&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;Front Back 이런건 코드 만들어 달라고 하면 잘만 만들어주는데 남들이 잘 안쓰는건 AI 시켜도 헛소리만 한다.&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 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;MQTT Message를 로컬에 쉽게 저장하는 법&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;mac 기준으로&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1756083233499&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;mosquitto_sub -h &amp;lt;MQTT_BROKER_URL&amp;gt; -p 8883 -u &amp;lt;USER_ID&amp;gt; -P &amp;lt;PASSWORD&amp;gt; -t &amp;lt;TOPIC&amp;gt; &amp;gt;&amp;gt; log.jsonl&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 data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사실 fluentbit를 사용하려고 했는데 이거는 mqtt를 땡겨오는게 스스로 broker를 열어서 땡겨오는 방식이라서 불편하다.&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;그래서 python으로 가져다가 할려고 했는데&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;일을 뭐하러 복잡하게 하나 그냥 script로 저장하고 나중에 batch 처리하지뭐....&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;terminal에서 저렇게 실행했다면&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;pre id=&quot;code_1756084512940&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;Ctrl+Z
bg
disown&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;이렇게 해주면 저 프로그램이 background로 넘어가서 따로 끄지 않으면 계속 실행된다.&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>
      <author>mvsw</author>
      <guid isPermaLink="true">https://mvsw.tistory.com/14</guid>
      <comments>https://mvsw.tistory.com/14#entry14comment</comments>
      <pubDate>Mon, 25 Aug 2025 10:15:43 +0900</pubDate>
    </item>
    <item>
      <title>Context7 MCP Claude Desktop 에 연결</title>
      <link>https://mvsw.tistory.com/13</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://context7.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://context7.com/&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1755754409019&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;Context7 - Up-to-date documentation for LLMs and AI code editors&quot; data-og-description=&quot;Generate context with up-to-date documentation for LLMs and AI code editors&quot; data-og-host=&quot;context7.com&quot; data-og-source-url=&quot;https://context7.com/&quot; data-og-url=&quot;https://context7.com/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/cYABpM/hyZyincgQF/ZGVOClxJbg508SaM10DMe1/img.png?width=1600&amp;amp;height=838&amp;amp;face=0_0_1600_838,https://scrap.kakaocdn.net/dn/dKyvZj/hyZzypF1ar/ZzocVkQEk4h5safHmOZAj1/img.png?width=1600&amp;amp;height=838&amp;amp;face=0_0_1600_838&quot;&gt;&lt;a href=&quot;https://context7.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://context7.com/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/cYABpM/hyZyincgQF/ZGVOClxJbg508SaM10DMe1/img.png?width=1600&amp;amp;height=838&amp;amp;face=0_0_1600_838,https://scrap.kakaocdn.net/dn/dKyvZj/hyZzypF1ar/ZzocVkQEk4h5safHmOZAj1/img.png?width=1600&amp;amp;height=838&amp;amp;face=0_0_1600_838');&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;Context7 - Up-to-date documentation for LLMs and AI code editors&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Generate context with up-to-date documentation for LLMs and AI code editors&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;context7.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;Context7 MCP를 사용하면 최신 업데이트된 코드와 문서를 반영해서 답을 준다.&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;1952&quot; data-origin-height=&quot;1538&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bisqES/btsP0U99Gjs/vw4xCXo7oJKrLfouODEMC0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bisqES/btsP0U99Gjs/vw4xCXo7oJKrLfouODEMC0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bisqES/btsP0U99Gjs/vw4xCXo7oJKrLfouODEMC0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbisqES%2FbtsP0U99Gjs%2Fvw4xCXo7oJKrLfouODEMC0%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;1952&quot; height=&quot;1538&quot; data-origin-width=&quot;1952&quot; data-origin-height=&quot;1538&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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1718&quot; data-origin-height=&quot;1690&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bemRYx/btsPZvQSrp8/VAxTsXIsbKJXH5WDszos91/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bemRYx/btsPZvQSrp8/VAxTsXIsbKJXH5WDszos91/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bemRYx/btsPZvQSrp8/VAxTsXIsbKJXH5WDszos91/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbemRYx%2FbtsPZvQSrp8%2FVAxTsXIsbKJXH5WDszos91%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;1718&quot; height=&quot;1690&quot; data-origin-width=&quot;1718&quot; data-origin-height=&quot;1690&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;1970&quot; data-origin-height=&quot;1198&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/vZA6v/btsPZZxuo85/Auc7wWBkzNkoaVG3KBOXgK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/vZA6v/btsPZZxuo85/Auc7wWBkzNkoaVG3KBOXgK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/vZA6v/btsPZZxuo85/Auc7wWBkzNkoaVG3KBOXgK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FvZA6v%2FbtsPZZxuo85%2FAuc7wWBkzNkoaVG3KBOXgK%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;1970&quot; height=&quot;1198&quot; data-origin-width=&quot;1970&quot; data-origin-height=&quot;1198&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;claude_desktop_config.json 을 수정하면 된다.&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;pre id=&quot;code_1755755060866&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;{
    &quot;mcpServers&quot;: {
      &quot;Context7&quot;: {
        &quot;command&quot;: &quot;npx&quot;,
        &quot;args&quot;: [&quot;-y&quot;, &quot;@upstash/context7-mcp&quot;]
      }
    }
  }&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;그리고 Claude Desktop을 종료했다가 다시 키면&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1428&quot; data-origin-height=&quot;1182&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/w4zYb/btsP1Z30sJV/nhsHqVrLCKY60ep20OTuuk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/w4zYb/btsP1Z30sJV/nhsHqVrLCKY60ep20OTuuk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/w4zYb/btsP1Z30sJV/nhsHqVrLCKY60ep20OTuuk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fw4zYb%2FbtsP1Z30sJV%2FnhsHqVrLCKY60ep20OTuuk%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;1428&quot; height=&quot;1182&quot; data-origin-width=&quot;1428&quot; data-origin-height=&quot;1182&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;1610&quot; data-origin-height=&quot;1370&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bSndEu/btsPZPhhLIS/9eVZEAkbleCJ9pC2aZZUxK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bSndEu/btsPZPhhLIS/9eVZEAkbleCJ9pC2aZZUxK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bSndEu/btsPZPhhLIS/9eVZEAkbleCJ9pC2aZZUxK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbSndEu%2FbtsPZPhhLIS%2F9eVZEAkbleCJ9pC2aZZUxK%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;1610&quot; height=&quot;1370&quot; data-origin-width=&quot;1610&quot; data-origin-height=&quot;1370&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;오늘 날짜(25.08.21) 기준으로 최신코드를 한번 찾아보자.&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;dinov3는 25년 8월 14일에 업데이트 되었다.&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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1548&quot; data-origin-height=&quot;2460&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b1Nznx/btsP1XSGhdo/qJmOvMyqREm919h7CcLhuK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b1Nznx/btsP1XSGhdo/qJmOvMyqREm919h7CcLhuK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b1Nznx/btsP1XSGhdo/qJmOvMyqREm919h7CcLhuK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb1Nznx%2FbtsP1XSGhdo%2FqJmOvMyqREm919h7CcLhuK%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;1548&quot; height=&quot;2460&quot; data-origin-width=&quot;1548&quot; data-origin-height=&quot;2460&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;물론 prompt를 잘작성하면 꼭 Context7을 쓸필요는 없다. 이제 LLM들이 웹검색이 가능하기 때문이다.&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;그래도 Context7을 사용하면 좀더 잘 하겠지 라는 희망을 가지고 MCP를 추가해봤다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <author>mvsw</author>
      <guid isPermaLink="true">https://mvsw.tistory.com/13</guid>
      <comments>https://mvsw.tistory.com/13#entry13comment</comments>
      <pubDate>Thu, 21 Aug 2025 14:51:28 +0900</pubDate>
    </item>
    <item>
      <title>Runpod에서 Qwen-Image 돌려보기</title>
      <link>https://mvsw.tistory.com/12</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;Qwen-Image&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://github.com/QwenLM/Qwen-Image&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://github.com/QwenLM/Qwen-Image&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1754963988030&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;GitHub - QwenLM/Qwen-Image: Qwen-Image is a powerful image generation foundation model capable of complex text rendering and pre&quot; data-og-description=&quot;Qwen-Image is a powerful image generation foundation model capable of complex text rendering and precise image editing. - QwenLM/Qwen-Image&quot; data-og-host=&quot;github.com&quot; data-og-source-url=&quot;https://github.com/QwenLM/Qwen-Image&quot; data-og-url=&quot;https://github.com/QwenLM/Qwen-Image&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/1ht0q/hyZyrCIfOk/wrWCLOloiP2MJI4VoAnP11/img.png?width=1200&amp;amp;height=600&amp;amp;face=0_0_1200_600,https://scrap.kakaocdn.net/dn/fGqJ2/hyZuFbxk81/osby6NkHFCDMcq2zNrqJ4k/img.png?width=1200&amp;amp;height=600&amp;amp;face=0_0_1200_600&quot;&gt;&lt;a href=&quot;https://github.com/QwenLM/Qwen-Image&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://github.com/QwenLM/Qwen-Image&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/1ht0q/hyZyrCIfOk/wrWCLOloiP2MJI4VoAnP11/img.png?width=1200&amp;amp;height=600&amp;amp;face=0_0_1200_600,https://scrap.kakaocdn.net/dn/fGqJ2/hyZuFbxk81/osby6NkHFCDMcq2zNrqJ4k/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;GitHub - QwenLM/Qwen-Image: Qwen-Image is a powerful image generation foundation model capable of complex text rendering and pre&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Qwen-Image is a powerful image generation foundation model capable of complex text rendering and precise image editing. - QwenLM/Qwen-Image&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;&lt;a href=&quot;https://huggingface.co/Qwen/Qwen-Image&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://huggingface.co/Qwen/Qwen-Image&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1754963988841&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;Qwen/Qwen-Image &amp;middot; Hugging Face&quot; data-og-description=&quot;  Qwen Chat&amp;nbsp;&amp;nbsp; | &amp;nbsp;&amp;nbsp;  Hugging Face&amp;nbsp;&amp;nbsp; | &amp;nbsp;&amp;nbsp;  ModelScope&amp;nbsp;&amp;nbsp; | &amp;nbsp;&amp;nbsp;   Tech Report &amp;nbsp;&amp;nbsp; | &amp;nbsp;&amp;nbsp;   Blog &amp;nbsp;&amp;nbsp;  ️ Demo&amp;nbsp;&amp;nbsp; | &amp;nbsp;&amp;nbsp;  WeChat (微信)&amp;nbsp;&amp;nbsp; | &amp;nbsp;&amp;nbsp;  Discord&amp;nbsp;&amp;nbsp; Introduction We are thrilled to release Qwen-Image, an image &quot; data-og-host=&quot;huggingface.co&quot; data-og-source-url=&quot;https://huggingface.co/Qwen/Qwen-Image&quot; data-og-url=&quot;https://huggingface.co/Qwen/Qwen-Image&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bDOqrs/hyZynAjjsl/ZLgN3JGoQf8p95r0jXf1Fk/img.png?width=1200&amp;amp;height=648&amp;amp;face=0_0_1200_648,https://scrap.kakaocdn.net/dn/g1Lyr/hyZuIMQCmF/rJWEr6FVXF0GrWP0JjqSA0/img.png?width=1200&amp;amp;height=648&amp;amp;face=0_0_1200_648&quot;&gt;&lt;a href=&quot;https://huggingface.co/Qwen/Qwen-Image&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://huggingface.co/Qwen/Qwen-Image&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bDOqrs/hyZynAjjsl/ZLgN3JGoQf8p95r0jXf1Fk/img.png?width=1200&amp;amp;height=648&amp;amp;face=0_0_1200_648,https://scrap.kakaocdn.net/dn/g1Lyr/hyZuIMQCmF/rJWEr6FVXF0GrWP0JjqSA0/img.png?width=1200&amp;amp;height=648&amp;amp;face=0_0_1200_648');&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;Qwen/Qwen-Image &amp;middot; Hugging Face&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;  Qwen Chat&amp;nbsp;&amp;nbsp; | &amp;nbsp;&amp;nbsp;  Hugging Face&amp;nbsp;&amp;nbsp; | &amp;nbsp;&amp;nbsp;  ModelScope&amp;nbsp;&amp;nbsp; | &amp;nbsp;&amp;nbsp;   Tech Report &amp;nbsp;&amp;nbsp; | &amp;nbsp;&amp;nbsp;   Blog &amp;nbsp;&amp;nbsp;  ️ Demo&amp;nbsp;&amp;nbsp; | &amp;nbsp;&amp;nbsp;  WeChat (微信)&amp;nbsp;&amp;nbsp; | &amp;nbsp;&amp;nbsp;  Discord&amp;nbsp;&amp;nbsp; Introduction We are thrilled to release Qwen-Image, an image&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;huggingface.co&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;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;그런데 GPU가 없어서 적당한 GPU를 써보려고 하는데&amp;nbsp;Runpod 라는 서비스가 아주 편리해보여서 사용해봤다.&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;GPU를 Cloud로 대여해주는 서비스 인데&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;AWS나 Azure GCP등을 쓰는것 보다 훨씬 빠르고 편하다는 이야기를 듣고 써보고자 한다.&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;a href=&quot;https://www.runpod.io/&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.runpod.io/&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1754963645298&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;Runpod | The cloud built for AI&quot; data-og-description=&quot;GPU cloud computing made simple. Build, train, and deploy AI faster. Pay only for what you use, billed by the millisecond.&quot; data-og-host=&quot;www.runpod.io&quot; data-og-source-url=&quot;https://www.runpod.io/&quot; data-og-url=&quot;https://www.runpod.io/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/c4QOVj/hyZuy4xPlX/H4AVjhb9qaxfbrqtUqk45K/img.jpg?width=2400&amp;amp;height=1260&amp;amp;face=0_0_2400_1260&quot;&gt;&lt;a href=&quot;https://www.runpod.io/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.runpod.io/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/c4QOVj/hyZuy4xPlX/H4AVjhb9qaxfbrqtUqk45K/img.jpg?width=2400&amp;amp;height=1260&amp;amp;face=0_0_2400_1260');&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;Runpod | The cloud built for AI&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;GPU cloud computing made simple. Build, train, and deploy AI faster. Pay only for what you use, billed by the millisecond.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.runpod.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;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;1265&quot; data-origin-height=&quot;816&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cSlUEj/btsPPBbHbTJ/4U2iLw2wDDQ6yIGRFm3w5k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cSlUEj/btsPPBbHbTJ/4U2iLw2wDDQ6yIGRFm3w5k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cSlUEj/btsPPBbHbTJ/4U2iLw2wDDQ6yIGRFm3w5k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcSlUEj%2FbtsPPBbHbTJ%2F4U2iLw2wDDQ6yIGRFm3w5k%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;1265&quot; height=&quot;816&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1265&quot; data-origin-height=&quot;816&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;왼쪽 Manage에서 Pods를 클릭한다.&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;1009&quot; data-origin-height=&quot;1232&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bj6C3J/btsPPMxcppf/zUjWsw1vMg1f6ubhVFcIfK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bj6C3J/btsPPMxcppf/zUjWsw1vMg1f6ubhVFcIfK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bj6C3J/btsPPMxcppf/zUjWsw1vMg1f6ubhVFcIfK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbj6C3J%2FbtsPPMxcppf%2FzUjWsw1vMg1f6ubhVFcIfK%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;1009&quot; height=&quot;1232&quot; data-origin-width=&quot;1009&quot; data-origin-height=&quot;1232&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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2650&quot; data-origin-height=&quot;1668&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bal4sw/btsPNOodUTS/jT8u85WKePC0BOJ0k6MTyK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bal4sw/btsPNOodUTS/jT8u85WKePC0BOJ0k6MTyK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bal4sw/btsPNOodUTS/jT8u85WKePC0BOJ0k6MTyK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbal4sw%2FbtsPNOodUTS%2FjT8u85WKePC0BOJ0k6MTyK%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;2650&quot; height=&quot;1668&quot; data-origin-width=&quot;2650&quot; data-origin-height=&quot;1668&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;위 그림에서는 A6000으로 되어 있지만 실제로는 H100 SXM을 사용했다.&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;Qwen-Image는 썡으로 돌리면 VRAM을 57GB를 먹기 때문이다.&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;적은 RAM으로 돌리는 방법은 추후에 확인해보는걸로 하고&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;일단 실행하고 pods를 클릭하면 실행중인 pods가 나오는데&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;실행하기 전에 Edit Pod에서 Storage를 100GB로 바꿔준다.&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;1518&quot; data-origin-height=&quot;1120&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/nATZJ/btsPO2feyyD/6hmHGKJvt7KfcJJJ09aIOK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/nATZJ/btsPO2feyyD/6hmHGKJvt7KfcJJJ09aIOK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/nATZJ/btsPO2feyyD/6hmHGKJvt7KfcJJJ09aIOK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnATZJ%2FbtsPO2feyyD%2F6hmHGKJvt7KfcJJJ09aIOK%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;1518&quot; height=&quot;1120&quot; data-origin-width=&quot;1518&quot; data-origin-height=&quot;1120&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;모델만 다운로드 받아도 50GB가 넘치기 때문이다.&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;이제 connect 버튼을 누르면 아래와 같은 화면을 볼 수 있다.&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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2456&quot; data-origin-height=&quot;1776&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bj1nDe/btsPLixGwee/52dshMgpDecb13kG7nBcF1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bj1nDe/btsPLixGwee/52dshMgpDecb13kG7nBcF1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bj1nDe/btsPLixGwee/52dshMgpDecb13kG7nBcF1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbj1nDe%2FbtsPLixGwee%2F52dshMgpDecb13kG7nBcF1%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;2456&quot; height=&quot;1776&quot; data-origin-width=&quot;2456&quot; data-origin-height=&quot;1776&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;Connect를 누르고&amp;nbsp; Jupyter Lab을 클릭하면 창이 뜬다.&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;3570&quot; data-origin-height=&quot;2002&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/LY4EE/btsPMRZ9Wqy/sykANh8HmdS8PfK4K75cf1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/LY4EE/btsPMRZ9Wqy/sykANh8HmdS8PfK4K75cf1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/LY4EE/btsPMRZ9Wqy/sykANh8HmdS8PfK4K75cf1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FLY4EE%2FbtsPMRZ9Wqy%2FsykANh8HmdS8PfK4K75cf1%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;3570&quot; height=&quot;2002&quot; data-origin-width=&quot;3570&quot; data-origin-height=&quot;2002&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;terminal로 들어가서&amp;nbsp; RAM을 확인해볼 수 있다.&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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1424&quot; data-origin-height=&quot;850&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Jj1gu/btsPN6vH5Pq/ujb6j9E6qxFDhr731gf3g0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Jj1gu/btsPN6vH5Pq/ujb6j9E6qxFDhr731gf3g0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Jj1gu/btsPN6vH5Pq/ujb6j9E6qxFDhr731gf3g0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FJj1gu%2FbtsPN6vH5Pq%2Fujb6j9E6qxFDhr731gf3g0%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;1424&quot; height=&quot;850&quot; data-origin-width=&quot;1424&quot; data-origin-height=&quot;850&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제 Qwen-Image를 실행하기 위한 것들을 수행해보자.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1754836371329&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;pip install git+https://github.com/huggingface/diffusers
pip install transformers
pip install accelerate&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;terminal에서 위 내용을 실행한다.&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;그리고 jupyter notebook을 열고 아래 코드를 사용한다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1754964068848&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;from diffusers import DiffusionPipeline
import torch

model_name = &quot;Qwen/Qwen-Image&quot;

# Load the pipeline
if torch.cuda.is_available():
    torch_dtype = torch.bfloat16
    device = &quot;cuda&quot;
else:
    torch_dtype = torch.float32
    device = &quot;cpu&quot;

pipe = DiffusionPipeline.from_pretrained(model_name, torch_dtype=torch_dtype)
pipe = pipe.to(device)

positive_magic = {
    &quot;en&quot;: &quot;Ultra HD, 4K, cinematic composition.&quot; # for english prompt
}

# Generate image
prompt = '''A coffee shop entrance features a chalkboard sign reading &quot;Qwen Coffee   $2 per cup,&quot; with a neon light beside it displaying &quot;通义千问&quot;. Next to it hangs a poster showing a beautiful Chinese woman, and beneath the poster is written &quot;&amp;pi;&amp;asymp;3.1415926-53589793-23846264-33832795-02384197&quot;. Ultra HD, 4K, cinematic composition'''

negative_prompt = &quot; &quot; # using an empty string if you do not have specific concept to remove


# Generate with different aspect ratios
aspect_ratios = {
    &quot;1:1&quot;: (1328, 1328),
    &quot;16:9&quot;: (1664, 928),
    &quot;9:16&quot;: (928, 1664),
    &quot;4:3&quot;: (1472, 1140),
    &quot;3:4&quot;: (1140, 1472),
    &quot;3:2&quot;: (1584, 1056),
    &quot;2:3&quot;: (1056, 1584),
}

width, height = aspect_ratios[&quot;16:9&quot;]

image = pipe(
    prompt=prompt + positive_magic[&quot;en&quot;],
    negative_prompt=negative_prompt,
    width=width,
    height=height,
    num_inference_steps=50,
    true_cfg_scale=4.0,
    generator=torch.Generator(device=&quot;cuda&quot;).manual_seed(42)
).images[0]

image.save(&quot;example.png&quot;)&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;확실히 이런거 하는 사람들이 많아서 그런지 뭔지 모르겠지만&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;1906&quot; data-origin-height=&quot;1342&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dhLAsI/btsPMoKSe1A/hSIhws1Ms5bOCVmBP9Ks51/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dhLAsI/btsPMoKSe1A/hSIhws1Ms5bOCVmBP9Ks51/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dhLAsI/btsPMoKSe1A/hSIhws1Ms5bOCVmBP9Ks51/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdhLAsI%2FbtsPMoKSe1A%2FhSIhws1Ms5bOCVmBP9Ks51%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;1906&quot; height=&quot;1342&quot; data-origin-width=&quot;1906&quot; data-origin-height=&quot;1342&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;회사 서버로 받을때는 30~40MB/s 정도만 나와도 잘나온다 생각했는데&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;RunPod에서는 다운로드 속도가 엄청나게 빠르다.&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;아니 Qwen-Image는 앞서 이야기 한것 처럼 VRAM이 57GB가 필요하다.&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;글자 표현이 아주 자연스러운게 정말 놀랍다.&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;만들어진 그림은 VRAM 낮춰서 실행하는 방법을 찾으면 그때 올려보겠다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <author>mvsw</author>
      <guid isPermaLink="true">https://mvsw.tistory.com/12</guid>
      <comments>https://mvsw.tistory.com/12#entry12comment</comments>
      <pubDate>Tue, 12 Aug 2025 11:05:06 +0900</pubDate>
    </item>
    <item>
      <title>ESP32 DevKitC WROOM-32D V4 CH9102X 개발보드 테스트</title>
      <link>https://mvsw.tistory.com/11</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.devicemart.co.kr/goods/view?no=15314103&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.devicemart.co.kr/goods/view?no=15314103&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1754636251896&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;ESP32 DevKitC WROOM-32D V4  CH9102X 개발보드 [CMODULE-43]&quot; data-og-description=&quot;WROOM-32D CH9102X / V4 최신 버전 / 듀얼 코어 / 마이크로 5핀 / 전압 : 5V / 와이파이 블루투스 콤보 개발보드 / 초저전력&quot; data-og-host=&quot;www.devicemart.co.kr&quot; data-og-source-url=&quot;https://www.devicemart.co.kr/goods/view?no=15314103&quot; data-og-url=&quot;https://www.devicemart.co.kr/goods/view?no=15314103&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/yTpFG/hyZuJRTxuC/tTBz0EPxWWO3CtCaBD4Af1/img.jpg?width=600&amp;amp;height=600&amp;amp;face=0_0_600_600,https://scrap.kakaocdn.net/dn/AuBO7/hyZuvznHUP/NlpvjyxXO5gPACFsLbmcqK/img.jpg?width=600&amp;amp;height=600&amp;amp;face=0_0_600_600,https://scrap.kakaocdn.net/dn/b74A4G/hyZuypg67J/b2vW8ftNTbnoqk0VMnOXnk/img.jpg?width=600&amp;amp;height=600&amp;amp;face=0_0_600_600&quot;&gt;&lt;a href=&quot;https://www.devicemart.co.kr/goods/view?no=15314103&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.devicemart.co.kr/goods/view?no=15314103&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/yTpFG/hyZuJRTxuC/tTBz0EPxWWO3CtCaBD4Af1/img.jpg?width=600&amp;amp;height=600&amp;amp;face=0_0_600_600,https://scrap.kakaocdn.net/dn/AuBO7/hyZuvznHUP/NlpvjyxXO5gPACFsLbmcqK/img.jpg?width=600&amp;amp;height=600&amp;amp;face=0_0_600_600,https://scrap.kakaocdn.net/dn/b74A4G/hyZuypg67J/b2vW8ftNTbnoqk0VMnOXnk/img.jpg?width=600&amp;amp;height=600&amp;amp;face=0_0_600_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;ESP32 DevKitC WROOM-32D V4 CH9102X 개발보드 [CMODULE-43]&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;WROOM-32D CH9102X / V4 최신 버전 / 듀얼 코어 / 마이크로 5핀 / 전압 : 5V / 와이파이 블루투스 콤보 개발보드 / 초저전력&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.devicemart.co.kr&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&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;Bluetooth Test가 필요해서...&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;앞에서 세팅한 Seeed Studio 제품하고 같은 ESP32 계열 MCU다&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 data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://micropython.org/download/ESP32_GENERIC/&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://micropython.org/download/ESP32_GENERIC/&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1754636306889&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;MicroPython - Python for microcontrollers&quot; data-og-description=&quot;MicroPython is a lean and efficient implementation of the Python 3 programming language that includes a small subset of the Python standard library and is optimised to run on microcontrollers and in constrained environments.&quot; data-og-host=&quot;micropython.org&quot; data-og-source-url=&quot;https://micropython.org/download/ESP32_GENERIC/&quot; data-og-url=&quot;http://micropython.org/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/orUKv/hyZvomc7gd/STI69GpLovt4bWC4MkPvyk/img.png?width=69&amp;amp;height=69&amp;amp;face=0_0_69_69,https://scrap.kakaocdn.net/dn/pvfdV/hyZviTRfdB/e4Bk6VfwWJxnrzXTQ8u1N0/img.jpg?width=780&amp;amp;height=491&amp;amp;face=0_0_780_491,https://scrap.kakaocdn.net/dn/q85pC/hyZuGU60UQ/sCE3WDmH6eTtPl2KozJNJ1/img.jpg?width=600&amp;amp;height=450&amp;amp;face=0_0_600_450&quot;&gt;&lt;a href=&quot;https://micropython.org/download/ESP32_GENERIC/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://micropython.org/download/ESP32_GENERIC/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/orUKv/hyZvomc7gd/STI69GpLovt4bWC4MkPvyk/img.png?width=69&amp;amp;height=69&amp;amp;face=0_0_69_69,https://scrap.kakaocdn.net/dn/pvfdV/hyZviTRfdB/e4Bk6VfwWJxnrzXTQ8u1N0/img.jpg?width=780&amp;amp;height=491&amp;amp;face=0_0_780_491,https://scrap.kakaocdn.net/dn/q85pC/hyZuGU60UQ/sCE3WDmH6eTtPl2KozJNJ1/img.jpg?width=600&amp;amp;height=450&amp;amp;face=0_0_600_450');&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;MicroPython - Python for microcontrollers&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;MicroPython is a lean and efficient implementation of the Python 3 programming language that includes a small subset of the Python standard library and is optimised to run on microcontrollers and in constrained environments.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;micropython.org&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;pre id=&quot;code_1754636323734&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;pip install esptool&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;위 명령어로 설치&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;pre id=&quot;code_1754636342473&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;esptool.py erase_flash&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;펌웨어 밀고&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1754636355807&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;esptool.py --baud 460800 write_flash 0x1000 ESP32_GENERIC-20250415-v1.25.0.bin&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;펌웨어 넣고&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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1954&quot; data-origin-height=&quot;1186&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/IIyZr/btsPLeuFoJD/6nby6XRcQ7IjZFVLo4Vcj1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/IIyZr/btsPLeuFoJD/6nby6XRcQ7IjZFVLo4Vcj1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/IIyZr/btsPLeuFoJD/6nby6XRcQ7IjZFVLo4Vcj1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FIIyZr%2FbtsPLeuFoJD%2F6nby6XRcQ7IjZFVLo4Vcj1%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;1954&quot; height=&quot;1186&quot; data-origin-width=&quot;1954&quot; data-origin-height=&quot;1186&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;명확히 할려면 device 찾아서 하면되는데 설명은&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://micropython.org/download/ESP32_GENERIC/&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://micropython.org/download/ESP32_GENERIC/&lt;/a&gt; &amp;lt;= 여기에 있으니 읽어보면서 천천히 하면된다.&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;사용은 똑같이 Thonny쓴다.&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;pre id=&quot;code_1754636485353&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import time
import json
import network
from umqtt.simple import MQTTClient

# WiFi 설정
ssid = ###
password = ###

wlan = network.WLAN(network.STA_IF)
wlan.active(True)
try:
    wlan.config(pm=0)
    wlan.config(country='KR')
except:  # 일부 빌드에선 옵션 없을 수 있음
    pass

wlan.disconnect()
time.sleep(0.2)
wlan.connect(ssid, password)

while(True):
    s = wlan.status()
    print(&quot;status:&quot;, s, &quot;isconnected:&quot;, wlan.isconnected())
    if(wlan.isconnected() ==True):
        break
    time.sleep(1)


print(wlan.ifconfig())&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;이렇게 쓰면된다.&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;사실 블루투스 연결 관련된것도 글로 쓰려고 했는데&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;솔직히 claude가 다해줘서 내가 적을 필요가 있나 싶다.&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;오늘 ChatGPT 5가 나왔는데 GPT5는 못하고 클로드는 잘한다.&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;</description>
      <author>mvsw</author>
      <guid isPermaLink="true">https://mvsw.tistory.com/11</guid>
      <comments>https://mvsw.tistory.com/11#entry11comment</comments>
      <pubDate>Fri, 8 Aug 2025 16:55:43 +0900</pubDate>
    </item>
    <item>
      <title>Seeed studio XIAO ESP32C3 microPython 으로 써보기</title>
      <link>https://mvsw.tistory.com/10</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://wiki.seeedstudio.com/xiao_esp32c3_with_micropython/&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://wiki.seeedstudio.com/xiao_esp32c3_with_micropython/&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1754631114653&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;XIAO ESP32C3 with MicroPython | Seeed Studio Wiki&quot; data-og-description=&quot;Seeed Studio XIAO ESP32C3 with MicroPython&quot; data-og-host=&quot;wiki.seeedstudio.com&quot; data-og-source-url=&quot;https://wiki.seeedstudio.com/xiao_esp32c3_with_micropython/&quot; data-og-url=&quot;https://wiki.seeedstudio.com/xiao_esp32c3_with_micropython/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/cLKxkb/hyZvpemmpv/6niR8IWoDYCC4P9K5v66mk/img.png?width=2092&amp;amp;height=894&amp;amp;face=0_0_2092_894,https://scrap.kakaocdn.net/dn/izz0v/hyZvtug2Zn/I9eb7kcw1X9hFacIYh3dHk/img.png?width=2092&amp;amp;height=894&amp;amp;face=0_0_2092_894,https://scrap.kakaocdn.net/dn/c9uNkb/hyZuJYDlLj/mb65IFTpNYTf9JZxi4HNiK/img.png?width=1706&amp;amp;height=1354&amp;amp;face=0_0_1706_1354&quot;&gt;&lt;a href=&quot;https://wiki.seeedstudio.com/xiao_esp32c3_with_micropython/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://wiki.seeedstudio.com/xiao_esp32c3_with_micropython/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/cLKxkb/hyZvpemmpv/6niR8IWoDYCC4P9K5v66mk/img.png?width=2092&amp;amp;height=894&amp;amp;face=0_0_2092_894,https://scrap.kakaocdn.net/dn/izz0v/hyZvtug2Zn/I9eb7kcw1X9hFacIYh3dHk/img.png?width=2092&amp;amp;height=894&amp;amp;face=0_0_2092_894,https://scrap.kakaocdn.net/dn/c9uNkb/hyZuJYDlLj/mb65IFTpNYTf9JZxi4HNiK/img.png?width=1706&amp;amp;height=1354&amp;amp;face=0_0_1706_1354');&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;XIAO ESP32C3 with MicroPython | Seeed Studio Wiki&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Seeed Studio XIAO ESP32C3 with MicroPython&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;wiki.seeedstudio.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&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;제품에 펌웨어를 넣으려면&lt;/p&gt;
&lt;pre id=&quot;code_1754631353757&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;pip install esptool&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;위 항목을 설치해야된다.&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 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://micropython.org/resources/firmware/ESP32_GENERIC_C3-20240602-v1.23.0.bin&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://micropython.org/resources/firmware/ESP32_GENERIC_C3-20240602-v1.23.0.bin&lt;/a&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.25버전인데 1.23받으라고 홈페이지에 되어 있어서 1.23 받는다.&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;다운받고나서 아래 처럼 esptool.py를 이용해서 펌웨어를 디바이스에 쓴다.&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;2088&quot; data-origin-height=&quot;682&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Lzdhw/btsPM8s4iE2/SknE4zpzMFZJLscXECeTUk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Lzdhw/btsPM8s4iE2/SknE4zpzMFZJLscXECeTUk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Lzdhw/btsPM8s4iE2/SknE4zpzMFZJLscXECeTUk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FLzdhw%2FbtsPM8s4iE2%2FSknE4zpzMFZJLscXECeTUk%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;2088&quot; height=&quot;682&quot; data-origin-width=&quot;2088&quot; data-origin-height=&quot;682&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;pico 할때 받아놓은 Thonny를 켠다.&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;프로그램 메뉴 Run -&amp;gt; Configure Interpreter 도 확인 했음&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;1418&quot; data-origin-height=&quot;1158&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b1tPWO/btsPKiEv3Hi/kcGpg0CnvLdWyplPxPkNU0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b1tPWO/btsPKiEv3Hi/kcGpg0CnvLdWyplPxPkNU0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b1tPWO/btsPKiEv3Hi/kcGpg0CnvLdWyplPxPkNU0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb1tPWO%2FbtsPKiEv3Hi%2FkcGpg0CnvLdWyplPxPkNU0%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;1418&quot; height=&quot;1158&quot; data-origin-width=&quot;1418&quot; data-origin-height=&quot;1158&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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1626&quot; data-origin-height=&quot;1330&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dDivzE/btsPNiPXIyq/Kxr2ypFWhGA6ifxiGeQkr1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dDivzE/btsPNiPXIyq/Kxr2ypFWhGA6ifxiGeQkr1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dDivzE/btsPNiPXIyq/Kxr2ypFWhGA6ifxiGeQkr1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdDivzE%2FbtsPNiPXIyq%2FKxr2ypFWhGA6ifxiGeQkr1%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;1626&quot; height=&quot;1330&quot; data-origin-width=&quot;1626&quot; data-origin-height=&quot;1330&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;
&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-filename=&quot;IMG_1340.JPG&quot; data-origin-width=&quot;3024&quot; data-origin-height=&quot;4032&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cwP0rK/btsPMNQp1gY/QIaOM9qRgKKUNpW4HRYqu1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cwP0rK/btsPMNQp1gY/QIaOM9qRgKKUNpW4HRYqu1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cwP0rK/btsPMNQp1gY/QIaOM9qRgKKUNpW4HRYqu1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcwP0rK%2FbtsPMNQp1gY%2FQIaOM9qRgKKUNpW4HRYqu1%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;3024&quot; height=&quot;4032&quot; data-filename=&quot;IMG_1340.JPG&quot; data-origin-width=&quot;3024&quot; data-origin-height=&quot;4032&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;저 안테나를 연결안하면 WiFi가 안붙으니 꼭 안테나를 연결하고 진행하자!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1754635779754&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import time
import json
import network
from umqtt.simple import MQTTClient

# WiFi 설정
ssid = ###
password = ###

wlan = network.WLAN(network.STA_IF)
wlan.active(True)
try:
    wlan.config(pm=0)
    wlan.config(country='KR')
except:  # 일부 빌드에선 옵션 없을 수 있음
    pass

wlan.disconnect()
time.sleep(0.2)
wlan.connect(ssid, password)

while(True):
    s = wlan.status()
    print(&quot;status:&quot;, s, &quot;isconnected:&quot;, wlan.isconnected())
    if(wlan.isconnected() ==True):
        break
    time.sleep(1)&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Test는 위에 코드로 하면되고&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>
      <author>mvsw</author>
      <guid isPermaLink="true">https://mvsw.tistory.com/10</guid>
      <comments>https://mvsw.tistory.com/10#entry10comment</comments>
      <pubDate>Fri, 8 Aug 2025 15:50:03 +0900</pubDate>
    </item>
    <item>
      <title>raspberry pi zero 세팅</title>
      <link>https://mvsw.tistory.com/9</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;지난번에 다룬 raspberry pi pico는 micro controller인데 zero는 컴퓨터로 불릴만한 제품이다.&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;zero w 를 세팅해본다. (최신 제품은 zero 2w 인데 없어서 이걸로 .... ㅎㅎ)&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;a href=&quot;https://www.raspberrypi.com/software/&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.raspberrypi.com/software/&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1754055425743&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;Raspberry Pi software &amp;ndash; Raspberry Pi&quot; data-og-description=&quot;From our operating system to our GitHub repos, explore the software that powers our technology&quot; data-og-host=&quot;www.raspberrypi.com&quot; data-og-source-url=&quot;https://www.raspberrypi.com/software/&quot; data-og-url=&quot;https://www.raspberrypi.com/software/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/brqu1O/hyZrpMV7jU/H0f9nOkGBK9fKEFf6KkgO1/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630,https://scrap.kakaocdn.net/dn/ZhpUb/hyZuG0Onwa/Tw3bCodTyUP04rVgWSXLQK/img.png?width=1500&amp;amp;height=1690&amp;amp;face=0_0_1500_1690,https://scrap.kakaocdn.net/dn/bPqZKD/hyZromYn6t/64UqJblyYroRCEuaOtuJkK/img.png?width=1500&amp;amp;height=1690&amp;amp;face=0_0_1500_1690&quot;&gt;&lt;a href=&quot;https://www.raspberrypi.com/software/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.raspberrypi.com/software/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/brqu1O/hyZrpMV7jU/H0f9nOkGBK9fKEFf6KkgO1/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630,https://scrap.kakaocdn.net/dn/ZhpUb/hyZuG0Onwa/Tw3bCodTyUP04rVgWSXLQK/img.png?width=1500&amp;amp;height=1690&amp;amp;face=0_0_1500_1690,https://scrap.kakaocdn.net/dn/bPqZKD/hyZromYn6t/64UqJblyYroRCEuaOtuJkK/img.png?width=1500&amp;amp;height=1690&amp;amp;face=0_0_1500_1690');&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;Raspberry Pi software &amp;ndash; Raspberry Pi&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;From our operating system to our GitHub repos, explore the software that powers our technology&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.raspberrypi.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;여기서 micro SD카드에 OS 세팅을 도와주는 Pi Imager를 다운로드 받고 설치한다.&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;212&quot; data-origin-height=&quot;66&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cAtexX/btsPE4E8Lwl/JZNmT693Sq1nmKquxcTTzk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cAtexX/btsPE4E8Lwl/JZNmT693Sq1nmKquxcTTzk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cAtexX/btsPE4E8Lwl/JZNmT693Sq1nmKquxcTTzk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcAtexX%2FbtsPE4E8Lwl%2FJZNmT693Sq1nmKquxcTTzk%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;66&quot; data-origin-width=&quot;212&quot; data-origin-height=&quot;66&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;662&quot; data-origin-height=&quot;467&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bl1eus/btsPD2HRaY8/nChLplBw7LhFX9dOBhf4KK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bl1eus/btsPD2HRaY8/nChLplBw7LhFX9dOBhf4KK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bl1eus/btsPD2HRaY8/nChLplBw7LhFX9dOBhf4KK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbl1eus%2FbtsPD2HRaY8%2FnChLplBw7LhFX9dOBhf4KK%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;662&quot; height=&quot;467&quot; data-origin-width=&quot;662&quot; data-origin-height=&quot;467&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;모두 Yes 하고 진행하면 된다.&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;사실 이 과정에서 세팅 변경을 통해서 wifi를 잡아줄 수 있는데 여기서는 usb cable이 연결된 상태에서 해본다.&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;다 세팅하면 zero에 sd card를 연결하고 usb cable을 연결한다.&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;power 부분말고 usb 부분에 연결한다.&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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;569&quot; data-origin-height=&quot;859&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cE8iAs/btsPDl2k7RF/PXluXpBX1oi7wM1K3h3q6k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cE8iAs/btsPDl2k7RF/PXluXpBX1oi7wM1K3h3q6k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cE8iAs/btsPDl2k7RF/PXluXpBX1oi7wM1K3h3q6k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcE8iAs%2FbtsPDl2k7RF%2FPXluXpBX1oi7wM1K3h3q6k%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;328&quot; height=&quot;495&quot; data-origin-width=&quot;569&quot; data-origin-height=&quot;859&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;그 다음 cmd 창을 연다&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;mac이면 terminal 열리는 뭐든 연다 (iterm이던 ghost던 기본 terminal)&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;아무 세팅 안하고 연결하면 ssh id가 pi고 @raspberrypi.local로 ssh 접속하면 된다.&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;ssh pi@raspberrypi.local &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;br /&gt;&lt;b&gt;id 는 pi&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;pw는 raspberry&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;terminal 접속이 되면 &lt;b&gt;sudo raspi-conig &lt;/b&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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1097&quot; data-origin-height=&quot;609&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/GkoGJ/btsPDm1gAo3/zxb56JG3Yvg8Ml4trR640K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/GkoGJ/btsPDm1gAo3/zxb56JG3Yvg8Ml4trR640K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/GkoGJ/btsPDm1gAo3/zxb56JG3Yvg8Ml4trR640K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FGkoGJ%2FbtsPDm1gAo3%2Fzxb56JG3Yvg8Ml4trR640K%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;1097&quot; height=&quot;609&quot; data-origin-width=&quot;1097&quot; data-origin-height=&quot;609&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;wifi 잡아야되니까 System Options 선택&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;675&quot; data-origin-height=&quot;337&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ltJAX/btsPEpwcKJo/viBgG8sqSWBOWrBPKPLgY0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ltJAX/btsPEpwcKJo/viBgG8sqSWBOWrBPKPLgY0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ltJAX/btsPEpwcKJo/viBgG8sqSWBOWrBPKPLgY0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FltJAX%2FbtsPEpwcKJo%2FviBgG8sqSWBOWrBPKPLgY0%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;675&quot; height=&quot;337&quot; data-origin-width=&quot;675&quot; data-origin-height=&quot;337&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;S1 Wireless LAN 선택&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;그리고 나와서 ifconfig 해보면&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;650&quot; data-origin-height=&quot;340&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/KwHUM/btsPENDBJwF/PcxqIkPSFLhF33nsWapDEK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/KwHUM/btsPENDBJwF/PcxqIkPSFLhF33nsWapDEK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/KwHUM/btsPENDBJwF/PcxqIkPSFLhF33nsWapDEK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FKwHUM%2FbtsPENDBJwF%2FPcxqIkPSFLhF33nsWapDEK%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;340&quot; data-origin-width=&quot;650&quot; data-origin-height=&quot;340&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;이런식으로 연결되서 ip 세팅이 끝난걸 볼 수 있다.&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;microSD card에 OS 설치할때 사전 세팅을 해버리는거다&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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;689&quot; data-origin-height=&quot;477&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/xMSn4/btsPE63QibQ/iDg4unktRT9l93z5WSz5h1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/xMSn4/btsPE63QibQ/iDg4unktRT9l93z5WSz5h1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/xMSn4/btsPE63QibQ/iDg4unktRT9l93z5WSz5h1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FxMSn4%2FbtsPE63QibQ%2FiDg4unktRT9l93z5WSz5h1%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;689&quot; height=&quot;477&quot; data-origin-width=&quot;689&quot; data-origin-height=&quot;477&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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;517&quot; data-origin-height=&quot;649&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b5blBI/btsPFhRJwbu/TVkUijKC1r5cYLA4Zu6QX0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b5blBI/btsPFhRJwbu/TVkUijKC1r5cYLA4Zu6QX0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b5blBI/btsPFhRJwbu/TVkUijKC1r5cYLA4Zu6QX0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb5blBI%2FbtsPFhRJwbu%2FTVkUijKC1r5cYLA4Zu6QX0%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;517&quot; height=&quot;649&quot; data-origin-width=&quot;517&quot; data-origin-height=&quot;649&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;이렇게 세팅한게 잘되면 자동으로 wifi 연결이 될거다.&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>
      <author>mvsw</author>
      <guid isPermaLink="true">https://mvsw.tistory.com/9</guid>
      <comments>https://mvsw.tistory.com/9#entry9comment</comments>
      <pubDate>Fri, 1 Aug 2025 22:45:54 +0900</pubDate>
    </item>
  </channel>
</rss>