<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>main</title>
    <link>https://main.tistory.com/</link>
    <description></description>
    <language>ko</language>
    <pubDate>Sun, 10 May 2026 03:25:33 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>1984</managingEditor>
    <image>
      <title>main</title>
      <url>https://tistory1.daumcdn.net/tistory/5154130/attach/6356db947d2b4185896e89df44c85339</url>
      <link>https://main.tistory.com</link>
    </image>
    <item>
      <title>[Jira/Automation] 스프린트 자동 생성 (일주일 단위)</title>
      <link>https://main.tistory.com/289</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;1. Schedule 설정&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;805&quot; data-origin-height=&quot;657&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/qGzmS/btsJSLYBCuG/v20Ky9Bzltn4xKWD306JBK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/qGzmS/btsJSLYBCuG/v20Ky9Bzltn4xKWD306JBK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/qGzmS/btsJSLYBCuG/v20Ky9Bzltn4xKWD306JBK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FqGzmS%2FbtsJSLYBCuG%2Fv20Ky9Bzltn4xKWD306JBK%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;805&quot; height=&quot;657&quot; data-origin-width=&quot;805&quot; data-origin-height=&quot;657&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;2. Sprint 이름 설정&lt;/h3&gt;
&lt;pre id=&quot;code_1727829539765&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# XX월 XX일 ~ XX월 XX일
({{now.convertToTimeZone(&quot;Asia/Seoul&quot;).plusDays(10).format(&quot;MM월 dd일&quot;)}}~{{now.convertToTimeZone(&quot;Asia/Seoul&quot;).plusDays(16).format(&quot;MM월 dd일&quot;)}})&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;805&quot; data-origin-height=&quot;657&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bnpqta/btsJRCaBLIC/SzDWJQBpn7zucXKkjM0uFk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bnpqta/btsJRCaBLIC/SzDWJQBpn7zucXKkjM0uFk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bnpqta/btsJRCaBLIC/SzDWJQBpn7zucXKkjM0uFk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbnpqta%2FbtsJRCaBLIC%2FSzDWJQBpn7zucXKkjM0uFk%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;805&quot; height=&quot;657&quot; data-origin-width=&quot;805&quot; data-origin-height=&quot;657&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;3. Sprint 시작일 설정&lt;/h3&gt;
&lt;pre id=&quot;code_1727829601276&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;{{now.convertToTimeZone(&quot;Asia/Seoul&quot;).plusDays(10)}}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;805&quot; data-origin-height=&quot;657&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/SO9Ch/btsJSLj0A2y/CSNMa2xjFAKRKcapiPWxn0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/SO9Ch/btsJSLj0A2y/CSNMa2xjFAKRKcapiPWxn0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/SO9Ch/btsJSLj0A2y/CSNMa2xjFAKRKcapiPWxn0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FSO9Ch%2FbtsJSLj0A2y%2FCSNMa2xjFAKRKcapiPWxn0%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;805&quot; height=&quot;657&quot; data-origin-width=&quot;805&quot; data-origin-height=&quot;657&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;4. Sprint 종료일 설정&lt;/h3&gt;
&lt;pre id=&quot;code_1727829659247&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;{{now.convertToTimeZone(&quot;Asia/Seoul&quot;).plusDays(16)}}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;805&quot; data-origin-height=&quot;657&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bhMgi1/btsJSfeTTtM/dwQPlkUdSY2qV30IaEs0G1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bhMgi1/btsJSfeTTtM/dwQPlkUdSY2qV30IaEs0G1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bhMgi1/btsJSfeTTtM/dwQPlkUdSY2qV30IaEs0G1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbhMgi1%2FbtsJSfeTTtM%2FdwQPlkUdSY2qV30IaEs0G1%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;805&quot; height=&quot;657&quot; data-origin-width=&quot;805&quot; data-origin-height=&quot;657&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;5. Sprint 생성 API&lt;/h3&gt;
&lt;pre id=&quot;code_1727829759674&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# URL(POST)
https://{BASE_URL}/rest/agile/1.0/sprint
# body
{
&quot;name&quot; : &quot;{{sprintName}}&quot;,
&quot;originBoardId&quot; : 9,
&quot;goal&quot; : &quot;&quot;,
&quot;startDate&quot; : &quot;{{sprintStartDate}}&quot;,
&quot;endDate&quot; : &quot;{{sprintEndDate}}&quot;
}&lt;/code&gt;&lt;/pre&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;805&quot; data-origin-height=&quot;657&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/kO67T/btsJSLj0BhP/RQobVV38B7ScSyjrdFOnRk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/kO67T/btsJSLj0BhP/RQobVV38B7ScSyjrdFOnRk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/kO67T/btsJSLj0BhP/RQobVV38B7ScSyjrdFOnRk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkO67T%2FbtsJSLj0BhP%2FRQobVV38B7ScSyjrdFOnRk%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;805&quot; height=&quot;657&quot; data-origin-width=&quot;805&quot; data-origin-height=&quot;657&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>ETC</category>
      <author>1984</author>
      <guid isPermaLink="true">https://main.tistory.com/289</guid>
      <comments>https://main.tistory.com/289#entry289comment</comments>
      <pubDate>Sat, 19 Oct 2024 09:53:36 +0900</pubDate>
    </item>
    <item>
      <title>[Jira/Python] Jira 프로젝트 전체 첨부파일 다운로드 스크립트</title>
      <link>https://main.tistory.com/283</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;Jira 프로젝트의 전체 첨부파일을 이슈별로 다운로드하는 스크립트입니다.&lt;/p&gt;
&lt;pre id=&quot;code_1686699663905&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import requests
from requests.auth import HTTPBasicAuth
import json
import os
import re

url = &quot;JIRA_URL&quot;

auth = HTTPBasicAuth(&quot;USERNAME&quot;, &quot;AUTH_TOKEN&quot;)



headers = {
  &quot;Accept&quot;: &quot;application/json&quot;
}

dir_path = &quot;D:\\nas\\&quot;

def download_file(url, save_path):
    response = requests.request(
    &quot;GET&quot;,
    url,
    headers=headers,
    auth=auth)
    with open(save_path, 'wb') as file:
        file.write(response.content)
    print(f&quot;File downloaded and saved at {save_path}&quot;)

def get_issue_key(url):
    response = requests.request(
    &quot;GET&quot;,
    url,
    headers=headers,
    auth=auth)
    data = json.loads(response.text)
    return data[&quot;key&quot;]

def get_issue_keySummary(url):
    response = requests.request(
        &quot;GET&quot;,
        url,
        headers=headers,
        auth=auth
    )
    data = json.loads(response.text)
    issue_keySummary = &quot;[&quot; + data[&quot;key&quot;] + &quot;] &quot; + data[&quot;fields&quot;][&quot;summary&quot;]

    return clean_folder_name(issue_keySummary)

def clean_folder_name(folder_name):
    # 윈도우에서 사용할 수 없는 문자 패턴 정의
    invalid_chars = r'[&amp;lt;&amp;gt;:&quot;/\\|?*]'
    # 유효하지 않은 문자를 빈 문자열로 치환
    clean_name = re.sub(invalid_chars, '', folder_name)
    # 문자열 앞뒤의 공백 제거
    clean_name = clean_name.strip()
    return clean_name

def create_directory(directory_path):
    try:
        os.makedirs(directory_path)
        print(f&quot;Directory created: {directory_path}&quot;)
    except FileExistsError:
        print(f&quot;Directory already exists: {directory_path}&quot;)
    except Exception as e:
        print(f&quot;Error occurred while creating directory: {e}&quot;)


def search_issue_withAttachment():
    params = {
        &quot;jql&quot;: &quot;project = COM AND attachment is not EMPTY&quot;,
        &quot;startAt&quot;: 0, # 시작 위치 설정
        &quot;maxResults&quot;: 50
    }
    response = requests.request(
        &quot;GET&quot;,
        url,
        params=params,
        headers=headers,
        auth=auth,
    )

    data = json.loads(response.text)
    count = 0

    for issue in data[&quot;issues&quot;]:
        count += 1
        print(&quot;No. &quot; + str(count))
        attachments = issue[&quot;fields&quot;][&quot;attachment&quot;]
        if(len(attachments) == 0):
            continue
        attachment_save_path = dir_path + get_issue_keySummary(issue[&quot;self&quot;])
        create_directory(attachment_save_path) # 이슈 키 + 요약(제목)으로 폴더명 생성
        for attachment in attachments:
            attachment_download_url = attachment[&quot;content&quot;]
            download_file(attachment_download_url, attachment_save_path + &quot;\\&quot; + attachment[&quot;filename&quot;])
            
search_issue_withAttachment()&lt;/code&gt;&lt;/pre&gt;</description>
      <category>ETC</category>
      <author>1984</author>
      <guid isPermaLink="true">https://main.tistory.com/283</guid>
      <comments>https://main.tistory.com/283#entry283comment</comments>
      <pubDate>Tue, 5 Mar 2024 10:12:26 +0900</pubDate>
    </item>
    <item>
      <title>[Java] OpenJDK 21 설치 (Ubuntu 20.04, repo에 없을 때)</title>
      <link>https://main.tistory.com/288</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;1. 설치&lt;/h3&gt;
&lt;pre id=&quot;code_1701649417667&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;wget https://download.java.net/java/GA/jdk21.0.1/415e3f918a1f4062a0074a2794853d0d/12/GPL/openjdk-21.0.1_linux-x64_bin.tar.gz
tar -xvf openjdk-21.0.1_linux-x64_bin.tar.gz
cd jdk-21.0.1/
sudo mkdir -p /usr/local/jdk-21.0.1/
sudo mv * /usr/local/jdk-21.0.1/&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;* 설치 파일 경로 확인 : &lt;a href=&quot;https://jdk.java.net/21/&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://jdk.java.net/21/&lt;/a&gt;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;2. 환경 변수 설정&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;vi ~/.bashrc&lt;/p&gt;
&lt;pre id=&quot;code_1701649466813&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;export JAVA_HOME=/usr/local/jdk-21.0.1/
export PATH=$JAVA_HOME/bin:$PATH&lt;/code&gt;&lt;/pre&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;3. 적용&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;source ~/.bashrc&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;4. 확인&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;java --version&lt;/p&gt;
&lt;pre id=&quot;code_1701649567020&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$ java --version
openjdk 21.0.1 2023-10-17
OpenJDK Runtime Environment (build 21.0.1+12-29)
OpenJDK 64-Bit Server VM (build 21.0.1+12-29, mixed mode, sharing)&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;h1&gt;참고 자료&lt;/h1&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.linuxcapable.com/how-to-install-openjdk-21-on-ubuntu-linux/&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.linuxcapable.com/how-to-install-openjdk-21-on-ubuntu-linux/&lt;/a&gt;&lt;/p&gt;</description>
      <category>Java</category>
      <author>1984</author>
      <guid isPermaLink="true">https://main.tistory.com/288</guid>
      <comments>https://main.tistory.com/288#entry288comment</comments>
      <pubDate>Tue, 5 Dec 2023 23:27:15 +0900</pubDate>
    </item>
    <item>
      <title>[Android Studio] 삭제 (Sdk, 설정파일 포함)</title>
      <link>https://main.tistory.com/287</link>
      <description>&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;제어판 - Android Studio 제거&lt;/li&gt;
&lt;li&gt;C:\Program Files\Android 제거&lt;/li&gt;
&lt;li&gt;C:\Users\&amp;lt;사용자명&amp;gt;\.android 제거&lt;/li&gt;
&lt;li&gt;C:\Users\&amp;lt;사용자명&amp;gt;\AppData\Local\Android\Sdk 제거&lt;/li&gt;
&lt;li&gt;C:\Users\&amp;lt;사용자명&amp;gt;\AppData\Local\Android\Google\AndroidStudio&amp;lt;버전&amp;gt; 제거&lt;/li&gt;
&lt;li&gt;C:\Users\&amp;lt;사용자명&amp;gt;\AppData\Roaming\Google\AndroidStudio&amp;lt;버전&amp;gt; 제거&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;* 보기 -&amp;gt; 표시 -&amp;gt; 숨김항목 체크&lt;/b&gt;&lt;/p&gt;</description>
      <category>ETC</category>
      <author>1984</author>
      <guid isPermaLink="true">https://main.tistory.com/287</guid>
      <comments>https://main.tistory.com/287#entry287comment</comments>
      <pubDate>Sun, 26 Nov 2023 13:16:40 +0900</pubDate>
    </item>
    <item>
      <title>[Python] 숫자 -&amp;gt; 한글로 변환</title>
      <link>https://main.tistory.com/286</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div style=&quot;background-color: #1e1f22; color: #bcbec4;&quot;&gt;
&lt;pre class=&quot;applescript&quot;&gt;&lt;code&gt;def convert_number_to_kor_string(number):
    kor_numbers = {
        0: &quot;영&quot;,
        1: &quot;일&quot;,
        2: &quot;이&quot;,
        3: &quot;삼&quot;,
        4: &quot;사&quot;,
        5: &quot;오&quot;,
        6: &quot;육&quot;,
        7: &quot;칠&quot;,
        8: &quot;팔&quot;,
        9: &quot;구&quot;
    }

    kor_units = [&quot;&quot;, &quot;십&quot;, &quot;백&quot;, &quot;천&quot;, &quot;만&quot;, &quot;십만&quot;, &quot;백만&quot;, &quot;천만&quot;, &quot;억&quot;]

    num_reversed_str = ''.join(reversed(str(number)))
    result = ''

    for i, digit_str in enumerate(num_reversed_str):
        digit = int(digit_str)
        if digit == 0:
            pass
        elif digit == 1 and i &amp;gt; 0:
            result = kor_units[i] + result
        else:
            result = kor_numbers[digit] + kor_units[i] + result

    return result&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;</description>
      <category>Python</category>
      <author>1984</author>
      <guid isPermaLink="true">https://main.tistory.com/286</guid>
      <comments>https://main.tistory.com/286#entry286comment</comments>
      <pubDate>Wed, 13 Sep 2023 21:49:13 +0900</pubDate>
    </item>
    <item>
      <title>[PyInstaller] ImportError: cannot import name 'MarkdownExporter' from 'nbconvert'</title>
      <link>https://main.tistory.com/285</link>
      <description>&lt;h1 data-ke-size=&quot;size16&quot;&gt;에러&lt;/h1&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&quot;dataframe_image&quot; 패키지를 사용하는 프로젝트를 PyInstaller 로 빌드하여, exe 파일을 실행시키면 &quot;nbconvert&quot; 모듈의 Import Error 발생&lt;/p&gt;
&lt;pre id=&quot;code_1687410539397&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;ImportError: cannot import name 'MarkdownExporter' from 'nbconvert'&lt;/code&gt;&lt;/pre&gt;
&lt;h1 data-ke-size=&quot;size16&quot;&gt;해결 방법&lt;/h1&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;1. nbconvert를 6.4.3 버전으로 다운그레이드&lt;/h3&gt;
&lt;pre id=&quot;code_1687410413650&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;pip install nbconvert==6.4.3&lt;/code&gt;&lt;/pre&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;2. dataframe_image 디렉토리를 찾을 수 없다는 에러 발생&lt;/h3&gt;
&lt;pre id=&quot;code_1687410514531&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;FileNotFoundError: [Errno 2] No such file or directory: 'D:\\code\\python\\...\\dist\\...\\dataframe_image\\static\\style.css'&lt;/code&gt;&lt;/pre&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;3. .spec 파일의 datas에 dataframe_image 폴더 추가&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;.spec 파일은 pyinstaller를 한번 실행시키면 생성됨.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;.conda 및 가상환경 폴더 경로 확인하여 설정해준다.&lt;/p&gt;
&lt;pre id=&quot;code_1687410794141&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;datas=[(r&quot;C:\path\.conda\envs\env\Lib\site-packages\dataframe_image\static\style.css&quot;, r&quot;dataframe_image\static&quot;)],&lt;/code&gt;&lt;/pre&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;4. 수정한 .spec 파일로 pyinstaller 재실행&lt;/h3&gt;
&lt;pre id=&quot;code_1687411057021&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;pyinstaller example.py&lt;/code&gt;&lt;/pre&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;h1&gt;참고자료&lt;/h1&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 비슷한 에러&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://github.com/orgs/pyinstaller/discussions/6432&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://github.com/orgs/pyinstaller/discussions/6432&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Python</category>
      <author>1984</author>
      <guid isPermaLink="true">https://main.tistory.com/285</guid>
      <comments>https://main.tistory.com/285#entry285comment</comments>
      <pubDate>Thu, 22 Jun 2023 23:32:39 +0900</pubDate>
    </item>
    <item>
      <title>[Windows11] 우클릭 더 많은 옵션 표시 기본값 설정방법</title>
      <link>https://main.tistory.com/284</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;cmd 관리자 권한으로 실행&lt;/p&gt;
&lt;pre id=&quot;code_1686882148308&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;reg.exe add &amp;ldquo;HKCU\Software\Classes\CLSID\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}\InprocServer32&amp;rdquo; /f /ve

taskkill /f /im explorer.exe

explorer&lt;/code&gt;&lt;/pre&gt;</description>
      <category>ETC</category>
      <author>1984</author>
      <guid isPermaLink="true">https://main.tistory.com/284</guid>
      <comments>https://main.tistory.com/284#entry284comment</comments>
      <pubDate>Fri, 16 Jun 2023 11:22:31 +0900</pubDate>
    </item>
    <item>
      <title>[Microsoft PowerToys] 마이크로소프트 파워토이 설치 및 윈도우창 항상 위로 고정하기 (Windows 11)</title>
      <link>https://main.tistory.com/282</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;마이크로소프트 사에서 만든 파워토이를 설치하고 윈도우 창의 위치를 고정해보았다.&lt;/p&gt;
&lt;h1 data-ke-size=&quot;size16&quot;&gt;Github 주소&lt;/h1&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://github.com/microsoft/PowerToys&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://github.com/microsoft/PowerToys&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1684975910889&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 - microsoft/PowerToys: Windows system utilities to maximize productivity&quot; data-og-description=&quot;Windows system utilities to maximize productivity. Contribute to microsoft/PowerToys development by creating an account on GitHub.&quot; data-og-host=&quot;github.com&quot; data-og-source-url=&quot;https://github.com/microsoft/PowerToys&quot; data-og-url=&quot;https://github.com/microsoft/PowerToys&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/Q0Yvp/hySKs95j9H/nHmow1ArwMIy9eUAAKrQcK/img.png?width=1280&amp;amp;height=513&amp;amp;face=0_0_1280_513&quot;&gt;&lt;a href=&quot;https://github.com/microsoft/PowerToys&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://github.com/microsoft/PowerToys&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/Q0Yvp/hySKs95j9H/nHmow1ArwMIy9eUAAKrQcK/img.png?width=1280&amp;amp;height=513&amp;amp;face=0_0_1280_513');&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 - microsoft/PowerToys: Windows system utilities to maximize productivity&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Windows system utilities to maximize productivity. Contribute to microsoft/PowerToys development by creating an account on GitHub.&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;h5&gt;&amp;nbsp;&lt;/h5&gt;
&lt;h1&gt;다운로드&lt;/h1&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;1. Github 페이지에서 &lt;a href=&quot;https://github.com/microsoft/PowerToys#installing-and-running-microsoft-powertoys&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Installing and running Microsoft PowerToys&lt;/a&gt; 섹션으로 이동하여 설치 파일을 다운로드한다.&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;895&quot; data-origin-height=&quot;849&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/qXQe9/btshijQtqhJ/xkMQphBl5lvxb7m6WvXbe0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/qXQe9/btshijQtqhJ/xkMQphBl5lvxb7m6WvXbe0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/qXQe9/btshijQtqhJ/xkMQphBl5lvxb7m6WvXbe0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FqXQe9%2FbtshijQtqhJ%2FxkMQphBl5lvxb7m6WvXbe0%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;895&quot; height=&quot;849&quot; data-origin-width=&quot;895&quot; data-origin-height=&quot;849&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;2. 설치 파일 실행&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;471&quot; data-origin-height=&quot;293&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cuzx6q/btshhGeklzB/3x3Y4O1kWWJRfuR7iNCeG0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cuzx6q/btshhGeklzB/3x3Y4O1kWWJRfuR7iNCeG0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cuzx6q/btshhGeklzB/3x3Y4O1kWWJRfuR7iNCeG0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcuzx6q%2FbtshhGeklzB%2F3x3Y4O1kWWJRfuR7iNCeG0%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;471&quot; height=&quot;293&quot; data-origin-width=&quot;471&quot; data-origin-height=&quot;293&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;3. 동의 및 설치&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;471&quot; data-origin-height=&quot;293&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/evlHvZ/btshig0CNx9/6Cm7ZROSwjhLavQ187w4Kk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/evlHvZ/btshig0CNx9/6Cm7ZROSwjhLavQ187w4Kk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/evlHvZ/btshig0CNx9/6Cm7ZROSwjhLavQ187w4Kk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FevlHvZ%2Fbtshig0CNx9%2F6Cm7ZROSwjhLavQ187w4Kk%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;471&quot; height=&quot;293&quot; data-origin-width=&quot;471&quot; data-origin-height=&quot;293&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;471&quot; data-origin-height=&quot;293&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/CEJLT/btshkNCNCtj/iLxZep2xZEqcX8ooQ9rknK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/CEJLT/btshkNCNCtj/iLxZep2xZEqcX8ooQ9rknK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/CEJLT/btshkNCNCtj/iLxZep2xZEqcX8ooQ9rknK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FCEJLT%2FbtshkNCNCtj%2FiLxZep2xZEqcX8ooQ9rknK%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;471&quot; height=&quot;293&quot; data-origin-width=&quot;471&quot; data-origin-height=&quot;293&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;4. 설치 끝.&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;471&quot; data-origin-height=&quot;293&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ceMpRB/btshiEtoaSH/MmWgkAMv1aKRFW6ZZxL1a0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ceMpRB/btshiEtoaSH/MmWgkAMv1aKRFW6ZZxL1a0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ceMpRB/btshiEtoaSH/MmWgkAMv1aKRFW6ZZxL1a0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FceMpRB%2FbtshiEtoaSH%2FMmWgkAMv1aKRFW6ZZxL1a0%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;471&quot; height=&quot;293&quot; data-origin-width=&quot;471&quot; data-origin-height=&quot;293&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size16&quot;&gt;5. 실행 화면&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1086&quot; data-origin-height=&quot;693&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bDk2TZ/btshh9ObVH0/wknPFKQToCmoFy846usDb0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bDk2TZ/btshh9ObVH0/wknPFKQToCmoFy846usDb0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bDk2TZ/btshh9ObVH0/wknPFKQToCmoFy846usDb0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbDk2TZ%2Fbtshh9ObVH0%2FwknPFKQToCmoFy846usDb0%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;1086&quot; height=&quot;693&quot; data-origin-width=&quot;1086&quot; data-origin-height=&quot;693&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;h1&gt;윈도우창 항상 위로 고정하기&lt;/h1&gt;
&lt;h3 data-ke-size=&quot;size16&quot;&gt;1. 실행 후, 윈도우 + ctrl + T 단축키를 입력하면 아래 화면과 같이 고정된다.&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;고정창 테두리가 자기 주장이 강하므로, 설정을 변경해준다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1161&quot; data-origin-height=&quot;728&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dFMbVS/btshj276QhS/20SL3V4oFkxkqngxZHk5r1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dFMbVS/btshj276QhS/20SL3V4oFkxkqngxZHk5r1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dFMbVS/btshj276QhS/20SL3V4oFkxkqngxZHk5r1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdFMbVS%2Fbtshj276QhS%2F20SL3V4oFkxkqngxZHk5r1%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;1161&quot; height=&quot;728&quot; data-origin-width=&quot;1161&quot; data-origin-height=&quot;728&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size16&quot;&gt;2. 파워토이 실행 후, [항상 위] 클&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1085&quot; data-origin-height=&quot;693&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bX3B2n/btshiDOLgcA/X0qAikModqnd92KcTPsbLk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bX3B2n/btshiDOLgcA/X0qAikModqnd92KcTPsbLk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bX3B2n/btshiDOLgcA/X0qAikModqnd92KcTPsbLk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbX3B2n%2FbtshiDOLgcA%2FX0qAikModqnd92KcTPsbLk%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;1085&quot; height=&quot;693&quot; data-origin-width=&quot;1085&quot; data-origin-height=&quot;693&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size16&quot;&gt;2. [설정 열기] 클릭&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1086&quot; data-origin-height=&quot;694&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lL9j5/btshigM8315/J8Je2LXIjeSpzI4k2LfUT1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lL9j5/btshigM8315/J8Je2LXIjeSpzI4k2LfUT1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lL9j5/btshigM8315/J8Je2LXIjeSpzI4k2LfUT1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlL9j5%2FbtshigM8315%2FJ8Je2LXIjeSpzI4k2LfUT1%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;1086&quot; height=&quot;694&quot; data-origin-width=&quot;1086&quot; data-origin-height=&quot;694&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size16&quot;&gt;3. [모양 및 동작] 탭에서, 원하는 모양과 색으로 바꿔준다. (테두리 비활성화도 가능)&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1086&quot; data-origin-height=&quot;694&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/yAmtq/btshkadXld0/7pZXnl30ZTqkGjv2GjShw1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/yAmtq/btshkadXld0/7pZXnl30ZTqkGjv2GjShw1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/yAmtq/btshkadXld0/7pZXnl30ZTqkGjv2GjShw1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FyAmtq%2FbtshkadXld0%2F7pZXnl30ZTqkGjv2GjShw1%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;1086&quot; height=&quot;694&quot; data-origin-width=&quot;1086&quot; data-origin-height=&quot;694&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;끝.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1332&quot; data-origin-height=&quot;782&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/LJHcU/btshjeHUvUe/opCSNuo1tM9FzbyvKg1M90/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/LJHcU/btshjeHUvUe/opCSNuo1tM9FzbyvKg1M90/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/LJHcU/btshjeHUvUe/opCSNuo1tM9FzbyvKg1M90/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FLJHcU%2FbtshjeHUvUe%2FopCSNuo1tM9FzbyvKg1M90%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;1332&quot; height=&quot;782&quot; data-origin-width=&quot;1332&quot; data-origin-height=&quot;782&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>ETC</category>
      <author>1984</author>
      <guid isPermaLink="true">https://main.tistory.com/282</guid>
      <comments>https://main.tistory.com/282#entry282comment</comments>
      <pubDate>Thu, 25 May 2023 22:16:46 +0900</pubDate>
    </item>
    <item>
      <title>[JavaScript] 타이핑웍스 엔터키로 넘기기 안될 때 (작은 창)</title>
      <link>https://main.tistory.com/281</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;타이핑웍스 윈도우창을 작게하면, phone으로 인식되어 엔터키가 줄바꿈으로 인식됨.&lt;/p&gt;
&lt;pre id=&quot;code_1684975171209&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;twsAgent.prototype.change = function () {
  this.phone = false;
  this.tablet = false;
  this.pc = true;
  switch (!0) {
    case this.phone:
      twsOptIpt(&quot;phone&quot;),
        tws.langBox.display(tws.lang, &quot;phone&quot;),
        tws.timeBox.display(tws.ttSelect, &quot;phone&quot;),
        tws.timeBox.timesDP(tws.times, &quot;phone&quot;),
        tws.timeBox.timerDP(tws.timer, &quot;phone&quot;),
        tws.stnBox.btnDP(tws.short, &quot;phone&quot;),
        tws.pgBox.display(tws.pangram, &quot;phone&quot;),
        ask.req.close(document.getElementById(&quot;reqExit&quot;));
      break;
    case this.tablet:
      twsOptIpt(&quot;tablet&quot;),
        tws.langBox.display(tws.lang, &quot;tablet&quot;),
        tws.timeBox.display(tws.ttSelect, &quot;tablet&quot;),
        tws.timeBox.timesDP(tws.times, &quot;tablet&quot;),
        tws.timeBox.timerDP(tws.timer, &quot;tablet&quot;),
        tws.stnBox.btnDP(tws.short, &quot;tablet&quot;),
        tws.pgBox.display(tws.pangram, &quot;tablet&quot;),
        tws.menu.close(&quot;tablet&quot;);
      break;
    case this.pc:
      twsOptIpt(&quot;pc&quot;),
        tws.langBox.display(tws.lang, &quot;pc&quot;),
        tws.timeBox.display(tws.ttSelect, &quot;pc&quot;),
        tws.timeBox.timesDP(tws.times, &quot;pc&quot;),
        tws.timeBox.timerDP(tws.timer, &quot;pc&quot;),
        tws.stnBox.btnDP(tws.short, &quot;pc&quot;),
        tws.pgBox.display(tws.pangram, &quot;pc&quot;),
        tws.menu.close(&quot;pc&quot;);
  }
};&lt;/code&gt;&lt;/pre&gt;
&lt;pre id=&quot;code_1684974030212&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;window.addEventListener(&quot;keydown&quot;, function (t) {
  if (t.key === &quot;Enter&quot;) {
    t.preventDefault();
    return;
  }
});&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>ETC</category>
      <author>1984</author>
      <guid isPermaLink="true">https://main.tistory.com/281</guid>
      <comments>https://main.tistory.com/281#entry281comment</comments>
      <pubDate>Thu, 25 May 2023 20:21:17 +0900</pubDate>
    </item>
    <item>
      <title>[Raspberry Pi/Ubuntu] 고정 IP 설정하기 (Ubuntu 22.04 LTS)</title>
      <link>https://main.tistory.com/280</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;wifi에 연결된 Raspberry Pi의 고정 IP를 설정한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;1. /etc/netplan 디렉토리로 이동하여, 설정 파일을 확인한다.&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;파일 이름은 상이할 수 있다.&lt;/p&gt;
&lt;pre id=&quot;code_1684546507380&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;cd /etc/netplan
ls&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;312&quot; data-origin-height=&quot;50&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/y96ha/btsgEbdScp4/0zkKcNE9IIAuCGkN1RSGDK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/y96ha/btsgEbdScp4/0zkKcNE9IIAuCGkN1RSGDK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/y96ha/btsgEbdScp4/0zkKcNE9IIAuCGkN1RSGDK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fy96ha%2FbtsgEbdScp4%2F0zkKcNE9IIAuCGkN1RSGDK%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;312&quot; height=&quot;50&quot; data-origin-width=&quot;312&quot; data-origin-height=&quot;50&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size16&quot;&gt;2. 해당 파일을 vim 편집기로 연다.&lt;/h3&gt;
&lt;pre id=&quot;code_1684546565514&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;vi 50-cloud-init.yaml&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;기존의 yaml 파일은 아래와 같다.&lt;/p&gt;
&lt;pre id=&quot;code_1684551123469&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;network:
    version: 2
    wifis:
        renderer: networkd
        wlan0:
            access-points:
                WIFI이름:
                    password: WIFI비밀번호
            dhcp4: true
            optional: true&lt;/code&gt;&lt;/pre&gt;
&lt;h3 data-ke-size=&quot;size16&quot;&gt;3. [dhcp4]를 수정하고, [addresses]/[gateway4]/[nameservers] 항목을 추가한다.&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;변경 후 yaml 파일은 아래와 같다.&lt;/p&gt;
&lt;pre id=&quot;code_1684550645876&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;network:
    version: 2
    wifis:
        renderer: networkd
        wlan0:
            access-points:
                WIFI_NAME:
                    password: WIFI_PASSWORD
            dhcp4: false # 내부 IP를 고정한다.
            addresses: # 고정할 내부 IP 주소
              - 192.168.0.100/24
            routes: # 기본 게이트웨이 주소
              - to: 0.0.0.0/0
                via: 192.168.0.1
            nameservers: # DNS 서버 주소
              addresses:
                - 8.8.8.8
                - 8.8.4.4
            optional: true&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;876&quot; data-origin-height=&quot;388&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dM5zSV/btsgE7PQIQw/VIl2qAAr22A9wK4WhqMiOk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dM5zSV/btsgE7PQIQw/VIl2qAAr22A9wK4WhqMiOk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dM5zSV/btsgE7PQIQw/VIl2qAAr22A9wK4WhqMiOk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdM5zSV%2FbtsgE7PQIQw%2FVIl2qAAr22A9wK4WhqMiOk%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;876&quot; height=&quot;388&quot; data-origin-width=&quot;876&quot; data-origin-height=&quot;388&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size16&quot;&gt;4. 아래 명령어를 사용하여, 변경사항을 적용한다.&lt;/h3&gt;
&lt;pre id=&quot;code_1684552024372&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;netplan apply&lt;/code&gt;&lt;/pre&gt;
&lt;h3 data-ke-size=&quot;size16&quot;&gt;5. 변경된 주소로 ssh 접속한다.&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;452&quot; data-origin-height=&quot;442&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/qc3bl/btsgDMrTwPh/MHGfl1ZSRFAAhkzj5SJ37K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/qc3bl/btsgDMrTwPh/MHGfl1ZSRFAAhkzj5SJ37K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/qc3bl/btsgDMrTwPh/MHGfl1ZSRFAAhkzj5SJ37K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fqc3bl%2FbtsgDMrTwPh%2FMHGfl1ZSRFAAhkzj5SJ37K%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;452&quot; height=&quot;442&quot; data-origin-width=&quot;452&quot; data-origin-height=&quot;442&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;끝.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h1 data-ke-size=&quot;size16&quot;&gt;참고자료&lt;/h1&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.lesstif.com/lpt/ubuntu-netplan-ip-static-ip-config-61899302.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://www.lesstif.com/lpt/ubuntu-netplan-ip-static-ip-config-61899302.html&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://khstu-98.tistory.com/38&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://khstu-98.tistory.com/38&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://svrforum.com/svr/6056&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://svrforum.com/svr/6056&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://ansan-survivor.tistory.com/44&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://ansan-survivor.tistory.com/44&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>ETC</category>
      <author>1984</author>
      <guid isPermaLink="true">https://main.tistory.com/280</guid>
      <comments>https://main.tistory.com/280#entry280comment</comments>
      <pubDate>Sat, 20 May 2023 12:16:01 +0900</pubDate>
    </item>
  </channel>
</rss>