<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>쉼터</title>
    <link>https://kyle79.tistory.com/</link>
    <description></description>
    <language>ko</language>
    <pubDate>Mon, 13 Jul 2026 06:55:23 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>Kyle79</managingEditor>
    <image>
      <title>쉼터</title>
      <url>https://tistory1.daumcdn.net/tistory/3117634/attach/db0acf3ef5e949c780cc853562a14546</url>
      <link>https://kyle79.tistory.com</link>
    </image>
    <item>
      <title>OpenLens 설치</title>
      <link>https://kyle79.tistory.com/532</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;OpenLens Desktop는 hombrew로 설치가능하다.&lt;/p&gt;
&lt;pre id=&quot;code_1711954485508&quot; class=&quot;mipsasm&quot; style=&quot;color: #3a4954; text-align: start;&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;shell&quot;&gt;&lt;code&gt;brew install --cask openlens&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;color: #3a4954; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #3a4954; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;기존의 &lt;span style=&quot;color: #3a4954; text-align: start;&quot;&gt;node shell, pod shell 기능은 다음과 같이 확장하여 설치할 수 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #3a4954; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #3a4954; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #3a4954; text-align: start;&quot;&gt;1. OpenLens - Extensions 메뉴&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;467&quot; data-origin-height=&quot;574&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/notZB/btsGexcZ2wQ/gdvlrvZIrPOuzd0ATGGy3K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/notZB/btsGexcZ2wQ/gdvlrvZIrPOuzd0ATGGy3K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/notZB/btsGexcZ2wQ/gdvlrvZIrPOuzd0ATGGy3K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnotZB%2FbtsGexcZ2wQ%2FgdvlrvZIrPOuzd0ATGGy3K%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;467&quot; height=&quot;574&quot; data-origin-width=&quot;467&quot; data-origin-height=&quot;574&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;2. &lt;b&gt;@alebcay/openlens-node-pod-menu&lt;/b&gt;&lt;span style=&quot;color: #3a4954; text-align: start;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;입력 후 설치&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;781&quot; data-origin-height=&quot;415&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/uxdRu/btsGhFgp7S4/0VjzuCmPVWCVmmYa5HVPq1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/uxdRu/btsGhFgp7S4/0VjzuCmPVWCVmmYa5HVPq1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/uxdRu/btsGhFgp7S4/0VjzuCmPVWCVmmYa5HVPq1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FuxdRu%2FbtsGhFgp7S4%2F0VjzuCmPVWCVmmYa5HVPq1%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;781&quot; height=&quot;415&quot; data-origin-width=&quot;781&quot; data-origin-height=&quot;415&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;3. &lt;span style=&quot;color: #3a4954; text-align: start;&quot;&gt;node shell, pod shell &lt;/span&gt;설치 확인&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;476&quot; data-origin-height=&quot;113&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/QrqV4/btsGh65KcJd/lTLCQgCoksecuRcRqSmZt0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/QrqV4/btsGh65KcJd/lTLCQgCoksecuRcRqSmZt0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/QrqV4/btsGh65KcJd/lTLCQgCoksecuRcRqSmZt0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FQrqV4%2FbtsGh65KcJd%2FlTLCQgCoksecuRcRqSmZt0%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;476&quot; height=&quot;113&quot; data-origin-width=&quot;476&quot; data-origin-height=&quot;113&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;span style=&quot;background-color: #ffffff; color: #3d4144; text-align: start;&quot;&gt;lens-metrics&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #3d4144; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://raw.githubusercontent.com/shilazi/openlens-lens-metrics/main/build/shilazi-openlens-lens-metrics-0.1.0.tgz&quot;&gt;- https://raw.githubusercontent.com/shilazi/openlens-lens-metrics/main/build/shilazi-openlens-lens-metrics-0.1.0.tgz&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #3d4144; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;파일을 받은 후 파일 경로르 추가해서 Install&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>K8S</category>
      <author>Kyle79</author>
      <guid isPermaLink="true">https://kyle79.tistory.com/532</guid>
      <comments>https://kyle79.tistory.com/532#entry532comment</comments>
      <pubDate>Mon, 1 Apr 2024 15:58:34 +0900</pubDate>
    </item>
    <item>
      <title>한글 인코딩 깨지는 경우</title>
      <link>https://kyle79.tistory.com/531</link>
      <description>&lt;pre id=&quot;code_1677724947907&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# python common 
# -*- coding: utf-8 -*-

#python 2.x
import sys
reload(sys)
sys.setdefaultencoding('utf-8')

#python &amp;lt;=3.3
import imp
imp.reload(module)
sys.setdefaultencoding('utf-8')

# For &amp;gt;= Python3.4:
import importlib
importlib.reload(module)
sys.setdefaultencoding('utf-8')&lt;/code&gt;&lt;/pre&gt;</description>
      <category>Python</category>
      <author>Kyle79</author>
      <guid isPermaLink="true">https://kyle79.tistory.com/531</guid>
      <comments>https://kyle79.tistory.com/531#entry531comment</comments>
      <pubDate>Thu, 2 Mar 2023 10:10:41 +0900</pubDate>
    </item>
    <item>
      <title>BrowserMob Proxy</title>
      <link>https://kyle79.tistory.com/530</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;&lt;a href=&quot;https://browsermob-proxy-py.readthedocs.io/en/stable/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://browsermob-proxy-py.readthedocs.io/en/stable/&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1670737840308&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;Welcome to BrowserMob Proxy&amp;rsquo;s documentation! &amp;mdash; BrowserMob Proxy 0.6.0 documentation&quot; data-og-description=&quot;Docs &amp;raquo; Welcome to BrowserMob Proxy&amp;rsquo;s documentation! Edit on GitHub Welcome to BrowserMob Proxy&amp;rsquo;s documentation! Python client for the BrowserMob Proxy 2.0 REST API. How to install BrowserMob Proxy is available on PyPI, so you can install it with pip: &quot; data-og-host=&quot;browsermob-proxy-py.readthedocs.io&quot; data-og-source-url=&quot;https://browsermob-proxy-py.readthedocs.io/en/stable/&quot; data-og-url=&quot;https://browsermob-proxy-py.readthedocs.io/en/stable/&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://browsermob-proxy-py.readthedocs.io/en/stable/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://browsermob-proxy-py.readthedocs.io/en/stable/&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;Welcome to BrowserMob Proxy&amp;rsquo;s documentation! &amp;mdash; BrowserMob Proxy 0.6.0 documentation&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Docs &amp;raquo; Welcome to BrowserMob Proxy&amp;rsquo;s documentation! Edit on GitHub Welcome to BrowserMob Proxy&amp;rsquo;s documentation! Python client for the BrowserMob Proxy 2.0 REST API. How to install BrowserMob Proxy is available on PyPI, so you can install it with pip:&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;browsermob-proxy-py.readthedocs.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;&lt;a href=&quot;https://github.com/lightbody/browsermob-proxy&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://github.com/lightbody/browsermob-proxy&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1670737847932&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 - lightbody/browsermob-proxy: A free utility to help web developers watch and manipulate network traffic from their AJAX &quot; data-og-description=&quot;A free utility to help web developers watch and manipulate network traffic from their AJAX applications. - GitHub - lightbody/browsermob-proxy: A free utility to help web developers watch and manip...&quot; data-og-host=&quot;github.com&quot; data-og-source-url=&quot;https://github.com/lightbody/browsermob-proxy&quot; data-og-url=&quot;https://github.com/lightbody/browsermob-proxy&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/ccxlLL/hyQQrTBZ9e/zupXQPeZ2mlWYoLQVteOwK/img.png?width=1200&amp;amp;height=600&amp;amp;face=952_125_1086_179&quot;&gt;&lt;a href=&quot;https://github.com/lightbody/browsermob-proxy&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://github.com/lightbody/browsermob-proxy&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/ccxlLL/hyQQrTBZ9e/zupXQPeZ2mlWYoLQVteOwK/img.png?width=1200&amp;amp;height=600&amp;amp;face=952_125_1086_179');&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 - lightbody/browsermob-proxy: A free utility to help web developers watch and manipulate network traffic from their AJAX&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;A free utility to help web developers watch and manipulate network traffic from their AJAX applications. - GitHub - lightbody/browsermob-proxy: A free utility to help web developers watch and manip...&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;github.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1670737945247&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import settings

from browsermobproxy import Server
from selenium.webdriver import DesiredCapabilities

config = settings.Config

server = Server(config.BROWSERMOB_PATH)
server.start()
proxy = server.create_proxy()

from selenium import webdriver
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--proxy-server=%s' % proxy.proxy)
chrome_options.add_argument('--headless')

capabilities = DesiredCapabilities.CHROME.copy()
capabilities['acceptSslCerts'] = True
capabilities['acceptInsecureCerts'] = True

driver = webdriver.Chrome(options=chrome_options,
    desired_capabilities=capabilities,
   executable_path=config.CHROME_PATH)

proxy.new_har(&quot;sahibinden&quot;, options={'captureHeaders': True})
driver.get(&quot;https://www.sahibinden.com/en&quot;)

entries = proxy.har['log'][&quot;entries&quot;]
for entry in entries:
    if 'request' in entry.keys():
        print(entry['request']['url'])
        print(entry['request']['headers'])
        print('\n')

proxy.close()
driver.quit()&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Python</category>
      <author>Kyle79</author>
      <guid isPermaLink="true">https://kyle79.tistory.com/530</guid>
      <comments>https://kyle79.tistory.com/530#entry530comment</comments>
      <pubDate>Sun, 11 Dec 2022 14:50:53 +0900</pubDate>
    </item>
    <item>
      <title>Selenium Wire</title>
      <link>https://kyle79.tistory.com/529</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://pypi.org/project/selenium-wire/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://pypi.org/project/selenium-wire/&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1670739187860&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;selenium-wire&quot; data-og-description=&quot;Extends Selenium to give you the ability to inspect requests made by the browser.&quot; data-og-host=&quot;pypi.org&quot; data-og-source-url=&quot;https://pypi.org/project/selenium-wire/&quot; data-og-url=&quot;https://pypi.org/project/selenium-wire/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/gmGgO/hyQQqtEVZW/33LezU2TNaYoreeHxF8Th0/img.jpg?width=300&amp;amp;height=300&amp;amp;face=0_0_300_300&quot;&gt;&lt;a href=&quot;https://pypi.org/project/selenium-wire/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://pypi.org/project/selenium-wire/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/gmGgO/hyQQqtEVZW/33LezU2TNaYoreeHxF8Th0/img.jpg?width=300&amp;amp;height=300&amp;amp;face=0_0_300_300');&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;selenium-wire&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Extends Selenium to give you the ability to inspect requests made by the browser.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;pypi.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;pre id=&quot;code_1670737381357&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;for s in chrome.get_requests():
    if s.response and s.response.status_code == 200
        if 'gzip' in s.response.headers.get('Content-Encoding', '').lower():
            api_response_body = gzip.decompress(s.response.body)
            set_api_headers = dict(s.headers)
        else:
            api_response_body = s.response.body&lt;/code&gt;&lt;/pre&gt;</description>
      <category>Python</category>
      <author>Kyle79</author>
      <guid isPermaLink="true">https://kyle79.tistory.com/529</guid>
      <comments>https://kyle79.tistory.com/529#entry529comment</comments>
      <pubDate>Sun, 11 Dec 2022 14:43:18 +0900</pubDate>
    </item>
    <item>
      <title>User-agent generator</title>
      <link>https://kyle79.tistory.com/527</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div id=&quot;likes-and-labels-container&quot;&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div id=&quot;likes-section&quot;&gt;&lt;span style=&quot;background-color: #f7f7f7; color: #171717;&quot;&gt;pip install user-agent&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://domdom.tistory.com/entry/%ED%81%AC%EB%A1%A4%EB%A7%81-%ED%8C%8C%EC%9D%B4%EC%8D%AC-%ED%81%AC%EB%A1%A4%EB%A7%81-%EC%8B%9C-%EA%B8%B0%EA%B8%B0-%EC%B0%A8%EB%8B%A8-%EC%9A%B0%ED%9A%8C%ED%95%98%EA%B8%B0-fake-useragent-%EC%82%AC%EC%9A%A9%EB%B2%95user-agent-%EC%82%AC%EC%9A%A9%EB%B2%95&quot;&gt;https://domdom.tistory.com/entry/%ED%81%AC%EB%A1%A4%EB%A7%81-%ED%8C%8C%EC%9D%B4%EC%8D%AC-%ED%81%AC%EB%A1%A4%EB%A7%81-%EC%8B%9C-%EA%B8%B0%EA%B8%B0-%EC%B0%A8%EB%8B%A8-%EC%9A%B0%ED%9A%8C%ED%95%98%EA%B8%B0-fake-useragent-%EC%82%AC%EC%9A%A9%EB%B2%95user-agent-%EC%82%AC%EC%9A%A9%EB%B2%95&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1670736268006&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;[크롤링] 파이썬 크롤링 시 기기 차단 우회하기 (fake-useragent 사용법/user-agent 사용법)&quot; data-og-description=&quot;개요 파이썬에서 웹 크롤러를 만들 때 가장 큰 어려움은 역시 웹 사이트에서의 크롤러 또는 자동화 도구의 차단인 것 같습니다. 이런 경우 보통 time.sleep(3) 과 같이 몇 초간 크롤러를 쉬도록 하는&quot; data-og-host=&quot;domdom.tistory.com&quot; data-og-source-url=&quot;https://domdom.tistory.com/entry/%ED%81%AC%EB%A1%A4%EB%A7%81-%ED%8C%8C%EC%9D%B4%EC%8D%AC-%ED%81%AC%EB%A1%A4%EB%A7%81-%EC%8B%9C-%EA%B8%B0%EA%B8%B0-%EC%B0%A8%EB%8B%A8-%EC%9A%B0%ED%9A%8C%ED%95%98%EA%B8%B0-fake-useragent-%EC%82%AC%EC%9A%A9%EB%B2%95user-agent-%EC%82%AC%EC%9A%A9%EB%B2%95&quot; data-og-url=&quot;https://domdom.tistory.com/329&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/gVIIN/hyQQrlKm5w/JxEWKTDP27Zt7xi29P7io0/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/bocMip/hyQRS9TbJU/gcE1zoSDs8jNSjvZT1ty20/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800&quot;&gt;&lt;a href=&quot;https://domdom.tistory.com/entry/%ED%81%AC%EB%A1%A4%EB%A7%81-%ED%8C%8C%EC%9D%B4%EC%8D%AC-%ED%81%AC%EB%A1%A4%EB%A7%81-%EC%8B%9C-%EA%B8%B0%EA%B8%B0-%EC%B0%A8%EB%8B%A8-%EC%9A%B0%ED%9A%8C%ED%95%98%EA%B8%B0-fake-useragent-%EC%82%AC%EC%9A%A9%EB%B2%95user-agent-%EC%82%AC%EC%9A%A9%EB%B2%95&quot; data-source-url=&quot;https://domdom.tistory.com/entry/%ED%81%AC%EB%A1%A4%EB%A7%81-%ED%8C%8C%EC%9D%B4%EC%8D%AC-%ED%81%AC%EB%A1%A4%EB%A7%81-%EC%8B%9C-%EA%B8%B0%EA%B8%B0-%EC%B0%A8%EB%8B%A8-%EC%9A%B0%ED%9A%8C%ED%95%98%EA%B8%B0-fake-useragent-%EC%82%AC%EC%9A%A9%EB%B2%95user-agent-%EC%82%AC%EC%9A%A9%EB%B2%95&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/gVIIN/hyQQrlKm5w/JxEWKTDP27Zt7xi29P7io0/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/bocMip/hyQRS9TbJU/gcE1zoSDs8jNSjvZT1ty20/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800');&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;[크롤링] 파이썬 크롤링 시 기기 차단 우회하기 (fake-useragent 사용법/user-agent 사용법)&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;개요 파이썬에서 웹 크롤러를 만들 때 가장 큰 어려움은 역시 웹 사이트에서의 크롤러 또는 자동화 도구의 차단인 것 같습니다. 이런 경우 보통 time.sleep(3) 과 같이 몇 초간 크롤러를 쉬도록 하는&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;domdom.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Python</category>
      <author>Kyle79</author>
      <guid isPermaLink="true">https://kyle79.tistory.com/527</guid>
      <comments>https://kyle79.tistory.com/527#entry527comment</comments>
      <pubDate>Sun, 11 Dec 2022 14:24:41 +0900</pubDate>
    </item>
    <item>
      <title>Selenium Wire Option</title>
      <link>https://kyle79.tistory.com/526</link>
      <description>&lt;pre id=&quot;code_1670736102592&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;d = DesiredCapabilities.CHROME
d['loggingPrefs'] = {'browser': 'ALL'}
d['acceptSslCerts'] = True

# Chrome mini
chromium = '/home/usr/chrome/headless-chromium'
if os.path.exists(chromium):
    chrome_options.binary_location = chromium
    
if not os.path.exists(chrome_path):
    chrome_path = '/usr/local/bin/chromedriver'
    
if wired:
    sw_options = { 
        # 'request_storage': 'memory',
        # 'request_storage_max_size': 100,
        # 'ignore_http_methods': [],
    }
    
    if len(proxy_list) &amp;gt; 0:
        proxy = random.choice(proxy_list)
        ip = proxy['ip']
        port = proxy['port']
        sw_options['proxy'] = {
            'http': f'http://{ip}:{port}', 
            'https': f'http://{ip}:{port}', 
            'no_proxy': 'localhost,127.0.0.1'
        }
        
    chrome = wired_webdriver.Chrome(chrome_path, options=chrome_options, desired_capabilities=d, seleniumwire_options=sw_options)    
else:
    chrome = webdriver.Chrome(chrome_path, options=chrome_options, desired_capabilities=d)    

chrome.implicitly_wait(timeout)&lt;/code&gt;&lt;/pre&gt;</description>
      <category>Python</category>
      <author>Kyle79</author>
      <guid isPermaLink="true">https://kyle79.tistory.com/526</guid>
      <comments>https://kyle79.tistory.com/526#entry526comment</comments>
      <pubDate>Sun, 11 Dec 2022 14:22:06 +0900</pubDate>
    </item>
    <item>
      <title>Selenium Chrome Option</title>
      <link>https://kyle79.tistory.com/525</link>
      <description>&lt;pre id=&quot;code_1670736156633&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;options = webdriver.ChromeOptions()
options.add_argument('--kiosk')
options.add_argument('--headless')
options.add_argument('--no-sandbox')
options.add_argument('--disable-gpu')
options.add_argument('--hide-scrollbars')
# options.add_argument('--single-process')
options.add_argument('--ignore-certificate-errors')
options.add_argument('--disable-dev-shm-usage')
options.add_argument('--auto-open-devtools-for-tabs')
options.add_argument('--disable-setuid-sandbox')
options.add_argument('--dns-prefetch-disable')
options.add_argument(&quot;enable-automation&quot;)
options.add_argument(&quot;--disable-browser-side-navigation&quot;)
options.add_argument('--ignore-certificate-errors-spki-list')
options.add_argument('--ignore-ssl-errors')
options.add_argument(&quot;--ignore_ssl&quot;)

options.add_argument(&quot;--disable-application-cache&quot;)
options.add_argument(&quot;--disable-crash-reporter&quot;)
options.add_argument(&quot;--disable-in-process-stack-traces&quot;)
options.add_argument(&quot;--output=/dev/null&quot;)
options.add_argument('--disable-features=IsolateOrigins,site-per-process')

options.add_argument(&quot;--lang=en_US.UTF-8&quot;)
options.add_argument(&quot;--language=en_US:en&quot;)
options.add_argument(&quot;--lc_all=en_US.UTF-8&quot;)

options.add_argument(&quot;--homedir=/tmp&quot;)
options.add_argument(&quot;--disk-cache-dir=/tmp/cache-dir&quot;)
options.add_argument(&quot;--data-path=/tmp/data-path&quot;)
options.add_argument(&quot;--user-data-dir=/tmp/user-data&quot;)
options.add_argument(&quot;--disable-software-rasterizer&quot;)
options.add_argument('--disable-logging')
options.add_argument('--log-level=3')
options.add_argument('--v=99')

options.add_argument('--no-zygote')
options.add_argument('--no-startup-window')
options.add_argument(&quot;--disable-session-crashed-bubble&quot;)
options.add_argument(&quot;--disable-ipv6&quot;)
options.add_argument(&quot;--allow-http-screen-capture&quot;)
options.add_argument('--vmodule')
# options.add_argument('--remote-debugging-port=9222')
options.add_argument(&quot;--disable-infobars&quot;)
options.add_argument(&quot;--disable-extensions&quot;)
options.add_argument('--disable-blink-features=AutomationControlled')
options.add_argument(&quot;--incognito&quot;)
options.add_argument(&quot;--disable-popup-blocking&quot;)
options.add_argument(&quot;--excludeSwitches&quot;)
options.add_argument(&quot;--disable-default-app&quot;)
# options.add_argument(&quot;--disable-web-security&quot;)
options.add_argument(&quot;--disable-site-isolation-trials&quot;)
options.add_argument(&quot;--allow-cross-origin-auth-prompt&quot;)
options.add_argument(&quot;--allow-running-insecure-content&quot;)
options.add_argument('--allow-insecure-localhost')

options.add_argument(&quot;--allow-file-access&quot;)
options.add_argument(&quot;--allow-file-access-from-files&quot;)

options.add_argument('--load-images=false')
options.add_argument('--proxy-type=http')
options.add_argument('--ssl-protocol=any')

options.add_argument(&quot;start-fullscreen&quot;)
options.add_argument(&quot;start-maximized&quot;)

prefs = {
&quot;intl.accept_languages&quot;: &quot;en,en_US&quot;,
&quot;profile.managed_default_content_settings.images&quot;:2,
&quot;profile.default_content_setting_values.notifications&quot;:2,
&quot;profile.managed_default_content_settings.stylesheets&quot;:2,
&quot;profile.managed_default_content_settings.cookies&quot;:2,
&quot;profile.managed_default_content_settings.javascript&quot;:1,
&quot;profile.managed_default_content_settings.plugins&quot;:1,
&quot;profile.managed_default_content_settings.popups&quot;:2,
&quot;profile.managed_default_content_settings.geolocation&quot;:2,
&quot;profile.managed_default_content_settings.media_stream&quot;:2,
&quot;credentials_enable_service&quot;: False,
&quot;profile.password_manager_enabled&quot;: False,
}
options.add_experimental_option(&quot;prefs&quot;, prefs)
options.add_experimental_option(&quot;detach&quot;, True)
options.add_experimental_option('excludeSwitches', ['enable-automation'])&lt;/code&gt;&lt;/pre&gt;</description>
      <category>Python</category>
      <author>Kyle79</author>
      <guid isPermaLink="true">https://kyle79.tistory.com/525</guid>
      <comments>https://kyle79.tistory.com/525#entry525comment</comments>
      <pubDate>Sun, 11 Dec 2022 14:19:42 +0900</pubDate>
    </item>
    <item>
      <title>ChromeDriver &amp;amp; Selenium Wire setting</title>
      <link>https://kyle79.tistory.com/524</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;Mac&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div id=&quot;highlighter_761845&quot;&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;div&gt;
&lt;div data-bidi-marker=&quot;true&quot;&gt;curl -SL https://chromedriver.storage.googleapis.com/107.0.5304.62/chromedriver_mac64.zip &amp;gt; chromedriver.zip&lt;/div&gt;
&lt;div data-bidi-marker=&quot;true&quot;&gt;/bin/echo&lt;span&gt;&amp;nbsp;&lt;/span&gt;&quot;y&quot;&lt;span&gt;&amp;nbsp;&lt;/span&gt;| unzip chromedriver.zip -d macbin/&lt;/div&gt;
&lt;div data-bidi-marker=&quot;true&quot;&gt;chmod&lt;span&gt;&amp;nbsp;&lt;/span&gt;755&lt;span&gt;&amp;nbsp;&lt;/span&gt;macbin/chromedriver&lt;/div&gt;
&lt;div data-bidi-marker=&quot;true&quot;&gt;cp macbin/chromedriver /usr/local/bin/chromedriver&lt;/div&gt;
&lt;div data-bidi-marker=&quot;true&quot;&gt;rm chromedriver.zip&lt;/div&gt;
&lt;div data-bidi-marker=&quot;true&quot;&gt;rm -rf macbin&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, 'Helvetica Neue', 'Apple SD Gothic Neo', Arial, sans-serif; letter-spacing: 0px;&quot;&gt;IDC&lt;/span&gt;&lt;/p&gt;
&lt;div id=&quot;main-content&quot;&gt;
&lt;div id=&quot;highlighter_861472&quot;&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 507px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 507px;&quot;&gt;
&lt;td style=&quot;height: 507px;&quot;&gt;
&lt;div data-bidi-marker=&quot;true&quot;&gt;# Step1&lt;/div&gt;
&lt;div data-bidi-marker=&quot;true&quot;&gt;sudo apt-get install -y libfontconfig1 unzip libnss3 libx11-6&lt;span&gt;&amp;nbsp;&lt;/span&gt;libx11-xcb1&lt;/div&gt;
&lt;div data-bidi-marker=&quot;true&quot;&gt;sudo apt-get -f install&lt;/div&gt;
&lt;div data-bidi-marker=&quot;true&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div data-bidi-marker=&quot;true&quot;&gt;# Step2&lt;/div&gt;
&lt;div data-bidi-marker=&quot;true&quot;&gt;curl -kLo google-chrome-stable_current_amd64.deb -x amazon.proxy.crawling.coupang.net:8080&lt;span&gt;&amp;nbsp;&lt;/span&gt;https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb \&lt;/div&gt;
&lt;div data-bidi-marker=&quot;true&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;amp;&amp;amp; sudo dpkg -i ./google-chrome-stable_current_amd64.deb \&lt;/div&gt;
&lt;div data-bidi-marker=&quot;true&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;amp;&amp;amp; rm ./google-chrome-stable_current_amd64.deb&lt;/div&gt;
&lt;div data-bidi-marker=&quot;true&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div data-bidi-marker=&quot;true&quot;&gt;mkdir -p /home/usr/chrome/ \&lt;/div&gt;
&lt;div data-bidi-marker=&quot;true&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;amp;&amp;amp; curl -kLo chromedriver.zip https://chromedriver.storage.googleapis.com/108.0.5359.22/chromedriver_linux64.zip -x amazon.proxy.crawling.coupang.net:8080 \&lt;/div&gt;
&lt;div data-bidi-marker=&quot;true&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;amp;&amp;amp; unzip chromedriver.zip \&lt;/div&gt;
&lt;div data-bidi-marker=&quot;true&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;amp;&amp;amp; mv chromedriver /home/usr/chrome/chromedriver \&lt;/div&gt;
&lt;div data-bidi-marker=&quot;true&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;amp;&amp;amp; chmod&lt;span&gt;&amp;nbsp;&lt;/span&gt;0755&lt;span&gt; /home/usr&lt;/span&gt;/chrome/chromedriver \&lt;/div&gt;
&lt;div data-bidi-marker=&quot;true&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;amp;&amp;amp; rm chromedriver.zip&lt;/div&gt;
&lt;div data-bidi-marker=&quot;true&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div data-bidi-marker=&quot;true&quot;&gt;# Step3&lt;/div&gt;
&lt;div data-bidi-marker=&quot;true&quot;&gt;pip3 install --trusted-host pypi.python.org --trusted-host pypi.org --trusted-host files.pythonhosted.org setuptools-rust&lt;/div&gt;
&lt;div data-bidi-marker=&quot;true&quot;&gt;pip3 install --trusted-host pypi.python.org --trusted-host pypi.org --trusted-host files.pythonhosted.org --upgrade pip&lt;/div&gt;
&lt;div data-bidi-marker=&quot;true&quot;&gt;pip3 install --trusted-host pypi.python.org --trusted-host pypi.org --trusted-host files.pythonhosted.org pyOpenSSL==22.0.0&lt;/div&gt;
&lt;div data-bidi-marker=&quot;true&quot;&gt;pip3 install --trusted-host pypi.python.org --trusted-host pypi.org --trusted-host files.pythonhosted.org selenium==3.141.0&lt;/div&gt;
&lt;div data-bidi-marker=&quot;true&quot;&gt;pip3 install --trusted-host pypi.python.org --trusted-host pypi.org --trusted-host files.pythonhosted.org selenium-wire==4.6.5&lt;/div&gt;
&lt;div data-bidi-marker=&quot;true&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div data-bidi-marker=&quot;true&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;likes-and-labels-container&quot;&gt;
&lt;div id=&quot;likes-section&quot;&gt;Docker&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;main-content&quot;&gt;
&lt;div id=&quot;highlighter_356649&quot;&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;div data-bidi-marker=&quot;true&quot;&gt;
&lt;div&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;FROM&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; ubuntu:18.04&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;RUN&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; apt clean &amp;amp;&amp;amp; apt-get update&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;RUN&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; apt-get install -y apt-utils&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;RUN&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; apt-get -y upgrade&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;RUN&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; apt-get install -y apt-transport-https \&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt; ca-certificates \&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt; gnupg2 \&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt; wget \&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt; software-properties-common \&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt; python-pip \&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt; python-dev \&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt; python3-dev \&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt; python3-pip \&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt; python-setuptools \&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt; apt-transport-https \&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt; build-essential \&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt; default-libmysqlclient-dev \&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt; apt-utils \&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt; sudo \&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt; lxc \&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt; curl \&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt; vim \&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt; ca-certificates \&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt; redis-tools \&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt; jq&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;ENV&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt; PYTHONIOENCODING utf-8&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;RUN&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt; apt-get update &amp;amp;&amp;amp; apt-get install -y libfontconfig1 unzip libnss3 libx11-6 libx11-xcb1&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;RUN&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt; mkdir -p /home/usr/chrome&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;RUN&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt; curl -kLo chromedriver.zip &lt;a href=&quot;https://chromedriver.storage.googleapis.com/86.0.4240.22/chromedriver_linux64.zip&quot;&gt;https://chromedriver.storage.googleapis.com/86.0.4240.22/chromedriver_linux64.zip&lt;/a&gt; \&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;&amp;amp;&amp;amp; unzip chromedriver.zip \&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;&amp;amp;&amp;amp; mv chromedriver /home/usr/chrome/chromedriver \&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;&amp;amp;&amp;amp; chmod 0755 /home/usr/chrome/chromedriver \&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;&amp;amp;&amp;amp; rm chromedriver.zip&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;RUN&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt; curl -kLo headless-chromium.zip &lt;a href=&quot;https://github.com/adieuadieu/serverless-chrome/releases/download/v1.0.0-57/stable-headless-chromium-amazonlinux-2.zip&quot;&gt;https://github.com/adieuadieu/serverless-chrome/releases/download/v1.0.0-57/stable-headless-chromium-amazonlinux-2.zip&lt;/a&gt; \&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;&amp;amp;&amp;amp; unzip headless-chromium.zip \&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;&amp;amp;&amp;amp; mv headless-chromium /home/usr/chrome/headless-chromium \&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;&amp;amp;&amp;amp; chmod 0755 /home/usr/chrome/headless-chromium \&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;&amp;amp;&amp;amp; rm headless-chromium.zip&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;&lt;br /&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;RUN &lt;/span&gt;pip3 install --trusted-host pypi.python.org --trusted-host pypi.org --trusted-host files.pythonhosted.org setuptools-rust&lt;/span&gt;&lt;/span&gt;
&lt;div data-bidi-marker=&quot;true&quot;&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;RUN &lt;/span&gt;pip3 install --trusted-host pypi.python.org --trusted-host pypi.org --trusted-host files.pythonhosted.org --upgrade pip&lt;/div&gt;
&lt;div data-bidi-marker=&quot;true&quot;&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;RUN &lt;/span&gt;pip3 install --trusted-host pypi.python.org --trusted-host pypi.org --trusted-host files.pythonhosted.org pyOpenSSL==22.0.0&lt;/div&gt;
&lt;div data-bidi-marker=&quot;true&quot;&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;RUN &lt;/span&gt;pip3 install --trusted-host pypi.python.org --trusted-host pypi.org --trusted-host files.pythonhosted.org selenium==3.141.0&lt;/div&gt;
&lt;div data-bidi-marker=&quot;true&quot;&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;RUN &lt;/span&gt;pip3 install --trusted-host pypi.python.org --trusted-host pypi.org --trusted-host files.pythonhosted.org selenium-wire==4.6.5&lt;/div&gt;
&lt;div data-bidi-marker=&quot;true&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;likes-and-labels-container&quot;&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;</description>
      <category>Python</category>
      <author>Kyle79</author>
      <guid isPermaLink="true">https://kyle79.tistory.com/524</guid>
      <comments>https://kyle79.tistory.com/524#entry524comment</comments>
      <pubDate>Sun, 11 Dec 2022 13:52:46 +0900</pubDate>
    </item>
    <item>
      <title>osx - brew 디스크 정리</title>
      <link>https://kyle79.tistory.com/523</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;1&amp;gt; Cleanup&lt;/p&gt;
&lt;pre class=&quot;armasm&quot;&gt;&lt;code&gt;brew cleanup
&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2&amp;gt; Bundle&lt;/p&gt;
&lt;pre class=&quot;python&quot; data-ke-language=&quot;python&quot;&gt;&lt;code&gt;brew bundle dump --global --force
rm -rf /usr/local/Homebrew/Cellar
brew bundle --global&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;&lt;a href=&quot;https://velog.io/@iamchanii/Brewfile%EC%9D%84-%EC%9D%B4%EC%9A%A9%ED%95%B4%EC%84%9C-%ED%8C%80-%EA%B0%9C%EB%B0%9C-%ED%99%98%EA%B2%BD-%EB%A7%8C%EB%93%A4%EA%B8%B0&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://velog.io/@iamchanii/Brewfile%EC%9D%84-%EC%9D%B4%EC%9A%A9%ED%95%B4%EC%84%9C-%ED%8C%80-%EA%B0%9C%EB%B0%9C-%ED%99%98%EA%B2%BD-%EB%A7%8C%EB%93%A4%EA%B8%B0&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1650771987521&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;Brewfile을 이용해서 팀 개발 환경 만들기&quot; data-og-description=&quot;제 블로그와 회사 기술 블로그에 올렸던 글을 가져왔습니다. 플러스티브이 개발팀은 도커를 이용해서 개발 환경을 맞춘 다음 로컬 환경에서 개발합니다. 원할한 협업을 위해 개발 환경을 설정&quot; data-og-host=&quot;velog.io&quot; data-og-source-url=&quot;https://velog.io/@iamchanii/Brewfile%EC%9D%84-%EC%9D%B4%EC%9A%A9%ED%95%B4%EC%84%9C-%ED%8C%80-%EA%B0%9C%EB%B0%9C-%ED%99%98%EA%B2%BD-%EB%A7%8C%EB%93%A4%EA%B8%B0&quot; data-og-url=&quot;https://velog.io/@iamchanii/Brewfile을-이용해서-팀-개발-환경-만들기&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/KIq5l/hyN8AlDeRh/ihrVpJTDrFP97WpEskkKYk/img.png?width=700&amp;amp;height=350&amp;amp;face=0_0_700_350,https://scrap.kakaocdn.net/dn/1AOEV/hyN9KGWsnd/Bp2opj8TXNlqjWbsY7qLJ1/img.png?width=700&amp;amp;height=350&amp;amp;face=0_0_700_350,https://scrap.kakaocdn.net/dn/jBsE0/hyN9SZieFG/qJh90eB5SoBWVdy3r4Cr3K/img.png?width=700&amp;amp;height=350&amp;amp;face=0_0_700_350&quot;&gt;&lt;a href=&quot;https://velog.io/@iamchanii/Brewfile%EC%9D%84-%EC%9D%B4%EC%9A%A9%ED%95%B4%EC%84%9C-%ED%8C%80-%EA%B0%9C%EB%B0%9C-%ED%99%98%EA%B2%BD-%EB%A7%8C%EB%93%A4%EA%B8%B0&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://velog.io/@iamchanii/Brewfile%EC%9D%84-%EC%9D%B4%EC%9A%A9%ED%95%B4%EC%84%9C-%ED%8C%80-%EA%B0%9C%EB%B0%9C-%ED%99%98%EA%B2%BD-%EB%A7%8C%EB%93%A4%EA%B8%B0&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/KIq5l/hyN8AlDeRh/ihrVpJTDrFP97WpEskkKYk/img.png?width=700&amp;amp;height=350&amp;amp;face=0_0_700_350,https://scrap.kakaocdn.net/dn/1AOEV/hyN9KGWsnd/Bp2opj8TXNlqjWbsY7qLJ1/img.png?width=700&amp;amp;height=350&amp;amp;face=0_0_700_350,https://scrap.kakaocdn.net/dn/jBsE0/hyN9SZieFG/qJh90eB5SoBWVdy3r4Cr3K/img.png?width=700&amp;amp;height=350&amp;amp;face=0_0_700_350');&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;Brewfile을 이용해서 팀 개발 환경 만들기&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;제 블로그와 회사 기술 블로그에 올렸던 글을 가져왔습니다. 플러스티브이 개발팀은 도커를 이용해서 개발 환경을 맞춘 다음 로컬 환경에서 개발합니다. 원할한 협업을 위해 개발 환경을 설정&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;velog.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;</description>
      <category>ETC.</category>
      <author>Kyle79</author>
      <guid isPermaLink="true">https://kyle79.tistory.com/523</guid>
      <comments>https://kyle79.tistory.com/523#entry523comment</comments>
      <pubDate>Sun, 24 Apr 2022 12:44:57 +0900</pubDate>
    </item>
    <item>
      <title>Hive Sql (Join 및 최적화)</title>
      <link>https://kyle79.tistory.com/522</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;&lt;a href=&quot;https://kimeunyeol.tistory.com/34&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://kimeunyeol.tistory.com/34&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1650092185106&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;HIVE SQL - JOIN 이해(공식문서)&quot; data-og-description=&quot;Hive Joins Hive Joins Join Syntax Examples MapJoin Restrictions Join Optimization Predicate Pushdown in Outer Joins Join Syntax Hive에서 제공하는 Join구문 join_table: table_reference [INNER] JOIN ta..&quot; data-og-host=&quot;kimeunyeol.tistory.com&quot; data-og-source-url=&quot;https://kimeunyeol.tistory.com/34&quot; data-og-url=&quot;https://kimeunyeol.tistory.com/34&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/24cFv/hyN32gGj5V/PCPnEsjxqWas3TfPekujM0/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/7h617/hyN35kagJX/Fcl7dOqZGnVWrX9xXK8bT1/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800&quot;&gt;&lt;a href=&quot;https://kimeunyeol.tistory.com/34&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://kimeunyeol.tistory.com/34&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/24cFv/hyN32gGj5V/PCPnEsjxqWas3TfPekujM0/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/7h617/hyN35kagJX/Fcl7dOqZGnVWrX9xXK8bT1/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800');&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;HIVE SQL - JOIN 이해(공식문서)&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Hive Joins Hive Joins Join Syntax Examples MapJoin Restrictions Join Optimization Predicate Pushdown in Outer Joins Join Syntax Hive에서 제공하는 Join구문 join_table: table_reference [INNER] JOIN ta..&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;kimeunyeol.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;http://fantasio.life/2021/06/16/hive-join-tip/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;http://fantasio.life/2021/06/16/hive-join-tip/&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1650092204848&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;(hive) 조인 관련 tip 정리 &amp;middot; Keep going..&quot; data-og-description=&quot;힌트 존재 - 어떤 테이블을 마지막으로 흘려보낼야 하는지 지정해준다. /*+ STREAMTABLE(alias) */&quot; data-og-host=&quot;fantasio.life&quot; data-og-source-url=&quot;http://fantasio.life/2021/06/16/hive-join-tip/&quot; data-og-url=&quot;http://fantasio.life/2021/06/16/hive-join-tip/&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;http://fantasio.life/2021/06/16/hive-join-tip/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;http://fantasio.life/2021/06/16/hive-join-tip/&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;(hive) 조인 관련 tip 정리 &amp;middot; Keep going..&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;힌트 존재 - 어떤 테이블을 마지막으로 흘려보낼야 하는지 지정해준다. /*+ STREAMTABLE(alias) */&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;fantasio.life&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;span style=&quot;color: #ffffff;&quot;&gt;&lt;a href=&quot;https://sungwookkang.com/m/1456&quot;&gt;https://sungwookkang.com/m/1456&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1650092236175&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;Hive JOIN 및 조인 최적화&quot; data-og-description=&quot;Hive JOIN 및 조인 최적화 &amp;middot;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Version : Hive Hive는 RDBMS와 같은 JOIN(조인) 구문을 제공하며 기능도 거의 유사하지만 동등조인(EQUI-JOIN)만 제공한다. 내부조인(INNER JOIN)의 경우 조인하는 모든..&quot; data-og-host=&quot;sungwookkang.com&quot; data-og-source-url=&quot;https://sungwookkang.com/m/1456&quot; data-og-url=&quot;https://sungwookkang.com/1456&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/B68ms/hyN31PBlva/HuwXXibVZfjdjHR1FDlREK/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/iqKUZ/hyN33mmjV9/VemU6ywvw7jSKJ18FVMlvk/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800&quot;&gt;&lt;a href=&quot;https://sungwookkang.com/m/1456&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://sungwookkang.com/m/1456&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/B68ms/hyN31PBlva/HuwXXibVZfjdjHR1FDlREK/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/iqKUZ/hyN33mmjV9/VemU6ywvw7jSKJ18FVMlvk/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800');&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;Hive JOIN 및 조인 최적화&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Hive JOIN 및 조인 최적화 &amp;middot;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Version : Hive Hive는 RDBMS와 같은 JOIN(조인) 구문을 제공하며 기능도 거의 유사하지만 동등조인(EQUI-JOIN)만 제공한다. 내부조인(INNER JOIN)의 경우 조인하는 모든..&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;sungwookkang.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ffffff;&quot;&gt;&lt;a href=&quot;https://royzero.tistory.com/m/50&quot;&gt;https://royzero.tistory.com/m/50&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1650092279419&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;[SQL] WITH절 사용하기&quot; data-og-description=&quot;&amp;nbsp;SQL문을 작성하다 보면 같은 Query구문을 반복해서 작성하는 경우가 발생합니다. 이런 경우 보통 1~2번의 반복은 개발자 입장에서 작성하지만, 잦은 반복 또는 동일 구문에 대한 조건 등의 추가로&quot; data-og-host=&quot;royzero.tistory.com&quot; data-og-source-url=&quot;https://royzero.tistory.com/m/50&quot; data-og-url=&quot;https://royzero.tistory.com/50&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/V6GFF/hyN34Fy9QZ/Oaby0B8cnkSYGldc0XkGC1/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/6CYqf/hyN2BSyey3/Tjd03WVI4P06uxAllKEkKK/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800&quot;&gt;&lt;a href=&quot;https://royzero.tistory.com/m/50&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://royzero.tistory.com/m/50&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/V6GFF/hyN34Fy9QZ/Oaby0B8cnkSYGldc0XkGC1/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/6CYqf/hyN2BSyey3/Tjd03WVI4P06uxAllKEkKK/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800');&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;[SQL] WITH절 사용하기&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;SQL문을 작성하다 보면 같은 Query구문을 반복해서 작성하는 경우가 발생합니다. 이런 경우 보통 1~2번의 반복은 개발자 입장에서 작성하지만, 잦은 반복 또는 동일 구문에 대한 조건 등의 추가로&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;royzero.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&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>BigData</category>
      <author>Kyle79</author>
      <guid isPermaLink="true">https://kyle79.tistory.com/522</guid>
      <comments>https://kyle79.tistory.com/522#entry522comment</comments>
      <pubDate>Sat, 16 Apr 2022 15:58:06 +0900</pubDate>
    </item>
  </channel>
</rss>