<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>TigerDemon</title>
    <link>https://tigerdemon.tistory.com/</link>
    <description></description>
    <language>ko</language>
    <pubDate>Thu, 30 Jul 2026 10:02:13 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>호랑2D</managingEditor>
    <image>
      <title>TigerDemon</title>
      <url>https://tistory1.daumcdn.net/tistory/6234124/attach/2aa97094d20c4ea99d2f3ad56dd203e0</url>
      <link>https://tigerdemon.tistory.com</link>
    </image>
    <item>
      <title>유지보수 여름방학 5주차 - 블로그 수정</title>
      <link>https://tigerdemon.tistory.com/230</link>
      <description>&lt;p style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;[다음 스크럼 일시]&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;2026-08-05&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;[현재까지 예정이었던 것]&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;1. 클라우드 플래어 사용해서 코드 수정&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;[실제로 한 것]&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;사용할 구조&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;React(ckeditor) -&amp;gt; blogcontroller -&amp;gt; blogservice -&amp;gt; imageService(r2) -&amp;gt; cloudflare r2 -&amp;gt; url 반환 -&amp;gt; 몽고db 저장&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;위 과정에서 cloudflare r2 업로드 후 url 반환까지 끝낸 상태로 프론트와 연결해서 몽고 db에 저장하는 걸 하면 될 것 같다&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;포스트맨으로 현재 url 반환하는 걸 확인할 수 있고 클라우드 플래어로 들어가서 보면 이미지와 url을 확인할 수 있다.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;다음주까지 ckditor와 몽고 디비 연결해서 이전에 올렸던 이미지 다시 올리고 몽고 디비 수정하면 될 것 같다.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;그 다음주에는 회원가입 이메일 부분 수정을 하면 될 것 같다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bI9Ggv/dJMcafAJ00P/ksxui7Agm3kU0hVqD9d450/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bI9Ggv/dJMcafAJ00P/ksxui7Agm3kU0hVqD9d450/img.png&quot; data-origin-width=&quot;293&quot; data-origin-height=&quot;197&quot; data-is-animation=&quot;false&quot; style=&quot;width: 70.7307%; margin-right: 10px;&quot; data-widthpercent=&quot;71.56&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bI9Ggv/dJMcafAJ00P/ksxui7Agm3kU0hVqD9d450/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbI9Ggv%2FdJMcafAJ00P%2Fksxui7Agm3kU0hVqD9d450%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;293&quot; height=&quot;197&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/EwXnT/dJMcaijVpCp/BNTQsr7F5feCL4ecULENv0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/EwXnT/dJMcaijVpCp/BNTQsr7F5feCL4ecULENv0/img.png&quot; data-origin-width=&quot;250&quot; data-origin-height=&quot;423&quot; data-is-animation=&quot;false&quot; style=&quot;width: 28.1065%;&quot; data-widthpercent=&quot;28.44&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/EwXnT/dJMcaijVpCp/BNTQsr7F5feCL4ecULENv0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FEwXnT%2FdJMcaijVpCp%2FBNTQsr7F5feCL4ecULENv0%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;250&quot; height=&quot;423&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;[다음 스크럼 때까지 할 것]&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;ckeditor 코드 수정&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;몽고 db 연결&lt;/p&gt;</description>
      <category>2026-SWLUG/유지보수</category>
      <author>호랑2D</author>
      <guid isPermaLink="true">https://tigerdemon.tistory.com/230</guid>
      <comments>https://tigerdemon.tistory.com/230#entry230comment</comments>
      <pubDate>Wed, 29 Jul 2026 16:03:08 +0900</pubDate>
    </item>
    <item>
      <title>Webhacking.kr 14번 문제 풀이</title>
      <link>https://tigerdemon.tistory.com/227</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://webhacking.kr/challenge/js-1/&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://webhacking.kr/challenge/js-1/&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1782952678251&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;Challenge 14&quot; data-og-description=&quot;&quot; data-og-host=&quot;webhacking.kr&quot; data-og-source-url=&quot;https://webhacking.kr/challenge/js-1/&quot; data-og-url=&quot;https://webhacking.kr/challenge/js-1/&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://webhacking.kr/challenge/js-1/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://webhacking.kr/challenge/js-1/&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;Challenge 14&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;webhacking.kr&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 링크에 들어가면 그냥 아래 박스가 뜬다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;355&quot; data-origin-height=&quot;103&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bblLsq/dJMcaaePfVc/TzG1TI2JnCkvFzbehcJtSK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bblLsq/dJMcaaePfVc/TzG1TI2JnCkvFzbehcJtSK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bblLsq/dJMcaaePfVc/TzG1TI2JnCkvFzbehcJtSK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbblLsq%2FdJMcaaePfVc%2FTzG1TI2JnCkvFzbehcJtSK%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;355&quot; height=&quot;103&quot; data-origin-width=&quot;355&quot; data-origin-height=&quot;103&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;코드를 확인해봤다.&lt;/p&gt;
&lt;pre id=&quot;code_1782952716600&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;function ck(){
  var ul=document.URL;
  ul=ul.indexOf(&quot;.kr&quot;);
  ul=ul*30;
  if(ul==pw.input_pwd.value) { location.href=&quot;?&quot;+ul*pw.input_pwd.value; }
  else { alert(&quot;Wrong&quot;); }
  return false;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;.kr의 위치에 따라 30을 곱한다고 하는데 이때 위에 있는 18번째에 .부터 시작된다 따라서 18*30을 하고 그 값을 넣으면 된다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;490&quot; data-origin-height=&quot;178&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/0i1xI/dJMcaiw88Zy/3uukPskXuGwGH07WaX0kWk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/0i1xI/dJMcaiw88Zy/3uukPskXuGwGH07WaX0kWk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/0i1xI/dJMcaiw88Zy/3uukPskXuGwGH07WaX0kWk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F0i1xI%2FdJMcaiw88Zy%2F3uukPskXuGwGH07WaX0kWk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;490&quot; height=&quot;178&quot; data-origin-width=&quot;490&quot; data-origin-height=&quot;178&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>2026-SWLUG/웹해킹</category>
      <author>호랑2D</author>
      <guid isPermaLink="true">https://tigerdemon.tistory.com/227</guid>
      <comments>https://tigerdemon.tistory.com/227#entry227comment</comments>
      <pubDate>Sun, 26 Jul 2026 11:18:24 +0900</pubDate>
    </item>
    <item>
      <title>유지보수 여름방학 4주차 - 블로그 수정</title>
      <link>https://tigerdemon.tistory.com/229</link>
      <description>&lt;div style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot;&gt;&lt;span style=&quot;color: #333333; letter-spacing: 0px;&quot;&gt;[다음 스크럼 일시]&lt;/span&gt;&lt;/div&gt;
&lt;div id=&quot;article-view&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot;&gt;
&lt;div&gt;
&lt;p style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;2026-07-29&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;[현재까지 예정이었던 것]&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;- 클라우드 플래어로 이미지 수정&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;[실제로 한 것]&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;현재는 자료 수집을 중심으로 어떤식으로 클라우드 플레어에 이미지를 올리고 이미지를 올리면 어떤식으로 돌아가는 지 파악하고 있다. 자료를 올려서 이후에 개발을 시작할때 보면서 진행할 예정이다.. 아직 코드 수정을 하기엔 자료들을 많이 모으고 보지 못해서 진행하지 못했다... 다음주에는 오류 수정을 다 하고싶다&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;보안적 요소에서 확인해야할 부분&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;- 파일 크기 제한&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;- 삭제및 수정은 본인 소유 이미지인지 확인하는 권한 체크&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;- 업로드 후 반환되는 imageid를 db에 저장해야하는데 몽고 디비를 다 수정해야한다&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://developers.cloudflare.com/api/resources/images&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://developers.cloudflare.com/api/resources/images&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;figure id=&quot;og_1784708610357&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;Images&quot; data-og-description=&quot;&quot; data-og-host=&quot;developers.cloudflare.com&quot; data-og-source-url=&quot;https://developers.cloudflare.com/api/resources/images&quot; data-og-url=&quot;https://developers.cloudflare.com/api/resources/images/&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://developers.cloudflare.com/api/resources/images&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://developers.cloudflare.com/api/resources/images&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;Images&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;developers.cloudflare.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://developers.cloudflare.com/api/resources/images/subresources/v1/methods/create/&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://developers.cloudflare.com/api/resources/images/subresources/v1/methods/create/&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1784708761227&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;Upload an image&quot; data-og-description=&quot;&quot; data-og-host=&quot;developers.cloudflare.com&quot; data-og-source-url=&quot;https://developers.cloudflare.com/api/resources/images/subresources/v1/methods/create/&quot; data-og-url=&quot;https://developers.cloudflare.com/api/resources/images/subresources/v1/methods/create/&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://developers.cloudflare.com/api/resources/images/subresources/v1/methods/create/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://developers.cloudflare.com/api/resources/images/subresources/v1/methods/create/&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;Upload an image&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;developers.cloudflare.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://hell-of-company-builder.tistory.com/416&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://hell-of-company-builder.tistory.com/416&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1784708793503&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;CloudFlare 이미지 업로드하기 (5달러, nodejs)&quot; data-og-description=&quot;시작하기 주소 https://dash.cloudflare.com/ 리사이징은 무료이고 20여 가지의 사이즈로 변경하여 조회할 수 있다고 합니다. 저장 시 저장소는 10만 이미지 당 5달러입니다. 조회 시 10만 이미지 당 1달러&quot; data-og-host=&quot;hell-of-company-builder.tistory.com&quot; data-og-source-url=&quot;https://hell-of-company-builder.tistory.com/416&quot; data-og-url=&quot;https://hell-of-company-builder.tistory.com/416&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/HFEMK/dJMb887lUj3/kUkHsZ51ExKhKhtdKQe0zK/img.png?width=800&amp;amp;height=431&amp;amp;face=0_0_800_431,https://scrap.kakaocdn.net/dn/eWX3t/dJMb9kUfWdH/gGzP9NlcErWeKtIXwlpWE1/img.png?width=800&amp;amp;height=431&amp;amp;face=0_0_800_431,https://scrap.kakaocdn.net/dn/bg6hZ7/dJMb9c9KUqz/OwmKn56nMdXNMCEjaJCTk1/img.png?width=1920&amp;amp;height=978&amp;amp;face=0_0_1920_978&quot;&gt;&lt;a href=&quot;https://hell-of-company-builder.tistory.com/416&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://hell-of-company-builder.tistory.com/416&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/HFEMK/dJMb887lUj3/kUkHsZ51ExKhKhtdKQe0zK/img.png?width=800&amp;amp;height=431&amp;amp;face=0_0_800_431,https://scrap.kakaocdn.net/dn/eWX3t/dJMb9kUfWdH/gGzP9NlcErWeKtIXwlpWE1/img.png?width=800&amp;amp;height=431&amp;amp;face=0_0_800_431,https://scrap.kakaocdn.net/dn/bg6hZ7/dJMb9c9KUqz/OwmKn56nMdXNMCEjaJCTk1/img.png?width=1920&amp;amp;height=978&amp;amp;face=0_0_1920_978');&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;CloudFlare 이미지 업로드하기 (5달러, nodejs)&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;시작하기 주소 https://dash.cloudflare.com/ 리사이징은 무료이고 20여 가지의 사이즈로 변경하여 조회할 수 있다고 합니다. 저장 시 저장소는 10만 이미지 당 5달러입니다. 조회 시 10만 이미지 당 1달러&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;hell-of-company-builder.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;div&gt;
&lt;div&gt;
&lt;div id=&quot;reaction-228&quot; data-tistory-react-app=&quot;Reaction&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot;&gt;[다음 스크럼 때까지 할 것]&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;오류 수정하기&lt;/p&gt;</description>
      <category>2026-SWLUG/유지보수</category>
      <author>호랑2D</author>
      <guid isPermaLink="true">https://tigerdemon.tistory.com/229</guid>
      <comments>https://tigerdemon.tistory.com/229#entry229comment</comments>
      <pubDate>Wed, 22 Jul 2026 17:28:31 +0900</pubDate>
    </item>
    <item>
      <title>Webhacking.kr 32번 문제풀이</title>
      <link>https://tigerdemon.tistory.com/226</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://webhacking.kr/challenge/code-5/&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://webhacking.kr/challenge/code-5/&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1783905255737&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;https://webhacking.kr/challenge/code-5/&quot; data-og-description=&quot;&quot; data-og-host=&quot;webhacking.kr&quot; data-og-source-url=&quot;https://webhacking.kr/challenge/code-5/&quot; data-og-url=&quot;https://webhacking.kr/challenge/code-5/&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://webhacking.kr/challenge/code-5/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://webhacking.kr/challenge/code-5/&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;https://webhacking.kr/challenge/code-5/&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;webhacking.kr&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 링크에 들어 가면 아래 사진처럼 클릭수 순서대로 랭킹이 있는 걸 확인할 수 있고 맨 아래로 내리면 자신의 계정이 뜬다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;405&quot; data-origin-height=&quot;281&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/VN8Gu/dJMcaiw939u/WV9hJkGCKUWZWxOtmkMat0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/VN8Gu/dJMcaiw939u/WV9hJkGCKUWZWxOtmkMat0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/VN8Gu/dJMcaiw939u/WV9hJkGCKUWZWxOtmkMat0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FVN8Gu%2FdJMcaiw939u%2FWV9hJkGCKUWZWxOtmkMat0%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;405&quot; height=&quot;281&quot; data-origin-width=&quot;405&quot; data-origin-height=&quot;281&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이때 확인해야할 것은 작업자 모드로 하고 쿠키를 확인했을때 vote_check가 사라지면 한번 또 클릭을 할 수 있다.&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;387&quot; data-origin-height=&quot;90&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/blqIFM/dJMcaiDVd9l/kF7sIpUcuuuGT3vdvZ2Bk0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/blqIFM/dJMcaiDVd9l/kF7sIpUcuuuGT3vdvZ2Bk0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/blqIFM/dJMcaiDVd9l/kF7sIpUcuuuGT3vdvZ2Bk0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FblqIFM%2FdJMcaiDVd9l%2FkF7sIpUcuuuGT3vdvZ2Bk0%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;387&quot; height=&quot;90&quot; data-origin-width=&quot;387&quot; data-origin-height=&quot;90&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;하지만 100을 넘겨야 문제가 풀리는데 지우고 누르고 지우고 누르고를 반복할 수 없으니 콘솔창에서 아래 코드를 입력해서 문제를 해결했다.&lt;/p&gt;
&lt;pre id=&quot;code_1783044503290&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;for (let i = 0; i &amp;lt; 100; i++) {
    fetch(&quot;https://webhacking.kr/challenge/code-5/?hit=본인아이디&quot;, {
        credentials: &quot;include&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;486&quot; data-origin-height=&quot;177&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/wxO2l/dJMcaiX8gsF/sSEY7p4OZz66Ff7tYuLXV1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/wxO2l/dJMcaiX8gsF/sSEY7p4OZz66Ff7tYuLXV1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/wxO2l/dJMcaiX8gsF/sSEY7p4OZz66Ff7tYuLXV1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FwxO2l%2FdJMcaiX8gsF%2FsSEY7p4OZz66Ff7tYuLXV1%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;486&quot; height=&quot;177&quot; data-origin-width=&quot;486&quot; data-origin-height=&quot;177&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>2026-SWLUG/웹해킹</category>
      <author>호랑2D</author>
      <guid isPermaLink="true">https://tigerdemon.tistory.com/226</guid>
      <comments>https://tigerdemon.tistory.com/226#entry226comment</comments>
      <pubDate>Sun, 19 Jul 2026 11:16:51 +0900</pubDate>
    </item>
    <item>
      <title>유지보수 여름방학 3주차 - 블로그 수정</title>
      <link>https://tigerdemon.tistory.com/228</link>
      <description>&lt;p style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;[다음 스크럼 일시]&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;2026-07-22&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;[현재까지 예정이었던 것]&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;- 이메일 부분 수정&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;- 블로그 이미지 수정 및 관련 내용 조언 받기&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;[실제로 한 것]&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot;&gt;다른 팀원들의 블로그 정리본을 보고 클라우드 플래어 회원가입 후 R2 코드 입력 및 확인&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot;&gt;&lt;a href=&quot;https://velog.io/@ggingmin/Spring-Boot-React-Cloudflare-R2%EB%A5%BC-%ED%99%9C%EC%9A%A9%ED%95%9C-%ED%8C%8C%EC%9D%BC-%EC%97%85%EB%A1%9C%EB%93%9C-%EA%B8%B0%EB%8A%A5-%EA%B5%AC%ED%98%84%ED%95%98%EA%B8%B0&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://velog.io/@ggingmin/Spring-Boot-React-Cloudflare-R2%EB%A5%BC-%ED%99%9C%EC%9A%A9%ED%95%9C-%ED%8C%8C%EC%9D%BC-%EC%97%85%EB%A1%9C%EB%93%9C-%EA%B8%B0%EB%8A%A5-%EA%B5%AC%ED%98%84%ED%95%98%EA%B8%B0&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1784094298806&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;Spring Boot, React, Cloudflare R2를 활용한 파일 업로드/다운로드 기능 구현하기&quot; data-og-description=&quot;파일을 업로드하고 다운로드 하는 것은 인터넷에서 우리가 하는 작업 중 아주 큰 비중을 차지합니다. 친구들과 찍은 사진을 업로드 하거나 필요한 프로그램을 다운 받는 일은 지금 이 순간에도 &quot; data-og-host=&quot;velog.io&quot; data-og-source-url=&quot;https://velog.io/@ggingmin/Spring-Boot-React-Cloudflare-R2%EB%A5%BC-%ED%99%9C%EC%9A%A9%ED%95%9C-%ED%8C%8C%EC%9D%BC-%EC%97%85%EB%A1%9C%EB%93%9C-%EA%B8%B0%EB%8A%A5-%EA%B5%AC%ED%98%84%ED%95%98%EA%B8%B0&quot; data-og-url=&quot;https://velog.io/@ggingmin/Spring-Boot-React-Cloudflare-R2를-활용한-파일-업로드-기능-구현하기&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/P3KNz/dJMb8SpUt73/YEAH2GbKgxk4gXgGtjNKxK/img.png?width=1912&amp;amp;height=1072&amp;amp;face=0_0_1912_1072,https://scrap.kakaocdn.net/dn/bmZorP/dJMb8Yp7NBB/eSyGkZL9ffLvsYRbm9PHmK/img.png?width=1912&amp;amp;height=1072&amp;amp;face=0_0_1912_1072,https://scrap.kakaocdn.net/dn/b9oBM2/dJMb8Z3DUZs/NMPXfNYwCNyWEWEuQjMKc1/img.png?width=4204&amp;amp;height=2248&amp;amp;face=0_0_4204_2248&quot;&gt;&lt;a href=&quot;https://velog.io/@ggingmin/Spring-Boot-React-Cloudflare-R2%EB%A5%BC-%ED%99%9C%EC%9A%A9%ED%95%9C-%ED%8C%8C%EC%9D%BC-%EC%97%85%EB%A1%9C%EB%93%9C-%EA%B8%B0%EB%8A%A5-%EA%B5%AC%ED%98%84%ED%95%98%EA%B8%B0&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://velog.io/@ggingmin/Spring-Boot-React-Cloudflare-R2%EB%A5%BC-%ED%99%9C%EC%9A%A9%ED%95%9C-%ED%8C%8C%EC%9D%BC-%EC%97%85%EB%A1%9C%EB%93%9C-%EA%B8%B0%EB%8A%A5-%EA%B5%AC%ED%98%84%ED%95%98%EA%B8%B0&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/P3KNz/dJMb8SpUt73/YEAH2GbKgxk4gXgGtjNKxK/img.png?width=1912&amp;amp;height=1072&amp;amp;face=0_0_1912_1072,https://scrap.kakaocdn.net/dn/bmZorP/dJMb8Yp7NBB/eSyGkZL9ffLvsYRbm9PHmK/img.png?width=1912&amp;amp;height=1072&amp;amp;face=0_0_1912_1072,https://scrap.kakaocdn.net/dn/b9oBM2/dJMb8Z3DUZs/NMPXfNYwCNyWEWEuQjMKc1/img.png?width=4204&amp;amp;height=2248&amp;amp;face=0_0_4204_2248');&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;Spring Boot, React, Cloudflare R2를 활용한 파일 업로드/다운로드 기능 구현하기&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;&lt;a href=&quot;https://eunseoyu.tistory.com/32?category=1302744&amp;amp;pidx=3&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://eunseoyu.tistory.com/32?category=1302744&amp;amp;pidx=3&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1784094300564&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;Cloudflare R2 사용기 : Cloudflare 회원가입 (1)&quot; data-og-description=&quot;나만의 서비스 개발을 위해 바이브를 타던 중, 이제는 정말로 저장소를 정할 때가 왔다. Claude를 갈궈서 선택한 스택은 바로 Cloudflare R2 이다.글로벌로 사용가능하고, 가급적 싼 가격에 문서 및 이&quot; data-og-host=&quot;eunseoyu.tistory.com&quot; data-og-source-url=&quot;https://eunseoyu.tistory.com/32?category=1302744&amp;amp;pidx=3&quot; data-og-url=&quot;https://eunseoyu.tistory.com/32&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/hw7Cd/dJMb86Pd9yQ/JyG02gAVWHNOEkNiUmwaik/img.png?width=800&amp;amp;height=442&amp;amp;face=0_0_800_442,https://scrap.kakaocdn.net/dn/bpuxak/dJMb83Svqsi/sRK7jaFkZyXnCmFQAIArjK/img.png?width=800&amp;amp;height=442&amp;amp;face=0_0_800_442,https://scrap.kakaocdn.net/dn/bpZHaB/dJMb8Z3DU0X/9Mkbz4pQmlQZcHQCUY3cH0/img.png?width=1898&amp;amp;height=908&amp;amp;face=0_0_1898_908&quot;&gt;&lt;a href=&quot;https://eunseoyu.tistory.com/32?category=1302744&amp;amp;pidx=3&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://eunseoyu.tistory.com/32?category=1302744&amp;amp;pidx=3&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/hw7Cd/dJMb86Pd9yQ/JyG02gAVWHNOEkNiUmwaik/img.png?width=800&amp;amp;height=442&amp;amp;face=0_0_800_442,https://scrap.kakaocdn.net/dn/bpuxak/dJMb83Svqsi/sRK7jaFkZyXnCmFQAIArjK/img.png?width=800&amp;amp;height=442&amp;amp;face=0_0_800_442,https://scrap.kakaocdn.net/dn/bpZHaB/dJMb8Z3DU0X/9Mkbz4pQmlQZcHQCUY3cH0/img.png?width=1898&amp;amp;height=908&amp;amp;face=0_0_1898_908');&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;Cloudflare R2 사용기 : Cloudflare 회원가입 (1)&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;나만의 서비스 개발을 위해 바이브를 타던 중, 이제는 정말로 저장소를 정할 때가 왔다. Claude를 갈궈서 선택한 스택은 바로 Cloudflare R2 이다.글로벌로 사용가능하고, 가급적 싼 가격에 문서 및 이&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;eunseoyu.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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;536&quot; data-origin-height=&quot;350&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/yQ41A/dJMcaaeZu8s/JT5cshWXaD71WLGPzb4rV1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/yQ41A/dJMcaaeZu8s/JT5cshWXaD71WLGPzb4rV1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/yQ41A/dJMcaaeZu8s/JT5cshWXaD71WLGPzb4rV1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FyQ41A%2FdJMcaaeZu8s%2FJT5cshWXaD71WLGPzb4rV1%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;536&quot; height=&quot;350&quot; data-origin-width=&quot;536&quot; data-origin-height=&quot;350&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;소학회 계정으로 R2 사용할 수 있게 세팅하고 토큰까지 받았다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://recodelog.com/tech-blog/cloudflare/image-upload&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://recodelog.com/tech-blog/cloudflare/image-upload&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1784094307228&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;클라우드 플레어 R2에 이미지 업로드 하는 방법&quot; data-og-description=&quot;Cloudflare R2를 사용하여 이미지 업로드 기능을 구현하는 방법을 알아봅니다.&quot; data-og-host=&quot;recodelog.com&quot; data-og-source-url=&quot;https://recodelog.com/tech-blog/cloudflare/image-upload&quot; data-og-url=&quot;https://recodelog.com/tech-blog/cloudflare/image-upload&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/IpUho/dJMb9gxxN5a/FzqYMKqj62c7oTTkISHEbK/img.png?width=848&amp;amp;height=658&amp;amp;face=0_0_848_658&quot;&gt;&lt;a href=&quot;https://recodelog.com/tech-blog/cloudflare/image-upload&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://recodelog.com/tech-blog/cloudflare/image-upload&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/IpUho/dJMb9gxxN5a/FzqYMKqj62c7oTTkISHEbK/img.png?width=848&amp;amp;height=658&amp;amp;face=0_0_848_658');&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;클라우드 플레어 R2에 이미지 업로드 하는 방법&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Cloudflare R2를 사용하여 이미지 업로드 기능을 구현하는 방법을 알아봅니다.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;recodelog.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://laon.blog/posts/20240113/%ED%81%B4%EB%9D%BC%EC%9A%B0%EB%93%9C-%ED%94%8C%EB%A0%88%EC%96%B4-%EC%9D%B4%EB%AF%B8%EC%A7%80%EB%A5%BC-%EC%9D%B4%EC%9A%A9%ED%95%9C-%EB%B8%94%EB%A1%9C%EA%B7%B8-%EC%9D%B4%EB%AF%B8%EC%A7%80-%ED%98%B8%EC%8A%A4%ED%8C%85/&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://laon.blog/posts/20240113/%ED%81%B4%EB%9D%BC%EC%9A%B0%EB%93%9C-%ED%94%8C%EB%A0%88%EC%96%B4-%EC%9D%B4%EB%AF%B8%EC%A7%80%EB%A5%BC-%EC%9D%B4%EC%9A%A9%ED%95%9C-%EB%B8%94%EB%A1%9C%EA%B7%B8-%EC%9D%B4%EB%AF%B8%EC%A7%80-%ED%98%B8%EC%8A%A4%ED%8C%85/&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1784094758085&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;클라우드 플레어 이미지(Cloudflare Images)를 이용한 블로그 이미지 호스팅&quot; data-og-description=&quot;클라우드 플레어 이미지 사용하는 방법, 이미지 호스팅&quot; data-og-host=&quot;laon.blog&quot; data-og-source-url=&quot;https://laon.blog/posts/20240113/%ED%81%B4%EB%9D%BC%EC%9A%B0%EB%93%9C-%ED%94%8C%EB%A0%88%EC%96%B4-%EC%9D%B4%EB%AF%B8%EC%A7%80%EB%A5%BC-%EC%9D%B4%EC%9A%A9%ED%95%9C-%EB%B8%94%EB%A1%9C%EA%B7%B8-%EC%9D%B4%EB%AF%B8%EC%A7%80-%ED%98%B8%EC%8A%A4%ED%8C%85/&quot; data-og-url=&quot;https://laon.blog/posts/20240113/%ED%81%B4%EB%9D%BC%EC%9A%B0%EB%93%9C-%ED%94%8C%EB%A0%88%EC%96%B4-%EC%9D%B4%EB%AF%B8%EC%A7%80%EB%A5%BC-%EC%9D%B4%EC%9A%A9%ED%95%9C-%EB%B8%94%EB%A1%9C%EA%B7%B8-%EC%9D%B4%EB%AF%B8%EC%A7%80-%ED%98%B8%EC%8A%A4%ED%8C%85/&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://laon.blog/posts/20240113/%ED%81%B4%EB%9D%BC%EC%9A%B0%EB%93%9C-%ED%94%8C%EB%A0%88%EC%96%B4-%EC%9D%B4%EB%AF%B8%EC%A7%80%EB%A5%BC-%EC%9D%B4%EC%9A%A9%ED%95%9C-%EB%B8%94%EB%A1%9C%EA%B7%B8-%EC%9D%B4%EB%AF%B8%EC%A7%80-%ED%98%B8%EC%8A%A4%ED%8C%85/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://laon.blog/posts/20240113/%ED%81%B4%EB%9D%BC%EC%9A%B0%EB%93%9C-%ED%94%8C%EB%A0%88%EC%96%B4-%EC%9D%B4%EB%AF%B8%EC%A7%80%EB%A5%BC-%EC%9D%B4%EC%9A%A9%ED%95%9C-%EB%B8%94%EB%A1%9C%EA%B7%B8-%EC%9D%B4%EB%AF%B8%EC%A7%80-%ED%98%B8%EC%8A%A4%ED%8C%85/&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;클라우드 플레어 이미지(Cloudflare Images)를 이용한 블로그 이미지 호스팅&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;laon.blog&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 style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;[다음 스크럼 때까지 할 것]&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;- 이미지 부분 클라우드 플래어로 수정&lt;/p&gt;</description>
      <category>2026-SWLUG/유지보수</category>
      <author>호랑2D</author>
      <guid isPermaLink="true">https://tigerdemon.tistory.com/228</guid>
      <comments>https://tigerdemon.tistory.com/228#entry228comment</comments>
      <pubDate>Wed, 15 Jul 2026 14:24:07 +0900</pubDate>
    </item>
    <item>
      <title>Webhacking.kr 54번 문제 풀이</title>
      <link>https://tigerdemon.tistory.com/224</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://webhacking.kr/challenge/bonus-14/&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://webhacking.kr/challenge/bonus-14/&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1782883901755&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;Challenge 54&quot; data-og-description=&quot;&quot; data-og-host=&quot;webhacking.kr&quot; data-og-source-url=&quot;https://webhacking.kr/challenge/bonus-14/&quot; data-og-url=&quot;https://webhacking.kr/challenge/bonus-14/&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://webhacking.kr/challenge/bonus-14/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://webhacking.kr/challenge/bonus-14/&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;Challenge 54&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;webhacking.kr&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;420&quot; data-origin-height=&quot;162&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/EPfo6/dJMcafHc3Pu/aZm9ZXwtTa3zdPQklMjK91/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/EPfo6/dJMcafHc3Pu/aZm9ZXwtTa3zdPQklMjK91/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/EPfo6/dJMcafHc3Pu/aZm9ZXwtTa3zdPQklMjK91/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FEPfo6%2FdJMcafHc3Pu%2FaZm9ZXwtTa3zdPQklMjK91%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;420&quot; height=&quot;162&quot; data-origin-width=&quot;420&quot; data-origin-height=&quot;162&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;링크에 들어가면 위 사진처럼 뜨는데 이때 플래그가 후루룩 나오고 마지막에 ? 가 나온다.&lt;/p&gt;
&lt;pre id=&quot;code_1782884203627&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;function run(){
  if(window.ActiveXObject){
   try {
    return new ActiveXObject('Msxml2.XMLHTTP');
   } catch (e) {
    try {
     return new ActiveXObject('Microsoft.XMLHTTP');
    } catch (e) {
     return null;
    }
   }
  }else if(window.XMLHttpRequest){
   return new XMLHttpRequest();
 
  }else{
   return null;
  }
 }
x=run();
function answer(i){
  x.open('GET','?m='+i,false);
  x.send(null);
  aview.innerHTML=x.responseText;
  i++;
  if(x.responseText) setTimeout(&quot;answer(&quot;+i+&quot;)&quot;,20);
  if(x.responseText==&quot;&quot;) aview.innerHTML=&quot;?&quot;;
}
setTimeout(&quot;answer(0)&quot;,1000);&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 코드는 스크립트 부분이다. m=0부터 m=20까지 요청이 되고 마지막에 빈 문자열이면 ?를 출력하고 종료된다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;작업자 모드에서 네트워크를 보며 새로고침을 하면 m=0부터 38까지 나온다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1918&quot; data-origin-height=&quot;853&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/wxbjN/dJMcajv2vbr/VaN0I0B2jd9IH9J3PvGECk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/wxbjN/dJMcajv2vbr/VaN0I0B2jd9IH9J3PvGECk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/wxbjN/dJMcajv2vbr/VaN0I0B2jd9IH9J3PvGECk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FwxbjN%2FdJMcajv2vbr%2FVaN0I0B2jd9IH9J3PvGECk%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;1918&quot; height=&quot;853&quot; data-origin-width=&quot;1918&quot; data-origin-height=&quot;853&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이때 하나를 눌러서 미리보기로 가면 어떤 글자인지 볼 수 있다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;720&quot; data-origin-height=&quot;377&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bbHM94/dJMcadoYBLS/CGwMZsGfN5d7a77t6vokDk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bbHM94/dJMcadoYBLS/CGwMZsGfN5d7a77t6vokDk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bbHM94/dJMcadoYBLS/CGwMZsGfN5d7a77t6vokDk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbbHM94%2FdJMcadoYBLS%2FCGwMZsGfN5d7a77t6vokDk%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;720&quot; height=&quot;377&quot; data-origin-width=&quot;720&quot; data-origin-height=&quot;377&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;하나하나 확인하고 Auth에 플래그를 입력하면 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ffffff;&quot;&gt;gsFLAG{a7981201c48d0ec&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;348&quot; data-origin-height=&quot;52&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bf3yTy/dJMcaaZ8UvT/OBUU4u622tbK4WJvpviwu0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bf3yTy/dJMcaaZ8UvT/OBUU4u622tbK4WJvpviwu0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bf3yTy/dJMcaaZ8UvT/OBUU4u622tbK4WJvpviwu0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbf3yTy%2FdJMcaaZ8UvT%2FOBUU4u622tbK4WJvpviwu0%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;348&quot; height=&quot;52&quot; data-origin-width=&quot;348&quot; data-origin-height=&quot;52&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ffffff;&quot;&gt;e288afd01ca43c55b}&lt;/span&gt;&lt;/p&gt;</description>
      <category>2026-SWLUG/웹해킹</category>
      <author>호랑2D</author>
      <guid isPermaLink="true">https://tigerdemon.tistory.com/224</guid>
      <comments>https://tigerdemon.tistory.com/224#entry224comment</comments>
      <pubDate>Sun, 12 Jul 2026 22:39:09 +0900</pubDate>
    </item>
    <item>
      <title>유지보수 여름방학 2주차 - 블로그 수정</title>
      <link>https://tigerdemon.tistory.com/225</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;[다음 스크럼 일시]&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2026-07-15&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[현재까지 예정이었던 것]&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;1.&amp;nbsp; DB에 로그인 계정 추가하고 백엔드 코드 수정하고 실행해서 프론트가 잘 되는지 확인하기&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;2. 그냥 배포해서 확인하기 만약 안되면 다시 되돌아가서 하기&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[실제로 한 것]&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot;&gt;위 두가지 방법 중 어떤 것으로 할지 고민하고 DB를 찾아보았다. 하지만 현재 DB에 비밀번호가 암호화되어 있어서 비밀번호가 확인이 불가능하고 새로 회원가입을 하고 싶지만 현재 회원가입 이메일 부분에 문제가 있기에 어떻게 해야하나 했다. 하지만 다행히 비밀번호를 찾았고 이제 코드 수정을 하면 된다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot;&gt;현재 백엔드와 프론트엔드를 동시에 실행하여 연동해서 수정을 하려고 하는데 연동이 안된다 이 부분부터 해결을 해야한다..&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[다음 스크럼 때까지 할 것]&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 이메일 부분 수정&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 블로그 이미지 수정 및 관련 내용 조언 받기&lt;/p&gt;</description>
      <category>2026-SWLUG/유지보수</category>
      <author>호랑2D</author>
      <guid isPermaLink="true">https://tigerdemon.tistory.com/225</guid>
      <comments>https://tigerdemon.tistory.com/225#entry225comment</comments>
      <pubDate>Wed, 8 Jul 2026 14:20:07 +0900</pubDate>
    </item>
    <item>
      <title>Webhacking.kr 25번 문제 풀이</title>
      <link>https://tigerdemon.tistory.com/222</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;http://webhacking.kr:10001/?file=hello&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;http://webhacking.kr:10001/?file=hello&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1782798125791&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;Challenge 25&quot; data-og-description=&quot;&quot; data-og-host=&quot;webhacking.kr:10001&quot; data-og-source-url=&quot;http://webhacking.kr:10001/?file=hello&quot; data-og-url=&quot;http://webhacking.kr:10001/?file=hello&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;http://webhacking.kr:10001/?file=hello&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;http://webhacking.kr:10001/?file=hello&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;Challenge 25&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;webhacking.kr:10001&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 문제에 들어가면 아래 사진처럼 뜬다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;712&quot; data-origin-height=&quot;372&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bagE4q/dJMcad3zLYg/JD0BIBK0cyJrIzK5RIikJ1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bagE4q/dJMcad3zLYg/JD0BIBK0cyJrIzK5RIikJ1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bagE4q/dJMcad3zLYg/JD0BIBK0cyJrIzK5RIikJ1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbagE4q%2FdJMcad3zLYg%2FJD0BIBK0cyJrIzK5RIikJ1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;712&quot; height=&quot;372&quot; data-origin-width=&quot;712&quot; data-origin-height=&quot;372&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;여기서 위에 url에 flag를 넣었더니 아래 사진처럼 떴다. index는 아무것도 안뜬다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;715&quot; data-origin-height=&quot;328&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cou1el/dJMcah55J4T/LVC3zbkKpxvX9AgSNJngQk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cou1el/dJMcah55J4T/LVC3zbkKpxvX9AgSNJngQk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cou1el/dJMcah55J4T/LVC3zbkKpxvX9AgSNJngQk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcou1el%2FdJMcah55J4T%2FLVC3zbkKpxvX9AgSNJngQk%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;715&quot; height=&quot;328&quot; data-origin-width=&quot;715&quot; data-origin-height=&quot;328&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;Local File Inclusion(LFI) + PHP Wrapper&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;파일명을 조작해 서버 내 다른 파일을 인클루드할 수 있도록 허용된 구조인데, 자동으로 php가 붙기 때문에 플래그 소스 코드가 바로 보이지 않는다. PHP의 Stream Wrapper 기능을 활용하면 인클루드 시 파일 내용을 base64 인코딩해서 볼 수 있기에 php 필터 기반의 LFI 우회를 해보았다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;PHP Wrapper를 활용하여 아래의 특수 파일명을 사용하면 인클루드 시 해당 파일을 base64 인코딩하여 보여준다.&lt;/p&gt;
&lt;pre id=&quot;code_1782798433842&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;php://filter/convert.base64-encode/resource=&lt;/code&gt;&lt;/pre&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;947&quot; data-origin-height=&quot;338&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/NdTMW/dJMcadoXGrf/u2Kez6RASvTT68I6WZolJk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/NdTMW/dJMcadoXGrf/u2Kez6RASvTT68I6WZolJk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/NdTMW/dJMcadoXGrf/u2Kez6RASvTT68I6WZolJk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FNdTMW%2FdJMcadoXGrf%2Fu2Kez6RASvTT68I6WZolJk%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;947&quot; height=&quot;338&quot; data-origin-width=&quot;947&quot; data-origin-height=&quot;338&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 디코딩을 하면 아래처럼 플래그가 나온다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;677&quot; data-origin-height=&quot;770&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/d0FzPi/dJMcaalum1O/mFUnN6esfJjXM2z1w6DA81/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/d0FzPi/dJMcaalum1O/mFUnN6esfJjXM2z1w6DA81/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/d0FzPi/dJMcaalum1O/mFUnN6esfJjXM2z1w6DA81/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fd0FzPi%2FdJMcaalum1O%2FmFUnN6esfJjXM2z1w6DA81%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;677&quot; height=&quot;770&quot; data-origin-width=&quot;677&quot; data-origin-height=&quot;770&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;366&quot; data-origin-height=&quot;38&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dyD4g4/dJMcah55K4u/Bop8fkVBe6Soeikfc06c6K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dyD4g4/dJMcah55K4u/Bop8fkVBe6Soeikfc06c6K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dyD4g4/dJMcah55K4u/Bop8fkVBe6Soeikfc06c6K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdyD4g4%2FdJMcah55K4u%2FBop8fkVBe6Soeikfc06c6K%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;366&quot; height=&quot;38&quot; data-origin-width=&quot;366&quot; data-origin-height=&quot;38&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>2026-SWLUG/웹해킹</category>
      <author>호랑2D</author>
      <guid isPermaLink="true">https://tigerdemon.tistory.com/222</guid>
      <comments>https://tigerdemon.tistory.com/222#entry222comment</comments>
      <pubDate>Sun, 5 Jul 2026 15:51:16 +0900</pubDate>
    </item>
    <item>
      <title>유지보수 여름방학 1주차 - 블로그 수정</title>
      <link>https://tigerdemon.tistory.com/223</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;현재 가지고 있는 오류 중 블로그 작성 문제와 이미지 문제를 해결하기 위해 CKEditor을 업데이트 했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;원래 9.몇이었는데 11로 업데이트를 했다. 그리고 테스트 실행을 해봤는데 백엔드를 같이 실행을 안해서 그런가 게시글 찾는게 아예 안돼서 백엔드를 실행시켰더니 전에 개발하려고 수정했던 구글 드라이브 부분 때문에 실행이 안된다. 그리고 게시글이 작성되는 지 확인하려면 테스트 실행을 했을때 로그인을 해야하는데 그 테스트 db에 로그인 계정을 추가해야하는데 그걸 또 어떻게 해야할 지 모르겠어서 잠시 중단한 상태이다. 그리고 이미지도 조회가 안되는데 이게 로컬로 올라간 것에 대한 문제가 무엇인지 모르겠다. 이걸 해결하려면 따로 사진이 저장되는 게 필요한데 이미지 저장하는 무언가를 쓰기엔 돈이 나가서 로컬에 계속 해야할 것 같은데 아직 로컬에 이미지를 올린다는 개념이 이해가 안간다.. 다행히 이미지는 전에 백업해둔게 있어서 나중에 다시 올릴 수 있다는 것..&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;따라서 2가지로 실행을 해볼 수 있는데&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. DB에 로그인 계정 추가하고 백엔드 코드 수정하고 실행해서 프론트가 잘 되는지 확인하기&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. 그냥 배포해서 확인하기 만약 안되면 다시 되돌아가서 하기&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아무래도 1이 계속 실험해보기는 좋을 것 같은데 어떻게 해야할 지 감도 안온다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그래도 배포 후에 잘못되는 것 보단 DB에 추가하고 해보는 게 좋을 것 같다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음 주차까지 DB에 데이터 넣고 실행해보고 백엔드 삭제할 코드 삭제해서 다시 실행해보고 CKEDITOR 잘 되는 지 확인해볼 계획이다.&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;515&quot; data-origin-height=&quot;72&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/btgrpm/dJMcahSrYOn/iggKNacdSPuBy51dzJWJ70/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/btgrpm/dJMcahSrYOn/iggKNacdSPuBy51dzJWJ70/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/btgrpm/dJMcahSrYOn/iggKNacdSPuBy51dzJWJ70/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbtgrpm%2FdJMcahSrYOn%2FiggKNacdSPuBy51dzJWJ70%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;515&quot; height=&quot;72&quot; data-origin-width=&quot;515&quot; data-origin-height=&quot;72&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>2026-SWLUG/유지보수</category>
      <author>호랑2D</author>
      <guid isPermaLink="true">https://tigerdemon.tistory.com/223</guid>
      <comments>https://tigerdemon.tistory.com/223#entry223comment</comments>
      <pubDate>Wed, 1 Jul 2026 10:51:12 +0900</pubDate>
    </item>
    <item>
      <title>Webhacking.kr 39번 문제 풀이</title>
      <link>https://tigerdemon.tistory.com/221</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://webhacking.kr/challenge/bonus-10/&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://webhacking.kr/challenge/bonus-10/&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1782796751597&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;Chellenge 39&quot; data-og-description=&quot;&quot; data-og-host=&quot;webhacking.kr&quot; data-og-source-url=&quot;https://webhacking.kr/challenge/bonus-10/&quot; data-og-url=&quot;https://webhacking.kr/challenge/bonus-10/&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://webhacking.kr/challenge/bonus-10/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://webhacking.kr/challenge/bonus-10/&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;Chellenge 39&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;webhacking.kr&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;405&quot; data-origin-height=&quot;116&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bTmOp2/dJMcai4ROH6/yEZvANmxk1tggQka1zg0d1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bTmOp2/dJMcai4ROH6/yEZvANmxk1tggQka1zg0d1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bTmOp2/dJMcai4ROH6/yEZvANmxk1tggQka1zg0d1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbTmOp2%2FdJMcai4ROH6%2FyEZvANmxk1tggQka1zg0d1%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;405&quot; height=&quot;116&quot; data-origin-width=&quot;405&quot; data-origin-height=&quot;116&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;39번 문제에 들어가면 위 사진처럼 뜬다. 이때 view-source 를 누르면 아래 코드가 나온다.&lt;/p&gt;
&lt;pre id=&quot;code_1782796815132&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;?php
  include &quot;../../config.php&quot;;
  if($_GET['view_source']) view_source();
?&amp;gt;&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
&amp;lt;title&amp;gt;Chellenge 39&amp;lt;/title&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
&amp;lt;?php
  $db = dbconnect();
  if($_POST['id']){
    $_POST['id'] = str_replace(&quot;\\&quot;,&quot;&quot;,$_POST['id']);
    $_POST['id'] = str_replace(&quot;'&quot;,&quot;''&quot;,$_POST['id']);
    $_POST['id'] = substr($_POST['id'],0,15);
    $result = mysqli_fetch_array(mysqli_query($db,&quot;select 1 from member where length(id)&amp;lt;14 and id='{$_POST['id']}&quot;));
    if($result[0] == 1){
      solve(39);
    }
  }
?&amp;gt;
&amp;lt;form method=post action=index.php&amp;gt;
&amp;lt;input type=text name=id maxlength=15 size=30&amp;gt;
&amp;lt;input type=submit&amp;gt;
&amp;lt;/form&amp;gt;
&amp;lt;a href=?view_source=1&amp;gt;view-source&amp;lt;/a&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&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;1단게 : 백슬래시가 제거된다.&lt;/p&gt;
&lt;pre id=&quot;code_1782796900796&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$_POST['id'] = str_replace(&quot;\\&quot;,&quot;&quot;,$_POST['id']);&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;nbsp; 작은 따옴표가 ' ' 로 변경된다.&lt;/p&gt;
&lt;pre id=&quot;code_1782796946276&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$_POST['id'] = str_replace(&quot;'&quot;,&quot;''&quot;,$_POST['id']);&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3단계&amp;nbsp; : 길이가 제한된다. 16번째부터 잘린다.&lt;/p&gt;
&lt;pre id=&quot;code_1782796978437&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$_POST['id'] = substr($_POST['id'],0,15);&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;이 문제는 '가 ''로 바뀌는 부분에 중심을 둬야한다. 따라서 admin 입력 후 띄어쓰기를 하고 마지막에 '를 추가하면 된다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bFzRJp/dJMcahdVmUP/eLdnmREEupkTOoMS0XTKMK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bFzRJp/dJMcahdVmUP/eLdnmREEupkTOoMS0XTKMK/img.png&quot; data-origin-width=&quot;398&quot; data-origin-height=&quot;122&quot; data-is-animation=&quot;false&quot; style=&quot;width: 53.5259%; margin-right: 10px;&quot; data-widthpercent=&quot;54.16&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bFzRJp/dJMcahdVmUP/eLdnmREEupkTOoMS0XTKMK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbFzRJp%2FdJMcahdVmUP%2FeLdnmREEupkTOoMS0XTKMK%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;398&quot; height=&quot;122&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/kM5lN/dJMb99NDyH1/xBeOKck2VU0TaeG2JYLta0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/kM5lN/dJMb99NDyH1/xBeOKck2VU0TaeG2JYLta0/img.png&quot; data-origin-width=&quot;475&quot; data-origin-height=&quot;172&quot; data-is-animation=&quot;false&quot; style=&quot;width: 45.3113%;&quot; data-widthpercent=&quot;45.84&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/kM5lN/dJMb99NDyH1/xBeOKck2VU0TaeG2JYLta0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkM5lN%2FdJMb99NDyH1%2FxBeOKck2VU0TaeG2JYLta0%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;475&quot; height=&quot;172&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>2026-SWLUG/웹해킹</category>
      <author>호랑2D</author>
      <guid isPermaLink="true">https://tigerdemon.tistory.com/221</guid>
      <comments>https://tigerdemon.tistory.com/221#entry221comment</comments>
      <pubDate>Tue, 30 Jun 2026 14:31:57 +0900</pubDate>
    </item>
  </channel>
</rss>