<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>뭔가이게</title>
    <link>https://ekimnida.tistory.com/</link>
    <description></description>
    <language>ko</language>
    <pubDate>Wed, 6 May 2026 16:41:17 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>ㅇㄱ9</managingEditor>
    <image>
      <title>뭔가이게</title>
      <url>https://tistory1.daumcdn.net/tistory/4749822/attach/8139d14f475041af952c41bb507bb789</url>
      <link>https://ekimnida.tistory.com</link>
    </image>
    <item>
      <title>iphone 사파리에서 video가 전체화면으로 재생되는 이슈</title>
      <link>https://ekimnida.tistory.com/66</link>
      <description>&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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;414&quot; data-origin-height=&quot;324&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/6lZa3/btsLDXifvRI/tuxC2gmaqbikEXSrXsr0k1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/6lZa3/btsLDXifvRI/tuxC2gmaqbikEXSrXsr0k1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/6lZa3/btsLDXifvRI/tuxC2gmaqbikEXSrXsr0k1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F6lZa3%2FbtsLDXifvRI%2FtuxC2gmaqbikEXSrXsr0k1%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;285&quot; height=&quot;223&quot; data-origin-width=&quot;414&quot; data-origin-height=&quot;324&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;기존 코드&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1735872906342&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;     &amp;lt;video
        autoPlay
        muted
        loop 
        className=&quot;absolute inset-0 w-full h-full object-cover z-[-1] opacity-100&quot;
      &amp;gt;
        &amp;lt;source src=&quot;/BG.mp4&quot; type=&quot;video/mp4&quot; /&amp;gt;
      &amp;lt;/video&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이렇게 배경으로 mp4형식의 동영상을 무한재생하는 코드를 넣었는데요..&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이것이 말입니다..&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;크롬도 삼성인터넷에서도 사파리웹에서도 아~무 문제가 없는데 아이폰 사파리에서만!!!!!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;화면 재진입시에 동영상이 갑자기 전체화면모드로 재생되는겁니다....후.....&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;흐린눈을 하고 싶었으나 하지 못하고&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;video 태그에&lt;b&gt; playsinline속성을 추가&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;b&gt;수정한 코드&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1735873250173&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;      &amp;lt;video
        autoPlay
        muted
        loop
        playsInline
        className=&quot;absolute inset-0 w-full h-full object-cover z-[-1] opacity-100&quot;
      &amp;gt;
        &amp;lt;source src=&quot;/BG.mp4&quot; type=&quot;video/mp4&quot; /&amp;gt;
      &amp;lt;/video&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ios에서는 기본적으로 비디오가 자동으로 전체화면 모드로 재생되기 때문에 이런 동작을 막으려면&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;playsinline속성을 추가&lt;/b&gt;해주어야 한다고 합니다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;거 참 까다롭네...까다로워...&lt;/p&gt;</description>
      <category>WEB</category>
      <author>ㅇㄱ9</author>
      <guid isPermaLink="true">https://ekimnida.tistory.com/66</guid>
      <comments>https://ekimnida.tistory.com/66#entry66comment</comments>
      <pubDate>Sat, 4 Jan 2025 08:00:13 +0900</pubDate>
    </item>
    <item>
      <title>Text content did not match 에러!</title>
      <link>https://ekimnida.tistory.com/65</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;Text content did not match.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Server: &quot;December 27, 2024 at 8:18:18 AM&quot; Client: &quot;December 27, 2024 at 8:18:19 AM&quot; Error Component Stack&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;개발된 화면들을 확인하다가 발견한 warning&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;warning이지만 새빨간 배경에 뜨는것이 아주 거슬려서 해결해보기로 한다.&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;860&quot; data-origin-height=&quot;492&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dYWyst/btsLyEdQdeY/lJ2tkuRYlXuAGm6ege6kX1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dYWyst/btsLyEdQdeY/lJ2tkuRYlXuAGm6ege6kX1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dYWyst/btsLyEdQdeY/lJ2tkuRYlXuAGm6ege6kX1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdYWyst%2FbtsLyEdQdeY%2FlJ2tkuRYlXuAGm6ege6kX1%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;509&quot; height=&quot;291&quot; data-origin-width=&quot;860&quot; data-origin-height=&quot;492&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;문제의 컴포넌트는 서버로부터 UNIX 시간을 받아와 예쁘게 가공해서 보여주는 컴포넌트였다.&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;먼저 useState로 관리하고 있던 값을 Date타입에서 string으로 바꾸어주었다.&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;기존 useState&lt;/p&gt;
&lt;pre id=&quot;code_1735871624881&quot; class=&quot;typescript&quot; data-ke-language=&quot;typescript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;const [castTimestamp, setCastTimestamp] = useState(new Date());&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;변경 후 useState&lt;/p&gt;
&lt;pre id=&quot;code_1735871647250&quot; class=&quot;typescript&quot; data-ke-language=&quot;typescript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;const [castTimestamp, setCastTimestamp] = useState(new Date());&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 나서 기존에는 그냥 리턴하는 컴포넌트에서 시간조작하던 부분을&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래와 같이 useEffect를 써서 클라이언트 사이드 렌더링이 될때 조작하도록 수정해주었다.&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1735290227183&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;  useEffect(() =&amp;gt; {
    // Update the timestamp when the component mounts on the client
    const timestampInMilliseconds = (detailData?.castTimestamp ?? 0) * 1000;
    setCastTimestamp(
      new Date(timestampInMilliseconds).toLocaleString(&quot;en-US&quot;, {
        timeZone: &quot;UTC&quot;,
        year: &quot;numeric&quot;,
        month: &quot;long&quot;,
        day: &quot;numeric&quot;,
        hour: &quot;numeric&quot;,
        minute: &quot;numeric&quot;,
        second: &quot;numeric&quot;,
        hour12: true,
      })
    );
  }, [detailData?.castTimestamp]);&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;이렇게 세팅한 castTimestamp를 가져다 써주면 이슈해결 ~&lt;/p&gt;
&lt;pre id=&quot;code_1735871807482&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;LabelValue label=&quot;Cast Timestamp&quot; value={castTimestamp} /&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;어쩌다 보니 작년(12월말)에 쓰기 시작한 글을 올해 마쳤네..ㅋㅋ 올해는 조금 더 열심히 블로그를 써보는 것으루....&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다들 새해 복 많이 받으세요~&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1430&quot; data-origin-height=&quot;798&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cNeGue/btsLCsp9FMG/RKH4P7EYSD05FbBYVFPxXK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cNeGue/btsLCsp9FMG/RKH4P7EYSD05FbBYVFPxXK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cNeGue/btsLCsp9FMG/RKH4P7EYSD05FbBYVFPxXK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcNeGue%2FbtsLCsp9FMG%2FRKH4P7EYSD05FbBYVFPxXK%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;566&quot; height=&quot;316&quot; data-origin-width=&quot;1430&quot; data-origin-height=&quot;798&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>ERROR</category>
      <category>Next</category>
      <category>React</category>
      <category>text content did not match</category>
      <category>TS</category>
      <category>에러</category>
      <author>ㅇㄱ9</author>
      <guid isPermaLink="true">https://ekimnida.tistory.com/65</guid>
      <comments>https://ekimnida.tistory.com/65#entry65comment</comments>
      <pubDate>Fri, 3 Jan 2025 11:46:20 +0900</pubDate>
    </item>
    <item>
      <title>블록체인 레이어1 ? 레이어 2? 이게 다 무슨 말이야?</title>
      <link>https://ekimnida.tistory.com/64</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;258&quot; data-origin-height=&quot;195&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/sqZmF/btsKNwAaiQj/pnoJurDaxxePLtp3jwywg0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/sqZmF/btsKNwAaiQj/pnoJurDaxxePLtp3jwywg0/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/sqZmF/btsKNwAaiQj/pnoJurDaxxePLtp3jwywg0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FsqZmF%2FbtsKNwAaiQj%2FpnoJurDaxxePLtp3jwywg0%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;355&quot; height=&quot;268&quot; data-origin-width=&quot;258&quot; data-origin-height=&quot;195&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;어쩌다 제가 블록체인 관련글을 쓰게 되었는지 인생 참 알 수 없네요 ㅎㅎ&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;일단 이번 글에서는 블록체인 레이어에 대해 알아보려고 합니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;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;블록체인은 여러 레이어들로 나누어져 있고, 각 레이어는 각각 특정한 역할을 수행합니다.&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;1280&quot; data-origin-height=&quot;681&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/FLQP8/btsKNyEBUGV/12N4jw3AkyzYkOa64QRNm0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/FLQP8/btsKNyEBUGV/12N4jw3AkyzYkOa64QRNm0/img.jpg&quot; data-alt=&quot;[출처]https://digging.stibee.com/p/75/&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/FLQP8/btsKNyEBUGV/12N4jw3AkyzYkOa64QRNm0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FFLQP8%2FbtsKNyEBUGV%2F12N4jw3AkyzYkOa64QRNm0%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;1280&quot; height=&quot;681&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;681&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;[출처]https://digging.stibee.com/p/75/&lt;/figcaption&gt;
&lt;/figure&gt;
&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;한번 쭉 정리해보고 그중에서 레이어 1과 2를 자세히 알아보려고 합니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Layer 0&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 블록체인의 네트워크 인프라입니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 브릿지를 모두 고려하여 네트워크 간에 상호 작용 가능한 설계를 가집니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ex) 아톰, 폴카닷&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;Layer 1&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 블록체인의 기본 네트워크. 즉, 블록체인의 핵심 프로토콜입니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 모든 트랜잭션이 기록되고, 합의 매커니즘을 통해 검증하는 방식을 가집니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;- 거래 정보를 검증하고 블록을 생성하는 핵심 기능을 수행합니다&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;- 탈중앙화와 보안성을 보장하지만 확장성에 제한이 있습니다&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ex) 비트코인, 이더리움, 솔라나&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;Layer 2&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- Layer 1의 확장성을 개선하기 위해 그 위에서 동작하는 프로토콜 혹은 기술.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 일부 트랜잭션을 오프체인(off-chain)에서 처리하여 네트워크 부담을 줄입니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- &lt;span style=&quot;text-align: left;&quot;&gt;주로 확장성과 성능 개선을 위해 사용됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ex) 비트코인의 라이트닝 네트워크, 이더리움의 옵티미스틱 롤어브, ZK롤업&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;672&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ba0sWM/btsKM2fftAR/oxIuJ9TEbAIdV5ZO4yhYf0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ba0sWM/btsKM2fftAR/oxIuJ9TEbAIdV5ZO4yhYf0/img.png&quot; data-alt=&quot;이더리움 메인넷 레이어 2 시스템 [출처]https://digging.stibee.com/p/75/&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ba0sWM/btsKM2fftAR/oxIuJ9TEbAIdV5ZO4yhYf0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fba0sWM%2FbtsKM2fftAR%2FoxIuJ9TEbAIdV5ZO4yhYf0%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;584&quot; height=&quot;307&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;672&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;이더리움 메인넷 레이어 2 시스템 [출처]https://digging.stibee.com/p/75/&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;&lt;b&gt;Layer 3&lt;/b&gt; (별도의 레이어가 아니라 app이나 서비스로 분류하기도 함)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 블록체인 위에서 구동되는 탈중앙화 애플리케이션 및 사용자 서비스&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ex) 디파이, DApps, NFT, 게임등등&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Layer 1 vs Layer 2&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 55px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 6.70539%; height: 17px;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;width: 45.6589%; height: 17px;&quot;&gt;&lt;b&gt;Layer 1&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 47.6356%; height: 17px;&quot;&gt;&lt;b&gt;Layer 2&amp;nbsp;&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 6.70539%; height: 19px;&quot;&gt;&lt;b&gt;장점&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 45.6589%; height: 19px;&quot;&gt;- 높은 보안성과 탈중앙화&lt;br /&gt;- 블록체인의 기본적인 프로토콜과 핵심기능 담당&lt;br /&gt;- 네트워크의 기반이 되는 중요한 역할 수행&lt;/td&gt;
&lt;td style=&quot;width: 47.6356%; height: 19px;&quot;&gt;- 블록체인의 확장성과 성능을 크게 개선&lt;br /&gt;- 메인 체인의 부하를 줄이고 더 빠른 거래 처리 가능&amp;nbsp;&lt;br /&gt;- 다양한 서비스 구현이 용이 (ex: DeFi, NFT)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 6.70539%; height: 19px;&quot;&gt;&lt;b&gt;단점&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 45.6589%; height: 19px;&quot;&gt;- 확장성에 제한이 있어 대량의 거래 처리가 어려움&amp;nbsp;&lt;br /&gt;- 프로토콜 변경을 위해서는 하드포크가 필요하며, 이는 네트워크 참여자들의 동의를 얻어야 하는 복잡함 수반&lt;br /&gt;- 개선 과정이 느리고 시간이 많이 소요됨&lt;/td&gt;
&lt;td style=&quot;width: 47.6356%; height: 19px;&quot;&gt;- 레이어 1의 보안에 의존하므로, 자체적인 보안위험이 있을 수 있음&amp;nbsp;&lt;br /&gt;- 사용자들이 레이어 2 솔루션을 신뢰하고 채택해야함&amp;nbsp;&lt;br /&gt;- 일부 레이어 2 솔루션은 중앙화된 요소를 포함할 수 있어, 완전한 탈중앙화를 달성하기 어려울 수 있음&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그래서 Layer2가 블록체인 네트워크 부하를 어떻게 줄이는데? 라는 건 다음글로 돌아오겠습니다~&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;b&gt;참고&lt;/b&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1731989740111&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;   블록체인에서 레이어는 뭔가요?&quot; data-og-description=&quot; &quot; data-og-host=&quot;digging.stibee.com&quot; data-og-source-url=&quot;https://digging.stibee.com/p/75/&quot; data-og-url=&quot;https://digging.stibee.com/p/75/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/roWaN/hyXzJl4rnv/quP6pXxKAequLg7ZokaEF1/img.png?width=2400&amp;amp;height=1260&amp;amp;face=0_0_2400_1260,https://scrap.kakaocdn.net/dn/crepej/hyXzIm8IRH/6e4qGc6QJmEJ4DkAloZ170/img.jpg?width=1400&amp;amp;height=745&amp;amp;face=0_0_1400_745,https://scrap.kakaocdn.net/dn/eX5iz/hyXzL5fjTH/bEKyFlgjV8wcDC5xS7oARK/img.png?width=1180&amp;amp;height=254&amp;amp;face=0_0_1180_254&quot;&gt;&lt;a href=&quot;https://digging.stibee.com/p/75/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://digging.stibee.com/p/75/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/roWaN/hyXzJl4rnv/quP6pXxKAequLg7ZokaEF1/img.png?width=2400&amp;amp;height=1260&amp;amp;face=0_0_2400_1260,https://scrap.kakaocdn.net/dn/crepej/hyXzIm8IRH/6e4qGc6QJmEJ4DkAloZ170/img.jpg?width=1400&amp;amp;height=745&amp;amp;face=0_0_1400_745,https://scrap.kakaocdn.net/dn/eX5iz/hyXzL5fjTH/bEKyFlgjV8wcDC5xS7oARK/img.png?width=1180&amp;amp;height=254&amp;amp;face=0_0_1180_254');&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;&amp;nbsp;&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;digging.stibee.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;figure id=&quot;og_1731993415689&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;레이어 1과 레이어 2의 확장 솔루션 비교&quot; data-og-description=&quot;가상자산과 블록체인의 인기가 증가하고 있으며 사용자 수와 거래 수도 늘어나고 있습니다. 블록체인의 혁신은 지속적으로 이어져 왔지만, 확장성(증가하는 수요를 수용하면서 성장할 수 있는 &quot; data-og-host=&quot;academy.gopax.co.kr&quot; data-og-source-url=&quot;https://academy.gopax.co.kr/reieo-1gwa-reieo-2yi-hwagjang-solrusyeon-bigyo/&quot; data-og-url=&quot;https://academy.gopax.co.kr/reieo-1gwa-reieo-2yi-hwagjang-solrusyeon-bigyo/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/baOD2c/hyXzTvqRhW/rK16lnl0KnioHdL8Xow6t0/img.png?width=1200&amp;amp;height=675&amp;amp;face=0_0_1200_675,https://scrap.kakaocdn.net/dn/EqgQ7/hyXzOAVAQT/x3auJr1RHvqDAT8Ena1DZk/img.png?width=1200&amp;amp;height=675&amp;amp;face=0_0_1200_675&quot;&gt;&lt;a href=&quot;https://academy.gopax.co.kr/reieo-1gwa-reieo-2yi-hwagjang-solrusyeon-bigyo/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://academy.gopax.co.kr/reieo-1gwa-reieo-2yi-hwagjang-solrusyeon-bigyo/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/baOD2c/hyXzTvqRhW/rK16lnl0KnioHdL8Xow6t0/img.png?width=1200&amp;amp;height=675&amp;amp;face=0_0_1200_675,https://scrap.kakaocdn.net/dn/EqgQ7/hyXzOAVAQT/x3auJr1RHvqDAT8Ena1DZk/img.png?width=1200&amp;amp;height=675&amp;amp;face=0_0_1200_675');&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;레이어 1과 레이어 2의 확장 솔루션 비교&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;academy.gopax.co.kr&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>Blockchain</category>
      <category>레이어</category>
      <category>베이스</category>
      <category>블록체인</category>
      <category>비트코인</category>
      <category>솔라나</category>
      <category>스크롤</category>
      <category>오블완</category>
      <category>이더리움</category>
      <category>티스토리챌린지</category>
      <category>폴리곤</category>
      <author>ㅇㄱ9</author>
      <guid isPermaLink="true">https://ekimnida.tistory.com/64</guid>
      <comments>https://ekimnida.tistory.com/64#entry64comment</comments>
      <pubDate>Tue, 19 Nov 2024 14:19:18 +0900</pubDate>
    </item>
    <item>
      <title>반복되는 코드 줄이기</title>
      <link>https://ekimnida.tistory.com/63</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;(비록 협업할 사람도 없이 혼자 하는 프로젝트지만) 시간에 쫓겨 와다닥 만든 컴포넌트들 정리하는중.. ㅋㅋ&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;848&quot; data-origin-height=&quot;716&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bKHKsA/btsKHgDpEhu/iH0KGVcQ8osuwwmoCBKRGK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bKHKsA/btsKHgDpEhu/iH0KGVcQ8osuwwmoCBKRGK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bKHKsA/btsKHgDpEhu/iH0KGVcQ8osuwwmoCBKRGK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbKHKsA%2FbtsKHgDpEhu%2FiH0KGVcQ8osuwwmoCBKRGK%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;367&quot; height=&quot;310&quot; data-origin-width=&quot;848&quot; data-origin-height=&quot;716&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;오늘의 타겟은 이 Pagination 컴포넌트 만들때 사용한 select와 button들 입니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;shadcn의 &lt;a href=&quot;https://ui.shadcn.com/docs/components/button&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;button&lt;/a&gt;과 &lt;a href=&quot;https://ui.shadcn.com/docs/components/select&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;select&lt;/a&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;1596&quot; data-origin-height=&quot;208&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lqqHA/btsKFH91sTa/JAqEhta0jksB46fKhUvy0K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lqqHA/btsKFH91sTa/JAqEhta0jksB46fKhUvy0K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lqqHA/btsKFH91sTa/JAqEhta0jksB46fKhUvy0K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlqqHA%2FbtsKFH91sTa%2FJAqEhta0jksB46fKhUvy0K%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;445&quot; height=&quot;58&quot; data-origin-width=&quot;1596&quot; data-origin-height=&quot;208&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;b&gt;1. Select&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 기존 코드&lt;/p&gt;
&lt;pre id=&quot;code_1731469517077&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;        &amp;lt;Select
          value={selectedValue}
          onValueChange={(value) =&amp;gt; setSelectedValue(value)}
        &amp;gt;
          &amp;lt;SelectTrigger className=&quot;w-[70px] h-9 border&quot; isPagination={true}&amp;gt;
            {selectedValue}
          &amp;lt;/SelectTrigger&amp;gt;
          &amp;lt;SelectContent className=&quot;w-[120px]&quot;&amp;gt;
            &amp;lt;SelectItem value=&quot;20&quot;&amp;gt;20&amp;lt;/SelectItem&amp;gt;
            &amp;lt;SelectItem value=&quot;50&quot;&amp;gt;50&amp;lt;/SelectItem&amp;gt;
            &amp;lt;SelectItem value=&quot;100&quot;&amp;gt;100&amp;lt;/SelectItem&amp;gt;
          &amp;lt;/SelectContent&amp;gt;
        &amp;lt;/Select&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 수정 후 코드&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;: 반복되는 SelectItem 부분을 map을 사용하여 정리&lt;/p&gt;
&lt;pre id=&quot;code_1731469585564&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;        &amp;lt;Select value={selectedValue} onValueChange={(value) =&amp;gt; setSelectedValue(value)}&amp;gt;
          &amp;lt;SelectTrigger className=&quot;w-[70px] h-9 border&quot; isPagination={true}&amp;gt;
            {selectedValue}
          &amp;lt;/SelectTrigger&amp;gt;
          &amp;lt;SelectContent className=&quot;w-[120px]&quot;&amp;gt;
            {[&quot;20&quot;, &quot;50&quot;, &quot;100&quot;].map((value) =&amp;gt; (
              &amp;lt;SelectItem key={value} value={value}&amp;gt;
                {value}
              &amp;lt;/SelectItem&amp;gt;
            ))}
          &amp;lt;/SelectContent&amp;gt;
        &amp;lt;/Select&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;2. Button&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 기존코드&lt;/p&gt;
&lt;pre id=&quot;code_1731469715224&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;      &amp;lt;div className=&quot;flex gap-2 items-center&quot;&amp;gt;
        &amp;lt;Button className=&quot;rounded-md border bg-[#09090B] hover:bg-[#27272A] shadow-sm w-8 h-8 p-0&quot;&amp;gt;
          &amp;lt;Image
            src=&quot;/icon-double-arrow-left.svg&quot;
            className=&quot;cursor-pointer&quot;
            alt=&quot;logo&quot;
            width={16}
            height={16}
          /&amp;gt;
        &amp;lt;/Button&amp;gt;
        &amp;lt;Button className=&quot;rounded-md border bg-[#09090B] hover:bg-[#27272A] shadow-sm w-8 h-8 p-0&quot;&amp;gt;
          &amp;lt;Image
            src=&quot;/icon-caret-left.svg&quot;
            className=&quot;cursor-pointer&quot;
            alt=&quot;logo&quot;
            width={16}
            height={16}
          /&amp;gt;
        &amp;lt;/Button&amp;gt;
        &amp;lt;Button className=&quot;rounded-md border bg-[#09090B] hover:bg-[#27272A] shadow-sm w-8 h-8 p-0&quot;&amp;gt;
          &amp;lt;Image
            src=&quot;/icon-caret-right.svg&quot;
            className=&quot;cursor-pointer&quot;
            alt=&quot;logo&quot;
            width={16}
            height={16}
          /&amp;gt;
        &amp;lt;/Button&amp;gt;
        &amp;lt;Button className=&quot;rounded-md border bg-[#09090B] hover:bg-[#27272A] shadow-sm w-8 h-8 p-0&quot;&amp;gt;
          &amp;lt;Image
            src=&quot;/icon-double-arrow-right.svg&quot;
            className=&quot;cursor-pointer&quot;
            alt=&quot;logo&quot;
            width={16}
            height={16}
          /&amp;gt;
        &amp;lt;/Button&amp;gt;
      &amp;lt;/div&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 수정 후 코드&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;: 반복되는 부분 전부 map을 사용하여 정리,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;icon마다 달라지는 src부분은 배열로 따로 빼서 관리&lt;/p&gt;
&lt;pre id=&quot;code_1731470002470&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;const icons = [
    { src: &quot;/icon-double-arrow-left.svg&quot;, alt: &quot;Double Left Arrow&quot; },
    { src: &quot;/icon-caret-left.svg&quot;, alt: &quot;Caret Left&quot; },
    { src: &quot;/icon-caret-right.svg&quot;, alt: &quot;Caret Right&quot; },
    { src: &quot;/icon-double-arrow-right.svg&quot;, alt: &quot;Double Right Arrow&quot; }
  ];


      &amp;lt;div className=&quot;flex gap-2 items-center&quot;&amp;gt;
        {icons.map((icon) =&amp;gt; (
          &amp;lt;Button key={icon.alt} className={buttonClass}&amp;gt;
            &amp;lt;Image src={icon.src} alt={icon.alt} width={16} height={16} className=&quot;cursor-pointer&quot; /&amp;gt;
          &amp;lt;/Button&amp;gt;
        ))}
      &amp;lt;/div&amp;gt;&lt;/code&gt;&lt;/pre&gt;</description>
      <category>React &amp;amp; Next</category>
      <category>nextjs</category>
      <category>shadcn</category>
      <category>간단</category>
      <category>리팩토링</category>
      <category>오블완</category>
      <category>티스토리챌린지</category>
      <author>ㅇㄱ9</author>
      <guid isPermaLink="true">https://ekimnida.tistory.com/63</guid>
      <comments>https://ekimnida.tistory.com/63#entry63comment</comments>
      <pubDate>Wed, 13 Nov 2024 13:00:03 +0900</pubDate>
    </item>
    <item>
      <title>트럼프가 대통령이 됐는데 비트코인은 왜 오를까???</title>
      <link>https://ekimnida.tistory.com/62</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1260&quot; data-origin-height=&quot;944&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/meqrG/btsKzTQeJA4/AQgKgafaKuhOVGicn8YPK0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/meqrG/btsKzTQeJA4/AQgKgafaKuhOVGicn8YPK0/img.png&quot; data-alt=&quot;출처 : ap&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/meqrG/btsKzTQeJA4/AQgKgafaKuhOVGicn8YPK0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmeqrG%2FbtsKzTQeJA4%2FAQgKgafaKuhOVGicn8YPK0%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;461&quot; height=&quot;345&quot; data-origin-width=&quot;1260&quot; data-origin-height=&quot;944&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;출처 : ap&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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1346&quot; data-origin-height=&quot;1026&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/qtFOM/btsKAtcEYhG/MIpMXxnlCL5Tvr7A2P62oK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/qtFOM/btsKAtcEYhG/MIpMXxnlCL5Tvr7A2P62oK/img.png&quot; data-alt=&quot;이러다 몇년후에는 1억이면 진짜 쌌다는 소리 나오겠어요&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/qtFOM/btsKAtcEYhG/MIpMXxnlCL5Tvr7A2P62oK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FqtFOM%2FbtsKAtcEYhG%2FMIpMXxnlCL5Tvr7A2P62oK%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;438&quot; height=&quot;334&quot; data-origin-width=&quot;1346&quot; data-origin-height=&quot;1026&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;이러다 몇년후에는 1억이면 진짜 쌌다는 소리 나오겠어요&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;먼저 그의 과거 재임기간(2017년-2021년)에 암호화폐 시장은 많은 변화를 겪었는데, 어떤 일이 있었는지 알아보자.&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;br /&gt;&lt;b&gt;트럼프 대통령 재임 기간 동안 암호화폐는 어떻게 변화했을까?&lt;/b&gt;&lt;/h3&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;1. 암호화폐의 급성장&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;트럼프가 대통령으로 재임하던 2017년, &lt;b&gt;비트코인&lt;/b&gt;이라는 암호화폐는 정말 큰 인기를 끌었다. 2017년 비트코인은 가격이 무려 &lt;b&gt;20,000달러&lt;/b&gt; 가까이 올라갔었다! 이렇게 비트코인과 다른 암호화폐들이 큰 주목을 받게 되면서, 많은 사람들이 암호화폐를 투자 대상으로 생각하게 되었다.&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;2. ICO(초기 코인 공개) 열풍&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;암호화폐와 관련된 &lt;b&gt;ICO&lt;/b&gt;라는 새로운 방식이 급격히 인기를 끌었는데, ICO는 &lt;b&gt;Initial Coin Offering&lt;/b&gt;의 약자로, 쉽게 말하면 암호화폐를 처음으로 팔아서 자금을 모으는 방법이다. 이런 ICO는 2017년과 2018년에 정말 많이 진행되었는데, 이 과정에서 사기나 문제도 발생했기 때문에 정부는 암호화폐에 대해 더 많은 규제를 해야 한다고 목소리를 높였었다.&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;3. 트럼프 정부와 미국 증권거래위원회(SEC)&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;트럼프 재임 중, **SEC(미국 증권거래위원회)**는 암호화폐를 **증권(주식과 비슷한 투자 상품)**으로 간주하기 시작했다. 그래서 ICO를 진행한 기업들이 SEC의 조사를 받기도 했는데, 이런 규제들이 생겨나면서 사람들이 암호화폐가 어떻게 규제될지 궁금해했다.&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;4. 비트코인 ETF의 승인은?&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;비트코인을 &lt;b&gt;ETF&lt;/b&gt;라는 투자 상품으로 만들자는 논의가 트럼프 재임 중에 계속 이어졌었다. ETF는 주식처럼 쉽게 사고팔 수 있는 상품인데, 많은 사람들이 비트코인 ETF가 승인을 받기를 기대했지만 SEC는 비트코인 ETF 승인을 거부했었고, 이로 인해 비트코인 가격은 영향을 받기도 했다.&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;5. 트럼프 대통령의 암호화폐에 대한 입장&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;트럼프 전 대통령은 &lt;b&gt;비트코인&lt;/b&gt;에 대해 비판적인 입장을 자주 밝혔었다. 그는 &quot;비트코인은 변동성이 크고, 범죄에 사용될 가능성이 있다&quot;며 비트코인과 다른 암호화폐에 대해 부정적인 의견을 제시했었다. 트럼프는 &lt;b&gt;미국 달러&lt;/b&gt;를 지키는 것이 중요하다며, 암호화폐가 달러를 위협할 수 있다고 생각한 것으로 보였다.&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;6. 디지털 화폐의 가능성&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;트럼프 대통령 하에서, &lt;b&gt;디지털 화폐&lt;/b&gt;라는 개념이 조금씩 논의되기 시작했다. 디지털 화폐란, &lt;b&gt;인터넷에서만 사용할 수 있는 돈&lt;/b&gt;을 말하는데, 트럼프 재임 말기에 디지털 화폐에 대한 관심이 높아졌었다. 트럼프 대통령은 디지털 화폐를 직접 만들려고 하지는 않았지만, 그 논의는 점점 활발해졌었다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;결론&lt;/b&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;그러므로, 트럼프 재임 기간 동안 암호화폐는 크게 성장했지만, 그 성장에 규제가 뒤따르지 않아서 혼란도 있었다고 정리해 볼 수 있다.&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;1778&quot; data-origin-height=&quot;1158&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b4gCnX/btsKBhidlT9/9kVMtG972WFgNNcrWPkMQ1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b4gCnX/btsKBhidlT9/9kVMtG972WFgNNcrWPkMQ1/img.png&quot; data-alt=&quot;출처 : 연합뉴스&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b4gCnX/btsKBhidlT9/9kVMtG972WFgNNcrWPkMQ1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb4gCnX%2FbtsKBhidlT9%2F9kVMtG972WFgNNcrWPkMQ1%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;671&quot; height=&quot;437&quot; data-origin-width=&quot;1778&quot; data-origin-height=&quot;1158&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;근데 그러면 트럼프는 가상자산(암호화폐)에 부정적이었는데 왜 가격은 오른거지?????&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;span style=&quot;text-align: left;&quot;&gt;1. 2024년 7월 내슈빌에서 열린 비트코인 컨퍼런스에 참석해 친암호화폐 정책을 발표&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1424&quot; data-origin-height=&quot;934&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bBCY41/btsKzGwVLz4/giUyh1DuFZir15F1n62h10/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bBCY41/btsKzGwVLz4/giUyh1DuFZir15F1n62h10/img.png&quot; data-alt=&quot;출처:연합뉴스&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bBCY41/btsKzGwVLz4/giUyh1DuFZir15F1n62h10/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbBCY41%2FbtsKzGwVLz4%2FgiUyh1DuFZir15F1n62h10%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;566&quot; height=&quot;371&quot; data-origin-width=&quot;1424&quot; data-origin-height=&quot;934&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;2. &lt;span style=&quot;text-align: left;&quot;&gt;선거 캠페인 기간 동안 비트코인 기부를 받아들여 약 4백만 달러 상당의 비트코인을 모금&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. &lt;span style=&quot;text-align: left;&quot;&gt;바이든 행정부의 암호화폐 규제를 &quot;암호화폐와의 전쟁&quot;이라고 비판하며 규제 완화를 약속&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;이외에도 여러가지 요인들이 있는데~&lt;/span&gt;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;1. &lt;b&gt;불확실성이 증가하면서 대체 자산으로 암호화폐 주목&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;트럼프가 대통령에 당선되면서 많은 사람들이 그의 정책과 행동에 대한 예측을 어렵게 느꼈다. 정치적 불확실성이 커지면서, 전통적인 자산(주식, 채권 등)에 대한 불안감이 커졌고, 이에 따라 사람들이 &lt;b&gt;암호화폐&lt;/b&gt;와 같은 대체 자산으로 눈을 돌리게 되었다. 암호화폐는 정부의 통제를 받지 않기 때문에 불확실한 상황에서 안전한 투자처로 여겨지고 있다.&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;2. &lt;b&gt;저금리와 양적 완화 정책&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;트럼프 재임 기간 동안, 미국의 중앙은행인 **연방준비제도(Fed)**는 금리를 낮추고, &lt;b&gt;양적 완화&lt;/b&gt;(돈을 많이 풀어 경제를 자극하는 정책)를 진행했었다. 이로 인해 전통적인 투자처에서 수익을 얻기 어려운 상황이 되었고, &lt;b&gt;암호화폐&lt;/b&gt;는 인플레이션 헤지(인플레이션을 막는 방법) 수단으로 주목받았다. 특히 비트코인은 '디지털 금'이라고 불리며, 금처럼 안전자산으로 인식되기 시작했다.&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;3. &lt;b&gt;트럼프의 규제 정책이 암호화폐에 유리&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;트럼프 대통령은 암호화폐에 대해 비교적 &lt;b&gt;규제를 엄격히 하지 않았다&lt;/b&gt;. 그의 정부는 새로운 기술과 시장에 대해 좀 더 자유로운 접근을 취했고, 암호화폐와 관련된 규제도 다른 정부에 비해 덜 강력했다. 이러한 규제 완화는 암호화폐 시장의 성장을 촉진시켰다.&lt;br /&gt;&lt;br /&gt;특히 이번에 약속한&lt;span style=&quot;text-align: start;&quot;&gt; 친암호화폐 정책은 다음과 같다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;- &lt;span style=&quot;text-align: left;&quot;&gt;국가 비트코인 비축: 정부가 보유한 모든 비트코인을 전략적 국가 비축금으로 유지하겠다고 밝혔다.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;- &lt;span style=&quot;text-align: left;&quot;&gt;암호화폐 자문 위원회 설립: 취임 100일 이내에 암호화폐 산업을 지지하는 전문가들로 구성된 자문 위원회를 만들겠다고 약속했다.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;- &lt;span style=&quot;text-align: left;&quot;&gt;SEC 위원장 교체: 암호화폐 업계의 비판을 받아온 게리 겐슬러 SEC 위원장을 교체하겠다고 공언했다.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;- &lt;span style=&quot;text-align: left;&quot;&gt;비트코인 채굴 산업 육성: 미국 내 비트코인 채굴 산업을 적극 지원하겠다고 밝혔다.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;4. &lt;b&gt;&quot;디지털 금&quot;으로서 비트코인에 대한 관심 증가&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;트럼프가 재임 중일 때, &lt;b&gt;비트코인&lt;/b&gt;은 점점 더 &quot;디지털 금&quot;으로 인식되었고, 경제 불확실성과 글로벌 경제의 변화에 따라 비트코인과 다른 암호화폐는 안전자산으로 각광받았었고, 이러한 인식 변화가 암호화폐 가격 상승을 이끌었다.&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;5. &lt;b&gt;시장 참여자들의 투자 열기&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;트럼프 당선 직후, 투자자들은 새로운 정부 정책에 대한 기대감을 갖고 암호화폐를 포함한 다양한 자산에 대한 투자를 확대했다. 비트코인 가격은 급등했고, 암호화폐 시장의 성장 가능성에 대한 신뢰가 커졌다.&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;결론&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;트럼프가 당선된 이유로 가상자산 가격이 오른 것은 &lt;b&gt;불확실성 증가&lt;/b&gt;, &lt;b&gt;저금리 정책&lt;/b&gt;, &lt;b&gt;규제 완화&lt;/b&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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;922&quot; data-origin-height=&quot;552&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dLNDjV/btsKAI1wxym/SSEgkPwCptxAjHQyOoGv6k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dLNDjV/btsKAI1wxym/SSEgkPwCptxAjHQyOoGv6k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dLNDjV/btsKAI1wxym/SSEgkPwCptxAjHQyOoGv6k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdLNDjV%2FbtsKAI1wxym%2FSSEgkPwCptxAjHQyOoGv6k%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;473&quot; height=&quot;283&quot; data-origin-width=&quot;922&quot; data-origin-height=&quot;552&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>Blockchain</category>
      <category>규제</category>
      <category>당선</category>
      <category>블록체인</category>
      <category>비트코인</category>
      <category>암호화폐</category>
      <category>오블완</category>
      <category>트럼프</category>
      <category>티스토리챌린지</category>
      <author>ㅇㄱ9</author>
      <guid isPermaLink="true">https://ekimnida.tistory.com/62</guid>
      <comments>https://ekimnida.tistory.com/62#entry62comment</comments>
      <pubDate>Fri, 8 Nov 2024 11:33:08 +0900</pubDate>
    </item>
    <item>
      <title>vercel 배포시 A commit author is required 에러</title>
      <link>https://ekimnida.tistory.com/61</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;700&quot; data-origin-height=&quot;400&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/baWiyE/btsKrgD077D/dQ6FRItNWuUktAlXNkyoe0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/baWiyE/btsKrgD077D/dQ6FRItNWuUktAlXNkyoe0/img.jpg&quot; data-alt=&quot;[출처]https://m.animalplanet.co.kr/&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/baWiyE/btsKrgD077D/dQ6FRItNWuUktAlXNkyoe0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbaWiyE%2FbtsKrgD077D%2FdQ6FRItNWuUktAlXNkyoe0%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;700&quot; height=&quot;400&quot; data-origin-width=&quot;700&quot; data-origin-height=&quot;400&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;[출처]https://m.animalplanet.co.kr/&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;Vercel로 프로젝트를 배포하는데 &lt;span style=&quot;background-color: #ffc1c8;&quot;&gt;A commit author is required&amp;nbsp;&amp;nbsp;&lt;/span&gt; 에러가 뜨지 뭡니까.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아니.. 나라고 커밋작성자 나라고!!!!!!!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;를 속으로만 외치고(회사니까..) 작성자 정보를 넣어주러 가봅니다...&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;1. Git 사용자 정보 설정&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;먼저, Git에 사용자 이름과 이메일을 설정해줍니다.&lt;br /&gt;그럼 Vercel이 배포 시 해당 정보를 참조하여 커밋 작성자 정보를 자동으로 인식합니다.&lt;/p&gt;
&lt;div&gt;
&lt;pre id=&quot;code_1730358078076&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;git config --global user.name &quot;Your Name&quot;
git config --global user.email &quot;your-email@example.com&quot;&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이렇게 설정하면 모든 프로젝트에 대해 동일한 작성자 정보를 사용하게 되는데, 혹시! 특정 프로젝트에만 설정하고 싶다면 --global 옵션을 제거하고 해당 프로젝트에서만 설정할 수 있습니다.&lt;/p&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;2. Git 커밋 확인 및 배포 재시도&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;183&quot; data-origin-height=&quot;276&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/IH2fr/btsKp79hXMz/cB3nvokKnG40TQC8nuBYKK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/IH2fr/btsKp79hXMz/cB3nvokKnG40TQC8nuBYKK/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/IH2fr/btsKp79hXMz/cB3nvokKnG40TQC8nuBYKK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FIH2fr%2FbtsKp79hXMz%2FcB3nvokKnG40TQC8nuBYKK%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;183&quot; height=&quot;276&quot; data-origin-width=&quot;183&quot; data-origin-height=&quot;276&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;돌리고 돌리고~~&lt;/p&gt;</description>
      <category>ERROR</category>
      <category>a commit author is required</category>
      <category>git</category>
      <category>vercel</category>
      <category>배포</category>
      <category>커밋</category>
      <author>ㅇㄱ9</author>
      <guid isPermaLink="true">https://ekimnida.tistory.com/61</guid>
      <comments>https://ekimnida.tistory.com/61#entry61comment</comments>
      <pubDate>Thu, 31 Oct 2024 16:05:39 +0900</pubDate>
    </item>
    <item>
      <title>[Next.js] 파일명 대소문자 변경 후 반영이 안될때</title>
      <link>https://ekimnida.tistory.com/60</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;후후..&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;vscode상에서 파일명에 들어간 대소문자를 변경했는데, 해당파일을 import하는 모든 곳에서 변경점을 감지하지못하고 빨간줄을 마구 내뱉을때! 침착하게 &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-origin-width=&quot;780&quot; data-origin-height=&quot;825&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/d8NKHV/btsKqLYRdaS/TtpWDVpvXzfVEb1ujCfZY1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/d8NKHV/btsKqLYRdaS/TtpWDVpvXzfVEb1ujCfZY1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/d8NKHV/btsKqLYRdaS/TtpWDVpvXzfVEb1ujCfZY1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fd8NKHV%2FbtsKqLYRdaS%2FTtpWDVpvXzfVEb1ujCfZY1%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;241&quot; height=&quot;255&quot; data-origin-width=&quot;780&quot; data-origin-height=&quot;825&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;div&gt;
&lt;div data-message-model-slug=&quot;gpt-4o&quot; data-message-id=&quot;1da3de47-0632-4bf3-9991-9ba9bd5d9ab2&quot; data-message-author-role=&quot;assistant&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;1. node_modules와 lock 파일 삭제하기&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1730357137066&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;rm -rf node_modules package-lock.json yarn.lock&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;2. Next.js 캐시도 삭제&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1730357206165&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;rm -rf .next&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;b&gt;3. 의존성 다시 설치&lt;br /&gt;&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1730357278082&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;npm install
# 또는
yarn install&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&lt;b&gt;4. 개발 서버 재시작하기&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1730357320049&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;npm run dev
# 또는
yarn dev&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&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;예를들어 nav.tsx를 Nav.tsx로 바꿨을때 이런문제가 생긴다면???&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;Nav.tsx -&amp;gt; Nav123.tsx 로 바꾼다음 커밋!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다시 Nav123.tsx -&amp;gt; Nav.tsx로 바꾼다음 커밋하고 푸쉬해주면 해결됩니다.&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;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;658&quot; data-origin-height=&quot;672&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bjQcmd/btsKCfYdvtv/Sd5Zs0mC5X4ocCZkkXeGJ1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bjQcmd/btsKCfYdvtv/Sd5Zs0mC5X4ocCZkkXeGJ1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bjQcmd/btsKCfYdvtv/Sd5Zs0mC5X4ocCZkkXeGJ1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbjQcmd%2FbtsKCfYdvtv%2FSd5Zs0mC5X4ocCZkkXeGJ1%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;433&quot; height=&quot;442&quot; data-origin-width=&quot;658&quot; data-origin-height=&quot;672&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;대소문자 바뀌는것도 좀 알아서 감지해줘라!!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>React &amp;amp; Next</category>
      <category>vercel</category>
      <category>깃</category>
      <category>대소문자</category>
      <category>레포</category>
      <category>반영안됨</category>
      <category>파일명변경</category>
      <author>ㅇㄱ9</author>
      <guid isPermaLink="true">https://ekimnida.tistory.com/60</guid>
      <comments>https://ekimnida.tistory.com/60#entry60comment</comments>
      <pubDate>Thu, 31 Oct 2024 15:49:07 +0900</pubDate>
    </item>
    <item>
      <title>tailwind.config.ts와  globals.css에 정의한 스타일 우선순위</title>
      <link>https://ekimnida.tistory.com/59</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;2024년들어 처음 쓰는 블로그 ㅎ&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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;408&quot; data-origin-height=&quot;498&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dL9JYi/btsJ6skwjTo/C7cUfNyP2vOYSYbe2nuua1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dL9JYi/btsJ6skwjTo/C7cUfNyP2vOYSYbe2nuua1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dL9JYi/btsJ6skwjTo/C7cUfNyP2vOYSYbe2nuua1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdL9JYi%2FbtsJ6skwjTo%2FC7cUfNyP2vOYSYbe2nuua1%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;273&quot; height=&quot;333&quot; data-origin-width=&quot;408&quot; data-origin-height=&quot;498&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;먼저 각 파일에서 스타일을 정의하는 방법을 알아보자.&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;1. &lt;b&gt;tailwind.config.ts에서의 스타일 정의&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;tailwind.config.ts 파일은 Tailwind CSS의 기본 설정과 테마를 확장하거나 수정하는 데 사용된다. 여기서는 Tailwind의 기본 색상, 폰트, 간격, 크기 등의 전역적인 디자인 시스템을 정의할 수 있다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;주요 목적&lt;/b&gt;: Tailwind의 기본 유틸리티 클래스를 확장하거나 덮어쓰기.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;예시&lt;/b&gt;: 색상, 폰트 크기, 간격 등을 전역적으로 수정하고 싶을 때 사용.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1728976126340&quot; class=&quot;typescript&quot; data-ke-language=&quot;typescript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;/** @type {import('tailwindcss').Config} */
module.exports = {
  content: ['./src/**/*.{html,js}'],
  theme: {
    colors: {
      'blue': '#1fb6ff',
      'purple': '#7e5bef',
      'pink': '#ff49db',
      'orange': '#ff7849',
      'green': '#13ce66',
      'yellow': '#ffc82c',
      'gray-dark': '#273444',
      'gray': '#8492a6',
      'gray-light': '#d3dce6',
    },
    fontFamily: {
      sans: ['Graphik', 'sans-serif'],
      serif: ['Merriweather', 'serif'],
    },
    extend: {
      spacing: {
        '8xl': '96rem',
        '9xl': '128rem',
      },
      borderRadius: {
        '4xl': '2rem',
      }
    }
  },
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 파일에 작성된 모든 부분은 선택사항으로 변경할 항목만 추가해 주면 된다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;정의되지 않은 부분들은 &lt;span style=&quot;background-color: #fdfdfd; color: #000000; text-align: start;&quot;&gt;Tailwind의 &lt;a href=&quot;https://github.com/tailwindlabs/tailwindcss/blob/main/stubs/config.full.js&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;디폴트 설정&lt;/a&gt;을 사용하게 된다.&amp;nbsp;&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;h3 data-ke-size=&quot;size23&quot;&gt;2. &lt;b&gt;globals.css에서의 스타일 정의&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;globals.css는 Tailwind CSS 프로젝트에서 글로벌 CSS를 정의하는 파일이다. 이 파일은 일반적으로 Tailwind에서 기본 제공하는 유틸리티 클래스 외에 추가적인 커스텀 CSS를 작성하는 데 사용되는데, 주로 특정 컴포넌트나 섹션에 맞춤형 스타일을 적용하는 데 사용된다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;주요 목적&lt;/b&gt;: Tailwind 유틸리티 클래스로 해결되지 않는 세부적인 스타일링을 커스텀 CSS로 정의.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;예시&lt;/b&gt;: 특정 컴포넌트에만 적용되는 스타일이나 CSS 변수 등을 정의할 때 사용.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1728976163441&quot; class=&quot;css&quot; data-ke-language=&quot;css&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;/* globals.css */
body {
  font-family: 'Inter', sans-serif;
}

.custom-button {
  background-color: #1D4ED8;
  color: white;
}&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;위 예시는 글로벌 스타일로서 body와 .custom-button 클래스에 직접적인 스타일을 적용한 예이다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;3. &lt;b&gt;우선순위&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Tailwind의 스타일은 기본적으로 &lt;b&gt;유틸리티 퍼스트&lt;/b&gt;(utility-first) CSS 프레임워크입니다. 그렇기 때문에 &lt;b&gt;유틸리티 클래스&lt;/b&gt;가 일반적인 CSS 스타일보다 우선 적용되는 경우가 많습니다. 하지만 우선순위는 &lt;b&gt;CSS의 일반적인 우선순위 규칙&lt;/b&gt;에 따라 달라집니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;Tailwind 유틸리티 클래스 vs globals.css의 스타일&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;동일한 요소에 대해 globals.css에 작성된 &lt;b&gt;CSS 스타일&lt;/b&gt;과 Tailwind의 &lt;b&gt;유틸리티 클래스&lt;/b&gt;가 충돌할 경우, &lt;b&gt;일반적인 CSS 우선순위 규칙&lt;/b&gt;에 따릅니다.&lt;/li&gt;
&lt;li&gt;예를 들어, 클래스 선택자(.custom-button)보다 Tailwind의 인라인 스타일이나 중요한 유틸리티 클래스(!important)가 우선될 수 있습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;우선순위 예시&lt;/b&gt;:
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Tailwind 클래스가 먼저 적용되지만, 만약 globals.css에서 더 높은 우선순위를 가진 선택자(예: ID 선택자, !important 등)를 사용하면 그 스타일이 우선됩니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1728976204943&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;button class=&quot;custom-button bg-red-500&quot;&amp;gt;Click me&amp;lt;/button&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위의 버튼에서 globals.css에 정의된 .custom-button의 background-color: #1D4ED8이 적용되지만, Tailwind 클래스 bg-red-500이 Tailwind의 유틸리티 클래스라서 더 높은 우선순위를 가집니다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;요약&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;tailwind.config.ts&lt;/b&gt;: Tailwind의 전역 테마 및 유틸리티 클래스를 설정.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;globals.css&lt;/b&gt;: Tailwind로 해결되지 않는 맞춤형 스타일을 정의.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;우선순위&lt;/b&gt;: 기본적으로 Tailwind 유틸리티 클래스가 우선되지만, CSS의 일반적인 우선순위 규칙에 따라 달라집니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 구조를 이해하면 Tailwind를 사용할 때 더 효과적으로 스타일을 관리할 수 있습니다.&lt;/p&gt;</description>
      <category>React &amp;amp; Next</category>
      <category>config</category>
      <category>css</category>
      <category>globals</category>
      <category>TAILWIND</category>
      <category>tailwind.config.ts</category>
      <category>우선순위</category>
      <category>유틸리티</category>
      <author>ㅇㄱ9</author>
      <guid isPermaLink="true">https://ekimnida.tistory.com/59</guid>
      <comments>https://ekimnida.tistory.com/59#entry59comment</comments>
      <pubDate>Tue, 15 Oct 2024 16:37:21 +0900</pubDate>
    </item>
    <item>
      <title>회사의 성장 속도와 직원의 성장속도</title>
      <link>https://ekimnida.tistory.com/58</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;어쩌다 보게 된 개발바닥 유튜브의 아래 두영상을 보고 쓰게 된 글이다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;시선 강탈하는 영상 썸네일에 이끌려 보게되었는데 생각해 본 것, 볼것들이 많아 정리해 봤다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(Q와 A모두 영상에 나오는 내용으로 개인적인 생각은 -&amp;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=aiP-uk8gnX4&quot; data-video-thumbnail=&quot;https://scrap.kakaocdn.net/dn/brdulq/hyR18KqMyC/xrMpX5u6VlBIK1VWhA7VG1/img.jpg?width=1280&amp;amp;height=720&amp;amp;face=216_374_1080_610&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-original-url=&quot;&quot; data-video-title=&quot;&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/aiP-uk8gnX4&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;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=48caj_2FHdo&quot; data-video-thumbnail=&quot;https://scrap.kakaocdn.net/dn/bfx25s/hyR16luXtK/buKVlz2kPDj9JTVykSNDJK/img.jpg?width=1280&amp;amp;height=720&amp;amp;face=258_394_1058_566&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-original-url=&quot;&quot; data-video-title=&quot;&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/48caj_2FHdo&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;Q : 스타트업에서 인원을 채워나가면서 몸집을 불릴 때, 10-20명까지는 어떻게든 채용이되는데 50명 100명 200명은 어떻게 뽑나?? 이구간이 채용이 힘든 시기다.&amp;nbsp;20명 -&amp;gt; 100명으로 갈 때&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;OR&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;개발실력은 좋으나 비전에는 관심이 크게 없는 사람&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;A : 비전을 포기한다. 진짜 초기일 때는 비전을 포기하면 동력이 안 생기지만 30명 정도까지 갔다면 좀 내려놔도 될 거 같다.&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;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;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Q : 초반에 비전을 보고 뽑은 사람들이 이후 들어온 기술력을 보고 뽑은 사람들을 못 따라간다면?&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;A : 그럼에도 불구하고 그들이&amp;nbsp; 할 수 있는 일이 있을 것이다.&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;gt; 1부 영상은 회사의 성장속도에 개인이 따라가지 못한다면 생기는 일, 2부 영상은 개인의 성정속도를 회사가 따라가지 못한다면 생기는 일 위주로 나온다.&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;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Q : 신입을 뽑아서 키웠더니 딴 데로 이직해요 -&amp;gt; A : 다른 방법을 찾아야죠&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Q : 그래서 경력직만 뽑고 있는데 이게 맞는 해결책인가요? -&amp;gt; A :외주는 어떤가요? ㅎㅎ&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;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;p data-ke-size=&quot;size16&quot;&gt;떠나는 사람을 잡을 수 없는 상황에서 팀장이 할 수 있는 일이 뭘까 생각해 봤다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그간 팀원들이 새로운 사람이 업무에 적응하는데 도와준 노력을 인정해 주는 것, 팀분위기가 더 흔들리지 않게 공동의 목표를 만들어 달성하게 하는 것 (EX 팀 내 스터디)...&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;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Q : 경력직만 뽑아서 운영하던 회사가 커지면 언젠가는 경력으로만은 풀이 안 채워지는 시기가 오는데,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그때 가서 신입을 뽑는다 하면 그 회사가 그 신입을 잘 키울 수 있을까요?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;A : 이때쯤이면 아예 외부에서 교육가능한 전문가를 데려와서 키우는 것도 방법이다.&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;gt; 위의 질문과 이어지는 질문이었다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;신입을 뽑는다 -&amp;gt; 2-3년 후면 이직한다 -&amp;gt; 키우는 비용이 너무 든다. -&amp;gt; 경력직만 뽑자 -&amp;gt; 회사가 커지면 경력직으로만 인재풀이 채워지지 않는다 -&amp;gt; 어쩌지??? 의 흐름&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;물론 경력자들 중에 업무 퍼포먼스도 잘 나오고 신입이 들어오면 교육도 잘하는 그런 유니콘 같은 사람들도 있다. 하지만 개인적인 생각으로는 그런 유니콘 같은 사람들이 있어도 회사자체에 신입을 키울 수 있는 시스템이 없다면 금방 한계에 부딪힐 것이라고 생각한다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;회사마다 부서마다 경력과 신입을 원하는 비율이 다를 텐데 내가 어떤 회사를 다니고 있고, 어떤 포지션인지, 이직을 고려한다면 그 회사에서 나에게 어떤 걸 바라는지 등등을 연차와 경험을 바탕으로 생각해 볼 수 있을 것 같다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;내가 신입인데 신입을 키워본 적이 없는 회사라면 (여러 회사 중 골라 갈 수 있는 상황이라는 가정하에) 그 회사를 선택할 가능성이 좀 낮아지지 않을까?&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;신입이 흔히 말하는 네카라쿠배에 갈 정도로 성장했다는 건 그 과정에서 우리 회사에도 많은 기여를 했다는 말이다.&amp;nbsp;&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;gt; 신입뿐 아니라 모든 직원들이 다니고 있는 회사보다 나은 회사로 이직했다는 건 대부분의 경우 몸담고 있었던 회사에서도 업무퍼포먼스가 향상됐을 가능성이 크다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이를 아는 회사와 모르는 회사, 알고도 모른척하는 회사와 알고 대우를 해주는 회사가 있는 게 아닐까..?&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;C레벨에 있는 개발자분들이 이런 고민들을 가지고 이런 대화를 나누는 걸 접할 기회가 없는데, 이런 영상을 보게 되어 신선했다. 여러 가지를 생각해 볼 수 있었던 영상인 것 같아 따로 정리를 해보았고, 스스로를 돌아보면서 회사에 뭘 기여하고 있는 사람인가를 생각해 보게 되었다.&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;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1145&quot; data-origin-height=&quot;645&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cw4Ait/btr5gv2EieP/YRYiBlzPFSEFNB4qVBsttk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cw4Ait/btr5gv2EieP/YRYiBlzPFSEFNB4qVBsttk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cw4Ait/btr5gv2EieP/YRYiBlzPFSEFNB4qVBsttk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcw4Ait%2Fbtr5gv2EieP%2FYRYiBlzPFSEFNB4qVBsttk%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;1145&quot; height=&quot;645&quot; data-origin-width=&quot;1145&quot; data-origin-height=&quot;645&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1149&quot; data-origin-height=&quot;648&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/n2cEn/btr5d2txuFp/dRyyT7gqRcZoYL4PbXbPr0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/n2cEn/btr5d2txuFp/dRyyT7gqRcZoYL4PbXbPr0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/n2cEn/btr5d2txuFp/dRyyT7gqRcZoYL4PbXbPr0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fn2cEn%2Fbtr5d2txuFp%2FdRyyT7gqRcZoYL4PbXbPr0%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;1149&quot; height=&quot;648&quot; data-origin-width=&quot;1149&quot; data-origin-height=&quot;648&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1147&quot; data-origin-height=&quot;641&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/stR8k/btr5fNvQTpP/Isu344tZYwskAvsk9426Vk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/stR8k/btr5fNvQTpP/Isu344tZYwskAvsk9426Vk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/stR8k/btr5fNvQTpP/Isu344tZYwskAvsk9426Vk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FstR8k%2Fbtr5fNvQTpP%2FIsu344tZYwskAvsk9426Vk%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;1147&quot; height=&quot;641&quot; data-origin-width=&quot;1147&quot; data-origin-height=&quot;641&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1145&quot; data-origin-height=&quot;642&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/AmCkO/btr5pabWxk9/DppFAXJj0rqSIYVxmUKyo1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/AmCkO/btr5pabWxk9/DppFAXJj0rqSIYVxmUKyo1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/AmCkO/btr5pabWxk9/DppFAXJj0rqSIYVxmUKyo1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FAmCkO%2Fbtr5pabWxk9%2FDppFAXJj0rqSIYVxmUKyo1%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;1145&quot; height=&quot;642&quot; data-origin-width=&quot;1145&quot; data-origin-height=&quot;642&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1147&quot; data-origin-height=&quot;641&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/x1Wq6/btr5dSxu1CE/j96I7PNEt9QOAEYN6tarDk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/x1Wq6/btr5dSxu1CE/j96I7PNEt9QOAEYN6tarDk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/x1Wq6/btr5dSxu1CE/j96I7PNEt9QOAEYN6tarDk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fx1Wq6%2Fbtr5dSxu1CE%2Fj96I7PNEt9QOAEYN6tarDk%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;1147&quot; height=&quot;641&quot; data-origin-width=&quot;1147&quot; data-origin-height=&quot;641&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1147&quot; data-origin-height=&quot;643&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b3dARs/btr5paweAfX/2hx1ynLMrB2WWdGafmrSKK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b3dARs/btr5paweAfX/2hx1ynLMrB2WWdGafmrSKK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b3dARs/btr5paweAfX/2hx1ynLMrB2WWdGafmrSKK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb3dARs%2Fbtr5paweAfX%2F2hx1ynLMrB2WWdGafmrSKK%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;1147&quot; height=&quot;643&quot; data-origin-width=&quot;1147&quot; data-origin-height=&quot;643&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>개발바닥</category>
      <category>개발자</category>
      <category>개인</category>
      <category>성장</category>
      <category>회사</category>
      <author>ㅇㄱ9</author>
      <guid isPermaLink="true">https://ekimnida.tistory.com/58</guid>
      <comments>https://ekimnida.tistory.com/58#entry58comment</comments>
      <pubDate>Fri, 24 Mar 2023 18:06:27 +0900</pubDate>
    </item>
    <item>
      <title>코드리뷰는 왜 하고 어떻게 해야 유의미해질까</title>
      <link>https://ekimnida.tistory.com/57</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;코드리뷰는 여러 측면에서 중요한 과정이다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;회사 입장에서는 개발자가 회사를 떠나도 코드는 유지되야 하고(지식경영(knowledge management) 측면), 개발자는 성장할 수 있는 기회를 가지게 되며 팀 입장에서는 팀워크와 코드쉐어링을 통한 장애에 대한 불안감을 감소시킬 수 있다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;도입 전 고려사항&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;코드 리뷰에 참여하는 구성원들의 인식이 같은 곳을 바라보는가? 문화로 받아들일 준비가 되어있는가?&amp;nbsp;&lt;/li&gt;
&lt;li&gt;어떤 코드가 좋은 코드에 대한 기준을 먼저 정하자.&amp;nbsp;&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;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;b&gt;1. 하나의 프로젝트는 일관성이 있어야 하고 클린코드를 지향하자.&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;코드를 읽는데 드는 비용을 줄일 수 있고 실수를 방지할 수 있다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ex) 함수선언방식의 통일등 일정 수준의 컨벤션을 정해 일관성을 유지하게 하자&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;2. 커밋과 풀리퀘스트는 30분 이내 리뷰가 가능하도록 잘라서 하자.&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;단 리뷰는 커밋단위보다는 전체 코드 맥락을 살피면서 해주는 것이 좋다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;3. 자신의 개발보다는 코드리뷰에 우선순위를 두자.&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;먼저 개발을 완료한 사람의 코드가 먼저 머지가 될 수 있게 해야 한다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;4. 개선이 필요한 이유를 충분히 구체적으로 작성하자.&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ex) &lt;span style=&quot;text-align: start;&quot;&gt;&amp;ldquo;data라는 이름은 현재의 자료구조가 무엇인지 그 의도를 알기가 어렵네요. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;학점 정보를 담고 있는 자료구조 같은데 이와 관련된 변수명을 짓는다면 현재 정의한 자료구조가 무엇인지 그 의도를 쉽게 파악할 수 있을 것 같아요.&amp;rdquo;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;5. 리뷰이가 스스로 고민 후 개선방법을 찾을 수 있도록 하자.&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ex) &lt;span style=&quot;text-align: start;&quot;&gt;&amp;ldquo;자바스크립트에는 배열에는 다양한 내장 메서드들이 존재합니다. 그중 filter 메서드를 활용해 보세요. 이 메서드를 활용하면 코드량을 줄일 수 있습니다.&amp;rdquo;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;6. 리뷰가 양방향 소통이 될 수 있도록 하자.&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;수정이 필요해 보이는 사항을 설명 후 해당 부분에 대한 리뷰이의 의도가 따로 있었는지를 다시 물어본다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;왜 이렇게 짰는지를 직접 고민하고 설명할 수 있어야 한다.&amp;nbsp;&lt;/p&gt;
&lt;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;7. 리뷰를 위한 리뷰를 하지 말자. 잘한 건 칭찬해 주자.&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;코드량이 적당해서 읽기 편하네요.&lt;/li&gt;
&lt;li&gt;많은 고민이 코드에서 엿보이네요.&lt;/li&gt;
&lt;li&gt;성능에 아주 유리한 코드라고 생각되네요.&lt;/li&gt;
&lt;li&gt;전에 코드보다 훨씬 좋아진 거 같네요.&lt;/li&gt;
&lt;li&gt;예외 처리가 꽤 꼼꼼해서 좋네요.&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;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;8. 리뷰 내용이 설계전반을 변경해야 한다면 코드를 짜기 전에 pre commit review를 활용해 보자.&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;프리 커밋 리뷰란, '&lt;/span&gt;GitHub에 커밋이 되기 전의 리뷰'&lt;span style=&quot;text-align: start;&quot;&gt;라는 뜻으로 실제 코딩 작업에 들어가기 전에, 어떻게 작업을 진행할지 가볍게 논의해 보는 리뷰를 말한다. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;코드를 리뷰하는 대신 디자인 시안이나 요구 사항을 보고 어떻게 작성할지 이야기해 보는 사전 리뷰 단계인 것이다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;기대효과&lt;/span&gt;&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal; background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;우선 앞서 이야기한 과도한 설계 변경에 대한 리뷰는 없을 것이다.&lt;/li&gt;
&lt;li&gt;서로의 관점을 공유함으로써&amp;nbsp;설계에 대한 인사이트를 얻을 수 있고&amp;nbsp;코드 품질에 대한 기준을 맞출 수 있다.&lt;/li&gt;
&lt;li&gt;해당 제품(또는 기능)의 도메인을 알아볼 수 있는 기회가 될 수 있다.&lt;/li&gt;
&lt;li&gt;코드 리뷰를 하게 됐을 때, 리뷰어 입장에선 리뷰 대상인 코드를 파악하기 쉬워지고, 이로 인해&amp;nbsp;깊은 코드 리뷰가 가능해진다.&lt;/li&gt;
&lt;li&gt;무엇보다 기능을 개발하기 전에 많은 고민을 하고 개발하기 때문에 빠르게 개발할 수 있다.&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;9. 코드리뷰로 인한 병목이 심하다면 제약이 없는 코드리뷰를 도입해 보자.&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;Pull Request를 등록하는 개발자는 이 Pull Request를 통해 성장하고 싶을 때, 리뷰를 요청하면 된다. 리뷰 요청을 받는 사람은 기꺼이 리뷰에 응하면 된다.&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;모든 Pull Request에 대해서 리뷰를 하지 않아도 됐기 때문에 코드 리뷰 양이 적어졌다.&lt;/li&gt;
&lt;li&gt;코드 리뷰 양이 적어졌기 때문에 요청이 들어왔을 경우 좀 더 빠르게 확인할 수 있게 되었다.&lt;/li&gt;
&lt;li&gt;코드 리뷰가 스프린트의 병목이 될 가능성을 낮췄다.&lt;/li&gt;
&lt;li&gt;심지어 리뷰가 필요한 Pull Request에서 리뷰가 요청이 왔으므로 유의미한 리뷰가 오갈 수 있는 확률이 더 많아졌다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;10. 사람이&lt;b&gt; 아닌 코드를 리뷰하라.&lt;/b&gt; (&lt;b&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;span style=&quot;text-align: start;&quot;&gt;영&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;어로 길게 작성하는 것은 어렵기 때문에 정말 중요한 이슈에 대해서는 서면보다는 대면으로, (페어 프로그래밍)으로 이뤄질 수 있다. (이것도...)&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;495&quot; data-origin-height=&quot;610&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/P9ImZ/btr5epUU2mn/1O2HZabd4WGqeumkPfkww1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/P9ImZ/btr5epUU2mn/1O2HZabd4WGqeumkPfkww1/img.png&quot; data-alt=&quot;[출처]https://dbr.donga.com/article/view/1203/article_no/10411&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/P9ImZ/btr5epUU2mn/1O2HZabd4WGqeumkPfkww1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FP9ImZ%2Fbtr5epUU2mn%2F1O2HZabd4WGqeumkPfkww1%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;225&quot; height=&quot;277&quot; data-origin-width=&quot;495&quot; data-origin-height=&quot;610&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;[출처]https://dbr.donga.com/article/view/1203/article_no/10411&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;&lt;b&gt;&lt;span style=&quot;text-align: start;&quot;&gt;11. pr의 라벨기능을 잘 활용하자. &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;ex) 리뷰 과정에서 새로운 관점을 배웠거나 좋은 리뷰라고 생각되는 Pull Request에는 &lt;/span&gt;&lt;span style=&quot;text-align: start;&quot; data-token-index=&quot;1&quot;&gt;Good Review라는&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt; 라벨로 표시하여 나중에 모두가 같이 볼 수 있도록 활용하자&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2000&quot; data-origin-height=&quot;1753&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dtpn58/btr5gvf06vY/lvCVfW1PDHgm7pkRVOeYRk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dtpn58/btr5gvf06vY/lvCVfW1PDHgm7pkRVOeYRk/img.png&quot; data-alt=&quot;[출처]&amp;amp;amp;nbsp;https://tosspayments-dev.oopy.io/chapters/frontend/about#c73b64d5-0d73-4b5d-9ede-9cddcb6d4012&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dtpn58/btr5gvf06vY/lvCVfW1PDHgm7pkRVOeYRk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fdtpn58%2Fbtr5gvf06vY%2FlvCVfW1PDHgm7pkRVOeYRk%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;2000&quot; height=&quot;1753&quot; data-origin-width=&quot;2000&quot; data-origin-height=&quot;1753&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;[출처]&amp;amp;nbsp;https://tosspayments-dev.oopy.io/chapters/frontend/about#c73b64d5-0d73-4b5d-9ede-9cddcb6d4012&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;&lt;b&gt;12. 코드리뷰를 할 여건이 되지 않는다면 고무오리디버깅(Rubber Duck Debugging)&lt;/b&gt;&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;text-align: start;&quot;&gt;을 활용해 보자.&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;고무오리디버깅은 문제가 잘 해결되지 않을 때 고무오리에게 설명하는 방법.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;혼자 코드리뷰를 할 때도 동료에게 설명하듯 스스로 회고하고 개선방법이 있다면 메모를 남겨두자.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;결론&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 잘 구축된 코드리뷰 시스템은 리뷰하는데 드는 시간보다 아끼는 시간이 더 크다. 빨리 가는 유일한 방법은 제대로 가는 것이다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;- 리뷰는 함께 성장하기 위한 수단으로 사용하자.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;text-align: start;&quot;&gt;참고&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;text-align: start;&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;Google의 코드리뷰 &lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;:&lt;a href=&quot;https://google.github.io/eng-practices/review/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://google.github.io/eng-practices/review/&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;Tricorder라는 정적 분석(잠재결함 분석) 도구와 Rosie라는 코드 정리 시스템(Large-Scale Cleanups and Code Changes)을 활용해 사용하지 않는 코드는 없애고 리팩토링이 필요한 경우에 효율적으로 리뷰를 한다고 알려져 있다&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;구글에서 코드리뷰 시 lgtm(look good to me) 를 얻으려면 다음의 세 가지 측면에서의 리뷰를 통과해야 한다.&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;첫째, 다른 엔지니어로부터 정확성(correctness)과 이해 용이성(comprehension)을 평가받습니다. &lt;br /&gt;즉, 작성자가 의도한 작업을 코드가 적절하게 수행하는지를 봅니다.&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #222222; text-align: start;&quot;&gt;둘째, 변경되는 코드 영역을 관리하는 코드 소유자로부터 변경 코드가 적절하다는 승인을 받습니다. &lt;br /&gt;구글의 코드베이스는 트리 구조로 되어 있고, 디렉터리별 소유자들이 계층적으로 할당되어 있습니다. 그리고 소유자는 자신이 맡은 디렉터리의 문지기 역할을 합니다. 변경은 아무 엔지니어나 제안할 수 있고 LGTM도 제안자 외의 모든 엔지니어가 달 수 있습니다. 하지만 코드베이스에 변경을 반영하려면 해당 디렉터리 소유자의 승인이 반드시 필요합니다.&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #222222; text-align: start;&quot;&gt;&lt;span style=&quot;color: #222222; text-align: start;&quot;&gt;셋째, 누군가로부터 &amp;lsquo;가독성&amp;rsquo; 승인을 받습니다. 즉, 변경 코드가 해당 언어의 스타일과 모범 사례를 잘 따르고 조직에서 기대하는 방식으로 작성되었는지를 검사받습니다.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;text-align: start;&quot;&gt;참고한 사이트들&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1679394855397&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;Code Review Developer Guide&quot; data-og-description=&quot;Google&amp;rsquo;s Engineering Practices documentation&quot; data-og-host=&quot;google.github.io&quot; data-og-source-url=&quot;https://google.github.io/eng-practices/review/&quot; data-og-url=&quot;https://google.github.io/eng-practices/review/&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://google.github.io/eng-practices/review/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://google.github.io/eng-practices/review/&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;Code Review Developer Guide&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Google&amp;rsquo;s Engineering Practices documentation&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;google.github.io&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;figure id=&quot;og_1679392452872&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;효과적인 코드리뷰를 위한 리뷰어의 자세&quot; data-og-description=&quot;안녕하세요, 톡FE파트에서 톡명함 서비스를 개발하고 있는 Kay입니다.저는 2022년 신입 공채 기술 온보딩 교육의 코드 리뷰어로 활동을 했는데요, 이를 통해 얻었던 경험과 효과적인 코드 리뷰를 &quot; data-og-host=&quot;tech.kakao.com&quot; data-og-source-url=&quot;https://tech.kakao.com/2022/03/17/2022-newkrew-onboarding-codereview/&quot; data-og-url=&quot;https://tech.kakao.com/2022/03/17/2022-newkrew-onboarding-codereview/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/cDWdNn/hyR0wLYFNj/97aKb5H9RnxxcBc1Z8PKi1/img.png?width=1160&amp;amp;height=481&amp;amp;face=0_0_1160_481,https://scrap.kakaocdn.net/dn/1Zdcv/hyR0zB1pCJ/tnAFTcsAkhFvNLEKhKrsk1/img.png?width=1160&amp;amp;height=481&amp;amp;face=0_0_1160_481,https://scrap.kakaocdn.net/dn/Uy9QI/hyR0zosDmO/V6uvCgauZYk1CuNlIRFafK/img.png?width=1160&amp;amp;height=481&amp;amp;face=0_0_1160_481&quot;&gt;&lt;a href=&quot;https://tech.kakao.com/2022/03/17/2022-newkrew-onboarding-codereview/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://tech.kakao.com/2022/03/17/2022-newkrew-onboarding-codereview/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/cDWdNn/hyR0wLYFNj/97aKb5H9RnxxcBc1Z8PKi1/img.png?width=1160&amp;amp;height=481&amp;amp;face=0_0_1160_481,https://scrap.kakaocdn.net/dn/1Zdcv/hyR0zB1pCJ/tnAFTcsAkhFvNLEKhKrsk1/img.png?width=1160&amp;amp;height=481&amp;amp;face=0_0_1160_481,https://scrap.kakaocdn.net/dn/Uy9QI/hyR0zosDmO/V6uvCgauZYk1CuNlIRFafK/img.png?width=1160&amp;amp;height=481&amp;amp;face=0_0_1160_481');&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;안녕하세요, 톡FE파트에서 톡명함 서비스를 개발하고 있는 Kay입니다.저는 2022년 신입 공채 기술 온보딩 교육의 코드 리뷰어로 활동을 했는데요, 이를 통해 얻었던 경험과 효과적인 코드 리뷰를&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;tech.kakao.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;figure id=&quot;og_1679393333620&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;TL;DR 조직 내 코드 리뷰는 리뷰하고자 하는 관점을 코드가 아닌, 코드를 작성한 엔지니어에게, 제품을 만드는 메이커에게 옮겨보면 어떨까. 사실 코드 리뷰 문화보다 중요한 것은 테스트 문화이&quot; data-og-host=&quot;jbee.io&quot; data-og-source-url=&quot;https://jbee.io/essay/code-review-goal/&quot; data-og-url=&quot;https://jbee.io/essay/code-review-goal/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/GCb98/hyR0tIvD4o/siAlNcHqKawI5B0KkZkKhk/img.jpg?width=800&amp;amp;height=400&amp;amp;face=0_0_800_400,https://scrap.kakaocdn.net/dn/xSxrq/hyR0l4MMoq/EimAg9J03FgkCRvBIN35hK/img.jpg?width=800&amp;amp;height=400&amp;amp;face=0_0_800_400,https://scrap.kakaocdn.net/dn/eXGdy/hyR0tuY5no/rCPuy4kBHDKtcKoMOtGPm0/img.jpg?width=1200&amp;amp;height=600&amp;amp;face=1018_125_1061_171&quot;&gt;&lt;a href=&quot;https://jbee.io/essay/code-review-goal/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://jbee.io/essay/code-review-goal/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/GCb98/hyR0tIvD4o/siAlNcHqKawI5B0KkZkKhk/img.jpg?width=800&amp;amp;height=400&amp;amp;face=0_0_800_400,https://scrap.kakaocdn.net/dn/xSxrq/hyR0l4MMoq/EimAg9J03FgkCRvBIN35hK/img.jpg?width=800&amp;amp;height=400&amp;amp;face=0_0_800_400,https://scrap.kakaocdn.net/dn/eXGdy/hyR0tuY5no/rCPuy4kBHDKtcKoMOtGPm0/img.jpg?width=1200&amp;amp;height=600&amp;amp;face=1018_125_1061_171');&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;TL;DR 조직 내 코드 리뷰는 리뷰하고자 하는 관점을 코드가 아닌, 코드를 작성한 엔지니어에게, 제품을 만드는 메이커에게 옮겨보면 어떨까. 사실 코드 리뷰 문화보다 중요한 것은 테스트 문화이&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;jbee.io&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;figure id=&quot;og_1679393667242&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;tosspayments-dev.oopy.io&quot; data-og-source-url=&quot;https://tosspayments-dev.oopy.io/chapters/frontend/about#c73b64d5-0d73-4b5d-9ede-9cddcb6d4012&quot; data-og-url=&quot;https://tosspayments-dev.oopy.io/chapters/frontend/about&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://tosspayments-dev.oopy.io/chapters/frontend/about#c73b64d5-0d73-4b5d-9ede-9cddcb6d4012&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://tosspayments-dev.oopy.io/chapters/frontend/about#c73b64d5-0d73-4b5d-9ede-9cddcb6d4012&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;토스페이먼츠 프론트엔드 챕터를 소개합니다&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;tosspayments-dev.oopy.io&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;figure id=&quot;og_1679394919707&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;[DBR] 지속가능한 기술력 핵심은 &amp;lsquo;코드 리뷰&amp;rsquo;, 개발자 떠나도 제품 연속성 유지 가능&quot; data-og-description=&quot;Article at a Glance많은 기업이 박차를 가하는 디지털 트랜스포메이션에는 탄탄한 엔지니어링 기술력이 뒷받침돼야 한다. 뛰어난 기술력의 핵심은 결국 코드다. 글로벌 IT 기업뿐만 아니라 네이버, &quot; data-og-host=&quot;dbr.donga.com&quot; data-og-source-url=&quot;https://dbr.donga.com/article/view/1203/article_no/10411&quot; data-og-url=&quot;https://dbr.donga.com/article/view/1203/article_no/10411&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bGNwxF/hyR0pTESIL/ubQkbQRNLFL2DkZpHLCy91/img.png?width=581&amp;amp;height=420&amp;amp;face=0_0_581_420&quot;&gt;&lt;a href=&quot;https://dbr.donga.com/article/view/1203/article_no/10411&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://dbr.donga.com/article/view/1203/article_no/10411&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bGNwxF/hyR0pTESIL/ubQkbQRNLFL2DkZpHLCy91/img.png?width=581&amp;amp;height=420&amp;amp;face=0_0_581_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;[DBR] 지속가능한 기술력 핵심은 &amp;lsquo;코드 리뷰&amp;rsquo;, 개발자 떠나도 제품 연속성 유지 가능&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Article at a Glance많은 기업이 박차를 가하는 디지털 트랜스포메이션에는 탄탄한 엔지니어링 기술력이 뒷받침돼야 한다. 뛰어난 기술력의 핵심은 결국 코드다. 글로벌 IT 기업뿐만 아니라 네이버,&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;dbr.donga.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;figure id=&quot;og_1679394922056&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;코드 리뷰 | TechWell&quot; data-og-description=&quot;코드리뷰&quot; data-og-host=&quot;techwell.wooritech.com&quot; data-og-source-url=&quot;https://techwell.wooritech.com/blog/2021/04/19/%EC%BD%94%EB%93%9C%EB%A6%AC%EB%B7%B0/&quot; data-og-url=&quot;https://techwell.wooritech.com/blog/2021/04/19/코드리뷰&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/Jn96d/hyR0xc6n6K/pTcLS8zfdBokW1WocGP3lk/img.jpg?width=2550&amp;amp;height=1700&amp;amp;face=0_0_2550_1700,https://scrap.kakaocdn.net/dn/blTiB7/hyR0mbz9OR/V2yJuePPxZVKQcbG9POXG1/img.jpg?width=2550&amp;amp;height=1700&amp;amp;face=0_0_2550_1700,https://scrap.kakaocdn.net/dn/DiXUU/hyR0wrJ0zI/iD024DnKqSK3nNP2Sy1bRk/img.jpg?width=460&amp;amp;height=460&amp;amp;face=0_0_460_460&quot;&gt;&lt;a href=&quot;https://techwell.wooritech.com/blog/2021/04/19/%EC%BD%94%EB%93%9C%EB%A6%AC%EB%B7%B0/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://techwell.wooritech.com/blog/2021/04/19/%EC%BD%94%EB%93%9C%EB%A6%AC%EB%B7%B0/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/Jn96d/hyR0xc6n6K/pTcLS8zfdBokW1WocGP3lk/img.jpg?width=2550&amp;amp;height=1700&amp;amp;face=0_0_2550_1700,https://scrap.kakaocdn.net/dn/blTiB7/hyR0mbz9OR/V2yJuePPxZVKQcbG9POXG1/img.jpg?width=2550&amp;amp;height=1700&amp;amp;face=0_0_2550_1700,https://scrap.kakaocdn.net/dn/DiXUU/hyR0wrJ0zI/iD024DnKqSK3nNP2Sy1bRk/img.jpg?width=460&amp;amp;height=460&amp;amp;face=0_0_460_460');&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;코드 리뷰 | TechWell&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;techwell.wooritech.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;figure id=&quot;og_1679395071255&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;LGTM이 뭐지? : 구글의 코드 리뷰 &amp;amp; 코드 리뷰 유형&quot; data-og-description=&quot;코드 리뷰는 작성자 이외의 사람이 코드를 검토하는 프로세스입니다. 주로 코드를 코드베이스에 반영하기 전에 수행합니다. 정의는 단순하지만 소프트웨어 업계에서 실행되는 모습은 매우 다&quot; data-og-host=&quot;m.hanbit.co.kr&quot; data-og-source-url=&quot;https://m.hanbit.co.kr/channel/category/category_view.html?cms_code=CMS3858769941&quot; data-og-url=&quot;https://m.hanbit.co.kr/channel/category/category_view.html?cms_code=CMS3858769941&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/3zv8I/hyR0wedoIz/8N0vVK6YPVUr0zPAlq89gk/img.jpg?width=600&amp;amp;height=600&amp;amp;face=0_0_600_600,https://scrap.kakaocdn.net/dn/Lltu1/hyR0kdOIHj/W5DrB57H7YICJFAfNj5BVK/img.jpg?width=700&amp;amp;height=466&amp;amp;face=0_0_700_466,https://scrap.kakaocdn.net/dn/f2RLK/hyR0ywkUYY/fijyki2ancXGWwS6MxkKUK/img.jpg?width=600&amp;amp;height=400&amp;amp;face=0_0_600_400&quot;&gt;&lt;a href=&quot;https://m.hanbit.co.kr/channel/category/category_view.html?cms_code=CMS3858769941&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://m.hanbit.co.kr/channel/category/category_view.html?cms_code=CMS3858769941&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/3zv8I/hyR0wedoIz/8N0vVK6YPVUr0zPAlq89gk/img.jpg?width=600&amp;amp;height=600&amp;amp;face=0_0_600_600,https://scrap.kakaocdn.net/dn/Lltu1/hyR0kdOIHj/W5DrB57H7YICJFAfNj5BVK/img.jpg?width=700&amp;amp;height=466&amp;amp;face=0_0_700_466,https://scrap.kakaocdn.net/dn/f2RLK/hyR0ywkUYY/fijyki2ancXGWwS6MxkKUK/img.jpg?width=600&amp;amp;height=400&amp;amp;face=0_0_600_400');&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;LGTM이 뭐지? : 구글의 코드 리뷰 &amp;amp; 코드 리뷰 유형&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;m.hanbit.co.kr&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>code</category>
      <category>lgtm</category>
      <category>review</category>
      <category>방법</category>
      <category>성장</category>
      <category>코드리뷰</category>
      <category>협업</category>
      <author>ㅇㄱ9</author>
      <guid isPermaLink="true">https://ekimnida.tistory.com/57</guid>
      <comments>https://ekimnida.tistory.com/57#entry57comment</comments>
      <pubDate>Tue, 21 Mar 2023 20:01:39 +0900</pubDate>
    </item>
  </channel>
</rss>