<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>개발하는 금융인</title>
    <link>https://princox.tistory.com/</link>
    <description>투자, 프로그래밍, IT에 대한 글을 씁니다.</description>
    <language>ko</language>
    <pubDate>Sun, 12 Apr 2026 07:25:21 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>공청</managingEditor>
    <image>
      <title>개발하는 금융인</title>
      <url>https://tistory1.daumcdn.net/tistory/1458045/attach/dfc9aec4351c4c6f8da7a0cb3b5a1dae</url>
      <link>https://princox.tistory.com</link>
    </image>
    <item>
      <title>(day 1) 코딩배워사업하자! 챌린지 시작</title>
      <link>https://princox.tistory.com/120</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;이 글은&amp;nbsp;Sonnet 3.7, GPT-4.5이 나온 시점이며&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Google에서는 Gemini Code Assist가 발표된지 4일이 된 날입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;생각해보면, LLM이 발달하면서 소프트웨어 개발의 생산성이 엄청나게 높아졌지만&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;개인적으로는 바뀌는 것이 많이 없었습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;몇 개의 코딩에만 사용해봤고, 실제로 제품을 찍어내거나 하지는 않았죠.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;오늘부로 수익화를 위한 여러 웹 사이트를 런칭해보고자 합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;개인적으로 많은 웹 페이지를 만들어봤고, 수익을 보게 된 프로젝트도 있지만&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사회적으로 가치를 부여하면서도 꾸준히 유지보수하고 있는 제품은 없었습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;---&lt;/p&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.inflearn.com/course/mbti%ED%85%8C%EC%8A%A4%ED%8A%B8-%EC%88%98%EC%9D%B5%ED%98%95-%EC%9B%B9%EC%82%AC%EC%9D%B4%ED%8A%B8-%EC%BD%94%EB%B0%B0%ED%88%AC&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.inflearn.com/course/mbti%ED%85%8C%EC%8A%A4%ED%8A%B8-%EC%88%98%EC%9D%B5%ED%98%95-%EC%9B%B9%EC%82%AC%EC%9D%B4%ED%8A%B8-%EC%BD%94%EB%B0%B0%ED%88%AC&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1740842016113&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;(2025) MBTI 테스트 기반 수익형 웹사이트 만들기 - &amp;lt;코딩 배워 사업하자&amp;gt; 강의 | 코배투 - 인프런&quot; data-og-description=&quot;코배투 | , [사진]내 웹사이트로 수익을 창출하는 방법?  &amp;ldquo;잠자는 동안에도 돈이 들어오는 방법을 찾아내지 못한다면 당신은 죽을때까지 일을 해야만 할 것이다.&amp;rdquo; 워런 버핏의 유명한 격언이&quot; data-og-host=&quot;www.inflearn.com&quot; data-og-source-url=&quot;https://www.inflearn.com/course/mbti%ED%85%8C%EC%8A%A4%ED%8A%B8-%EC%88%98%EC%9D%B5%ED%98%95-%EC%9B%B9%EC%82%AC%EC%9D%B4%ED%8A%B8-%EC%BD%94%EB%B0%B0%ED%88%AC&quot; data-og-url=&quot;https://www.inflearn.com/course/mbti%ED%85%8C%EC%8A%A4%ED%8A%B8-%EC%88%98%EC%9D%B5%ED%98%95-%EC%9B%B9%EC%82%AC%EC%9D%B4%ED%8A%B8-%EC%BD%94%EB%B0%B0%ED%88%AC&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/CeYGF/hyYmI6PkQl/iFjYCukqsVzydVG0V2YQE1/img.png?width=1200&amp;amp;height=781&amp;amp;face=0_0_1200_781,https://scrap.kakaocdn.net/dn/b5gMMr/hyYmKcvaWx/dMFcuDoOJ636HTdOpIM541/img.png?width=1200&amp;amp;height=781&amp;amp;face=0_0_1200_781,https://scrap.kakaocdn.net/dn/bvZ7Ky/hyYjMps7Rr/uhCHYKdHnIkLDstqgs2Jak/img.png?width=1200&amp;amp;height=781&amp;amp;face=0_0_1200_781&quot;&gt;&lt;a href=&quot;https://www.inflearn.com/course/mbti%ED%85%8C%EC%8A%A4%ED%8A%B8-%EC%88%98%EC%9D%B5%ED%98%95-%EC%9B%B9%EC%82%AC%EC%9D%B4%ED%8A%B8-%EC%BD%94%EB%B0%B0%ED%88%AC&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.inflearn.com/course/mbti%ED%85%8C%EC%8A%A4%ED%8A%B8-%EC%88%98%EC%9D%B5%ED%98%95-%EC%9B%B9%EC%82%AC%EC%9D%B4%ED%8A%B8-%EC%BD%94%EB%B0%B0%ED%88%AC&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/CeYGF/hyYmI6PkQl/iFjYCukqsVzydVG0V2YQE1/img.png?width=1200&amp;amp;height=781&amp;amp;face=0_0_1200_781,https://scrap.kakaocdn.net/dn/b5gMMr/hyYmKcvaWx/dMFcuDoOJ636HTdOpIM541/img.png?width=1200&amp;amp;height=781&amp;amp;face=0_0_1200_781,https://scrap.kakaocdn.net/dn/bvZ7Ky/hyYjMps7Rr/uhCHYKdHnIkLDstqgs2Jak/img.png?width=1200&amp;amp;height=781&amp;amp;face=0_0_1200_781');&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;(2025) MBTI 테스트 기반 수익형 웹사이트 만들기 - &amp;lt;코딩 배워 사업하자&amp;gt; 강의 | 코배투 - 인프런&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;코배투 | , [사진]내 웹사이트로 수익을 창출하는 방법?  &amp;ldquo;잠자는 동안에도 돈이 들어오는 방법을 찾아내지 못한다면 당신은 죽을때까지 일을 해야만 할 것이다.&amp;rdquo; 워런 버핏의 유명한 격언이&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.inflearn.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;가장 먼저 찾은 것은 &quot;레퍼런스&quot;입니다.&lt;/p&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;이 강의를 수강하는 것을 시작으로 1인 개발자로서의 솔로프리너(solopreneur)의 길을 시작하려고 합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;목표는 2가지입니다.&lt;/p&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;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;- 애드센스&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;- 결제&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;- 어필리에이트 등&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. 유지 비용이 적게 드는 웹 페이지를 구현할 것&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;- SSG (정적 페이지 생성)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;- 저렴한 CDN과 호스팅 찾기&lt;/p&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;이 2가지만 시작하더라도 상당한 경험치를 얻을 수 있다고 생각합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;부가적으로 하려는 것은 데이터 수집을 체계적으로 해보는 것입니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;가장 기본적인 단계인 구글 애널리틱스를 이벤트 별로 나누어서 프론트엔드에 녹여볼 예정입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>개인적인 이야기</category>
      <category>수익화</category>
      <author>공청</author>
      <guid isPermaLink="true">https://princox.tistory.com/120</guid>
      <comments>https://princox.tistory.com/120#entry120comment</comments>
      <pubDate>Sun, 2 Mar 2025 00:16:51 +0900</pubDate>
    </item>
    <item>
      <title>언섹시 비즈니스 리서치 클럽 3기를 마치며</title>
      <link>https://princox.tistory.com/119</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1000&quot; data-origin-height=&quot;1249&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bzAyyb/btsAWiZdCUO/y3srfriKph9sH6a2ioKkG0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bzAyyb/btsAWiZdCUO/y3srfriKph9sH6a2ioKkG0/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bzAyyb/btsAWiZdCUO/y3srfriKph9sH6a2ioKkG0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbzAyyb%2FbtsAWiZdCUO%2Fy3srfriKph9sH6a2ioKkG0%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;483&quot; height=&quot;603&quot; data-origin-width=&quot;1000&quot; data-origin-height=&quot;1249&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;살면서 하고 싶은 일이 있으신가요?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;저는 저만의 제품을 만들어서, 그것을 사용하고 있는 유저를 보고 싶습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;nas daily를 세운 누세이르 야신은 회사를 세워야하는 이유로 &quot;개인은 시간이 지나면 죽지만, 회사는 창업자의 뜻을 이어갈 수 있기 때문&quot;이라고 했습니다.&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;그렇게 제품을 만들고 창업을 준비하다가 찾은 것이 &quot;언섹시 비즈니스&quot; 라는 이메일 리스트였습니다.&lt;/p&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://maily.so/unsexybusinesskr&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://maily.so/unsexybusinesskr&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1701101762973&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;object&quot; data-og-title=&quot;언섹시 비즈니스&quot; data-og-description=&quot;화려하지 않은 비즈니스들을 소개드립니다.&quot; data-og-host=&quot;maily.so&quot; data-og-source-url=&quot;https://maily.so/unsexybusinesskr&quot; data-og-url=&quot;https://maily.so/unsexybusinesskr&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bQEMdt/hyUB7cWAZ0/N9tKxYc1bME6FPknRAhjmk/img.png?width=512&amp;amp;height=512&amp;amp;face=0_0_512_512,https://scrap.kakaocdn.net/dn/cITYhi/hyUE82jNO8/PFRFQf5hSVWuDpBT8Z4WfK/img.png?width=512&amp;amp;height=512&amp;amp;face=0_0_512_512&quot;&gt;&lt;a href=&quot;https://maily.so/unsexybusinesskr&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://maily.so/unsexybusinesskr&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bQEMdt/hyUB7cWAZ0/N9tKxYc1bME6FPknRAhjmk/img.png?width=512&amp;amp;height=512&amp;amp;face=0_0_512_512,https://scrap.kakaocdn.net/dn/cITYhi/hyUE82jNO8/PFRFQf5hSVWuDpBT8Z4WfK/img.png?width=512&amp;amp;height=512&amp;amp;face=0_0_512_512');&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;언섹시 비즈니스&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;maily.so&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;이곳에서는 리서치 클럽이라는 것을 운영합니다. 곧 4기를 뽑을 예정인가보네요.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://breakbook.oopy.io/unsexy&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://breakbook.oopy.io/unsexy&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1701101783551&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;언섹시 리서치 클럽 4기&quot; data-og-description=&quot;쏟아지는 해외 비즈니스 케이스&amp;hellip; 리서치를 하고 싶지만 계속 미루고 있지 않으셨나요? 언섹시와 함께 &amp;ldquo;되는 비즈니스의 비밀&amp;rdquo;을 찾아보아요!&quot; data-og-host=&quot;breakbook.oopy.io&quot; data-og-source-url=&quot;https://breakbook.oopy.io/unsexy&quot; data-og-url=&quot;https://breakbook.oopy.io/unsexy&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/RADvF/hyUCfWkmlX/2SWy7DxlLniub0hvfQmY8k/img.png?width=2000&amp;amp;height=317&amp;amp;face=0_0_2000_317,https://scrap.kakaocdn.net/dn/byeBmf/hyUFalxF0O/ZVx6qIbmP8d5ekFM84NgZK/img.png?width=2000&amp;amp;height=317&amp;amp;face=0_0_2000_317,https://scrap.kakaocdn.net/dn/uFrDw/hyUB5lSvpR/1uGRUPUjwCXFpp7YkK3ew1/img.png?width=2000&amp;amp;height=2457&amp;amp;face=0_0_2000_2457&quot;&gt;&lt;a href=&quot;https://breakbook.oopy.io/unsexy&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://breakbook.oopy.io/unsexy&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/RADvF/hyUCfWkmlX/2SWy7DxlLniub0hvfQmY8k/img.png?width=2000&amp;amp;height=317&amp;amp;face=0_0_2000_317,https://scrap.kakaocdn.net/dn/byeBmf/hyUFalxF0O/ZVx6qIbmP8d5ekFM84NgZK/img.png?width=2000&amp;amp;height=317&amp;amp;face=0_0_2000_317,https://scrap.kakaocdn.net/dn/uFrDw/hyUB5lSvpR/1uGRUPUjwCXFpp7YkK3ew1/img.png?width=2000&amp;amp;height=2457&amp;amp;face=0_0_2000_2457');&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;언섹시 리서치 클럽 4기&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;쏟아지는 해외 비즈니스 케이스&amp;hellip; 리서치를 하고 싶지만 계속 미루고 있지 않으셨나요? 언섹시와 함께 &amp;ldquo;되는 비즈니스의 비밀&amp;rdquo;을 찾아보아요!&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;breakbook.oopy.io&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;저는 3기로 참여하면서 20일간 평일동안 매일 리서치를 받아가면서 후기를 작성했는데요.&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;h2 data-ke-size=&quot;size26&quot;&gt;1. 리서리 클럽을 하면서 배운 것&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;첫번째, 실천을 해야한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;- 실천하지 않으면 그 어떤 아이디어도 의미가 없습니다. 결국 제품이 나와야 세상에 영향을 미칠 수 있으니까요.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;두번째, 마케팅은 중요하다.&lt;/p&gt;
&lt;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;&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;- 최종 목표는 &quot;무언가를 하는 것&quot;. 사업은 돈에 관한 것이 아닙니다. 자신과 타인을 위한 꿈을 실현시키는 것입니다.&lt;/p&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;2. 앞으로 시도할 일&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 전체적으로 build, ship, scale의 단계를 반복하는 사이클을 할 예정&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- React Native를 통해 빠른 프로토타이핑과 제품 개발&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;h2 data-ke-size=&quot;size26&quot;&gt;3. 리서치 클럽에서 얻은 몇 가지 좋은 아티클 공유&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;1. 하루는 길지만 십년은 짧습니다. - 샘 알트먼&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;아티클 : The days are long but the decades are short by Sam Altman&lt;/li&gt;
&lt;li&gt;링크 : &lt;a href=&quot;https://blog.samaltman.com/the-days-are-long-but-the-decades-are-short&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://blog.samaltman.com/the-days-are-long-but-the-decades-are-short&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;figure id=&quot;og_1701102213090&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;The days are long but the decades are short&quot; data-og-description=&quot;I turned 30 last week and a friend asked me if I'd figured out any life advice in the past decade worth passing on. &amp;nbsp;I'm somewhat hesitant to publish this because I think these lists usually seem...&quot; data-og-host=&quot;blog.samaltman.com&quot; data-og-source-url=&quot;https://blog.samaltman.com/the-days-are-long-but-the-decades-are-short&quot; data-og-url=&quot;https://blog.samaltman.com/the-days-are-long-but-the-decades-are-short&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://blog.samaltman.com/the-days-are-long-but-the-decades-are-short&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://blog.samaltman.com/the-days-are-long-but-the-decades-are-short&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;The days are long but the decades are short&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;I turned 30 last week and a friend asked me if I'd figured out any life advice in the past decade worth passing on. &amp;nbsp;I'm somewhat hesitant to publish this because I think these lists usually seem...&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;blog.samaltman.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. Life is Short - 폴 그레이엄&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;a href=&quot;http://www.paulgraham.com/vb.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;http://www.paulgraham.com/vb.html&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;figure id=&quot;og_1701102399189&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;Life is Short&quot; data-og-description=&quot;January 2016Life is short, as everyone knows. When I was a kid I used to wonder about this. Is life actually short, or are we really complaining about its finiteness? Would we be just as likely to feel life was short if we lived 10 times as long?Since ther&quot; data-og-host=&quot;www.paulgraham.com&quot; data-og-source-url=&quot;http://www.paulgraham.com/vb.html&quot; data-og-url=&quot;http://www.paulgraham.com/vb.html&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;http://www.paulgraham.com/vb.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;http://www.paulgraham.com/vb.html&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url();&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;Life is Short&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;January 2016Life is short, as everyone knows. When I was a kid I used to wonder about this. Is life actually short, or are we really complaining about its finiteness? Would we be just as likely to feel life was short if we lived 10 times as long?Since ther&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.paulgraham.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;3. 4&amp;nbsp;mistakes&amp;nbsp;to&amp;nbsp;avoid&amp;nbsp;to&amp;nbsp;build&amp;nbsp;a&amp;nbsp;better&amp;nbsp;1-person&amp;nbsp;business&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.indiehackers.com/post/4-mistakes-to-avoid-to-build-a-better-1-person-business-b6f517f37a&quot;&gt;https://www.indiehackers.com/post/4-mistakes-to-avoid-to-build-a-better-1-person-business-b6f517f37a&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1701102552232&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;4 mistakes to avoid to build a better 1-person business&quot; data-og-description=&quot;Not all businesses are good choices for solo-founders. Some are almost impossible to grow when you're a business of one. But how can you find a business...&quot; data-og-host=&quot;www.indiehackers.com&quot; data-og-source-url=&quot;https://www.indiehackers.com/post/4-mistakes-to-avoid-to-build-a-better-1-person-business-b6f517f37a&quot; data-og-url=&quot;https://www.indiehackers.com/post/4-mistakes-to-avoid-to-build-a-better-1-person-business-b6f517f37a&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/cmUaSz/hyUB2iqhOV/4W2UMTP3J4Z9JOv8G5ZEu0/img.png?width=840&amp;amp;height=420&amp;amp;face=0_0_840_420,https://scrap.kakaocdn.net/dn/wluPs/hyUCbsRBXA/VOscTsm7lbY0k7r6V1lM3K/img.png?width=840&amp;amp;height=420&amp;amp;face=0_0_840_420&quot;&gt;&lt;a href=&quot;https://www.indiehackers.com/post/4-mistakes-to-avoid-to-build-a-better-1-person-business-b6f517f37a&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.indiehackers.com/post/4-mistakes-to-avoid-to-build-a-better-1-person-business-b6f517f37a&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/cmUaSz/hyUB2iqhOV/4W2UMTP3J4Z9JOv8G5ZEu0/img.png?width=840&amp;amp;height=420&amp;amp;face=0_0_840_420,https://scrap.kakaocdn.net/dn/wluPs/hyUCbsRBXA/VOscTsm7lbY0k7r6V1lM3K/img.png?width=840&amp;amp;height=420&amp;amp;face=0_0_840_420');&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;4 mistakes to avoid to build a better 1-person business&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Not all businesses are good choices for solo-founders. Some are almost impossible to grow when you're a business of one. But how can you find a business...&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.indiehackers.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;4. How I built a $1M business on 2 hours a day&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://patwalls.com/how-i-built-a-1m-business-on-2-hours-a-day&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://patwalls.com/how-i-built-a-1m-business-on-2-hours-a-day&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1701102691958&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;How I built a $1M business on 2 hours a day&quot; data-og-description=&quot;How I built a $1M business on 2 hours a day. This is the story of how I changed my life from a Starbucks: [Image] POV: It's 2017 and: - I'm 5 years into &amp;quot;working for the man&amp;quot; - I'm $50,000 in debt - I feel like there's no way out Me: &amp;quot;I'm going to start a &quot; data-og-host=&quot;patwalls.com&quot; data-og-source-url=&quot;https://patwalls.com/how-i-built-a-1m-business-on-2-hours-a-day&quot; data-og-url=&quot;https://patwalls.com/how-i-built-a-1m-business-on-2-hours-a-day&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/cJ1Nlp/hyUE2VlCdT/7FdRlhfgVQLYw6mklYT87K/img.jpg?width=1200&amp;amp;height=630&amp;amp;face=1078_510_1121_558,https://scrap.kakaocdn.net/dn/bIIHj9/hyUB4AvK0j/ev9WUqjfkSLg28exyX2nM0/img.png?width=1200&amp;amp;height=676&amp;amp;face=0_0_1200_676&quot;&gt;&lt;a href=&quot;https://patwalls.com/how-i-built-a-1m-business-on-2-hours-a-day&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://patwalls.com/how-i-built-a-1m-business-on-2-hours-a-day&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/cJ1Nlp/hyUE2VlCdT/7FdRlhfgVQLYw6mklYT87K/img.jpg?width=1200&amp;amp;height=630&amp;amp;face=1078_510_1121_558,https://scrap.kakaocdn.net/dn/bIIHj9/hyUB4AvK0j/ev9WUqjfkSLg28exyX2nM0/img.png?width=1200&amp;amp;height=676&amp;amp;face=0_0_1200_676');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;How I built a $1M business on 2 hours a day&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;How I built a $1M business on 2 hours a day. This is the story of how I changed my life from a Starbucks: [Image] POV: It's 2017 and: - I'm 5 years into &quot;working for the man&quot; - I'm $50,000 in debt - I feel like there's no way out Me: &quot;I'm going to start a&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;patwalls.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;5. Derek&amp;nbsp;Sivers:&amp;nbsp;New&amp;nbsp;Kind&amp;nbsp;of&amp;nbsp;Entrepreneur.&amp;nbsp;10&amp;nbsp;Lessons&amp;nbsp;from&amp;nbsp;&amp;ldquo;Anything&amp;nbsp;You&amp;nbsp;Want&amp;rdquo;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.playforthoughts.com/blog/derek-sivers-anything-you-want&quot;&gt;https://www.playforthoughts.com/blog/derek-sivers-anything-you-want&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1701102774966&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;Derek Sivers: New Kind of Entrepreneur. 10 Lessons from &amp;ldquo;Anything You Want&amp;rdquo; &amp;mdash; Play For Thoughts&quot; data-og-description=&quot;Derek Sivers is a very colorful character in the world of entrepreneurs. I am a great enthusiast of his approach to entrepreneurship. Derek proposes a new model of the entrepreneur who is the creator first. And he describes it all in his best-selling book,&quot; data-og-host=&quot;www.playforthoughts.com&quot; data-og-source-url=&quot;https://www.playforthoughts.com/blog/derek-sivers-anything-you-want&quot; data-og-url=&quot;https://www.playforthoughts.com/blog/derek-sivers-anything-you-want&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/Et3z4/hyUFbkri9M/Hqv5kDl8KLI88KBqptQXOK/img.jpg?width=1000&amp;amp;height=1000&amp;amp;face=268_378_564_701,https://scrap.kakaocdn.net/dn/NPH38/hyUE2nuyda/1lBhmOROOUEUJQiS7nmzV1/img.jpg?width=1000&amp;amp;height=1000&amp;amp;face=268_378_564_701,https://scrap.kakaocdn.net/dn/cgJMiU/hyUB3ayDEh/VY993hMORi5RcRRMOP1OLk/img.jpg?width=1000&amp;amp;height=1000&amp;amp;face=268_378_564_701&quot;&gt;&lt;a href=&quot;https://www.playforthoughts.com/blog/derek-sivers-anything-you-want&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.playforthoughts.com/blog/derek-sivers-anything-you-want&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/Et3z4/hyUFbkri9M/Hqv5kDl8KLI88KBqptQXOK/img.jpg?width=1000&amp;amp;height=1000&amp;amp;face=268_378_564_701,https://scrap.kakaocdn.net/dn/NPH38/hyUE2nuyda/1lBhmOROOUEUJQiS7nmzV1/img.jpg?width=1000&amp;amp;height=1000&amp;amp;face=268_378_564_701,https://scrap.kakaocdn.net/dn/cgJMiU/hyUB3ayDEh/VY993hMORi5RcRRMOP1OLk/img.jpg?width=1000&amp;amp;height=1000&amp;amp;face=268_378_564_701');&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;Derek Sivers: New Kind of Entrepreneur. 10 Lessons from &amp;ldquo;Anything You Want&amp;rdquo; &amp;mdash; Play For Thoughts&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Derek Sivers is a very colorful character in the world of entrepreneurs. I am a great enthusiast of his approach to entrepreneurship. Derek proposes a new model of the entrepreneur who is the creator first. And he describes it all in his best-selling book,&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.playforthoughts.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;언섹시 비즈니스 리서치 클럽에 관심이 있으시다면,&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;저는 강추드립니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>경제, 금융</category>
      <category>언섹시비즈니스</category>
      <author>공청</author>
      <guid isPermaLink="true">https://princox.tistory.com/119</guid>
      <comments>https://princox.tistory.com/119#entry119comment</comments>
      <pubDate>Tue, 28 Nov 2023 01:36:26 +0900</pubDate>
    </item>
    <item>
      <title>[책 추천] 리액트로 배우는 소켓 프로그래밍. 실시간 양방향 통신을 배워보자</title>
      <link>https://princox.tistory.com/118</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;458&quot; data-origin-height=&quot;625&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/tq3gt/btsubIKejXa/CWaFdAbXgOOK5sZJYEDrCk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/tq3gt/btsubIKejXa/CWaFdAbXgOOK5sZJYEDrCk/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/tq3gt/btsubIKejXa/CWaFdAbXgOOK5sZJYEDrCk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Ftq3gt%2FbtsubIKejXa%2FCWaFdAbXgOOK5sZJYEDrCk%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;289&quot; height=&quot;394&quot; data-origin-width=&quot;458&quot; data-origin-height=&quot;625&quot;/&gt;&lt;/span&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;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;리액트의 개념, Node.js의 개념, 소켓 통신을 설명하기 위해 OSI 7계층을 설명합니다. 웹 프로그래밍을 배우는 사람 중에 생각 외로 네트워크와 그 내부의 프로토콜에 대해서 깊게 공부하는 사람은 없습니다. 이미 누군가가 래핑해놓은 것들을 사용하며 추상적으로만 이해합니다. 이론의 배경을 아는 것은 매우 중요합니다. 그런 것들이 우리들로 하여금 추후에 작은 부분의 버그와 충돌을 심도깊게 이해하고, 쉽게 고칠 수 있게 해줍니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;TCP 서버를 Node.js로 구성할 때는 net 모듈을 사용합니다. Node.js는 이미 설치할 때부터 가지고 있는 built-in module이 있는데, 그 중에 net 모듈은 TCP 서버와 클라이언트를 모두 구현할 때 사용합니다. 서버 측을 구현할 때는 ws모듈을 사용하죠. ws는 깃허브로 오픈소스화 되어있는 라이브러리로, 웹 소켓을 쉽게 사용하게 해줍니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;node.js&lt;/span&gt;&lt;span&gt;의&lt;/span&gt;&lt;span&gt; built-in &lt;/span&gt;&lt;span&gt;모듈의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;자세한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;용례와&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;설명은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이곳에서&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;확인할&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure id=&quot;og_1694873003652&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;Net | Node.js v20.6.1 Documentation&quot; data-og-description=&quot;Net# Source Code: lib/net.js The node:net module provides an asynchronous network API for creating stream-based TCP or IPC servers (net.createServer()) and clients (net.createConnection()). It can be accessed using: const net = require('node:net'); copy IP&quot; data-og-host=&quot;nodejs.org&quot; data-og-source-url=&quot;https://nodejs.org/api/net.html#netcreateserveroptions-connectionlistener&quot; data-og-url=&quot;https://nodejs.org/api/net.html#netcreateserveroptions-connectionlistener&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://nodejs.org/api/net.html#netcreateserveroptions-connectionlistener&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://nodejs.org/api/net.html#netcreateserveroptions-connectionlistener&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;Net | Node.js v20.6.1 Documentation&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Net# Source Code: lib/net.js The node:net module provides an asynchronous network API for creating stream-based TCP or IPC servers (net.createServer()) and clients (net.createConnection()). It can be accessed using: const net = require('node:net'); copy IP&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;nodejs.org&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그것을 토대로 간단한 리액트 앱을 만듭니다. 클라이언트 측이기 때문에 MDN 문서를 참고하는 것이 좋습니다. 이 책 덕분에 Websocket 객체에 대해서 공부할 수 있게 되었습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/API/WebSocket&quot;&gt;https://developer.mozilla.org/en-US/docs/Web/API/WebSocket&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1694873037004&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;WebSocket - Web APIs | MDN&quot; data-og-description=&quot;The WebSocket object provides the API for creating and managing a WebSocket connection to a server, as well as for sending and receiving data on the connection.&quot; data-og-host=&quot;developer.mozilla.org&quot; data-og-source-url=&quot;https://developer.mozilla.org/en-US/docs/Web/API/WebSocket&quot; data-og-url=&quot;https://developer.mozilla.org/en-US/docs/Web/API/WebSocket&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/qVHRq/hyTVSttU7U/6GbqqbXuGBtHekL7GiQie1/img.png?width=1920&amp;amp;height=1080&amp;amp;face=0_0_1920_1080&quot;&gt;&lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/API/WebSocket&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://developer.mozilla.org/en-US/docs/Web/API/WebSocket&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/qVHRq/hyTVSttU7U/6GbqqbXuGBtHekL7GiQie1/img.png?width=1920&amp;amp;height=1080&amp;amp;face=0_0_1920_1080');&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;WebSocket - Web APIs | MDN&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;The WebSocket object provides the API for creating and managing a WebSocket connection to a server, as well as for sending and receiving data on the connection.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;developer.mozilla.org&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4장부터는 본격적으로 socket 라이브러리를 활용하여 실제 서비스를 만들어보는 경험을 가집니다. 이론만 안다고하여 쌀이나오지는 않죠. 우리는 무언가를 계속 만들어봐야합니다. 이런 경험들은 단순하지만 취업과 창업의 시작이 될 수 있습니다.&lt;/p&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개의 간단한 예제와 4개의 큰 규모의 예시를 제공합니다. 간단한 채팅, 인스타그램 실시간 알림, 극장 좌석 예약서비스, 구글문서, 슬랙 메신저를 만듭니다. 간단한 채팅을 만들 때부터 실시간으로 통신한다는 것에 대한 개념이 잡힙니다. 서버에 연결되고, 비연결되는 것을 나눠서 보여주면서 &amp;lsquo;실제로 이런 웹 서비스들은 이렇게 만들어지는구나&amp;hellip;&amp;rsquo; 라는 감탄을 자아내게 됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;단순히 웹 서비스를 클론하면서 HTTP 기반으로 GET, POST 메서드만 사용해본 초보 개발자에게는 많은 도움이 될 뿐만 아니라 Node.js의 웹 소켓 부분을 경험하기에 최고의 서적이라고 생각합니다. 소켓 형태의 서비스는 생각 외로 많이 사용됩니다. 실시간 가격을 가져오거나, 어떤 상태를 실시간으로 읽어올 때 모두 사용되죠.&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;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;부록에서는&lt;/span&gt; sock.js&lt;span&gt;와&lt;/span&gt; mongoDB&lt;span&gt;를&lt;/span&gt; &lt;span&gt;소개합니다&lt;/span&gt;.&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure id=&quot;og_1694872676940&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;profile&quot; data-og-title=&quot;SockJS&quot; data-og-description=&quot;WebSocket emulation. SockJS has 10 repositories available. Follow their code on GitHub.&quot; data-og-host=&quot;github.com&quot; data-og-source-url=&quot;https://github.com/sockjs&quot; data-og-url=&quot;https://github.com/sockjs&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/cfzC16/hyTV1cRKjz/tUpPIuQvdselemSD6MgmHK/img.png?width=280&amp;amp;height=280&amp;amp;face=0_0_280_280&quot;&gt;&lt;a href=&quot;https://github.com/sockjs&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://github.com/sockjs&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/cfzC16/hyTV1cRKjz/tUpPIuQvdselemSD6MgmHK/img.png?width=280&amp;amp;height=280&amp;amp;face=0_0_280_280');&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;SockJS&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;WebSocket emulation. SockJS has 10 repositories available. Follow their code on GitHub.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;github.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;figure id=&quot;og_1694872765723&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;MongoDB: 애플리케이션 데이터 플랫폼&quot; data-og-description=&quot;업계 최고의 최신 데이터베이스를 토대로 구축된 애플리케이션 데이터 플랫폼을 사용해 아이디어를 더욱 빠르게 실현하세요. MongoDB는 데이터를 손쉽게 처리할 수 있도록 지원합니다.&quot; data-og-host=&quot;www.mongodb.com&quot; data-og-source-url=&quot;https://www.mongodb.com/&quot; data-og-url=&quot;https://www.mongodb.com/ko-kr&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bxPvZZ/hyTV39BMhd/lde8wUEkj2sabE2mRC0fb1/img.png?width=1200&amp;amp;height=601&amp;amp;face=0_0_1200_601&quot;&gt;&lt;a href=&quot;https://www.mongodb.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.mongodb.com/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bxPvZZ/hyTV39BMhd/lde8wUEkj2sabE2mRC0fb1/img.png?width=1200&amp;amp;height=601&amp;amp;face=0_0_1200_601');&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;MongoDB: 애플리케이션 데이터 플랫폼&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;업계 최고의 최신 데이터베이스를 토대로 구축된 애플리케이션 데이터 플랫폼을 사용해 아이디어를 더욱 빠르게 실현하세요. MongoDB는 데이터를 손쉽게 처리할 수 있도록 지원합니다.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.mongodb.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;NoSQL계의 선두주자인 몽고디비를 사용해보는 것은 빠른 프로토타이핑과 여러 스타트업 취업에 매우 유리한 선택입니다.&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;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;초보&lt;span&gt; &lt;/span&gt;개발자에게&lt;span&gt; &lt;/span&gt;도움이&lt;span&gt; &lt;/span&gt;될만한&lt;span&gt; &lt;/span&gt;책이&lt;span&gt; &lt;/span&gt;많았습니다&lt;span&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&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/plowx/btsuh5KSiGR/zXnrjew0Q95J8Yxi96YQEk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/plowx/btsuh5KSiGR/zXnrjew0Q95J8Yxi96YQEk/img.jpg&quot; data-origin-width=&quot;458&quot; data-origin-height=&quot;684&quot; data-is-animation=&quot;false&quot; width=&quot;333&quot; height=&quot;497&quot; style=&quot;width: 31.1843%; margin-right: 10px;&quot; data-widthpercent=&quot;31.93&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/plowx/btsuh5KSiGR/zXnrjew0Q95J8Yxi96YQEk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fplowx%2Fbtsuh5KSiGR%2FzXnrjew0Q95J8Yxi96YQEk%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;458&quot; height=&quot;684&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ts8a3/btsudOi70DH/9M7lWVtvc3jfNnwjqfAKQK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ts8a3/btsudOi70DH/9M7lWVtvc3jfNnwjqfAKQK/img.jpg&quot; data-origin-width=&quot;458&quot; data-origin-height=&quot;626&quot; data-is-animation=&quot;false&quot; style=&quot;width: 34.0736%; margin-right: 10px;&quot; data-widthpercent=&quot;34.88&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ts8a3/btsudOi70DH/9M7lWVtvc3jfNnwjqfAKQK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fts8a3%2FbtsudOi70DH%2F9M7lWVtvc3jfNnwjqfAKQK%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;458&quot; height=&quot;626&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cI0gEU/btst7Rm7RsQ/GThwHB7AUYriVZ18PV8Ne1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cI0gEU/btst7Rm7RsQ/GThwHB7AUYriVZ18PV8Ne1/img.jpg&quot; data-origin-width=&quot;458&quot; data-origin-height=&quot;658&quot; data-is-animation=&quot;false&quot; style=&quot;width: 32.4165%;&quot; data-widthpercent=&quot;33.19&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cI0gEU/btst7Rm7RsQ/GThwHB7AUYriVZ18PV8Ne1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcI0gEU%2Fbtst7Rm7RsQ%2FGThwHB7AUYriVZ18PV8Ne1%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;458&quot; height=&quot;658&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;이제 막 코딩을 시작한 분은 파이썬 퀵스타트를,&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;간단한 모바일 게임을 만들고 싶은 분은 유니티 게임 프로그래밍을,&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;어느 정도 개발을 해본 사람들에게는 UI/UX에 대해서 공부할만한 사용자를 사로잡는 UXUI 실전가이드를 추천드립니다.&lt;/span&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;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;여러 책을 읽으면서 실력을 쌓아가고 새로운 개념을 배우는 것은 너무 즐거운 과정입니다.&lt;/span&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;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;올해 추석 연휴도 꽤 기네요. 책을 읽으면서 실력을 쌓는 시간을 가져야겠습니다.&lt;/span&gt;&lt;/p&gt;</description>
      <category>React (Front-end)</category>
      <category>리액트</category>
      <category>웹소켓</category>
      <author>공청</author>
      <guid isPermaLink="true">https://princox.tistory.com/118</guid>
      <comments>https://princox.tistory.com/118#entry118comment</comments>
      <pubDate>Sat, 16 Sep 2023 23:00:13 +0900</pubDate>
    </item>
    <item>
      <title>미국에서 소고기 가격이 오르면, 식당들이 돈을 번다.</title>
      <link>https://princox.tistory.com/117</link>
      <description>&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;jose-ignacio-pompe-s-Z-h0fEiBM-unsplash.jpg&quot; data-origin-width=&quot;6000&quot; data-origin-height=&quot;4000&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dambiY/btsrIfxEHU1/QQPry17kAm7K38dafWJAI1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dambiY/btsrIfxEHU1/QQPry17kAm7K38dafWJAI1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dambiY/btsrIfxEHU1/QQPry17kAm7K38dafWJAI1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdambiY%2FbtsrIfxEHU1%2FQQPry17kAm7K38dafWJAI1%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;437&quot; height=&quot;291&quot; data-filename=&quot;jose-ignacio-pompe-s-Z-h0fEiBM-unsplash.jpg&quot; data-origin-width=&quot;6000&quot; data-origin-height=&quot;4000&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;오랜만에 재미있는 영상을 봤다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;미국에서 여러가지 이유로 소고기의 가격이 급등했으며, 향후 3년간은 회복이 어렵다고 한다.&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;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;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://youtu.be/oyWb_L_sXFI&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://youtu.be/oyWb_L_sXFI&lt;/a&gt;&lt;/p&gt;
&lt;figure data-ke-type=&quot;video&quot; data-ke-style=&quot;alignCenter&quot; data-video-host=&quot;youtube&quot; data-video-url=&quot;https://www.youtube.com/watch?v=oyWb_L_sXFI&quot; data-video-thumbnail=&quot;https://scrap.kakaocdn.net/dn/b3GlEG/hyTIF74UzB/moxGFwJLBuT2LsscfmLDlk/img.jpg?width=1280&amp;amp;height=720&amp;amp;face=512_134_696_336&quot; data-video-width=&quot;860&quot; data-video-height=&quot;484&quot; data-video-origin-width=&quot;860&quot; data-video-origin-height=&quot;484&quot; data-ke-mobilestyle=&quot;widthContent&quot; data-video-title=&quot;미국 소고기 가격이 심상치 않습니다 (서병수 애널리스트)&quot; data-original-url=&quot;&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/oyWb_L_sXFI&quot; width=&quot;860&quot; height=&quot;484&quot; frameborder=&quot;&quot; allowfullscreen=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;figcaption style=&quot;display: none;&quot;&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;1. 미국, 소고기 가격 급등하다.&lt;/h2&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;size18&quot;&gt;공급업자들이 소 떼를 줄였고, 가뭄으로 풀이 줄어들면서 비싼 사료를 먹이게 되면서 그렇게 됐다.&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;size18&quot;&gt;어쨌든 현상은 이미 발생했다.&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;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;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;2. 외식업은 돈을 많이 벌었다.&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;3416&quot; data-origin-height=&quot;1519&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/oRNuS/btsr0XnO4sK/T9HEK7qR4gvyboHrLrCvg0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/oRNuS/btsr0XnO4sK/T9HEK7qR4gvyboHrLrCvg0/img.png&quot; data-alt=&quot;S&amp;amp;amp;P500 지수(파란색)과 나머지 세 개의 레스토랑을 비교한 모습&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/oRNuS/btsr0XnO4sK/T9HEK7qR4gvyboHrLrCvg0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FoRNuS%2Fbtsr0XnO4sK%2FT9HEK7qR4gvyboHrLrCvg0%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;3416&quot; height=&quot;1519&quot; data-origin-width=&quot;3416&quot; data-origin-height=&quot;1519&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;S&amp;amp;P500 지수(파란색)과 나머지 세 개의 레스토랑을 비교한 모습&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;소고기가 2배가 올랐다고해서 스테이크 가격이 2배 오를리 없다.&lt;/p&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;그러니까 소고기의 원가가 만약에 스테이크 가격의 20%를 차지하고 있었다면, 20%에 해당하는 금액이 2배가 된 것 뿐이다.&lt;/p&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;&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다덴 레스토랑, 쉐이크쉑, 텍사스 로드하우스는 S&amp;amp;P500 지수를 추월하여 지난 1년동안 엄청나게 올랐다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;3. 다른 외식업 회사는 무엇이 있을까?&lt;/h2&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;해당 섹터를 커버하고 있는 ETF의 구성종목을 확인하는 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;외식업에서 유명한 ETF는 &quot;EATZ&quot;라는 티커의 ETF이다.&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;891&quot; data-origin-height=&quot;1044&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/eJwkY2/btsrR2EmbLC/HLczyiWhu59ZRop3PiK4ak/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/eJwkY2/btsrR2EmbLC/HLczyiWhu59ZRop3PiK4ak/img.png&quot; data-alt=&quot;EATZ ETF의 구성 종목들&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/eJwkY2/btsrR2EmbLC/HLczyiWhu59ZRop3PiK4ak/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FeJwkY2%2FbtsrR2EmbLC%2FHLczyiWhu59ZRop3PiK4ak%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;394&quot; height=&quot;462&quot; data-origin-width=&quot;891&quot; data-origin-height=&quot;1044&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;EATZ ETF의 구성 종목들&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;포함되어있는 금액 순으로 정리했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;눈에 띄는 것은 맥도날드, 도미노피자, 얌!브랜드, 쉐이크쉑, 파파존스가 있다는 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;개별 종목들을 하나씩 뜯어봐야겠다.&lt;/p&gt;</description>
      <category>경제, 금융</category>
      <category>거시경제</category>
      <category>미국주식</category>
      <author>공청</author>
      <guid isPermaLink="true">https://princox.tistory.com/117</guid>
      <comments>https://princox.tistory.com/117#entry117comment</comments>
      <pubDate>Tue, 22 Aug 2023 22:25:37 +0900</pubDate>
    </item>
    <item>
      <title>자바스크립트 함수 호이스팅에 대하여 (함수표현식, 함수선언문)</title>
      <link>https://princox.tistory.com/116</link>
      <description>&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;자바스크립트의 함수는 양자역학의 중첩 상태이다. 관찰하는 순간 결정되는 것이다.&lt;br /&gt;변수가 될 수도, 매개변수가 될 수도, 리턴값이 될 수도 있는 것이여...&lt;/span&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;h2 data-ke-size=&quot;size26&quot;&gt;0. 초능력자 자바스크립트 함수&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;자바스크립트에서 함수는 일급 객체(First Class Object)라고 불린다.&lt;/p&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;크게 3가지가 인터넷에 예시가 많은데,&lt;/p&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;doubleNumber라는 함수를 선언한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;기능은 정말 간단하다. 하나의 숫자를 받으면 2배를 해서 리턴해준다.&lt;/p&gt;
&lt;pre id=&quot;code_1687356699600&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;let doubleNumber = ( number ) =&amp;gt; ( number * 2 ); 
// 화살표 함수 표현식

let doubleNumber2 = function(number) { return number * 2 } 
// 함수 표현식 (function expression)



// 함수 선언문
function doubleNumber3( number ) {
 return number * 2
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위의 3가지는 모두 같은 기능을 구현하는 함수인데 표현하는 방식이 다르다.&lt;/p&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;1. 일급 객체로서 사용되는 조건의 예시&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;첫번째, 변수에 할당할 수 있는가? ( 가능 )&lt;/h3&gt;
&lt;pre id=&quot;code_1687356853197&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;let doubleNumber = ( number ) =&amp;gt; ( number * 2 ); // 화살표 함수 표현식&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;변수에다가 함수를 넣었다. 말도 안돼. 코끼리를 냉장고에 넣다니.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;자바스크립트에서는 가능하다.&lt;/p&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_1687357142786&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// 객체 안에다가 함수를 넣었음.
let exampleObject = { myFunction: doubleNumber }


// 배열에다가 함수를 넣었음.
let myArray = [];
myArray.push( doubleNumber );&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래 사진은 크롬 브라우저에서 직접 실행한 결과이다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-21 오후 11.19.00.png&quot; data-origin-width=&quot;1456&quot; data-origin-height=&quot;584&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/vkX2c/btskSSU9Cdu/jf3zf0YrCoXCg2XtmvDp61/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/vkX2c/btskSSU9Cdu/jf3zf0YrCoXCg2XtmvDp61/img.png&quot; data-alt=&quot;브라우저에서 한 모습. 진짜로 됨&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/vkX2c/btskSSU9Cdu/jf3zf0YrCoXCg2XtmvDp61/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FvkX2c%2FbtskSSU9Cdu%2Fjf3zf0YrCoXCg2XtmvDp61%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;1456&quot; height=&quot;584&quot; data-filename=&quot;스크린샷 2023-06-21 오후 11.19.00.png&quot; data-origin-width=&quot;1456&quot; data-origin-height=&quot;584&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;브라우저에서 한 모습. 진짜로 됨&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;두번째, 매개변수로 전달될 수 있다.&lt;/h3&gt;
&lt;pre id=&quot;code_1687357457638&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;function doubleNumber(number) {
  return number * 2
}

function doubleWhateverYouWant(doubleFunction, doubleIt) {
  // 함수를 매개변수로 전달했다.
  console.log(doubleFunction(doubleIt) + 5);
}

doubleWhateverYouWant(doubleNumber, 2);  // 9
// 2가 들어가서 2배가 된 이후에 5랑 더해져서 9가 됨&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;세번째, 리턴값으로 사용될 수 있다.&lt;/h3&gt;
&lt;pre id=&quot;code_1687357552512&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;function doubleNumber(number) {
  return () =&amp;gt; {
    // 리턴값 자체가 숫자의 2배를 출력하는 함수
    console.log('2배는?' + number * 2);
  }
}

doubleNumber(4)&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 경우에는 콘솔이 찍히지는 않는다. 대신 콘솔을 찍는 &quot;함수 자체&quot;가 리턴된다.&lt;/p&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;h2 data-ke-size=&quot;size26&quot;&gt;2. 그건 그렇다치고, 함수 호이스팅이란게 뭔데?&lt;/h2&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;let doubleNumber로 변수를 선언해두고 거기에 함수를 넣었을 때&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;doubleNumber는 함수인가 변수인가?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&quot;아니 이게 뭔소리여, 그냥 변수에 넣은 함수지~&quot; 라고 할 수 있지만&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;정확히 말하면 변수에다가 함수를 넣는 방식을 &quot;함수 표현식&quot; 이라고 부르며,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;function 함수명(value) {&amp;nbsp; return value; }&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이런 식으로 적는 것을 &quot;함수 선언문&quot;이라고 부르는데&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;두 가지는 약간 다르게 작동한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예시를 보자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1687357959526&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;let a = 10
let b = 20

add1(a, b);
add2(a, b);


function add1(num1, num2) {
    console.log(num1+num2) // 실행되는지를 확인 위해 더한 값을 출력한다.
}

let add2 = (num1, num2) =&amp;gt; num1+num2; // 그냥 더해만 보자.&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;똑같은 기능을 구현한 함수를 만들고 함수가 선언되기 이전에 둘 다 불러봤다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;어떻게 될까?&lt;/p&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;b&gt;아래 함수는 오류를 내며 수행되지 않는다는 것이다.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-21 오후 11.33.23.png&quot; data-origin-width=&quot;1126&quot; data-origin-height=&quot;526&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cNSTN3/btskRcNSaOP/mcJkiclGMgtzUkuVVKkYk0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cNSTN3/btskRcNSaOP/mcJkiclGMgtzUkuVVKkYk0/img.png&quot; data-alt=&quot;add2를 호출한 곳에서 에러가 난다.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cNSTN3/btskRcNSaOP/mcJkiclGMgtzUkuVVKkYk0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcNSTN3%2FbtskRcNSaOP%2FmcJkiclGMgtzUkuVVKkYk0%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;1126&quot; height=&quot;526&quot; data-filename=&quot;스크린샷 2023-06-21 오후 11.33.23.png&quot; data-origin-width=&quot;1126&quot; data-origin-height=&quot;526&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;add2를 호출한 곳에서 에러가 난다.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그 이유는&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;일반 함수로 선언을 하는 경우에는 브라우저가 실행할 때 자바스크립트 엔진이 전체를 해석하면서&lt;/p&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;이것을 &quot;호이스팅&quot; (Hoisting)이라고 부른다.&lt;/p&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;function으로 시작하는 함수 선언문을 사용해야한다.&lt;/p&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;</description>
      <category>Javascript</category>
      <category>함수호이스팅</category>
      <author>공청</author>
      <guid isPermaLink="true">https://princox.tistory.com/116</guid>
      <comments>https://princox.tistory.com/116#entry116comment</comments>
      <pubDate>Wed, 21 Jun 2023 23:35:02 +0900</pubDate>
    </item>
    <item>
      <title>const 선언 / Object.seal() / Object.freeze()</title>
      <link>https://princox.tistory.com/115</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;1. 그들이 건들지 못하게 하라&lt;/h2&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;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;p data-ke-size=&quot;size16&quot;&gt;프론트엔드를 공부하고 있는 지금은 React 라이브러리에 큰 관심이 있는데&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;톺아볼&amp;nbsp;요량으로&amp;nbsp;패스트캠퍼스의&amp;nbsp;React&amp;nbsp;라이브러리의&amp;nbsp;초기&amp;nbsp;버전을&amp;nbsp;구현하는&amp;nbsp;수업을&amp;nbsp;들었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://fastcampus.co.kr/dev_academy_kmt2&quot;&gt;(https://fastcampus.co.kr/dev_academy_kmt2&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;이 강의 뿐만 아니라 유튜브(&lt;a href=&quot;https://youtu.be/Z7ysKNFrMqo&quot;&gt;https://youtu.be/Z7ysKNFrMqo&lt;/a&gt;)에서 보고 배운 것이 있는데&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;바로 Object.seal()과 Object.freeze()이다.&lt;/p&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;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;그 이유는 해당 객체가 &quot;Freezed&quot; 되어있기 때문인데, Object.freeze를 통해 해당 객체를 수정하지 못하게 할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Object 클래스가 가지고 있는 모든 메서드를 외울 수는 없지만, 이 메서드는 알고 있으면 좋을 듯하다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;내가 만든 어떤 객체가 누군가가 임의로 바꿀 수 있으면 위험한 상황에는 굉장히 중요하기 때문이다.&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;2. const, Object.seal, Object.freeze 차이&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;const는 ES6(ECMA 2015)부터 지원하는 문법으로 현대 브라우저라면 대부분 지원한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예전에는 var보다 느리다는 악평(?)이 있었지만 현재는 수정된 이슈이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;const로 선언하는 것들은 모두 &quot;상수&quot;로 된다고 처음에 배우지만,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;엄밀히 말해서는 객체(Object) 형태의 내부는 모두 재할당부터 수정까지 가능하다.&lt;/p&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;h3 data-ke-size=&quot;size23&quot;&gt;(1) 빈 객체에 냅다 값 넣어보기&lt;/h3&gt;
&lt;pre class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot;&gt;&lt;code&gt;const exampleObject = {};
exampleObject.key = 'value';
// 비어있는 객체에 key라는 키에 &quot;value&quot;라는 문자열 값을 넣음

console.log(exampleObject)
// {key: 'value'} 라는 값이 나온다.&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;나는 분명히 const로 선언했는데 객체 내부로 직접 값을 할당하니까 할당이 된다?!&lt;/p&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;h3 data-ke-size=&quot;size23&quot;&gt;(2) 원래 값이 있던 순서쌍을 수정해 보기&lt;/h3&gt;
&lt;pre class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot;&gt;&lt;code&gt;const exampleObject = { key: &quot;first value&quot;}; // 하나의 객체를 탄생시킨다.

exampleObject.key = &quot;New value&quot;
// 원래 있던 &quot;first value&quot;의 값을 새로운 &quot;New value&quot;로 수정

console.log(exampleObject)
// key: &quot;New value&quot;가 되었다.&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;당연히 된다. 위가 되면 아래도 되는 것이 논리적으로 추측 가능하다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그런데, 여기서 안 되는 것이 있긴 하다. 바로 해당 변수에 대한 재할당이 안된다.&lt;/p&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;h3 data-ke-size=&quot;size23&quot;&gt;(3) const가 가진 유일한 방패&lt;/h3&gt;
&lt;pre class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot;&gt;&lt;code&gt;const exampleObject = { key: &quot;first&quot; }

exampleObject = {key: &quot;New Key&quot;} // 에러 발생!!!!!&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이번 경우에는 에러가 발생한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, 'Helvetica Neue', 'Apple SD Gothic Neo', Arial, sans-serif; letter-spacing: 0px;&quot;&gt;Uncaught TypeError: Assignment to constant variable. at &amp;lt;anonymous&amp;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;이유는, 자바스크립트 스펙상 const로 선언된 변수는 재할당이 금지되어 있기 때문이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그러니까 우리가 처음에 자바스크립트를 배울 때 const를 재할당이 안된다고 이해했다면 정확히 이해한 것이고&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;안에 들어가 있는 값이 아예 변할 수 없다고 인지하면 크게 문제가 될 수 있다는 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그런데 자바스크립트 언어에서 이미 할당되어 있는 값을 수정할 수 없게 만들어두었을까?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;자바스크립트 자체가 형편없고 이상하다는 평가가 많지만, 그 정도는 아니다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;(4) Object.seal()&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Object 클래스에 있는 메서드 중에서는 seal()이라는 것이 있는데, 여기 안에 매개변수로 객체를 주면 해당 객체는&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;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;그런데 예외가 되는 것은&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&quot;쓰기 가능한 속성의 값은 변경할 수 있다.&quot;&lt;/p&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;23살의 홍길동은 성공해서 서울과 경기도에 자기 아파트가 있다.&lt;/p&gt;
&lt;pre class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot;&gt;&lt;code&gt;let exampleObject = { name: &quot;홍길동&quot;, age: 23, houseLocation: [&quot;서울&quot;, &quot;경기도&quot;] }

Object.seal(exampleObject) // 밀봉!

exampleObject.pants = &quot;blue&quot; // 새로운 키와 값을 쌍으로 추가!!

console.log(exampleObject)
// { name: &quot;홍길동&quot;, age: 23, houseLocation: [&quot;서울&quot;, &quot;경기도&quot;] }
// pants의 값이 추가되지 않았다.&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여기서 seal을 수행하고 새로운 속성을 추가해 보자, 예를 들어 바지 색상이 파란색이다.&lt;/p&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;또한 삭제도 안된다. delete exampleObject.name을 해도 그대로 값이 출력된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot;&gt;&lt;code&gt;delete exampleObject.name

console.log(exampleObject)
// { name: &quot;홍길동&quot;, age: 23, houseLocation: [&quot;서울&quot;, &quot;경기도&quot;] }&lt;/code&gt;&lt;/pre&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;그럼 뭐가 될까?&amp;nbsp;&lt;b&gt;값의 수정은 된다.&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;홍길동이 한 살 더 먹어서 24살로 되었다고 가정해 보자.&lt;/p&gt;
&lt;pre class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot;&gt;&lt;code&gt;exampleObject.age = 24

console.log(exampleObject)
// { name: '홍길동', age: 24, houseLocation: ['서울', '경기도'] }&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;참고: exampleObject안에 있는 houseLocation은 배열로 그 자체가 또 객체이다. 이 객체 내부는 seal이 적용된 상태가 아니므로 수정과 삭제가 모두 가능하다. (delete exampleObject.houseLocation[1]이 가능)&lt;/li&gt;
&lt;li&gt;위가 불가능하게 하려면 반복문을 통해 해당 객체의 모든 요소를 하나하나 돌면서 일일이 다 봉인해야 한다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;(5) Object.freeze()&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;freeze는 거의 다 위의 seal()과 같다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;다른 점은 해당 값의 변경도 안된다는 것이다.&lt;/b&gt;&lt;/h3&gt;
&lt;pre class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot;&gt;&lt;code&gt;let exampleObject = { name: &quot;홍길동&quot;, age: 23, houseLocation: [&quot;서울&quot;, &quot;경기도&quot;] };
Object.freeze(exampleObject);

exampleObject.age = 24;

console.log(exampleObject)
// {name: '홍길동', age: 23, houseLocation: [&quot;서울&quot;, &quot;경기도&quot;] }// 해당 값은 변하지 않는다.&lt;/code&gt;&lt;/pre&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;3. 읽어볼 만한 글&lt;/h2&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;1. Object 클래스와 내부의 모든 메서드&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Object&quot;&gt;https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Object&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1686825793659&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;Object - JavaScript | MDN&quot; data-og-description=&quot;Object 클래스는 JavaScript의 데이터 유형 중 하나를 나타냅니다. 다양한 키 모음 및 더 복잡한 엔티티들을 저장하는 데 사용됩니다. 객체는 Object() 생성자 또는 객체 초기자 / 리터럴 구문를 통해 생&quot; data-og-host=&quot;developer.mozilla.org&quot; data-og-source-url=&quot;https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Object&quot; data-og-url=&quot;https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Object&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/iZ52p/hyS0mPPXwZ/UIS2me74EpTe5iicqnijp0/img.png?width=1920&amp;amp;height=1080&amp;amp;face=0_0_1920_1080&quot;&gt;&lt;a href=&quot;https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Object&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Object&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/iZ52p/hyS0mPPXwZ/UIS2me74EpTe5iicqnijp0/img.png?width=1920&amp;amp;height=1080&amp;amp;face=0_0_1920_1080');&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;Object - JavaScript | MDN&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Object 클래스는 JavaScript의 데이터 유형 중 하나를 나타냅니다. 다양한 키 모음 및 더 복잡한 엔티티들을 저장하는 데 사용됩니다. 객체는 Object() 생성자 또는 객체 초기자 / 리터럴 구문를 통해 생&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;developer.mozilla.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;h4 data-ke-size=&quot;size20&quot;&gt;2. Object.seal()&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Object/seal&quot;&gt;https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Object/seal&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1686825809429&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;Object.seal() - JavaScript | MDN&quot; data-og-description=&quot;Object.seal() 메서드는 객체를 밀봉합니다. 객체를 밀봉하면 그 객체에는 새로운 속성을 추가할 수 없고, 현재 존재하는 모든 속성을 설정 불가능 상태로 만들어줍니다. 하지만 쓰기 가능한 속성의&quot; data-og-host=&quot;developer.mozilla.org&quot; data-og-source-url=&quot;https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Object/seal&quot; data-og-url=&quot;https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Object/seal&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bfRUC3/hyS0ofPzv8/oIUjUD9OkTkbbMKD2VCCY0/img.png?width=1920&amp;amp;height=1080&amp;amp;face=0_0_1920_1080&quot;&gt;&lt;a href=&quot;https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Object/seal&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Object/seal&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bfRUC3/hyS0ofPzv8/oIUjUD9OkTkbbMKD2VCCY0/img.png?width=1920&amp;amp;height=1080&amp;amp;face=0_0_1920_1080');&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;Object.seal() - JavaScript | MDN&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Object.seal() 메서드는 객체를 밀봉합니다. 객체를 밀봉하면 그 객체에는 새로운 속성을 추가할 수 없고, 현재 존재하는 모든 속성을 설정 불가능 상태로 만들어줍니다. 하지만 쓰기 가능한 속성의&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;developer.mozilla.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;h4 data-ke-size=&quot;size20&quot;&gt;3. Object.freeze()&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Object/freeze&quot;&gt;https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Object/freeze&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1686825818405&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;Object.freeze() - JavaScript | MDN&quot; data-og-description=&quot;Object.freeze() 메서드는 객체를 동결합니다. 동결된 객체는 더 이상 변경될 수 없습니다. 즉, 동결된 객체는 새로운 속성을 추가하거나 존재하는 속성을 제거하는 것을 방지하며 존재하는 속성의 &quot; data-og-host=&quot;developer.mozilla.org&quot; data-og-source-url=&quot;https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Object/freeze&quot; data-og-url=&quot;https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Object/freeze&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bu6hZj/hyS0jMnHnN/z2MvBYL1J694T1e3oOoCak/img.png?width=1920&amp;amp;height=1080&amp;amp;face=0_0_1920_1080&quot;&gt;&lt;a href=&quot;https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Object/freeze&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Object/freeze&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bu6hZj/hyS0jMnHnN/z2MvBYL1J694T1e3oOoCak/img.png?width=1920&amp;amp;height=1080&amp;amp;face=0_0_1920_1080');&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;Object.freeze() - JavaScript | MDN&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Object.freeze() 메서드는 객체를 동결합니다. 동결된 객체는 더 이상 변경될 수 없습니다. 즉, 동결된 객체는 새로운 속성을 추가하거나 존재하는 속성을 제거하는 것을 방지하며 존재하는 속성의&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;developer.mozilla.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;끝!&lt;/p&gt;</description>
      <category>Javascript</category>
      <category>javascript</category>
      <author>공청</author>
      <guid isPermaLink="true">https://princox.tistory.com/115</guid>
      <comments>https://princox.tistory.com/115#entry115comment</comments>
      <pubDate>Thu, 15 Jun 2023 19:35:32 +0900</pubDate>
    </item>
    <item>
      <title>건강하게 살기 위한 6가지 팁</title>
      <link>https://princox.tistory.com/114</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;life-gc3c2a4d2d_1280.jpg&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;853&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bDloSd/btshzZLidXq/HZ0F1J8Kanc5ZNFRka5ND0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bDloSd/btshzZLidXq/HZ0F1J8Kanc5ZNFRka5ND0/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bDloSd/btshzZLidXq/HZ0F1J8Kanc5ZNFRka5ND0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbDloSd%2FbtshzZLidXq%2FHZ0F1J8Kanc5ZNFRka5ND0%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;521&quot; height=&quot;347&quot; data-filename=&quot;life-gc3c2a4d2d_1280.jpg&quot; data-origin-width=&quot;1280&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 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;h3 data-ke-size=&quot;size23&quot;&gt;1. 충분한 만큼 숙면을 취할 것&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;보통 6~8시간은 자야한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;2. 몸을 움직이기&lt;/h3&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;h3 data-ke-size=&quot;size23&quot;&gt;3. 많은 양의 햇빛을 아침에 받자&lt;/h3&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;h3 data-ke-size=&quot;size23&quot;&gt;4. 먹는 것의 75~80%는 비가공이나 최소로 가공된 식품을 먹자&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;5. 사회적 관계&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;친구와 가족들과의 온라인와 오프라인 관계를 건강하게 유지하자.&lt;/p&gt;</description>
      <category>개인적인 이야기</category>
      <author>공청</author>
      <guid isPermaLink="true">https://princox.tistory.com/114</guid>
      <comments>https://princox.tistory.com/114#entry114comment</comments>
      <pubDate>Sat, 27 May 2023 23:45:08 +0900</pubDate>
    </item>
    <item>
      <title>React로 만든 웹을 모바일 환경에서 공유하고 싶을 때 (WebView, Navigator.share())</title>
      <link>https://princox.tistory.com/113</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_social-media.png&quot; data-origin-width=&quot;300&quot; data-origin-height=&quot;300&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/epnV4O/btsg0n5yuY4/zq0PakY5SKeYBzqU3ahKc0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/epnV4O/btsg0n5yuY4/zq0PakY5SKeYBzqU3ahKc0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/epnV4O/btsg0n5yuY4/zq0PakY5SKeYBzqU3ahKc0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FepnV4O%2Fbtsg0n5yuY4%2Fzq0PakY5SKeYBzqU3ahKc0%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;300&quot; height=&quot;300&quot; data-filename=&quot;edited_social-media.png&quot; data-origin-width=&quot;300&quot; data-origin-height=&quot;300&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;리액트로 공유 기능을 구현하는게 이렇게나 어렵다니.&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;바이럴을 통해 수익을 내는 웹 앱을 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;정확히는 Next.js 13.4 프레임워크를 활용하지만, 결국 내부는 리액트와 JSX다.&lt;/p&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;안드로이드 웹뷰(WebView) 객체는 Navigator.share()를 지원하지 않는다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그래서 iOS에서는 정상적으로 공유를 잘 불러내지만 안드로이드는 그냥 먹통이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;무슨 일인지 모르겠으나 alert()도 먹히지 않는다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그래서 여러 글을 찾아보니 아래와 같이 ClipBoard에 주소를 복사하게끔 처리하고 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;세상에 쉬운 일이 하나 없다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;참고 할만한 글&lt;/h3&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;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://velog.io/@otterji/navigation.share-copyClipboard&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://velog.io/@otterji/navigation.share-copyClipboard&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1684730668919&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] 공유하기 기능 완벽하게 구현하기 (Web Share API)&quot; data-og-description=&quot;iOS, Android, Web 각 상황에서 공유하기 기능을 구현하는 그 길고도 험난한 과정&quot; data-og-host=&quot;velog.io&quot; data-og-source-url=&quot;https://velog.io/@otterji/navigation.share-copyClipboard&quot; data-og-url=&quot;https://velog.io/@otterji/navigation.share-copyClipboard&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/buRV9d/hySG67VBE0/17KnFZharSH1Mcu7K6WkRK/img.jpg?width=1125&amp;amp;height=2039&amp;amp;face=0_0_1125_2039,https://scrap.kakaocdn.net/dn/bvq76q/hySG4I2IQ6/xAOSPj7JbgQ15CEedjXvYk/img.jpg?width=1125&amp;amp;height=2039&amp;amp;face=0_0_1125_2039,https://scrap.kakaocdn.net/dn/buSxml/hySG5Vszia/uAuW5LThqNJq7u8Dqe4T41/img.jpg?width=1125&amp;amp;height=2039&amp;amp;face=0_0_1125_2039&quot;&gt;&lt;a href=&quot;https://velog.io/@otterji/navigation.share-copyClipboard&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://velog.io/@otterji/navigation.share-copyClipboard&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/buRV9d/hySG67VBE0/17KnFZharSH1Mcu7K6WkRK/img.jpg?width=1125&amp;amp;height=2039&amp;amp;face=0_0_1125_2039,https://scrap.kakaocdn.net/dn/bvq76q/hySG4I2IQ6/xAOSPj7JbgQ15CEedjXvYk/img.jpg?width=1125&amp;amp;height=2039&amp;amp;face=0_0_1125_2039,https://scrap.kakaocdn.net/dn/buSxml/hySG5Vszia/uAuW5LThqNJq7u8Dqe4T41/img.jpg?width=1125&amp;amp;height=2039&amp;amp;face=0_0_1125_2039');&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] 공유하기 기능 완벽하게 구현하기 (Web Share API)&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;iOS, Android, Web 각 상황에서 공유하기 기능을 구현하는 그 길고도 험난한 과정&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;velog.io&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. 안드로이드 앱 &amp;lt;-&amp;gt; 웹 페이지 간 통신에 대해서 공부하고 싶을 때&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://sesang06.tistory.com/170&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://sesang06.tistory.com/170&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1684730719033&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;iOS, Android WebView 와 네이티브간의 유용한 통신 방법 - Javascript Interface, Webkit Messaging&quot; data-og-description=&quot;개발하고 있는 프로젝트에서 웹뷰는 상당한 레거시로 내려들어왔습니다. 하이브리드로 앱이 개발되었을 시절에 생긴 클라이언트와 백엔드, 웹프론트의 레거시란 레거시가 모두 집약되어 나타&quot; data-og-host=&quot;sesang06.tistory.com&quot; data-og-source-url=&quot;https://sesang06.tistory.com/170&quot; data-og-url=&quot;https://sesang06.tistory.com/170&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/dTdWtQ/hySJjR6K8M/o4PQFfc2eX0PgrQd1kAkg1/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/djqniO/hySJnUvuHd/XSkixMu65sukK12CtglTBK/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800&quot;&gt;&lt;a href=&quot;https://sesang06.tistory.com/170&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://sesang06.tistory.com/170&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/dTdWtQ/hySJjR6K8M/o4PQFfc2eX0PgrQd1kAkg1/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/djqniO/hySJnUvuHd/XSkixMu65sukK12CtglTBK/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;iOS, Android WebView 와 네이티브간의 유용한 통신 방법 - Javascript Interface, Webkit Messaging&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;sesang06.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;3. 카카오톡 공유하기까지 있는 아티클&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://all-dev-kang.tistory.com/m/entry/React-%EC%9A%B0%EB%A6%AC%EC%84%9C%EB%B9%84%EC%8A%A4%EB%A5%BC-%EB%8D%94-%EB%84%90%EB%A6%AC-SNS-%EA%B3%B5%EC%9C%A0%ED%95%98%EA%B8%B0-Navigatorshare&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://all-dev-kang.tistory.com/m/entry/React-%EC%9A%B0%EB%A6%AC%EC%84%9C%EB%B9%84%EC%8A%A4%EB%A5%BC-%EB%8D%94-%EB%84%90%EB%A6%AC-SNS-%EA%B3%B5%EC%9C%A0%ED%95%98%EA%B8%B0-Navigatorshare&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1684730741566&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] 우리서비스를 더 널리, SNS 공유하기 (Navigator.share)&quot; data-og-description=&quot;들어가며 이번에 갑자기 서비스를 운영 중에 팬덤을 타고 SNS에 서비스가 공유되는 일이 발생했었습니다. 그래서 이번 기회에 유저의 편의성을 위해 링크를 만들어 제공하거나 SNS로 바로 공유가&quot; data-og-host=&quot;all-dev-kang.tistory.com&quot; data-og-source-url=&quot;https://all-dev-kang.tistory.com/m/entry/React-%EC%9A%B0%EB%A6%AC%EC%84%9C%EB%B9%84%EC%8A%A4%EB%A5%BC-%EB%8D%94-%EB%84%90%EB%A6%AC-SNS-%EA%B3%B5%EC%9C%A0%ED%95%98%EA%B8%B0-Navigatorshare&quot; data-og-url=&quot;https://all-dev-kang.tistory.com/entry/React-%EC%9A%B0%EB%A6%AC%EC%84%9C%EB%B9%84%EC%8A%A4%EB%A5%BC-%EB%8D%94-%EB%84%90%EB%A6%AC-SNS-%EA%B3%B5%EC%9C%A0%ED%95%98%EA%B8%B0-Navigatorshare&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/Nv9Bb/hySG4vtXID/kwcos8NpTp7Sz7jtG0pvrk/img.png?width=800&amp;amp;height=475&amp;amp;face=0_0_800_475,https://scrap.kakaocdn.net/dn/ciOsy6/hySG5815oi/nhfvFwoD9YqDYSyXR2Ica0/img.png?width=800&amp;amp;height=475&amp;amp;face=0_0_800_475&quot;&gt;&lt;a href=&quot;https://all-dev-kang.tistory.com/m/entry/React-%EC%9A%B0%EB%A6%AC%EC%84%9C%EB%B9%84%EC%8A%A4%EB%A5%BC-%EB%8D%94-%EB%84%90%EB%A6%AC-SNS-%EA%B3%B5%EC%9C%A0%ED%95%98%EA%B8%B0-Navigatorshare&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://all-dev-kang.tistory.com/m/entry/React-%EC%9A%B0%EB%A6%AC%EC%84%9C%EB%B9%84%EC%8A%A4%EB%A5%BC-%EB%8D%94-%EB%84%90%EB%A6%AC-SNS-%EA%B3%B5%EC%9C%A0%ED%95%98%EA%B8%B0-Navigatorshare&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/Nv9Bb/hySG4vtXID/kwcos8NpTp7Sz7jtG0pvrk/img.png?width=800&amp;amp;height=475&amp;amp;face=0_0_800_475,https://scrap.kakaocdn.net/dn/ciOsy6/hySG5815oi/nhfvFwoD9YqDYSyXR2Ica0/img.png?width=800&amp;amp;height=475&amp;amp;face=0_0_800_475');&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] 우리서비스를 더 널리, SNS 공유하기 (Navigator.share)&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;들어가며 이번에 갑자기 서비스를 운영 중에 팬덤을 타고 SNS에 서비스가 공유되는 일이 발생했었습니다. 그래서 이번 기회에 유저의 편의성을 위해 링크를 만들어 제공하거나 SNS로 바로 공유가&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;all-dev-kang.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;</description>
      <category>React (Front-end)</category>
      <author>공청</author>
      <guid isPermaLink="true">https://princox.tistory.com/113</guid>
      <comments>https://princox.tistory.com/113#entry113comment</comments>
      <pubDate>Mon, 22 May 2023 13:48:34 +0900</pubDate>
    </item>
    <item>
      <title>Next.js 프레임워크를 다루며 정말 도움된 YouTube 영상들</title>
      <link>https://princox.tistory.com/112</link>
      <description>&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;1600&quot; data-origin-height=&quot;900&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/GkeSx/btsgG5RkQLC/RIMeTkBHGzG0tY9HhlMMZ0/img.webp&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/GkeSx/btsgG5RkQLC/RIMeTkBHGzG0tY9HhlMMZ0/img.webp&quot; data-alt=&quot;암 온 다 넥스트 레베루 프레임워크의 절대적 룰을 지켜&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/GkeSx/btsgG5RkQLC/RIMeTkBHGzG0tY9HhlMMZ0/img.webp&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FGkeSx%2FbtsgG5RkQLC%2FRIMeTkBHGzG0tY9HhlMMZ0%2Fimg.webp&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;370&quot; height=&quot;208&quot; data-origin-width=&quot;1600&quot; data-origin-height=&quot;900&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;암 온 다 넥스트 레베루 프레임워크의 절대적 룰을 지켜&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Next.js 13.4 버전으로 사이드 프로젝트를 진행하고 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;현재 cloudpages에 올려서 서비스를 하고 있으며, 지금도 여전히 개발하면서 기능을 확장하고 유지하고 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Next.js를 배울 때 보면 좋을만한 영상을 공유드립니다.&lt;/p&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;h3 data-ke-size=&quot;size23&quot;&gt;1. &amp;lt;Image /&amp;gt; 컴포넌트에 대하여&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이미지는 참 속 썩이는 아이입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Next.js는 알아서 최적화 해줍니다.&lt;/p&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://youtu.be/ZKG8JBdgSos&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://youtu.be/ZKG8JBdgSos&lt;/a&gt;&lt;/p&gt;
&lt;figure data-ke-type=&quot;video&quot; data-ke-style=&quot;alignCenter&quot; data-video-host=&quot;youtube&quot; data-video-url=&quot;https://www.youtube.com/watch?v=ZKG8JBdgSos&quot; data-video-thumbnail=&quot;https://scrap.kakaocdn.net/dn/bCIR3D/hySF43dLNY/AUW2bxfql998Wk9TDtq4k1/img.jpg?width=1280&amp;amp;height=720&amp;amp;face=862_156_1148_468&quot; data-video-width=&quot;450&quot; data-video-height=&quot;253&quot; data-video-origin-width=&quot;860&quot; data-video-origin-height=&quot;484&quot; data-ke-mobilestyle=&quot;widthContent&quot; data-video-title=&quot;Next.js Image in-depth tutorial&quot; data-original-url=&quot;&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/ZKG8JBdgSos&quot; width=&quot;450&quot; height=&quot;253&quot; frameborder=&quot;&quot; allowfullscreen=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;figcaption style=&quot;display: none;&quot;&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;2. App Route (App directory)에 대해서 다룹니다.&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Next.js 13.4부터는 앱 디렉토리가 stable 버전으로 나옵니다.&lt;/p&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://youtu.be/k2IQ-CcE7pk&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://youtu.be/k2IQ-CcE7pk&lt;/a&gt;&lt;/p&gt;
&lt;figure data-ke-type=&quot;video&quot; data-ke-style=&quot;alignCenter&quot; data-video-host=&quot;youtube&quot; data-video-url=&quot;https://www.youtube.com/watch?v=k2IQ-CcE7pk&quot; data-video-thumbnail=&quot;https://scrap.kakaocdn.net/dn/nZDTQ/hySFY2ZwV8/s2yHWylUMT4YdI2Ke9DAsK/img.jpg?width=1280&amp;amp;height=720&amp;amp;face=0_0_1280_720&quot; data-video-width=&quot;450&quot; data-video-height=&quot;253&quot; data-video-origin-width=&quot;860&quot; data-video-origin-height=&quot;484&quot; data-ke-mobilestyle=&quot;widthContent&quot; data-video-title=&quot;New Routing in NextJS 13 - Complete Overview And In-Depth Look!&quot; data-original-url=&quot;&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/k2IQ-CcE7pk&quot; width=&quot;450&quot; height=&quot;253&quot; frameborder=&quot;&quot; allowfullscreen=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;figcaption style=&quot;display: none;&quot;&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;3. 데이터를 가져오고, SEO에 metadata를 최적화하기&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Next.js 프레임워크를 유지보수하는 Vercel의 공식 영상입니다.&lt;/p&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://youtu.be/gSSsZReIFRk&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://youtu.be/gSSsZReIFRk&lt;/a&gt;&lt;/p&gt;
&lt;figure data-ke-type=&quot;video&quot; data-ke-style=&quot;alignCenter&quot; data-video-host=&quot;youtube&quot; data-video-url=&quot;https://www.youtube.com/watch?v=gSSsZReIFRk&quot; data-video-thumbnail=&quot;https://scrap.kakaocdn.net/dn/baH8zZ/hySF94wCPL/ngTDP12bdZ6tv6XkwJ7CCk/img.jpg?width=1280&amp;amp;height=720&amp;amp;face=834_150_1072_410&quot; data-video-width=&quot;450&quot; data-video-height=&quot;253&quot; data-video-origin-width=&quot;860&quot; data-video-origin-height=&quot;484&quot; data-ke-mobilestyle=&quot;widthContent&quot; data-video-title=&quot;Next.js App Router: Routing, Data Fetching, Caching&quot; data-original-url=&quot;&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/gSSsZReIFRk&quot; width=&quot;450&quot; height=&quot;253&quot; frameborder=&quot;&quot; allowfullscreen=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;figcaption style=&quot;display: none;&quot;&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위의 영상들은 풀 코스의 튜토리얼이 아닙니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;프레임워크의 단면을 볼 수 있는 조각들이죠.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Next.js에서 해메고 있다면 크게 도움이 될 것입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>React (Front-end)</category>
      <category>next.js</category>
      <author>공청</author>
      <guid isPermaLink="true">https://princox.tistory.com/112</guid>
      <comments>https://princox.tistory.com/112#entry112comment</comments>
      <pubDate>Sat, 20 May 2023 00:44:28 +0900</pubDate>
    </item>
    <item>
      <title>자바스크립트(Javascript)를 더 깊게, 심화해서 알고 싶은 사람에게 권하는 아티클 5개</title>
      <link>https://princox.tistory.com/111</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;512&quot; data-origin-height=&quot;512&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/R9iHH/btsgCpdgK1S/YHNIrDsRlqcPky4YehBW01/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/R9iHH/btsgCpdgK1S/YHNIrDsRlqcPky4YehBW01/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/R9iHH/btsgCpdgK1S/YHNIrDsRlqcPky4YehBW01/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FR9iHH%2FbtsgCpdgK1S%2FYHNIrDsRlqcPky4YehBW01%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;327&quot; height=&quot;327&quot; data-origin-width=&quot;512&quot; data-origin-height=&quot;512&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;h2 data-ke-size=&quot;size26&quot;&gt;자바스크립트 고수로 향하는 아티클 5개&lt;/h2&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;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;1.&amp;nbsp; 고급 자바스크립트 배우기 by John Resig&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;jQuery를 창시한 개발자가 직접 만든 자바스크립트 교육자료입니다.&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://johnresig.com/apps/learn/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://johnresig.com/apps/learn/&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1684509721611&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;Learning Advanced JavaScript&quot; data-og-description=&quot;&quot; data-og-host=&quot;johnresig.com&quot; data-og-source-url=&quot;https://johnresig.com/apps/learn/&quot; data-og-url=&quot;https://johnresig.com/apps/learn/&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://johnresig.com/apps/learn/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://johnresig.com/apps/learn/&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;Learning Advanced JavaScript&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;johnresig.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;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;2. 책 &amp;lt;자바스크립트는 왜 그 모양일까?&amp;gt; 요약본&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;JSON 포맷을 널리 알린 더글러스 크락포드의 책입니다.&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.rinae.dev/posts/how-javascript-works-summary&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://www.rinae.dev/posts/how-javascript-works-summary&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1684510089451&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;'자바스크립트는 왜 그 모양일까?' 읽기&quot; data-og-description=&quot;더글라스 크락포드의 '자바스크립트는 왜 그 모양일까?' 감상평 및 요약&quot; data-og-host=&quot;www.rinae.dev&quot; data-og-source-url=&quot;https://www.rinae.dev/posts/how-javascript-works-summary&quot; data-og-url=&quot;https://rinae.dev/posts/how-javascript-works-summary&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/tPf8v/hySGcmESnx/fBn1eOo4gD3kCT9EWKHd6K/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630&quot;&gt;&lt;a href=&quot;https://www.rinae.dev/posts/how-javascript-works-summary&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.rinae.dev/posts/how-javascript-works-summary&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/tPf8v/hySGcmESnx/fBn1eOo4gD3kCT9EWKHd6K/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630');&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;'자바스크립트는 왜 그 모양일까?' 읽기&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;www.rinae.dev&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;h3 data-ke-size=&quot;size23&quot;&gt;3. 자바스크립트 문제 풀기&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;당신은 얼마나 자바스크립트에 대해서 알고 있나요? 이 2개의 링크로 본인의 수준을 확인해 보세요!&lt;/p&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;- Javascript Questions&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://github.com/lydiahallie/javascript-questions/blob/master/ko-KR/README-ko_KR.md&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://github.com/lydiahallie/javascript-questions/blob/master/ko-KR/README-ko_KR.md&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure id=&quot;og_1684510244265&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;object&quot; data-og-title=&quot;GitHub - lydiahallie/javascript-questions: A long list of (advanced) JavaScript questions, and their explanations&quot; data-og-description=&quot;A long list of (advanced) JavaScript questions, and their explanations :sparkles: - GitHub - lydiahallie/javascript-questions: A long list of (advanced) JavaScript questions, and their explanations&quot; data-og-host=&quot;github.com&quot; data-og-source-url=&quot;https://github.com/lydiahallie/javascript-questions/blob/master/ko-KR/README-ko_KR.md&quot; data-og-url=&quot;https://github.com/lydiahallie/javascript-questions&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/gVwkx/hySG2vWC9T/RwqVz00MCYRVxKMHuJ8dTK/img.png?width=1034&amp;amp;height=474&amp;amp;face=0_0_1034_474&quot;&gt;&lt;a href=&quot;https://github.com/lydiahallie/javascript-questions/blob/master/ko-KR/README-ko_KR.md&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://github.com/lydiahallie/javascript-questions/blob/master/ko-KR/README-ko_KR.md&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/gVwkx/hySG2vWC9T/RwqVz00MCYRVxKMHuJ8dTK/img.png?width=1034&amp;amp;height=474&amp;amp;face=0_0_1034_474');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;GitHub - lydiahallie/javascript-questions: A long list of (advanced) JavaScript questions, and their explanations&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;A long list of (advanced) JavaScript questions, and their explanations :sparkles: - GitHub - lydiahallie/javascript-questions: A long list of (advanced) JavaScript questions, and their explanations&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;github.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- JS is Weird!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://jsisweird.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://jsisweird.com/&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1684510279775&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;Jacob Bergdahl&quot; data-og-description=&quot;Software developer, designer, author, writer, and speaker.&quot; data-og-host=&quot;jacobbergdahl.com&quot; data-og-source-url=&quot;https://jsisweird.com/&quot; data-og-url=&quot;https://jacobbergdahl.com/&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://jsisweird.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://jsisweird.com/&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;Jacob Bergdahl&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Software developer, designer, author, writer, and speaker.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;jacobbergdahl.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;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;4. The cost of Javascript&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2019년 영상에 대한 글입니다.&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://v8.dev/blog/cost-of-javascript-2019&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://v8.dev/blog/cost-of-javascript-2019&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1684510362650&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;The cost of JavaScript in 2019 &amp;middot; V8&quot; data-og-description=&quot;Note: If you prefer watching a presentation over reading articles, then enjoy the video below! If not, skip the video and read on. One large change to the cost of JavaScript over the last few years has been an improvement in how fast browsers can parse and&quot; data-og-host=&quot;v8.dev&quot; data-og-source-url=&quot;https://v8.dev/blog/cost-of-javascript-2019&quot; data-og-url=&quot;https://v8.dev/blog/cost-of-javascript-2019&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/jzRu4/hySG8CVEo8/kn0KIrGaq0wrWaUZvLRsc0/img.png?width=1280&amp;amp;height=774&amp;amp;face=0_0_1280_774,https://scrap.kakaocdn.net/dn/bVehR4/hySF1Fqmfu/thtnGKPMVk94wV1rg5DLu1/img.png?width=848&amp;amp;height=526&amp;amp;face=0_0_848_526,https://scrap.kakaocdn.net/dn/vmI6F/hySGb2lXGg/vDoRjbGcBdWx6Xsyptkxn0/img.png?width=922&amp;amp;height=441&amp;amp;face=0_0_922_441&quot;&gt;&lt;a href=&quot;https://v8.dev/blog/cost-of-javascript-2019&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://v8.dev/blog/cost-of-javascript-2019&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/jzRu4/hySG8CVEo8/kn0KIrGaq0wrWaUZvLRsc0/img.png?width=1280&amp;amp;height=774&amp;amp;face=0_0_1280_774,https://scrap.kakaocdn.net/dn/bVehR4/hySF1Fqmfu/thtnGKPMVk94wV1rg5DLu1/img.png?width=848&amp;amp;height=526&amp;amp;face=0_0_848_526,https://scrap.kakaocdn.net/dn/vmI6F/hySGb2lXGg/vDoRjbGcBdWx6Xsyptkxn0/img.png?width=922&amp;amp;height=441&amp;amp;face=0_0_922_441');&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;The cost of JavaScript in 2019 &amp;middot; V8&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Note: If you prefer watching a presentation over reading articles, then enjoy the video below! If not, skip the video and read on. One large change to the cost of JavaScript over the last few years has been an improvement in how fast browsers can parse and&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;v8.dev&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;h3 data-ke-size=&quot;size23&quot;&gt;5. 지난 3년간 모든 자바스크립트, 타입스크립트의 기능&lt;/h3&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://velog.io/@surim014/All-JavaScript-and-TypeScript-Features-of-the-last-3-years&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://velog.io/@surim014/All-JavaScript-and-TypeScript-Features-of-the-last-3-years&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1684510477455&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;[번역] 지난 3년간의 모든 자바스크립트 및 타입스크립트 기능&quot; data-og-description=&quot;이 글에서는 지난 3년 동안(일부 변경 사항은 더 이전의) 자바스크립트/ECMAScript와&amp;nbsp;타입스크립트의 대부분의 변경 사항을 살펴봅니다.&quot; data-og-host=&quot;velog.io&quot; data-og-source-url=&quot;https://velog.io/@surim014/All-JavaScript-and-TypeScript-Features-of-the-last-3-years&quot; data-og-url=&quot;https://velog.io/@surim014/All-JavaScript-and-TypeScript-Features-of-the-last-3-years&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/dLUwvb/hySG8iCTYA/vSz3EtkHnNpss84fF2tgy0/img.jpg?width=512&amp;amp;height=512&amp;amp;face=0_0_512_512,https://scrap.kakaocdn.net/dn/UnjlR/hySF603FWL/jDcxqYzGScss8BEKzkqTsk/img.jpg?width=512&amp;amp;height=512&amp;amp;face=0_0_512_512,https://scrap.kakaocdn.net/dn/dwPwCF/hySF16vfSn/LXkIUTUh4PbU14BYYBvSIK/img.jpg?width=3024&amp;amp;height=3024&amp;amp;face=0_0_3024_3024&quot;&gt;&lt;a href=&quot;https://velog.io/@surim014/All-JavaScript-and-TypeScript-Features-of-the-last-3-years&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://velog.io/@surim014/All-JavaScript-and-TypeScript-Features-of-the-last-3-years&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/dLUwvb/hySG8iCTYA/vSz3EtkHnNpss84fF2tgy0/img.jpg?width=512&amp;amp;height=512&amp;amp;face=0_0_512_512,https://scrap.kakaocdn.net/dn/UnjlR/hySF603FWL/jDcxqYzGScss8BEKzkqTsk/img.jpg?width=512&amp;amp;height=512&amp;amp;face=0_0_512_512,https://scrap.kakaocdn.net/dn/dwPwCF/hySF16vfSn/LXkIUTUh4PbU14BYYBvSIK/img.jpg?width=3024&amp;amp;height=3024&amp;amp;face=0_0_3024_3024');&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;[번역] 지난 3년간의 모든 자바스크립트 및 타입스크립트 기능&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;이 글에서는 지난 3년 동안(일부 변경 사항은 더 이전의) 자바스크립트/ECMAScript와&amp;nbsp;타입스크립트의 대부분의 변경 사항을 살펴봅니다.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;velog.io&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;끝!&lt;/p&gt;</description>
      <category>Javascript</category>
      <category>javascript</category>
      <author>공청</author>
      <guid isPermaLink="true">https://princox.tistory.com/111</guid>
      <comments>https://princox.tistory.com/111#entry111comment</comments>
      <pubDate>Sat, 20 May 2023 00:35:04 +0900</pubDate>
    </item>
  </channel>
</rss>