<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>레오의 프론트엔드 개발</title>
    <link>https://art1st.tistory.com/</link>
    <description></description>
    <language>ko</language>
    <pubDate>Fri, 15 May 2026 13:44:50 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>art1st</managingEditor>
    <image>
      <title>레오의 프론트엔드 개발</title>
      <url>https://tistory1.daumcdn.net/tistory/2773056/attach/5da5fc6941a94d4db68198f5ae7758e3</url>
      <link>https://art1st.tistory.com</link>
    </image>
    <item>
      <title>웹 접근성: 모두를 위한 웹 개발의 중요성</title>
      <link>https://art1st.tistory.com/entry/%EC%A0%9C%EB%AA%A9-%EC%9B%B9-%EC%A0%91%EA%B7%BC%EC%84%B1-%EB%AA%A8%EB%91%90%EB%A5%BC-%EC%9C%84%ED%95%9C-%EC%9B%B9-%EA%B0%9C%EB%B0%9C%EC%9D%98-%EC%A4%91%EC%9A%94%EC%84%B1</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;social-sharing-default.jpg&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;450&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/CketQ/btsiQktyPgl/OMT6cdekZ3nHjfFLafxrbk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/CketQ/btsiQktyPgl/OMT6cdekZ3nHjfFLafxrbk/img.jpg&quot; data-alt=&quot;W3C WAI-ARIA&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/CketQ/btsiQktyPgl/OMT6cdekZ3nHjfFLafxrbk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FCketQ%2FbtsiQktyPgl%2FOMT6cdekZ3nHjfFLafxrbk%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;800&quot; height=&quot;450&quot; data-filename=&quot;social-sharing-default.jpg&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;450&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;W3C WAI-ARIA&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;안녕하세요!&amp;nbsp;오늘은&amp;nbsp;웹&amp;nbsp;접근성에&amp;nbsp;대해&amp;nbsp;이야기해보려고&amp;nbsp;합니다.&amp;nbsp;웹&amp;nbsp;접근성은&amp;nbsp;모두를&amp;nbsp;위한&amp;nbsp;웹&amp;nbsp;개발의&amp;nbsp;중요한&amp;nbsp;요소입니다.&amp;nbsp;웹&amp;nbsp;개발자로서&amp;nbsp;우리는&amp;nbsp;가능한&amp;nbsp;한&amp;nbsp;많은&amp;nbsp;사람들에게&amp;nbsp;웹&amp;nbsp;사이트와&amp;nbsp;애플리케이션을&amp;nbsp;이용할&amp;nbsp;수&amp;nbsp;있는&amp;nbsp;기회를&amp;nbsp;제공해야&amp;nbsp;합니다.&lt;br /&gt;&lt;br /&gt;그렇다면&amp;nbsp;웹&amp;nbsp;접근성이&amp;nbsp;정확히&amp;nbsp;무엇을&amp;nbsp;의미하는지&amp;nbsp;알아보겠습니다.&amp;nbsp;웹&amp;nbsp;접근성은&amp;nbsp;장애를&amp;nbsp;가진&amp;nbsp;사람들을&amp;nbsp;포함하여&amp;nbsp;모든&amp;nbsp;사용자가&amp;nbsp;웹&amp;nbsp;콘텐츠에&amp;nbsp;접근하고&amp;nbsp;이해하며&amp;nbsp;상호&amp;nbsp;작용할&amp;nbsp;수&amp;nbsp;있는&amp;nbsp;능력을&amp;nbsp;의미합니다.&amp;nbsp;시각적,&amp;nbsp;청각적,&amp;nbsp;지적,&amp;nbsp;물리적&amp;nbsp;장애,&amp;nbsp;고령화&amp;nbsp;등&amp;nbsp;다양한&amp;nbsp;사용자&amp;nbsp;그룹을&amp;nbsp;고려해야&amp;nbsp;합니다.&lt;br /&gt;&lt;br /&gt;웹&amp;nbsp;접근성을&amp;nbsp;개선하는&amp;nbsp;가장&amp;nbsp;중요한&amp;nbsp;단계&amp;nbsp;중&amp;nbsp;하나는&amp;nbsp;웹&amp;nbsp;표준을&amp;nbsp;준수하는&amp;nbsp;것입니다.&amp;nbsp;웹&amp;nbsp;표준은&amp;nbsp;웹&amp;nbsp;사이트를&amp;nbsp;구축하는&amp;nbsp;데&amp;nbsp;사용되는&amp;nbsp;기술과&amp;nbsp;규칙의&amp;nbsp;집합입니다.&amp;nbsp;HTML,&amp;nbsp;CSS,&amp;nbsp;JavaScript&amp;nbsp;등과&amp;nbsp;같은&amp;nbsp;웹&amp;nbsp;표준을&amp;nbsp;준수하면&amp;nbsp;웹&amp;nbsp;콘텐츠가&amp;nbsp;여러&amp;nbsp;플랫폼과&amp;nbsp;장치에서&amp;nbsp;일관되게&amp;nbsp;작동하고&amp;nbsp;장애를&amp;nbsp;가진&amp;nbsp;사용자가&amp;nbsp;더&amp;nbsp;쉽게&amp;nbsp;접근할&amp;nbsp;수&amp;nbsp;있습니다.&lt;br /&gt;&lt;br /&gt;웹&amp;nbsp;접근성을&amp;nbsp;향상시키기&amp;nbsp;위해&amp;nbsp;몇&amp;nbsp;가지&amp;nbsp;고려해야&amp;nbsp;할&amp;nbsp;사항이&amp;nbsp;있습니다.&amp;nbsp;첫째로,&amp;nbsp;명료하고&amp;nbsp;구조적인&amp;nbsp;콘텐츠를&amp;nbsp;제공해야&amp;nbsp;합니다.&amp;nbsp;웹&amp;nbsp;페이지의&amp;nbsp;구조를&amp;nbsp;올바르게&amp;nbsp;마크업하여&amp;nbsp;스크린&amp;nbsp;리더&amp;nbsp;등&amp;nbsp;보조&amp;nbsp;기술이&amp;nbsp;정보를&amp;nbsp;이해하고&amp;nbsp;제공할&amp;nbsp;수&amp;nbsp;있도록&amp;nbsp;해야&amp;nbsp;합니다.&lt;br /&gt;&lt;br /&gt;둘째로,&amp;nbsp;대체&amp;nbsp;텍스트를&amp;nbsp;제공해야&amp;nbsp;합니다.&amp;nbsp;이미지,&amp;nbsp;오디오,&amp;nbsp;비디오&amp;nbsp;등의&amp;nbsp;미디어&amp;nbsp;요소에는&amp;nbsp;대체&amp;nbsp;텍스트를&amp;nbsp;제공하여&amp;nbsp;시각적으로&amp;nbsp;이해할&amp;nbsp;수&amp;nbsp;없는&amp;nbsp;사용자에게&amp;nbsp;정보를&amp;nbsp;전달해야&amp;nbsp;합니다.&lt;br /&gt;&lt;br /&gt;셋째로,&amp;nbsp;키보드&amp;nbsp;접근성을&amp;nbsp;고려해야&amp;nbsp;합니다.&amp;nbsp;모든&amp;nbsp;기능과&amp;nbsp;상호&amp;nbsp;작용이&amp;nbsp;키보드로&amp;nbsp;수행될&amp;nbsp;수&amp;nbsp;있도록&amp;nbsp;설계되어야&amp;nbsp;합니다.&amp;nbsp;마우스를&amp;nbsp;사용할&amp;nbsp;수&amp;nbsp;없는&amp;nbsp;사람들에게&amp;nbsp;편의성을&amp;nbsp;제공하는&amp;nbsp;것입니다.&lt;br /&gt;&lt;br /&gt;마지막으로,&amp;nbsp;컬러&amp;nbsp;대비도&amp;nbsp;중요한&amp;nbsp;요소입니다.&amp;nbsp;적절한&amp;nbsp;색상&amp;nbsp;대비를&amp;nbsp;사용하여&amp;nbsp;콘텐츠의&amp;nbsp;가시성을&amp;nbsp;개선해야&amp;nbsp;합니다.&amp;nbsp;시각적&amp;nbsp;장애를&amp;nbsp;가진&amp;nbsp;사람들은&amp;nbsp;색상&amp;nbsp;대비를&amp;nbsp;통해&amp;nbsp;정보를&amp;nbsp;이해할&amp;nbsp;수&amp;nbsp;있습니다.&lt;br /&gt;&lt;br /&gt;웹&amp;nbsp;접근성은&amp;nbsp;윤리적인&amp;nbsp;책임이자&amp;nbsp;법적인&amp;nbsp;요구사항입니다.&amp;nbsp;장애를&amp;nbsp;가진&amp;nbsp;사람들도&amp;nbsp;모든&amp;nbsp;기능과&amp;nbsp;서비스에&amp;nbsp;접근할&amp;nbsp;권리가&amp;nbsp;있습니다.&amp;nbsp;웹&amp;nbsp;접근성을&amp;nbsp;개선하는&amp;nbsp;것은&amp;nbsp;더&amp;nbsp;나은&amp;nbsp;사용자&amp;nbsp;경험을&amp;nbsp;제공하고&amp;nbsp;더&amp;nbsp;많은&amp;nbsp;사람들을&amp;nbsp;포용하는&amp;nbsp;웹을&amp;nbsp;만드는&amp;nbsp;것을&amp;nbsp;의미합니다.&lt;br /&gt;&lt;br /&gt;이&amp;nbsp;글을&amp;nbsp;통해&amp;nbsp;웹&amp;nbsp;접근성에&amp;nbsp;대한&amp;nbsp;중요성과&amp;nbsp;개선&amp;nbsp;방법을&amp;nbsp;알려드렸습니다.&amp;nbsp;개발자로서&amp;nbsp;우리는&amp;nbsp;웹&amp;nbsp;접근성을&amp;nbsp;고려하여&amp;nbsp;사용자들에게&amp;nbsp;포괄적인&amp;nbsp;경험을&amp;nbsp;제공하는데&amp;nbsp;주력해야&amp;nbsp;합니다.&amp;nbsp;누구나&amp;nbsp;웹을&amp;nbsp;자유롭게&amp;nbsp;이용할&amp;nbsp;수&amp;nbsp;있는&amp;nbsp;세상을&amp;nbsp;만들기&amp;nbsp;위해&amp;nbsp;함께&amp;nbsp;노력합시다.&amp;nbsp;감사합니다!&lt;/p&gt;</description>
      <author>art1st</author>
      <guid isPermaLink="true">https://art1st.tistory.com/6</guid>
      <comments>https://art1st.tistory.com/entry/%EC%A0%9C%EB%AA%A9-%EC%9B%B9-%EC%A0%91%EA%B7%BC%EC%84%B1-%EB%AA%A8%EB%91%90%EB%A5%BC-%EC%9C%84%ED%95%9C-%EC%9B%B9-%EA%B0%9C%EB%B0%9C%EC%9D%98-%EC%A4%91%EC%9A%94%EC%84%B1#entry6comment</comments>
      <pubDate>Wed, 7 Jun 2023 13:23:55 +0900</pubDate>
    </item>
    <item>
      <title>[TIL] React 렌더링 동작에 대한 (거의) 완벽한 가이드</title>
      <link>https://art1st.tistory.com/entry/TIL-React-%EB%A0%8C%EB%8D%94%EB%A7%81-%EB%8F%99%EC%9E%91%EC%97%90-%EB%8C%80%ED%95%9C-%EA%B1%B0%EC%9D%98-%EC%99%84%EB%B2%BD%ED%95%9C-%EA%B0%80%EC%9D%B4%EB%93%9C</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;어제 React의 렌더링 관련 깊은 동작방식에 대해 그동안 봤던 포스팅중에 가장 자세한 내용의 번역본을 읽게 되어 꼼꼼히 읽어보았다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;어느정도 React의 동작 방식을 알고 있었지만 이번 글을 보면서 실무에서 겪었던 경우들을 떠올리며 &quot;아하&quot; 하는 부분들이 있었고 한층 더 React 컴포넌트 설계 및 렌더링 최적화에 대해 이해할 수 있었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이번 글에서 가장 눈여겨 보았던 부분은 Memoization 과 관련해 &lt;i&gt;Props 참조 최적화&lt;/i&gt; 단락이었는데, React의 관점에서 참조가 변경되는 것을 감지하는 방식과 최적화를 위해 Memoization을 사용하는 최선의 방식과, 당연하다고 생각했던 것과 반대되는 관점들을 소개한 부분이 인상 깊었다. 내가 깊게 생각해본 적이 없었던 부분이라 흥미로웠고 결과적으로 실무 프로젝트의 코드베이스에서도 최적화할 수 있는 부분을 인지하고 찾아낼 수 있게 된 것 같다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 프론트엔드와 관련된 좋은 해외 아티클을 찾아 번역하는 Korean FE Article 이라는 곳의 메일링 리스트 구독을 했다..!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;항상 생각하는 것은, 한번 읽는 것보다는 두번, 세번 읽고, 그보다 좋은 것은 실제 코드로 구현하고 경험해보는 것이라고 생각하기 때문에 항상 과거에 겪었던 상황들과 대비해보고, 의문이 드는 코드는 직접 작성하고 확인해보도록 해야겠다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;번역본&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://velog.io/@superlipbalm/blogged-answers-a-mostly-complete-guide-to-react-rendering-behavior&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://velog.io/@superlipbalm/blogged-answers-a-mostly-complete-guide-to-react-rendering-behavior&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1668607203618&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;(번역) 블로그 답변: React 렌더링 동작에 대한 (거의) 완벽한 가이드&quot; data-og-description=&quot;리액트 렌더링의 동작 방식과 컨텍스트 및 React-Redux 사용이 렌더링에 미치는 영향에 대한 세부 사항&quot; data-og-host=&quot;velog.io&quot; data-og-source-url=&quot;https://velog.io/@superlipbalm/blogged-answers-a-mostly-complete-guide-to-react-rendering-behavior&quot; data-og-url=&quot;https://velog.io/@superlipbalm/blogged-answers-a-mostly-complete-guide-to-react-rendering-behavior&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/oDNLp/hyQA78IOf8/T6la2LDYjAdiUa92ikhpkK/img.png?width=300&amp;amp;height=300&amp;amp;face=0_0_300_300,https://scrap.kakaocdn.net/dn/bPfqNA/hyQBRwsHLW/ot3Ebiixi8EY8uY2PXJ3Ak/img.png?width=300&amp;amp;height=300&amp;amp;face=0_0_300_300,https://scrap.kakaocdn.net/dn/SGGZn/hyQBgYVIYL/l1DPBR1BFgQyO4dtiGsrZk/img.png?width=761&amp;amp;height=969&amp;amp;face=0_0_761_969&quot;&gt;&lt;a href=&quot;https://velog.io/@superlipbalm/blogged-answers-a-mostly-complete-guide-to-react-rendering-behavior&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://velog.io/@superlipbalm/blogged-answers-a-mostly-complete-guide-to-react-rendering-behavior&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/oDNLp/hyQA78IOf8/T6la2LDYjAdiUa92ikhpkK/img.png?width=300&amp;amp;height=300&amp;amp;face=0_0_300_300,https://scrap.kakaocdn.net/dn/bPfqNA/hyQBRwsHLW/ot3Ebiixi8EY8uY2PXJ3Ak/img.png?width=300&amp;amp;height=300&amp;amp;face=0_0_300_300,https://scrap.kakaocdn.net/dn/SGGZn/hyQBgYVIYL/l1DPBR1BFgQyO4dtiGsrZk/img.png?width=761&amp;amp;height=969&amp;amp;face=0_0_761_969');&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;(번역) 블로그 답변: React 렌더링 동작에 대한 (거의) 완벽한 가이드&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;리액트 렌더링의 동작 방식과 컨텍스트 및 React-Redux 사용이 렌더링에 미치는 영향에 대한 세부 사항&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;size14&quot;&gt;&lt;span style=&quot;color: #666666;&quot;&gt;번역본을 작성해주신 &lt;a style=&quot;color: #666666;&quot; href=&quot;https://velog.io/@superlipbalm&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Chanhee Kim&lt;/a&gt; 님에게 감사드립니다!&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;원문&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://blog.isquaredsoftware.com/2020/05/blogged-answers-a-mostly-complete-guide-to-react-rendering-behavior/#rendering-process-overview&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://blog.isquaredsoftware.com/2020/05/blogged-answers-a-mostly-complete-guide-to-react-rendering-behavior/#rendering-process-overview&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1668607226316&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;Blogged Answers: A (Mostly) Complete Guide to React Rendering Behavior&quot; data-og-description=&quot;Details on how React rendering behaves, and how use of Context and React-Redux affect rendering&quot; data-og-host=&quot;blog.isquaredsoftware.com&quot; data-og-source-url=&quot;https://blog.isquaredsoftware.com/2020/05/blogged-answers-a-mostly-complete-guide-to-react-rendering-behavior/#rendering-process-overview&quot; data-og-url=&quot;https://blog.isquaredsoftware.com/2020/05/blogged-answers-a-mostly-complete-guide-to-react-rendering-behavior/&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://blog.isquaredsoftware.com/2020/05/blogged-answers-a-mostly-complete-guide-to-react-rendering-behavior/#rendering-process-overview&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://blog.isquaredsoftware.com/2020/05/blogged-answers-a-mostly-complete-guide-to-react-rendering-behavior/#rendering-process-overview&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;Blogged Answers: A (Mostly) Complete Guide to React Rendering Behavior&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Details on how React rendering behaves, and how use of Context and React-Redux affect rendering&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;blog.isquaredsoftware.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;</description>
      <category>TIL</category>
      <category>react</category>
      <category>React Context</category>
      <category>React Memoization</category>
      <category>React Rendering</category>
      <author>art1st</author>
      <guid isPermaLink="true">https://art1st.tistory.com/5</guid>
      <comments>https://art1st.tistory.com/entry/TIL-React-%EB%A0%8C%EB%8D%94%EB%A7%81-%EB%8F%99%EC%9E%91%EC%97%90-%EB%8C%80%ED%95%9C-%EA%B1%B0%EC%9D%98-%EC%99%84%EB%B2%BD%ED%95%9C-%EA%B0%80%EC%9D%B4%EB%93%9C#entry5comment</comments>
      <pubDate>Wed, 16 Nov 2022 23:32:01 +0900</pubDate>
    </item>
    <item>
      <title>2022-11-01 개발 로그</title>
      <link>https://art1st.tistory.com/entry/2022-11-01-%EA%B0%9C%EB%B0%9C-%EB%A1%9C%EA%B7%B8</link>
      <description>&lt;h1&gt;art1st.me 프로젝트&lt;/h1&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;개인 웹사이트 기본 구성&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;AdSense 인증을 위해 DNS 루트 레코드 블로그로 이동&lt;/li&gt;
&lt;li&gt;로그인 및 사용자 관리를 위해 AWS Cognito User Pool 생성
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;AWS SES DKIM 인증 및 설정&lt;/li&gt;
&lt;li&gt;인증 Provider 설정 (Google via GCP)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;api.art1st.me Nest.js 구성
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;M2344 버스 추적 세팅&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>개발 로그</category>
      <author>art1st</author>
      <guid isPermaLink="true">https://art1st.tistory.com/4</guid>
      <comments>https://art1st.tistory.com/entry/2022-11-01-%EA%B0%9C%EB%B0%9C-%EB%A1%9C%EA%B7%B8#entry4comment</comments>
      <pubDate>Tue, 1 Nov 2022 23:44:41 +0900</pubDate>
    </item>
    <item>
      <title>잘 알려진 URI(well-known URI) 사용해서 더 편리한 웹사이트 만들기</title>
      <link>https://art1st.tistory.com/entry/%EC%9E%98-%EC%95%8C%EB%A0%A4%EC%A7%84-URIwell-known-URI-%EC%82%AC%EC%9A%A9%ED%95%B4%EC%84%9C-%EB%8D%94-%ED%8E%B8%EB%A6%AC%ED%95%9C-%EC%9B%B9%EC%82%AC%EC%9D%B4%ED%8A%B8-%EB%A7%8C%EB%93%A4%EA%B8%B0</link>
      <description>&lt;p data-ke-size=&quot;size18&quot;&gt;최근 해킹 관련된 이슈들이 많이 부각되면서 저도 대부분의 웹사이트를 모바일 OS나 브라우저 자체적으로 임의 비밀번호를 생성해주고 자동으로 키체인에 저장하는 방식으로 바꾸기로 했습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span&gt;바꾸는 와중에 iOS와 Chrome 브라우저에서 공통적으로 저장된 사이트에 대해&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;비밀번호를 변경&lt;/b&gt;하는 버튼을 표시해주는 걸 발견했는데요&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;iOS.jpg&quot; data-origin-width=&quot;1125&quot; data-origin-height=&quot;2436&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/chgaP5/btrMG3Rhw7S/okCgSFJXSNSiuqKksc5YB1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/chgaP5/btrMG3Rhw7S/okCgSFJXSNSiuqKksc5YB1/img.jpg&quot; data-alt=&quot;iOS 설정 -&amp;amp;gt; 암호에 저장된 웹사이트&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/chgaP5/btrMG3Rhw7S/okCgSFJXSNSiuqKksc5YB1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FchgaP5%2FbtrMG3Rhw7S%2FokCgSFJXSNSiuqKksc5YB1%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;284&quot; height=&quot;615&quot; data-filename=&quot;iOS.jpg&quot; data-origin-width=&quot;1125&quot; data-origin-height=&quot;2436&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;iOS 설정 -&amp;gt; 암호에 저장된 웹사이트&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2022-09-21 오후 9.10.22.jpg&quot; data-origin-width=&quot;1356&quot; data-origin-height=&quot;150&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ec4418/btrMI3Jym3I/SHaY80KrTX4N3crDijKpv1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ec4418/btrMI3Jym3I/SHaY80KrTX4N3crDijKpv1/img.jpg&quot; data-alt=&quot;Chrome 설정 &amp;amp;gt; 자동완성 &amp;amp;gt; 비밀번호 관리자에 저장된 웹사이트&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ec4418/btrMI3Jym3I/SHaY80KrTX4N3crDijKpv1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fec4418%2FbtrMI3Jym3I%2FSHaY80KrTX4N3crDijKpv1%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1356&quot; height=&quot;150&quot; data-filename=&quot;스크린샷 2022-09-21 오후 9.10.22.jpg&quot; data-origin-width=&quot;1356&quot; data-origin-height=&quot;150&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Chrome 설정 &amp;gt; 자동완성 &amp;gt; 비밀번호 관리자에 저장된 웹사이트&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;웹개발자 입장에서 저는 이런 생각이 들었습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;웹사이트마다 비밀번호 변경 페이지 주소와 방식이 제각기 다를 텐데 어떻게 저 버튼을 표시하지?&lt;/span&gt;&lt;/b&gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;라는 생각이 드는채로 일단 눌러봤습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그랬더니 그냥 웹사이트 메인 화면만 뜨고 비밀번호 변경과 관련된 내용은 전혀 나타나지 않습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;혹시나 해서 다른 도메인의 웹사이트들도 시도해봤는데 똑같고 심지어 404 페이지도 나타납니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그러다 어떤 사이트에서 실제로 비밀번호 변경 페이지가 나타났습니다!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;바로 &lt;a href=&quot;https://twitter.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;twitter.com&lt;/a&gt; 이었습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2022-09-21 오후 9.37.54.png&quot; data-origin-width=&quot;2524&quot; data-origin-height=&quot;1240&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/57wcL/btrMIdsES2Z/ctKHaX61rOsFCAQkXcyWYk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/57wcL/btrMIdsES2Z/ctKHaX61rOsFCAQkXcyWYk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/57wcL/btrMIdsES2Z/ctKHaX61rOsFCAQkXcyWYk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F57wcL%2FbtrMIdsES2Z%2FctKHaX61rOsFCAQkXcyWYk%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;2524&quot; height=&quot;1240&quot; data-filename=&quot;스크린샷 2022-09-21 오후 9.37.54.png&quot; data-origin-width=&quot;2524&quot; data-origin-height=&quot;1240&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이때부터 탐구심이 발동하기 시작했습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;왜 어떤 사이트는 되고 어떤 사이트는 안될까 하는 호기심에 동작원리를 찾아보았는데요, 생각보다 단순했습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;해당 버튼을 누르면 처음 연결되는 웹사이트 주소가 이렇게 생겼습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;https://twitter.com/&lt;b&gt;.well-known/change-password&lt;/b&gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이후에는 아래 주소로 이동합니다&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;https://twitter.com/&lt;b&gt;settings/password&lt;/b&gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;/.well-known/change-password &lt;/b&gt;로&amp;nbsp;접속하면 웹서버가 그 웹사이트의 비밀번호 변경 페이지 주소로 301 Redirect 하는 원리였던 것이죠.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그렇다면 이번엔 /.well-known/change-password 가 뭔지 찾아봐야겠죠.&lt;/p&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;i&gt;change-password&lt;/i&gt; 는 대충 알겠는데 &lt;i&gt;.well-known&lt;/i&gt; 은 생소한 키워드였습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 키워드가 바로 이 포스팅의 주제가 되는 &lt;b&gt;Well-Known Uniform Resource Identifiers&amp;nbsp;&lt;/b&gt;입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure id=&quot;og_1663768345439&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;RFC 8615 - Well-Known Uniform Resource Identifiers (URIs)&quot; data-og-description=&quot;&quot; data-og-host=&quot;datatracker.ietf.org&quot; data-og-source-url=&quot;https://datatracker.ietf.org/doc/html/rfc8615&quot; data-og-url=&quot;https://datatracker.ietf.org/doc/html/rfc8615&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://datatracker.ietf.org/doc/html/rfc8615&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://datatracker.ietf.org/doc/html/rfc8615&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;RFC 8615 - Well-Known Uniform Resource Identifiers (URIs)&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;datatracker.ietf.org&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2022-09-21 오후 9.58.19.png&quot; data-origin-width=&quot;1362&quot; data-origin-height=&quot;1750&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b6OoE8/btrMK0ZmAWi/Wh78iggK85RFpOVuFwuND1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b6OoE8/btrMK0ZmAWi/Wh78iggK85RFpOVuFwuND1/img.png&quot; data-alt=&quot;RFC 8615&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b6OoE8/btrMK0ZmAWi/Wh78iggK85RFpOVuFwuND1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb6OoE8%2FbtrMK0ZmAWi%2FWh78iggK85RFpOVuFwuND1%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;388&quot; height=&quot;499&quot; data-filename=&quot;스크린샷 2022-09-21 오후 9.58.19.png&quot; data-origin-width=&quot;1362&quot; data-origin-height=&quot;1750&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;RFC 8615&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 RFC를 요약하면&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;1. 대부분의 웹 어플리케이션에서 공통적으로 존재하고 자주 쓰이는 정보들이 있지만 위치가 제각각이라 접근하기가 어려워..&lt;br /&gt;2. 그럼 그걸 표준화해서 리소스 이름을 정하고 쉽게 접근할 수 있게 하자!&lt;br /&gt;3. 아무나 추가하면 남용 위험성이 있으니 전문가가 심사해서 추가하자.&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;정도로 볼 수 있을 것 같습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;현재 사용되는 리소스 목록은 아래 웹사이트에서 확인할 수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.iana.org/assignments/well-known-uris/well-known-uris.xhtml&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://www.iana.org/assignments/well-known-uris/well-known-uris.xhtml&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1663766952654&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;Well-Known URIs&quot; data-og-description=&quot;posh IETF [RFC7711] permanent The suffix &amp;quot;posh&amp;quot; is expected to be followed by an additional path component consisting of a service name (say, &amp;quot;spice&amp;quot;) and a file extension of &amp;quot;.json&amp;quot;, resulting in a full path of, for instance, &amp;quot;/.well-known/posh/spice.json&quot; data-og-host=&quot;www.iana.org&quot; data-og-source-url=&quot;https://www.iana.org/assignments/well-known-uris/well-known-uris.xhtml&quot; data-og-url=&quot;https://www.iana.org/assignments/well-known-uris/well-known-uris.xhtml&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://www.iana.org/assignments/well-known-uris/well-known-uris.xhtml&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.iana.org/assignments/well-known-uris/well-known-uris.xhtml&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;Well-Known URIs&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;posh IETF [RFC7711] permanent The suffix &quot;posh&quot; is expected to be followed by an additional path component consisting of a service name (say, &quot;spice&quot;) and a file extension of &quot;.json&quot;, resulting in a full path of, for instance, &quot;/.well-known/posh/spice.json&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.iana.org&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;처음 제출된 것은 2010년도로, 초안에 포함된 리소스들을 살펴보면 프로토콜과 관련해서 메타데이터 정보를 포함하는 것들이 대부분입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;애초 용도는 이러한 개별 프로토콜, 웹 어플리케이션에서 필요한 메타데이터들을 쉽게 접근하기 위한 것이었던 거죠.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.rfc-editor.org/rfc/rfc5785&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;폐기된 RFC&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하지만 최근에는 OS 제조사, 브라우저 벤더사, 즉 빅테크 기업들이 이 표준을 활용해 일반적인 웹사이트 기능에도 이 표준을 활용하는 듯합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그 결과가 OS, 브라우저가 공통적으로 &lt;b&gt;비밀번호 변경&lt;/b&gt; 버튼을 제공하는 것이구요.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;간단하게 확인한 well-known URI를 통해 비밀번호 변경이 가능한 사이트들은 아래 사이트들입니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Google (&lt;a href=&quot;https://accounts.google.com/.well-known/change-password&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://accounts.google.com/.well-known/change-password&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Twitter (&lt;a href=&quot;https://twitter.com/.well-known/change-password&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://twitter.com/.well-known/change-password&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Facebook (&lt;a href=&quot;https://facebook.com/.well-known/change-password&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://facebook.com/.well-known/change-password&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;GitHub (&lt;a href=&quot;https://github.com/.well-known/change-password&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://github.com/.well-known/change-password&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Netflix (&lt;a href=&quot;https://netflix.com/.well-known/change-password&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://netflix.com/.well-known/change-password&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&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>웹</category>
      <category>change-password</category>
      <category>well-known</category>
      <category>비밀번호변경</category>
      <category>잘알려진uri</category>
      <category>홈페이지</category>
      <category>회원가입</category>
      <author>art1st</author>
      <guid isPermaLink="true">https://art1st.tistory.com/3</guid>
      <comments>https://art1st.tistory.com/entry/%EC%9E%98-%EC%95%8C%EB%A0%A4%EC%A7%84-URIwell-known-URI-%EC%82%AC%EC%9A%A9%ED%95%B4%EC%84%9C-%EB%8D%94-%ED%8E%B8%EB%A6%AC%ED%95%9C-%EC%9B%B9%EC%82%AC%EC%9D%B4%ED%8A%B8-%EB%A7%8C%EB%93%A4%EA%B8%B0#entry3comment</comments>
      <pubDate>Wed, 21 Sep 2022 22:58:58 +0900</pubDate>
    </item>
  </channel>
</rss>