<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>Done is better than perfect</title>
    <link>https://googleyness.tistory.com/</link>
    <description>I am a very positive thinker, and I think that is what helps me the most in difficult moments.

I definitely feel there&amp;rsquo;s room for improvement.

Roger Federer</description>
    <language>ko</language>
    <pubDate>Tue, 19 May 2026 18:42:41 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>ROGERNM</managingEditor>
    <item>
      <title>2025년, 충분히 가난하셨나요? 2026년 자본주의 생존을 위한 3가지 질문</title>
      <link>https://googleyness.tistory.com/entry/2025%EB%85%84-%EC%B6%A9%EB%B6%84%ED%9E%88-%EA%B0%80%EB%82%9C%ED%95%98%EC%85%A8%EB%82%98%EC%9A%94-2026%EB%85%84-%EC%9E%90%EB%B3%B8%EC%A3%BC%EC%9D%98-%EC%83%9D%EC%A1%B4%EC%9D%84-%EC%9C%84%ED%95%9C-3%EA%B0%80%EC%A7%80-%EC%A7%88%EB%AC%B8</link>
      <description>&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;&lt;br&gt;안녕하세요. 어느덧 2025년도 며칠 남지 않았습니다.&lt;br&gt;&lt;br&gt;올 한 해, 다들 어떻게 보내셨나요? 아마 많은 분이 아침 일찍 출근해 밤늦게까지 치열하게 달리셨을 겁니다. &lt;br&gt;&lt;br&gt;그런데 참 이상하죠. 몸은 부서져라 일했는데, 통장 잔고는 왜 작년과 똑같거나 오히려 더 줄어든 기분일까요?&lt;br&gt;&lt;br&gt;만약 당신이 &quot;열심히 사는데 왜 돈은 안 모일까?&quot;라는 고민을 하고 있다면, 오늘 이 글이 당신의 2026년을 완전히 바꿔놓을 변곡점이 될지도 모릅니다.&lt;br&gt;&lt;br&gt;당신은 자본주의라는 '게임'의 룰을 알고 있습니까?&lt;br&gt;&lt;br&gt;우리는 학교에서 미적분은 배워도, 정작 우리가 평생 숨 쉬듯 사용하는 '돈'에 대해서는 배우지 못합니다.&lt;br&gt;&lt;br&gt; 자본주의 사회에 살면서 자본주의를 모른다는 것. 그것은 규칙도 모른 채 전 재산을 걸고 도박판에 뛰어든 것과 다를 바 없습니다.&lt;br&gt;&lt;br&gt;본론에 들어가기 전, 스스로에게 딱 3가지 질문만 던져보세요.&lt;br&gt;&lt;br&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;/li&gt;&lt;/ul&gt;&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;&lt;li&gt;은행은 왜 당신에게 자꾸 '저축'을 하라고 권할까?&lt;/li&gt;&lt;/ul&gt;&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;&lt;li&gt; 물가는 왜 단 한 번도 내린 적이 없을까?&lt;/li&gt;&lt;/ul&gt;&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;&lt;br&gt;이 질문에 자신 있게 답하지 못한다면, 당신은 지금 자본주의라는 거대한 시스템 아래에서 '보이지 않는 사슬'에 묶여 있을 확률이 높습니다.&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;h3 style=&quot;text-align: left;&quot; data-ke-size=&quot;size23&quot;&gt;우리가 평생 일해도 가난할 수밖에 없는 이유&lt;br&gt;&lt;/h3&gt;&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;자본주의의 핵심은 '신용창조'에 있습니다. 돈은 누군가의 '대출'을 통해 계속해서 새로 만들어집니다. &lt;br&gt;&lt;br&gt;시중에 돈이 많아지니 내가 가진 현금의 가치는 매일 녹아내립니다. 이것이 우리가 겪는 인플레이션의 실체입니다.&lt;br&gt;&lt;br&gt;즉, 가만히 저축만 하는 사람은 시스템에 의해 합법적으로 가난해지고 있는 셈입니다.&lt;br&gt;&lt;br&gt;은행이 저축을 강조하는 이유도 당신을 위해서가 아닙니다. 당신의 예금이 있어야 그 돈을 10배, 20배로 불려 대출 장사를 할 수 있기 때문이죠. &lt;br&gt;&lt;br&gt;우리는 이 &lt;b&gt;잔인한 룰&lt;/b&gt;을 이해해야만 합니다. &lt;br&gt;&lt;br&gt;당신이 북한에 살지 않는 한, 이 룰을 모르는 대가는 오로지 당신의 '가난'으로 돌아옵니다.&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;h3 style=&quot;text-align: left;&quot; data-ke-size=&quot;size23&quot;&gt;2026년, '노동자'에서 '자본가'로 갈아타는 법&lt;br&gt;&lt;/h3&gt;&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;2025년까지의 삶이 '내 몸을 써서 돈을 버는 노동'에 집중되어 있었다면, 2026년은 '내 돈이 나를 위해 일하게 하는 시스템'을 공부해야 합니다.&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;&lt;li&gt; 금융 지능(FQ)을 높이세요: 뉴스에서 금리와 환율을 이야기할 때, 내 지갑에 미칠 영향을 즉각 계산할 수 있어야 합니다.&lt;/li&gt;&lt;/ul&gt;&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;자산의 성격을 바꾸세요: 매달 사라지는 소비가 아니라, 시간이 지날수록 가치가 오르거나 현금흐름을 만드는 '자산'에 내 소득을 투입해야 합니다.&lt;/li&gt;&lt;/ul&gt;&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;&lt;li&gt; 공부를 시작하세요: 돈을 버는 기술보다 중요한 것이 '돈의 속성'을 이해하는 것입니다.&lt;/li&gt;&lt;/ul&gt;&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;&lt;br&gt;2026년, 우리 함께 시작합시다&lt;br&gt;가난은 부끄러운 것이 아니지만, 자본주의를 공부하지 않아 가난 속에 머무는 것은 본인과 가족에게 너무나 가혹한 일입니다.&lt;br&gt;&lt;br&gt;2026년 한 해, 저는 이 블로그를 통해 여러분과 함께 '자본주의 생존 전략'을 하나씩 파헤쳐 보려고 합니다. &lt;br&gt;&lt;br&gt;혼자 하면 막막하지만, 함께 공부하고 실천하면 길은 반드시 보입니다.&lt;br&gt;2025년 한 해 정말 고생 많으셨습니다. 이제 후회는 털어버리고, 2026년은 &lt;br&gt;'경제적 자유'를 향한 원년으로 만듭시다.&lt;br&gt;&lt;br&gt;구독과 공감은 2026년 부의 기운을 불러옵니다! &lt;br&gt;여러분이 내년에 꼭 이루고 싶은 경제적 목표는 무엇인가요? 댓글로 함께 나누어 주세요.&lt;/p&gt;</description>
      <category>경제뉴스</category>
      <category>2026년경제전망</category>
      <category>경제공부</category>
      <category>금융문맹탈출</category>
      <category>돈의속성</category>
      <category>부자되는법</category>
      <category>인플레이션</category>
      <category>자본주의</category>
      <category>재테크기초</category>
      <author>ROGERNM</author>
      <guid isPermaLink="true">https://googleyness.tistory.com/136</guid>
      <comments>https://googleyness.tistory.com/entry/2025%EB%85%84-%EC%B6%A9%EB%B6%84%ED%9E%88-%EA%B0%80%EB%82%9C%ED%95%98%EC%85%A8%EB%82%98%EC%9A%94-2026%EB%85%84-%EC%9E%90%EB%B3%B8%EC%A3%BC%EC%9D%98-%EC%83%9D%EC%A1%B4%EC%9D%84-%EC%9C%84%ED%95%9C-3%EA%B0%80%EC%A7%80-%EC%A7%88%EB%AC%B8#entry136comment</comments>
      <pubDate>Mon, 29 Dec 2025 22:36:56 +0900</pubDate>
    </item>
    <item>
      <title>[Python] 파이썬의 연산자 우선순위</title>
      <link>https://googleyness.tistory.com/entry/Python-%ED%8C%8C%EC%9D%B4%EC%8D%AC%EC%9D%98-%EC%97%B0%EC%82%B0%EC%9E%90-%EC%9A%B0%EC%84%A0%EC%88%9C%EC%9C%84</link>
      <description>&lt;p style=&quot;background-color: #ffffff; color: #0d0d0d; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;파이썬에서 연산자는 다양한 종류가 있으며,&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #0d0d0d; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;이들은 연산을 수행할 때 특정한 우선순위를 가진다. 이러한 우선순위는 연산의 결과에 영향을 줄 수 있으므로, 파이썬 코드를 작성하거나 분석할 때 매우 중요하다.&amp;nbsp;&lt;/p&gt;
&lt;table style=&quot;background-color: #ffffff; color: #0d0d0d; text-align: left; border-collapse: collapse; width: 100%; height: 270px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;우선순위&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;연산자 종류&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;설명&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;height: 20px;&quot;&gt;1&lt;/td&gt;
&lt;td style=&quot;height: 20px;&quot;&gt;()&lt;/td&gt;
&lt;td style=&quot;height: 20px;&quot;&gt;괄호&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;height: 20px;&quot;&gt;2&lt;/td&gt;
&lt;td style=&quot;height: 20px;&quot;&gt;**&lt;/td&gt;
&lt;td style=&quot;height: 20px;&quot;&gt;지수 (거듭제곱)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;height: 20px;&quot;&gt;3&lt;/td&gt;
&lt;td style=&quot;height: 20px;&quot;&gt;+x, -x, ~x&lt;/td&gt;
&lt;td style=&quot;height: 20px;&quot;&gt;단항 플러스, 단항 마이너스, 비트 단위 NOT&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;height: 20px;&quot;&gt;4&lt;/td&gt;
&lt;td style=&quot;height: 20px;&quot;&gt;*, /, //, %&lt;/td&gt;
&lt;td style=&quot;height: 20px;&quot;&gt;곱셈, 나눗셈, 정수 나눗셈, 모듈로&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;height: 20px;&quot;&gt;5&lt;/td&gt;
&lt;td style=&quot;height: 20px;&quot;&gt;+, -&lt;/td&gt;
&lt;td style=&quot;height: 20px;&quot;&gt;덧셈, 뺄셈&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;height: 20px;&quot;&gt;6&lt;/td&gt;
&lt;td style=&quot;height: 20px;&quot;&gt;&amp;lt;&amp;lt;, &amp;gt;&amp;gt;&lt;/td&gt;
&lt;td style=&quot;height: 20px;&quot;&gt;비트 단위 왼쪽 시프트, 비트 단위 오른쪽 시프트&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;height: 20px;&quot;&gt;7&lt;/td&gt;
&lt;td style=&quot;height: 20px;&quot;&gt;&amp;amp;&lt;/td&gt;
&lt;td style=&quot;height: 20px;&quot;&gt;비트 단위 AND&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;height: 20px;&quot;&gt;8&lt;/td&gt;
&lt;td style=&quot;height: 20px;&quot;&gt;^&lt;/td&gt;
&lt;td style=&quot;height: 20px;&quot;&gt;비트 단위 XOR&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;height: 20px;&quot;&gt;9&lt;/td&gt;
&lt;td style=&quot;height: 20px;&quot;&gt;|&lt;/td&gt;
&lt;td style=&quot;height: 20px;&quot;&gt;비트 단위 OR&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;height: 20px;&quot;&gt;10&lt;/td&gt;
&lt;td style=&quot;height: 20px;&quot;&gt;==, !=, &amp;lt;, &amp;lt;=, &amp;gt;, &amp;gt;=&lt;/td&gt;
&lt;td style=&quot;height: 20px;&quot;&gt;비교 연산자&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;height: 20px;&quot;&gt;11&lt;/td&gt;
&lt;td style=&quot;height: 20px;&quot;&gt;not&lt;/td&gt;
&lt;td style=&quot;height: 20px;&quot;&gt;논리 NOT&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;height: 20px;&quot;&gt;12&lt;/td&gt;
&lt;td style=&quot;height: 20px;&quot;&gt;and&lt;/td&gt;
&lt;td style=&quot;height: 20px;&quot;&gt;논리 AND&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;height: 20px;&quot;&gt;13&lt;/td&gt;
&lt;td style=&quot;height: 20px;&quot;&gt;or&lt;/td&gt;
&lt;td style=&quot;height: 20px;&quot;&gt;논리 OR&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;background-color: #ffffff; color: #0d0d0d; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #0d0d0d; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;이 표는 파이썬 연산자와 그들의 기본적인 우선순위를 나타낸다. 연산자가 같은 우선순위 그룹에 속한다면, 파이썬은 왼쪽에서 오른쪽 순서로 연산을 수행한다 (단, 지수 연산자 **는 오른쪽에서 왼쪽으로 연산). 이를 통해 복잡한 표현식에서 어떤 연산이 먼저 처리될지 예측할 수 있게 해준다. 연산자 우선순위를 이해하고 올바르게 사용하는 것은 코드의 정확성과 가독성을 높이는 데 매우 중요하다.&lt;/p&gt;</description>
      <category>IT/Python</category>
      <category>연산자</category>
      <category>연산자종류</category>
      <category>우선순위</category>
      <category>파이썬</category>
      <author>ROGERNM</author>
      <guid isPermaLink="true">https://googleyness.tistory.com/132</guid>
      <comments>https://googleyness.tistory.com/entry/Python-%ED%8C%8C%EC%9D%B4%EC%8D%AC%EC%9D%98-%EC%97%B0%EC%82%B0%EC%9E%90-%EC%9A%B0%EC%84%A0%EC%88%9C%EC%9C%84#entry132comment</comments>
      <pubDate>Wed, 27 Mar 2024 22:27:45 +0900</pubDate>
    </item>
    <item>
      <title>[Python] 파이썬 기초: 출력, 주석, 들여쓰기, 그리고 더!</title>
      <link>https://googleyness.tistory.com/entry/Python-%ED%8C%8C%EC%9D%B4%EC%8D%AC-%EA%B8%B0%EC%B4%88-%EC%B6%9C%EB%A0%A5-%EC%A3%BC%EC%84%9D-%EB%93%A4%EC%97%AC%EC%93%B0%EA%B8%B0-%EA%B7%B8%EB%A6%AC%EA%B3%A0-%EB%8D%94</link>
      <description>&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;122&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/2LBBZ/btsF2NTc2HX/7sWwDkkM0LuUOqBmjmKC6K/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/2LBBZ/btsF2NTc2HX/7sWwDkkM0LuUOqBmjmKC6K/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/2LBBZ/btsF2NTc2HX/7sWwDkkM0LuUOqBmjmKC6K/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F2LBBZ%2FbtsF2NTc2HX%2F7sWwDkkM0LuUOqBmjmKC6K%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;414&quot; height=&quot;122&quot; data-origin-width=&quot;414&quot; data-origin-height=&quot;122&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d; text-align: start;&quot;&gt;✨ 파이썬 마스터하기: 기본 출력, 주석, 들여쓰기 및 출력 형식 지정 완벽 가이드&lt;/span&gt; &lt;span style=&quot;background-color: #ffffff; color: #0d0d0d; text-align: start;&quot;&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d; text-align: start;&quot;&gt;파이썬은 그 간결함과 사용자 친화적인 문법으로 인해 프로그래밍을 배우는 사람들에게 인기 있는 언어입니다. 이 블로그 포스트에서는 파이썬의 기본적인 기능인 출력과 주석 사용법, 들여쓰기의 중요성, 그리고 출력 내용을 다루는 다양한 방법들에 대해 알아보겠습니다.&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h3 style=&quot;background-color: #ffffff; color: #0d0d0d; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;✔ 파이썬의 기본 출력과 예제&lt;/h3&gt;
&lt;p style=&quot;background-color: #ffffff; color: #0d0d0d; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;파이썬에서 가장 기본적인 출력 방법은 print() 함수를 사용하는 것입니다. 이 함수는 문자열, 숫자, 객체 등 다양한 데이터 타입을 콘솔에 출력할 수 있습니다.&lt;/p&gt;
&lt;pre id=&quot;code_1711201991845&quot; class=&quot;gauss&quot; style=&quot;background-color: #f8f8f8; color: #383a42; text-align: start;&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;python&quot;&gt;&lt;code&gt;print(&quot;Hello, Python!&quot;)  # 문자열 출력
print(123)                # 숫자 출력
print(3.14)               # 부동 소수점 숫자 출력&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;background-color: #ffffff; color: #0d0d0d; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;✔ 파이썬의 주석과 예제&lt;/h3&gt;
&lt;p style=&quot;background-color: #ffffff; color: #0d0d0d; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;코드에 주석을 추가하는 것은 프로그램의 가독성을 높이고, 코드의 목적이나 복잡한 로직을 설명하는 데 도움이 됩니다. 파이썬에서는 # 기호를 사용하여 주석을 추가합니다.&lt;/p&gt;
&lt;pre id=&quot;code_1711202007604&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# 이것은 한 줄 주석입니다.
print(&quot;주석은 실행되지 않습니다.&quot;)  # 이것도 주석입니다.

'''
이것은 여러 줄 주석입니다.
여러 줄에 걸쳐 설명을 추가할 수 있습니다.
'''&lt;/code&gt;&lt;/pre&gt;
&lt;h3 style=&quot;background-color: #ffffff; color: #0d0d0d; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;✔ 파이썬의 들여쓰기와 예제&lt;/h3&gt;
&lt;p style=&quot;background-color: #ffffff; color: #0d0d0d; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d; text-align: start;&quot;&gt;파이썬에서 들여쓰기는 매우 중요합니다. 들여쓰기는 코드 블록을 구분하는 데 사용되며, 일관성을 유지하기 위해 보통 공백 4개를 사용합니다. &lt;/span&gt;Tab&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d; text-align: start;&quot;&gt; 대신 &lt;/span&gt;Ctrl + ]&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d; text-align: start;&quot;&gt; 단축키를 사용하여 들여쓰기를 할 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1711202046492&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;for i in range(3):
    print(i)  # 이 줄은 들여쓰기 되었습니다.&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;background-color: #ffffff; color: #0d0d0d; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;✔ 파이썬 출력할 내용의 연결과 분리 방법&amp;nbsp;&lt;/h3&gt;
&lt;p style=&quot;background-color: #ffffff; color: #0d0d0d; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;print() 함수에서는 쉼표를 사용하여 여러 개의 값을 출력할 수 있으며, 기본적으로 공백으로 구분됩니다. 또한, + 연산자를 사용하여 문자열을 연결할 수도 있습니다.&lt;/p&gt;
&lt;pre id=&quot;code_1711202070905&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;print(&quot;Hello&quot;, &quot;Python&quot;, &quot;!&quot;)  # Hello Python !
print(&quot;Hello&quot; + &quot;Python&quot; + &quot;!&quot;)  # HelloWorld!&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;background-color: #ffffff; color: #0d0d0d; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;✔ 공백 대신 다른 문자로 구분&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;print()&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d; text-align: start;&quot;&gt; 함수의 &lt;/span&gt;sep&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d; text-align: start;&quot;&gt; 매개변수를 사용하여 출력되는 값들 사이에 들어갈 구분자를 지정할 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1711202334921&quot; class=&quot;routeros&quot; style=&quot;background-color: #f8f8f8; color: #383a42; text-align: start;&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;python&quot;&gt;&lt;code&gt;print(&quot;Hello&quot;, &quot;Python&quot;, &quot;!&quot;, sep=&quot;-&quot;)  # Hello-Python-!&lt;/code&gt;&lt;/pre&gt;
&lt;h3 style=&quot;background-color: #ffffff; color: #0d0d0d; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;✔&lt;span&gt;&amp;nbsp;&lt;/span&gt;print 함수의 줄바꿈&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d; text-align: start;&quot;&gt;기본적으로, &lt;/span&gt;print()&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d; text-align: start;&quot;&gt; 함수는 출력 후에 줄바꿈을 합니다. 이를 제어하기 위해 &lt;/span&gt;end&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d; text-align: start;&quot;&gt; 파라미터를 사용할 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1711202376639&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;print(&quot;줄바꿈 없이&quot;, end=&quot; &quot;)
print(&quot;출력하기&quot;)&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;background-color: #ffffff; color: #0d0d0d; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;✔ 줄바꿈을 하지 않았을 때&lt;/h3&gt;
&lt;p style=&quot;background-color: #ffffff; color: #0d0d0d; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;print() 함수에서 end 매개변수를 사용하여 줄바꿈 대신 다른 문자를 출력하도록 지정할 수 있습니다. 이를 통해 데이터를 한 줄에 연속적으로 출력하거나, 특정 문자로 줄을 마무리할 수 있습니다.&lt;/p&gt;
&lt;pre id=&quot;code_1711202439139&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;for i in range(3):
    print(i, end=&quot; &quot;)  # 0 1 2&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;span style=&quot;background-color: #ffffff; color: #0d0d0d; text-align: start;&quot;&gt;이 글을 통해 파이썬의 기본적인 사용법을 이해하고, 자신만의 코드를 작성하는 데 도움이 되기를 바랍니다. 파이썬은 배우기 쉽고, 강력한 프로그래밍 언어입니다. 기본적인 것들부터 차근차근 익혀나가면서 파이썬의 다양한 가능성을 탐구해 보세요!&lt;/span&gt;&lt;/p&gt;</description>
      <category>IT/Python</category>
      <category>기초</category>
      <category>들여쓰기</category>
      <category>주석</category>
      <category>출력</category>
      <category>파이썬</category>
      <author>ROGERNM</author>
      <guid isPermaLink="true">https://googleyness.tistory.com/127</guid>
      <comments>https://googleyness.tistory.com/entry/Python-%ED%8C%8C%EC%9D%B4%EC%8D%AC-%EA%B8%B0%EC%B4%88-%EC%B6%9C%EB%A0%A5-%EC%A3%BC%EC%84%9D-%EB%93%A4%EC%97%AC%EC%93%B0%EA%B8%B0-%EA%B7%B8%EB%A6%AC%EA%B3%A0-%EB%8D%94#entry127comment</comments>
      <pubDate>Sat, 23 Mar 2024 23:01:11 +0900</pubDate>
    </item>
    <item>
      <title>[Python] 파이썬 최적화의 비밀: 인터프리터 언어의 이해와 효율적인 함수 사용 방법</title>
      <link>https://googleyness.tistory.com/entry/Python-%ED%8C%8C%EC%9D%B4%EC%8D%AC-%EC%B5%9C%EC%A0%81%ED%99%94%EC%9D%98-%EB%B9%84%EB%B0%80-%EC%9D%B8%ED%84%B0%ED%94%84%EB%A6%AC%ED%84%B0-%EC%96%B8%EC%96%B4%EC%9D%98-%EC%9D%B4%ED%95%B4%EC%99%80-%ED%9A%A8%EC%9C%A8%EC%A0%81%EC%9D%B8-%ED%95%A8%EC%88%98-%EC%82%AC%EC%9A%A9-%EB%B0%A9%EB%B2%95</link>
      <description>&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;122&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dTUmg0/btsF0mC3zcp/9BLw3N3H6Ua9XGoaJQUQwK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dTUmg0/btsF0mC3zcp/9BLw3N3H6Ua9XGoaJQUQwK/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dTUmg0/btsF0mC3zcp/9BLw3N3H6Ua9XGoaJQUQwK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdTUmg0%2FbtsF0mC3zcp%2F9BLw3N3H6Ua9XGoaJQUQwK%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;414&quot; height=&quot;122&quot; data-origin-width=&quot;414&quot; data-origin-height=&quot;122&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 style=&quot;background-color: #ffffff; color: #0d0d0d; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;✨ 파이썬 최적화의 비밀: 인터프리터 언어의 이해와 효율적인 함수 사용 방법&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d; text-align: start;&quot;&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p style=&quot;background-color: #ffffff; color: #0d0d0d; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d; text-align: start;&quot;&gt;파이썬은 그 유연성과 사용의 용이성으로 인해 전 세계 개발자들 사이에서 가장 인기 있는 프로그래밍 언어 중 하나로 자리 잡았습니다. 하지만 모든 프로그래밍 언어와 마찬가지로, 파이썬도 특정 작업에 최적화하는 데 있어 그만의 독특한 접근 방식과 전략이 필요합니다. 이 포스트에서는 파이썬과 같은 인터프리터 언어의 핵심 특징과 내장 함수의 사용이 성능에 미치는 영향, 그리고 반복적인 느린 함수 호출의 문제점에 대해 깊이 있게 탐구할 것입니다. 예제 코드를 통해 이해를 돕고, 개발자가 보다 효율적인 코드를 작성할 수 있도록 지침을 제공할 것입니다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #0d0d0d; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;background-color: #ffffff; color: #0d0d0d; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;✔ 인터프리터 언어의 특징과 파이썬의 최적화&lt;/h3&gt;
&lt;p style=&quot;background-color: #ffffff; color: #0d0d0d; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;인터프리터 언어는 소스 코드를 직접 실행하는 특성을 가지고 있습니다. 즉, 컴파일 과정을 거치지 않고, 코드를 한 줄씩 읽어 바로 실행합니다. 이는 개발 과정을 빠르고 유연하게 만들어 주지만, 때로는 실행 속도가 느려질 수 있는 단점이 있습니다.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #0d0d0d; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;파이썬에서 성능을 최적화하는 방법 중 하나는 내장 함수(built-in functions)의 사용입니다. 파이썬의 내장 함수들은 C언어로 구현되어 있어, 직접 작성한 파이썬 함수보다 훨씬 빠르게 실행됩니다. 예를 들어, 리스트의 합을 계산하는 경우, sum() 함수를 사용하는 것이 직접 for 루프를 작성하는 것보다 더 효율적입니다.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #0d0d0d; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1711201393538&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;numbers = [1, 2, 3, 4, 5]

# sum() 함수 사용
print(sum(numbers))  # 빠름

# for 루프 사용
total = 0
for num in numbers:
    total += num
print(total)  # 상대적으로 느림&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;background-color: #ffffff; color: #0d0d0d; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;✔ 느린 속도의 함수를 여러 번 호출하는 것의 문제점&lt;/h3&gt;
&lt;p style=&quot;background-color: #ffffff; color: #0d0d0d; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;파이썬에서 느린 함수를 반복적으로 호출하는 것은 성능 저하의 주요 원인 중 하나입니다. 이는 특히 데이터 처리가 많은 작업에서 문제가 됩니다. 가능하면, 같은 기능을 수행하는 복잡한 함수라도 한 번에 호출하여 실행 시간을 줄이는 것이 좋습니다.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #0d0d0d; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;예를 들어, 리스트에서 특정 조건을 만족하는 요소만 필터링하는 경우, 내장 함수인 filter()를 사용하는 것이 여러 번의 for 루프를 사용하는 것보다 성능면에서 유리합니다.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #0d0d0d; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1711201413155&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;numbers = range(100)

# filter() 함수 사용
filtered_numbers = list(filter(lambda x: x % 2 == 0, numbers))  # 빠름

# for 루프 사용
filtered_numbers_loop = []
for num in numbers:
    if num % 2 == 0:
        filtered_numbers_loop.append(num)
print(filtered_numbers_loop)  # 상대적으로 느림&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;span style=&quot;background-color: #ffffff; color: #0d0d0d; 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;h3 style=&quot;background-color: #ffffff; color: #0d0d0d; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;결론&lt;/h3&gt;
&lt;p style=&quot;background-color: #ffffff; color: #0d0d0d; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;파이썬은 그 강력한 기능과 유연성으로 많은 개발자에게 사랑받고 있습니다. 하지만 이러한 장점을 최대한 활용하기 위해서는 인터프리터 언어의 특성을 이해하고, 코드를 효율적으로 작성하는 방법을 알아야 합니다. 내장 함수의 사용은 파이썬 코드의 실행 속도를 크게 향상시킬 수 있는 간단하면서도 강력한 전략입니다. 또한, 느린 함수를 반복해서 호출하는 것보다는 한 번에 처리할 수 있는 방법을 모색하는 것이 성능 최적화에 중요합니다. 이러한 전략을 통해 개발자는 파이썬의 장점을 최대한 활용하여, 보다 효율적이고 강력한 애플리케이션을 개발할 수 있을 것입니다.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #0d0d0d; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;이 글이 파이썬 프로그래밍의 이해와 성능 최적화에 도움이 되길 바랍니다. Happy coding!&lt;/p&gt;</description>
      <category>IT/Python</category>
      <category>Interpreter</category>
      <category>language</category>
      <category>Optimization</category>
      <category>Python</category>
      <category>인터프리터</category>
      <category>최적화</category>
      <category>파이썬</category>
      <author>ROGERNM</author>
      <guid isPermaLink="true">https://googleyness.tistory.com/126</guid>
      <comments>https://googleyness.tistory.com/entry/Python-%ED%8C%8C%EC%9D%B4%EC%8D%AC-%EC%B5%9C%EC%A0%81%ED%99%94%EC%9D%98-%EB%B9%84%EB%B0%80-%EC%9D%B8%ED%84%B0%ED%94%84%EB%A6%AC%ED%84%B0-%EC%96%B8%EC%96%B4%EC%9D%98-%EC%9D%B4%ED%95%B4%EC%99%80-%ED%9A%A8%EC%9C%A8%EC%A0%81%EC%9D%B8-%ED%95%A8%EC%88%98-%EC%82%AC%EC%9A%A9-%EB%B0%A9%EB%B2%95#entry126comment</comments>
      <pubDate>Sat, 23 Mar 2024 22:46:24 +0900</pubDate>
    </item>
    <item>
      <title>[암호화폐] 암호화폐? 블록체인? 쉽게 이해하기</title>
      <link>https://googleyness.tistory.com/entry/%EC%95%94%ED%98%B8%ED%99%94%ED%8F%90-%EC%95%94%ED%98%B8%ED%99%94%ED%8F%90-%EB%B8%94%EB%A1%9D%EC%B2%B4%EC%9D%B8-%EC%89%BD%EA%B2%8C-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;670&quot; data-origin-height=&quot;418&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cyw4mc/btsFXNeBWRK/awq6WosR2ET76UwNf176WK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cyw4mc/btsFXNeBWRK/awq6WosR2ET76UwNf176WK/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cyw4mc/btsFXNeBWRK/awq6WosR2ET76UwNf176WK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcyw4mc%2FbtsFXNeBWRK%2Fawq6WosR2ET76UwNf176WK%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;670&quot; height=&quot;418&quot; data-origin-width=&quot;670&quot; data-origin-height=&quot;418&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;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;b&gt;암호화폐, 요즘 왜 핫할까?&lt;/b&gt;&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;424&quot; data-origin-height=&quot;266&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/leNI9/btsFU0zOwEf/xkAnBr6AvCBu59XOFlAce0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/leNI9/btsFU0zOwEf/xkAnBr6AvCBu59XOFlAce0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/leNI9/btsFU0zOwEf/xkAnBr6AvCBu59XOFlAce0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FleNI9%2FbtsFU0zOwEf%2FxkAnBr6AvCBu59XOFlAce0%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;424&quot; height=&quot;266&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;424&quot; data-origin-height=&quot;266&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;최근 들어 수많은 사람들의 관심이 집중되는 분야가 있어요. 바로 암호화폐(가상화폐) 분야입니다. 왜냐고요? 암호화폐의 대장, 선두주자인 &lt;b&gt;'비트코인'의 가격&lt;/b&gt; 때문입니다. 최근 비트코인의 가격이 원화기준 1억을 넘기면서 수많은 사람들이 재차 관심을 가지기 시작했습니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;비트코인의 역사가 10년이 넘은 만큼 아시는 분들도 많겠지만, 단순히 투자대상으로만 보시고 그 정체에 대해 자세히는 잘 모르시는 분들도 많은 것 같아요, 그래서 간단하게나마 설명을 드리고자 하는데요, 뉴스나 인터넷에서 &lt;b&gt;'비트코인'이나 '이더리움'&lt;/b&gt; 같은 단어를 많이 들어보셨죠? 이것들은 모두 '암호화폐'라는 큰 범주에 속합니다. 마치 신종 게임 아이템처럼 들릴 수도 있지만, 사실은 디지털 세계의 '돈'이라고 생각하시면 돼요. 우리가 평소에 쓰는 돈과 다른 점은, 이 돈은 인터넷 세계에서만 사용할 수 있고, 눈에 보이지 않는다는 거예요. 그런데 왜 많은 사람들이 이런 디지털 돈에 관심을 가지고 있을까요? 그 비밀은 바로 '블록체인' 기술 때문이에요.&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;암호화폐와 블록체인, 그건 뭐야?&lt;/b&gt;&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;645&quot; data-origin-height=&quot;473&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dT8q7i/btsFXLuq5TJ/XremLGTg9K5KdQrcdKiHj1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dT8q7i/btsFXLuq5TJ/XremLGTg9K5KdQrcdKiHj1/img.jpg&quot; data-alt=&quot;블록체인 개념도 (출처 : https://www.etri.re.kr/webzine/20190329/sub01.html)&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dT8q7i/btsFXLuq5TJ/XremLGTg9K5KdQrcdKiHj1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdT8q7i%2FbtsFXLuq5TJ%2FXremLGTg9K5KdQrcdKiHj1%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;645&quot; height=&quot;473&quot; data-origin-width=&quot;645&quot; data-origin-height=&quot;473&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;블록체인 개념도 (출처 : https://www.etri.re.kr/webzine/20190329/sub01.html)&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;/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;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;&amp;nbsp;블록체인은 이름 그대로 정보의 '블록'들이 '체인'처럼 연결된 거대한 기록장부예요. 이 기술의 가장 큰 특징은, 한 번 적힌 정보는 뒤늦게 바꿀 수 없다는 거예요. 마치 우리가 쓴 일기장에 투명 테이프로 봉인을 해놓은 것처럼요. 그래서 거래가 한 번 이뤄지면, 마치 동네방네 모두가 그 사실을 알고 확인해 주는 것처럼 안전하다고 볼 수 있어요. 자 생각해 보세요, 모두가 장부를 가지고 있는데, 나 혼자 그 장부를 몰래 조작한다고 해도, 다른 사람들의 장부에 기록은 조작되지 않기 때문에 안전하다고 볼 수 있겠죠?&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;b&gt;암호화폐와 블록체인의 예시&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;상상해볼까요? 여러분은 한 게임을 하고 있어요. 이 게임에 모든 유저는 장부를 가지고 있고, 어떤 유저가 다른 유저와 게임아이템을 거래한다면, 거래 당사자는 물론 그 거래에 참가하지 않은 모든 사람들 장부에 거래기록이 업데이트되는 게임이라고 봅시다.&lt;/p&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;h4 style=&quot;color: #000000; text-align: start;&quot; 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;설명만 듣자하면 굉장히 안전하고, 신뢰성 높은 기술 같아요. 이런 방식이라면 사기를 치거나 조작을 할 수 없는 아주 클린 한 세계가 열릴 것만 같아요. 그렇지만 과연 장점만 있을까요?&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;&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;/ul&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;&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;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여기까지 암호화폐와 블록체인의 기본적인 개념과 장단점에 대해 알아봤어요.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제 여러분도 디지털 세계의 돈, 그리고 그 돈을 안전하게 주고받을 수 있는 기술에 대해 조금은 이해하셨죠? 하지만 이 세계는 아직도 발전하고 있고, 더 많은 것을 배울 수 있어요. 앞으로 더 알아두면 좋을 심화 개념들을 소개할게요.&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt; &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;앞으로 더 공부하면 좋을 심화 개념들&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt; &lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;650&quot; data-origin-height=&quot;406&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/T0LFb/btsFUmC8DZr/PxZT45ERpzV0y8Kcn5Xjlk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/T0LFb/btsFUmC8DZr/PxZT45ERpzV0y8Kcn5Xjlk/img.jpg&quot; data-alt=&quot;CeFi vs DeFi (출처 : https://bap-software.net/kr/knowledge/defi-finance/)&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/T0LFb/btsFUmC8DZr/PxZT45ERpzV0y8Kcn5Xjlk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FT0LFb%2FbtsFUmC8DZr%2FPxZT45ERpzV0y8Kcn5Xjlk%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;650&quot; height=&quot;406&quot; data-origin-width=&quot;650&quot; data-origin-height=&quot;406&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;CeFi vs DeFi (출처 : https://bap-software.net/kr/knowledge/defi-finance/)&lt;/figcaption&gt;
&lt;/figure&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;스마트 컨트랙트&lt;/b&gt;: 블록체인 기술을 이용해, 계약을 디지털 형태로 자동으로 실행할 수 있는 기능이에요.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;분산 금융(DeFi):&lt;/b&gt; 전통적인 금융 시스템을 거치지 않고, 블록체인 기술을 통해 제공되는 금융 서비스예요.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;NFT(Non-Fungible Token):&lt;/b&gt; 디지털 세계에서 유일무이한 자산을 나타내는 기술이에요. 마치 디지털 예술품처럼요.&lt;/li&gt;
&lt;/ul&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;이 글을 통해 암호화폐와 블록체인에 대한 여러분의 궁금증이 조금이나마 해소되었기를 바라며, 앞으로도 이 분야에 대한 탐구를 멈추지 않기를 바랍니다. 이 기술들이 우리의 생활에 어떻게 적용될 수 있을지, 그리고 그로 인한 사회적 변화는 어떤 모습일지 상상하는 것도 매우 흥미로운 일이 될 거예요. 예를 들어 볼까요?&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;719&quot; data-origin-height=&quot;477&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/baxxm7/btsFVrRzEF9/A17hJEytEsTMFxMQFcsvPk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/baxxm7/btsFVrRzEF9/A17hJEytEsTMFxMQFcsvPk/img.jpg&quot; data-alt=&quot;세계 NFT 최대 거래사이트 OpenSea (출처 : https://www.btcc.com/ko-KR/academy/crypto-basics/introducing-opensea-the-largest-nft-exchange)&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/baxxm7/btsFVrRzEF9/A17hJEytEsTMFxMQFcsvPk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbaxxm7%2FbtsFVrRzEF9%2FA17hJEytEsTMFxMQFcsvPk%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;719&quot; height=&quot;477&quot; data-origin-width=&quot;719&quot; data-origin-height=&quot;477&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;세계 NFT 최대 거래사이트 OpenSea (출처 : https://www.btcc.com/ko-KR/academy/crypto-basics/introducing-opensea-the-largest-nft-exchange)&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;/b&gt; 점점 더 많은 사람들이 암호화폐와 블록체인의 가치를 인식하면서, 이 기술들에 대한 사회적 수용도가 증가할 것으로 예상돼요.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;기술적 발전:&lt;/b&gt; 기술의 발전은 끊임없이 진행되고 있어요. 특히, 거래 속도를 개선하거나, 보안을 더욱 강화하는 방향으로 발전할 것으로 보여요.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;새로운 비즈니스 모델 등장:&lt;/b&gt; 블록체인과 암호화폐는 전통적인 비즈니스 모델에 큰 변화를 가져올 수 있어요. 예를 들어, 창작자가 자신의 작품을 직접 판매하고 수익을 얻을 수 있는 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;이 글을 통해 암호화폐와 블록체인에 대한 기본적인 이해를 돕고자 했어요. 하지만 이 분야는 정말 빠르게 변화하고 있으며, 새로운 정보와 기술이 계속해서 나오고 있어요. 그렇기 때문에 지속적인 학습과 관심이 필요해요.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;여러분이 이 기술들에 대해 더 알아가면서, 어떻게 활용할 수 있을지, 우리의 미래에 어떤 긍정적인 영향을 줄 수 있을지 고민해보는 시간을 가져보시길 바랍니다. 암호화폐와 블록체인이 단순히 투자의 대상을 넘어, 우리의 일상생활 속에 깊숙이 자리 잡고, 더욱 유용하고 의미 있는 기술로 발전해 나갈 수 있기를 기대해 봅니다.&amp;nbsp;&lt;/p&gt;</description>
      <category>암호화폐</category>
      <category>기본</category>
      <category>기초</category>
      <category>블록체인</category>
      <category>비트코인</category>
      <category>암호화폐</category>
      <category>이더리움</category>
      <category>이해하기</category>
      <author>ROGERNM</author>
      <guid isPermaLink="true">https://googleyness.tistory.com/122</guid>
      <comments>https://googleyness.tistory.com/entry/%EC%95%94%ED%98%B8%ED%99%94%ED%8F%90-%EC%95%94%ED%98%B8%ED%99%94%ED%8F%90-%EB%B8%94%EB%A1%9D%EC%B2%B4%EC%9D%B8-%EC%89%BD%EA%B2%8C-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0#entry122comment</comments>
      <pubDate>Wed, 20 Mar 2024 17:10:37 +0900</pubDate>
    </item>
    <item>
      <title>[용어] 암호화폐 Layer 개념에 대해 쉽게 이해하기</title>
      <link>https://googleyness.tistory.com/entry/%EC%9A%A9%EC%96%B4-%EC%95%94%ED%98%B8%ED%99%94%ED%8F%90-Layer-%EA%B0%9C%EB%85%90%EC%97%90-%EB%8C%80%ED%95%B4-%EC%89%BD%EA%B2%8C-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1024&quot; data-origin-height=&quot;1024&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/MAHTg/btsFUDb2unU/Wfz1Tc2MD7RxSbhU1kBT80/img.webp&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/MAHTg/btsFUDb2unU/Wfz1Tc2MD7RxSbhU1kBT80/img.webp&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/MAHTg/btsFUDb2unU/Wfz1Tc2MD7RxSbhU1kBT80/img.webp&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FMAHTg%2FbtsFUDb2unU%2FWfz1Tc2MD7RxSbhU1kBT80%2Fimg.webp&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1024&quot; height=&quot;1024&quot; data-origin-width=&quot;1024&quot; data-origin-height=&quot;1024&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;암호화폐와 블록체인 기술은 이제 우리 일상생활의 한 부분으로 자리 잡았습니다. 이들 기술이 지니는 복잡성과 깊이는 때로는 이해하기 어렵게 느껴질 수 있는데요, 그중에서도 'Layer'라는 개념은 많은 분들이 궁금해하시는 부분 중 하나입니다. 오늘은 친근한 말투로, 높임말을 사용하여 암호화폐에서의 'Layer' 개념을 알기 쉽게 설명해 드리고자 합니다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;생활 속 Layer&amp;nbsp;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Layer는 '층' 또는 '계층'을 의미합니다. 사회 시스템에서 Layer 개념을 찾아본다면, 정부 구조를 예로 들 수 있습니다. 중앙 정부, 지방 정부, 그리고 지역 커뮤니티까지 여러 계층으로 나뉘어 있지요. 각 Layer는 서로 다른 역할과 기능을 하면서도 상호작용을 통해 전체 시스템이 원활하게 돌아가도록 합니다. 암호화폐와 블록체인에서의 Layer도 비슷한 원리로 이해할 수 있습니다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;암호화폐에서의 Layer&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;암호화폐와 블록체인 기술에서는 주로 두 가지 Layer가 언급됩니다: Layer 1과 Layer 2.&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;Layer 1&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Layer 1은 기본적인 블록체인 구조를 의미합니다. 이는 Bitcoin, Ethereum과 같은 기본 네트워크로, 모든 트랜잭션과 스마트 컨트랙트 실행이 이루어지는 기반이 되는 층입니다.&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;: 분산 원장 기술, 탈중앙화, 보안성&lt;/li&gt;
&lt;li&gt;&lt;b&gt;장점&lt;/b&gt;:
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;높은 보안성: 분산 원장 기술을 사용하여 네트워크를 보호합니다.&lt;/li&gt;
&lt;li&gt;탈중앙화: 단일 지점에 의존하지 않아 시스템 전체의 실패 위험이 낮습니다.&lt;/li&gt;
&lt;li&gt;개방성: 누구나 참여할 수 있는 개방된 시스템입니다.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;단점&lt;/b&gt;:
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;확장성 문제: 네트워크의 처리량이 제한적이어서 많은 사용자가 동시에 사용할 때 문제가 발생할 수 있습니다.&lt;/li&gt;
&lt;li&gt;높은 거래 수수료: 네트워크 사용량이 많을 때 거래 수수료가 상승합니다.&lt;/li&gt;
&lt;li&gt;느린 트랜잭션 처리 속도: 모든 거래가 전체 네트워크에 기록되어야 하므로 처리 속도가 느립니다.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;Layer 2&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Layer 2는 Layer 1 위에 구축되어, 확장성 문제를 해결하기 위해 고안된 기술 레이어입니다. 이는 원래 블록체인 네트워크의 기능을 개선하거나 보완하는 솔루션으로, 더 많은 거래를 더 빠르게 처리할 수 있게 합니다.&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;: 확장성 솔루션, 빠른 트랜잭션 처리, 낮은 수수료&lt;/li&gt;
&lt;li&gt;&lt;b&gt;장점&lt;/b&gt;:
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;확장성: 더 많은 거래를 빠르게 처리할 수 있&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;습니다.&lt;br /&gt;2. 낮은 거래 수수료: Layer 1에 비해 상대적으로 낮은 거래 비용을 제공합니다.&lt;br /&gt;3. 빠른 트랜잭션 처리: 실시간에 가까운 트랜잭션 처리가 가능합니다.&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;:
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;보안성 문제: Layer 1만큼의 보안성을 제공하지 못할 수 있습니다.&lt;/li&gt;
&lt;li&gt;중앙화의 위험: 일부 Layer 2 솔루션은 중앙화된 요소를 포함할 수 있습니다.&lt;/li&gt;
&lt;li&gt;복잡성: Layer 1과의 상호 운용성으로 인해 시스템이 더 복잡해질 수 있습니다.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;각 Layer에 속하는 대표적인 암호화폐들&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;Layer 1 예&lt;/b&gt;: Bitcoin, Ethereum, Cardano, Solana&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Layer 2 예&lt;/b&gt;: Lightning Network (Bitcoin), Optimism, Arbitrum, Polygon (Ethereum)&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;암호화폐와 블록체인의 Layer 개념은 이처럼 각기 다른 역할과 기능을 가진 계층으로 구성되어 있습니다. 이를 통해 네트워크는 다양한 요구 사항과 문제를 해결하며, 보다 효율적이고 안전하게 작동할 수 있게 됩니다. 우리 사회의 다양한 시스템과 마찬가지로, 암호화폐와 블록체인 기술 또한 서로 다른 Layer의 조화를 통해 더욱 발전해 나가고 있습니다.&lt;/p&gt;</description>
      <category>암호화폐</category>
      <author>ROGERNM</author>
      <guid isPermaLink="true">https://googleyness.tistory.com/119</guid>
      <comments>https://googleyness.tistory.com/entry/%EC%9A%A9%EC%96%B4-%EC%95%94%ED%98%B8%ED%99%94%ED%8F%90-Layer-%EA%B0%9C%EB%85%90%EC%97%90-%EB%8C%80%ED%95%B4-%EC%89%BD%EA%B2%8C-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0#entry119comment</comments>
      <pubDate>Tue, 19 Mar 2024 09:30:41 +0900</pubDate>
    </item>
    <item>
      <title>[용어] DAO 쉽게 이해하기</title>
      <link>https://googleyness.tistory.com/entry/%EC%9A%A9%EC%96%B4-DAO-%EC%89%BD%EA%B2%8C-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0</link>
      <description>&lt;blockquote data-ke-style=&quot;style2&quot;&gt;DAO는 &quot;Decentralized Autonomous Organization&quot;의 약자로, 탈중앙화된 자율 조직을 의미합니다.&amp;nbsp;&lt;/blockquote&gt;
&lt;p style=&quot;background-color: #ffffff; color: #0d0d0d; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #0d0d0d; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;DAO란 전통적인 조직이나 회사와는 다르게 중앙 집중식의 관리나 리더 없이도 작동할 수 있는, 블록체인 기술을 기반으로 한 조직의 형태를 말합니다.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #0d0d0d; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #0d0d0d; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;쉽게 말해 전통적인 조직인 정부나 기업은 대통령, 국회의원 혹은 기업의 임원, 부장처럼 관리, 리더 중심으로 돌아가는 중앙 집중화된 조직입니다. 그 반대로 구성원 모두 즉, 국민 모두 혹은 모든 사원이 동일한 권리를 가지고 운영하는 조직을 DAO 라고 말할 수 있다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1024&quot; data-origin-height=&quot;1024&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dzw4YY/btsFUeQOcFK/2PzoLAa3WVmTGrH72PBHCk/img.webp&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dzw4YY/btsFUeQOcFK/2PzoLAa3WVmTGrH72PBHCk/img.webp&quot; data-alt=&quot;DAO 예시&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dzw4YY/btsFUeQOcFK/2PzoLAa3WVmTGrH72PBHCk/img.webp&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fdzw4YY%2FbtsFUeQOcFK%2F2PzoLAa3WVmTGrH72PBHCk%2Fimg.webp&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1024&quot; height=&quot;1024&quot; data-origin-width=&quot;1024&quot; data-origin-height=&quot;1024&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;DAO 예시&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #0d0d0d; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #0d0d0d; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;DAO의 가장 큰 특징은 모든 결정 과정이 블록체인에 기록되며, 투표와 같은 방식으로 조직 내에서의 의사 결정이 이루어진다는 점입니다. 즉, 조직의 규칙과 운영 절차가 스마트 컨트랙트 형태로 블록체인에 코딩되어 있으며, 이를 통해 자동으로 실행됩니다. 이로 인해 외부의 간섭 없이도 투명하고 신뢰할 수 있는 운영이 가능해집니다.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #0d0d0d; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;background-color: #ffffff; color: #0d0d0d; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;DAO를 함으로써 얻을 수 있는 장점&lt;/h3&gt;
&lt;p style=&quot;background-color: #ffffff; color: #0d0d0d; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;DAO의 가장 큰 장점 중 하나는 투명성과 민주화된 의사결정 과정입니다. 예를 들어, 어떠한 프로젝트를 위한 DAO가 있다고 가정해봅시다. 이 DAO의 모든 구성원은 프로젝트에 대한 제안을 할 수 있고, 토큰 기반 투표 시스템을 통해 프로젝트의 진행 여부를 결정합니다. 투표 결과와 자금의 사용처는 블록체인에 기록되어 모든 구성원이 검토할 수 있으며, 이는 공정하고 투명한 의사 결정을 보장합니다.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #0d0d0d; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #0d0d0d; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;쉽게 말해 국회의원 선거에서 모든사람이 투표하는 것을 공개하면서, 모든 사람들이 다른 사람들이 각자 누굴 찍었는지를&amp;nbsp; 가지고 있음으로 특정 한 조직이나 사람들에 의해 위조될 가능성이 0인 선거가 가능하게 합니다.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #0d0d0d; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;background-color: #ffffff; color: #0d0d0d; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;비용측면에서의 이점&lt;/h3&gt;
&lt;p style=&quot;background-color: #ffffff; color: #0d0d0d; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;또&amp;nbsp;다른&amp;nbsp;장점은&amp;nbsp;자동화된&amp;nbsp;운영과&amp;nbsp;관리&amp;nbsp;비용의&amp;nbsp;절감입니다.&amp;nbsp;스마트&amp;nbsp;계약을&amp;nbsp;이용하여,&amp;nbsp;예를&amp;nbsp;들어,&amp;nbsp;자금의&amp;nbsp;분배,&amp;nbsp;멤버십의&amp;nbsp;변경,&amp;nbsp;프로젝트의&amp;nbsp;실행&amp;nbsp;등이&amp;nbsp;자동으로&amp;nbsp;이루어질&amp;nbsp;수&amp;nbsp;있습니다.&amp;nbsp;이는&amp;nbsp;인간의&amp;nbsp;개입을&amp;nbsp;최소화하여&amp;nbsp;운영상의&amp;nbsp;실수나&amp;nbsp;부정을&amp;nbsp;줄이고,&amp;nbsp;관리에&amp;nbsp;드는&amp;nbsp;비용과&amp;nbsp;시간을&amp;nbsp;크게&amp;nbsp;절약할&amp;nbsp;수&amp;nbsp;있습니다.&lt;/p&gt;
&lt;h3 style=&quot;background-color: #ffffff; color: #0d0d0d; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;단점&lt;/h3&gt;
&lt;p style=&quot;background-color: #ffffff; color: #0d0d0d; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;하지만 DAO의 사용은 여러 단점과 도전도 함께 가져옵니다. 예를 들어, 스마트 계약의 버그나 보안 취약점은 큰 위험을 초래할 수 있습니다. 2016년에 발생한 'The DAO' 해킹 사건에서는 스마트 계약의 취약점을 이용하여 대규모의 자금이 도난당한 사례가 있습니다. 이는 DAO가 아직 기술적으로 완벽하지 않음을 보여주며, 신중한 설계와 보안 검토가 필수적임을 강조합니다. &lt;br /&gt;&lt;br /&gt;또한,&amp;nbsp;DAO의&amp;nbsp;법적&amp;nbsp;지위와&amp;nbsp;규제에&amp;nbsp;대한&amp;nbsp;불확실성도&amp;nbsp;큰&amp;nbsp;단점입니다.&amp;nbsp;대부분의&amp;nbsp;국가에서는&amp;nbsp;DAO와&amp;nbsp;같은&amp;nbsp;블록체인&amp;nbsp;기반&amp;nbsp;조직의&amp;nbsp;법적&amp;nbsp;지위가&amp;nbsp;명확하지&amp;nbsp;않아,&amp;nbsp;법적&amp;nbsp;문제가&amp;nbsp;발생했을&amp;nbsp;때&amp;nbsp;구성원들의&amp;nbsp;권리와&amp;nbsp;의무가&amp;nbsp;불분명할&amp;nbsp;수&amp;nbsp;있습니다.&amp;nbsp;예를&amp;nbsp;들어,&amp;nbsp;DAO를&amp;nbsp;통해&amp;nbsp;투자를&amp;nbsp;받고&amp;nbsp;사업을&amp;nbsp;진행하는&amp;nbsp;경우,&amp;nbsp;사업이&amp;nbsp;실패했을&amp;nbsp;때&amp;nbsp;투자자&amp;nbsp;보호에&amp;nbsp;관한&amp;nbsp;법적인&amp;nbsp;기준이&amp;nbsp;명확하지&amp;nbsp;않을&amp;nbsp;수&amp;nbsp;있습니다. &lt;br /&gt;&lt;br /&gt;이처럼&amp;nbsp;DAO는&amp;nbsp;조직&amp;nbsp;운영에&amp;nbsp;있어&amp;nbsp;획기적인&amp;nbsp;투명성과&amp;nbsp;효율성을&amp;nbsp;제공할&amp;nbsp;수&amp;nbsp;있는&amp;nbsp;반면,&amp;nbsp;기술적&amp;nbsp;보안&amp;nbsp;문제와&amp;nbsp;법적인&amp;nbsp;불확실성&amp;nbsp;등의&amp;nbsp;도전에&amp;nbsp;직면해&amp;nbsp;있습니다.&amp;nbsp;따라서&amp;nbsp;DAO를&amp;nbsp;구축하고&amp;nbsp;운영하기&amp;nbsp;전에&amp;nbsp;이러한&amp;nbsp;장점과&amp;nbsp;단점을&amp;nbsp;모두&amp;nbsp;고려하는&amp;nbsp;것이&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;h3 style=&quot;background-color: #ffffff; color: #0d0d0d; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;정리&lt;/b&gt;&lt;/h3&gt;
&lt;h3 style=&quot;background-color: #ffffff; color: #0d0d0d; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;DAO의 주요 특징&lt;/h3&gt;
&lt;ol style=&quot;list-style-type: decimal; background-color: #ffffff; color: #0d0d0d; text-align: start;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b&gt;탈중앙화&lt;/b&gt;: 전통적인 조직 구조와 달리, DAO는 중앙에 있는 관리자나 이사회 없이 구성원 모두가 의사 결정 과정에 참여합니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;투명성&lt;/b&gt;: 모든 거래 기록과 결정 사항이 블록체인에 공개적으로 기록되어 누구나 확인할 수 있습니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;자율성&lt;/b&gt;: 스마트 컨트랙트를 통해 사전에 설정된 규칙에 따라 자동으로 운영됩니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;참여와 거버넌스&lt;/b&gt;: DAO의 구성원들은 토큰 보유량이나 다른 기준에 따라 조직 내 의사 결정 과정에 참여할 권리를 가집니다.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 style=&quot;background-color: #ffffff; color: #0d0d0d; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;DAO 의 대표적인 형태 : MakerDAO&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;350&quot; data-origin-height=&quot;350&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/qfKPI/btsFR3WKqiq/RnZkTkkO98xtU7kP8RUl4k/img.webp&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/qfKPI/btsFR3WKqiq/RnZkTkkO98xtU7kP8RUl4k/img.webp&quot; data-alt=&quot;Marker&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/qfKPI/btsFR3WKqiq/RnZkTkkO98xtU7kP8RUl4k/img.webp&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FqfKPI%2FbtsFR3WKqiq%2FRnZkTkkO98xtU7kP8RUl4k%2Fimg.webp&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;350&quot; height=&quot;350&quot; data-origin-width=&quot;350&quot; data-origin-height=&quot;350&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Marker&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #0d0d0d; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;MakerDAO는 가장 잘 알려진 DAO 중 하나로, 탈중앙화된 스테이블코인인 DAI를 발행 및 관리하는 데 목적을 두고 있습니다. DAI는 달러와 1:1 비율로 가치가 고정된 암호화폐로, 이더리움과 같은 다른 암호화폐를 담보로 사용하여 생성됩니다.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #0d0d0d; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;MakerDAO의 운영은 모두 DAO 구조를 통해 이루어지며, DAI의 가치 안정화와 관련된 주요 결정(예: 담보로 채택할 암호화폐 종류, 담보 대출의 이자율 등)은 MKR 토큰 보유자들의 투표를 통해 이루어집니다.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #0d0d0d; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;이렇게 DAO는 중앙 집중형 조직의 한계를 넘어, 투명하고 공정한 방식으로 운영될 수 있는 새로운 형태의 조직 구조를 제시합니다. 기술, 금융, 예술 등 다양한 분야에서 DAO의 적용 사례가 늘어나고 있으며, 미래의 조직과 거버넌스 모델에 중요한 영향을 미칠 것으로 예상됩니다.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #0d0d0d; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #0d0d0d; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://makerdao.com/ko/&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://makerdao.com/ko/&lt;/a&gt;&lt;/p&gt;</description>
      <category>암호화폐</category>
      <category>DAO</category>
      <category>MarkerDAO</category>
      <category>탈중앙화</category>
      <author>ROGERNM</author>
      <guid isPermaLink="true">https://googleyness.tistory.com/117</guid>
      <comments>https://googleyness.tistory.com/entry/%EC%9A%A9%EC%96%B4-DAO-%EC%89%BD%EA%B2%8C-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0#entry117comment</comments>
      <pubDate>Mon, 18 Mar 2024 15:49:05 +0900</pubDate>
    </item>
    <item>
      <title>[C++/Python] LeetCode : Triangle</title>
      <link>https://googleyness.tistory.com/entry/CPython-LeetCode-Triangle</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span&gt;&lt;b&gt;Question&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p style=&quot;background-color: #f0f0f0; color: #262626; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;Given a&lt;span&gt;&amp;nbsp;&lt;/span&gt;triangle&lt;span&gt;&amp;nbsp;&lt;/span&gt;array, return&lt;span&gt;&amp;nbsp;&lt;/span&gt;the minimum path sum from top to bottom.&lt;/p&gt;
&lt;p style=&quot;background-color: #f0f0f0; color: #262626; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;For each step, you may move to an adjacent number of the row below. More formally, if you are on index&lt;span&gt;&amp;nbsp;&lt;/span&gt;i&lt;span&gt;&amp;nbsp;&lt;/span&gt;on the current row, you may move to either index&lt;span&gt;&amp;nbsp;&lt;/span&gt;i&lt;span&gt;&amp;nbsp;&lt;/span&gt;or index&lt;span&gt;&amp;nbsp;&lt;/span&gt;i + 1&lt;span&gt;&amp;nbsp;&lt;/span&gt;on the next row.&lt;/p&gt;
&lt;p style=&quot;background-color: #f0f0f0; color: #262626; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #f0f0f0; color: #262626; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;삼각형&amp;nbsp;배열이&amp;nbsp;주어지면&amp;nbsp;위에서&amp;nbsp;아래로&amp;nbsp;최소&amp;nbsp;경로&amp;nbsp;합계를&amp;nbsp;반환합니다.&lt;br /&gt;&lt;br /&gt;각&amp;nbsp;단계마다&amp;nbsp;아래&amp;nbsp;행의&amp;nbsp;인접한&amp;nbsp;번호로&amp;nbsp;이동할&amp;nbsp;수&amp;nbsp;있습니다.&amp;nbsp;더&amp;nbsp;공식적으로&amp;nbsp;말하면,&amp;nbsp;현재&amp;nbsp;행의&amp;nbsp;인덱스&amp;nbsp;i에&amp;nbsp;있으면&amp;nbsp;다음&amp;nbsp;행의&amp;nbsp;인덱스&amp;nbsp;i&amp;nbsp;또는&amp;nbsp;인덱스&amp;nbsp;i&amp;nbsp;1로&amp;nbsp;이동할&amp;nbsp;수&amp;nbsp;있습니다.&lt;/p&gt;
&lt;p style=&quot;background-color: #f0f0f0; color: #262626; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;제약사항&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;1 &amp;lt;= triangle.length &amp;lt;= 200&lt;/li&gt;
&lt;li&gt;triangle[0].length == 1&lt;/li&gt;
&lt;li&gt;triangle[i].length == triangle[i - 1].length + 1&lt;/li&gt;
&lt;li&gt;-104 &amp;lt;= triangle[i][j] &amp;lt;= 104&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span&gt;&lt;b&gt;Solution&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;가능한 최선의 수행 시간(Best Conceivable Runtime(BCR)&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;모든원소를 한번 씩은 봐야하므로 O(n^2)&lt;/li&gt;
&lt;/ul&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;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;손으로 풀어보는 것이 도움이 될 때가 있다.&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;b&gt;Solution1 : DP&lt;/b&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;pre class=&quot;angelscript&quot; style=&quot;background-color: #f0f0f0; color: #000000; text-align: start;&quot;&gt;&lt;code&gt;   2
  3 4
 6 5 7
4 1 8 3&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 예를 손으로 직접 풀이 해본다면,&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;5, 6&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;11, 10, 13&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;15, 11, 18, 21&lt;/p&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;즉 현재 원소의 까지의 path가 최소path라 가정한다면, path의 값은 현재 값 + 이전의 path값 2개 중 작은값을 더하는 것이 최소값이 된다. 그렇다면 이 값을 계속 기록해가며 본다면 가능한 모든 Path에서의 최소값을 구할 수 있다.&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;다만 위에서 부터 차례로 합쳐 계산하는것 보다 아래서부터 올라가는 방식으로 min값을 구한다면, 더 쉽게 구할 수 있다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;C++&lt;/p&gt;
&lt;pre id=&quot;code_1709362651927&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;class Solution {
public:
    int minimumTotal(vector&amp;lt;vector&amp;lt;int&amp;gt;&amp;gt;&amp;amp; triangle) {
        int last_row = triangle.size() - 1;

        for (int i = last_row - 1; i &amp;gt;= 0; i--) {
            for (int j = 0; j &amp;lt;= i; j++) {
                triangle[i][j] = triangle[i][j] + min(triangle[i + 1][j], triangle[i + 1][j + 1]);
            }
        }

        return triangle[0][0];
    }
};&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;Python&lt;/p&gt;
&lt;pre id=&quot;code_1709363203696&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;class Solution:
    def minimumTotal(self, triangle: List[List[int]]) -&amp;gt; int:
        n = len(triangle) - 1
        
        for i in range(n - 1, -1, -1):
            for j in range(0, i + 1):
                triangle[i][j] += min(triangle[i + 1][j], triangle[i + 1][j + 1])

        return triangle[0][0]&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;Time complexity : O(n^2)&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Space Complexity : O(n)&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #666666;&quot;&gt;출처 :&lt;span&gt; &lt;a href=&quot;https://leetcode.com/problems/triangle/description/?envType=study-plan-v2&amp;amp;envId=top-interview-150&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://leetcode.com/problems/triangle/description/?envType=study-plan-v2&amp;amp;envId=top-interview-150&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1709362635007&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;Triangle - LeetCode&quot; data-og-description=&quot;Can you solve this real interview question? Triangle - Given a triangle array, return the minimum path sum from top to bottom. For each step, you may move to an adjacent number of the row below. More formally, if you are on index i on the current row, you &quot; data-og-host=&quot;leetcode.com&quot; data-og-source-url=&quot;https://leetcode.com/problems/triangle/description/?envType=study-plan-v2&amp;amp;envId=top-interview-150&quot; data-og-url=&quot;https://leetcode.com/problems/triangle/description&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/gE9LB/hyVqnGfb5D/mPLfcKCRJ3u3MFgjp9aqkK/img.png?width=500&amp;amp;height=260&amp;amp;face=0_0_500_260&quot;&gt;&lt;a href=&quot;https://leetcode.com/problems/triangle/description/?envType=study-plan-v2&amp;amp;envId=top-interview-150&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://leetcode.com/problems/triangle/description/?envType=study-plan-v2&amp;amp;envId=top-interview-150&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/gE9LB/hyVqnGfb5D/mPLfcKCRJ3u3MFgjp9aqkK/img.png?width=500&amp;amp;height=260&amp;amp;face=0_0_500_260');&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;Triangle - LeetCode&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Can you solve this real interview question? Triangle - Given a triangle array, return the minimum path sum from top to bottom. For each step, you may move to an adjacent number of the row below. More formally, if you are on index i on the current row, you&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;leetcode.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>IT/Problem Solving</category>
      <category>C++</category>
      <category>DP</category>
      <category>LeetCode</category>
      <category>Python</category>
      <category>triangle</category>
      <author>ROGERNM</author>
      <guid isPermaLink="true">https://googleyness.tistory.com/116</guid>
      <comments>https://googleyness.tistory.com/entry/CPython-LeetCode-Triangle#entry116comment</comments>
      <pubDate>Sat, 2 Mar 2024 16:09:20 +0900</pubDate>
    </item>
    <item>
      <title>[C++] LeetCode : Merge Sorted Array</title>
      <link>https://googleyness.tistory.com/entry/C-LeetCode-Merge-Sorted-Array</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span&gt;&lt;b&gt;Question&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p style=&quot;background-color: #f0f0f0; color: #262626; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;You are given two integer arrays&lt;span&gt;&amp;nbsp;&lt;/span&gt;nums1&lt;span&gt;&amp;nbsp;&lt;/span&gt;and&lt;span&gt;&amp;nbsp;&lt;/span&gt;nums2, sorted in&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;non-decreasing order&lt;/b&gt;, and two integers&lt;span&gt;&amp;nbsp;&lt;/span&gt;m&lt;span&gt;&amp;nbsp;&lt;/span&gt;and&lt;span&gt;&amp;nbsp;&lt;/span&gt;n, representing the number of elements in&lt;span&gt;&amp;nbsp;&lt;/span&gt;nums1&lt;span&gt;&amp;nbsp;&lt;/span&gt;and&lt;span&gt;&amp;nbsp;&lt;/span&gt;nums2&lt;span&gt;&amp;nbsp;&lt;/span&gt;respectively.&lt;/p&gt;
&lt;p style=&quot;background-color: #f0f0f0; color: #262626; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Merge&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;nums1&lt;span&gt;&amp;nbsp;&lt;/span&gt;and&lt;span&gt;&amp;nbsp;&lt;/span&gt;nums2&lt;span&gt;&amp;nbsp;&lt;/span&gt;into a single array sorted in&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;non-decreasing order&lt;/b&gt;.&lt;/p&gt;
&lt;p style=&quot;background-color: #f0f0f0; color: #262626; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;The final sorted array should not be returned by the function, but instead be&lt;span&gt;&amp;nbsp;&lt;/span&gt;stored inside the array&lt;span&gt;&amp;nbsp;&lt;/span&gt;nums1. To accommodate this,&lt;span&gt;&amp;nbsp;&lt;/span&gt;nums1&lt;span&gt;&amp;nbsp;&lt;/span&gt;has a length of&lt;span&gt;&amp;nbsp;&lt;/span&gt;m + n, where the first&lt;span&gt;&amp;nbsp;&lt;/span&gt;m&lt;span&gt;&amp;nbsp;&lt;/span&gt;elements denote the elements that should be merged, and the last&lt;span&gt;&amp;nbsp;&lt;/span&gt;n&lt;span&gt;&amp;nbsp;&lt;/span&gt;elements are set to&lt;span&gt;&amp;nbsp;&lt;/span&gt;0&lt;span&gt;&amp;nbsp;&lt;/span&gt;and should be ignored.&lt;span&gt;&amp;nbsp;&lt;/span&gt;nums2&lt;span&gt;&amp;nbsp;&lt;/span&gt;has a length of&lt;span&gt;&amp;nbsp;&lt;/span&gt;n.&lt;/p&gt;
&lt;p style=&quot;background-color: #f0f0f0; color: #262626; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #f0f0f0; color: #262626; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #f0f0f0; color: #262626; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;비내림차순으로&amp;nbsp;정렬된&amp;nbsp;두&amp;nbsp;개의&amp;nbsp;정수&amp;nbsp;배열&amp;nbsp;nums1&amp;nbsp;및&amp;nbsp;nums2와&amp;nbsp;각각&amp;nbsp;nums1&amp;nbsp;및&amp;nbsp;nums2의&amp;nbsp;요소&amp;nbsp;수를&amp;nbsp;나타내는&amp;nbsp;두&amp;nbsp;개의&amp;nbsp;정수&amp;nbsp;m&amp;nbsp;및&amp;nbsp;n이&amp;nbsp;제공됩니다.&lt;br /&gt;&lt;br /&gt;nums1과&amp;nbsp;nums2를&amp;nbsp;비내림차순으로&amp;nbsp;정렬된&amp;nbsp;단일&amp;nbsp;배열로&amp;nbsp;병합합니다.&lt;br /&gt;&lt;br /&gt;최종&amp;nbsp;정렬된&amp;nbsp;배열은&amp;nbsp;함수에&amp;nbsp;의해&amp;nbsp;반환되지&amp;nbsp;않고&amp;nbsp;대신&amp;nbsp;배열&amp;nbsp;nums1&amp;nbsp;내에&amp;nbsp;저장되어야&amp;nbsp;합니다.&amp;nbsp;이를&amp;nbsp;수용하기&amp;nbsp;위해&amp;nbsp;nums1의&amp;nbsp;길이는&amp;nbsp;m&amp;nbsp;+&amp;nbsp;n입니다.&amp;nbsp;여기서&amp;nbsp;처음&amp;nbsp;m개&amp;nbsp;요소는&amp;nbsp;병합해야&amp;nbsp;하는&amp;nbsp;요소를&amp;nbsp;나타내고&amp;nbsp;마지막&amp;nbsp;n개&amp;nbsp;요소는&amp;nbsp;0으로&amp;nbsp;설정되어&amp;nbsp;무시되어야&amp;nbsp;합니다.&amp;nbsp;nums2의&amp;nbsp;길이는&amp;nbsp;n입니다.&lt;/p&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;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;nums1.length == m + n&lt;/li&gt;
&lt;li&gt;nums2.length == n&lt;/li&gt;
&lt;li&gt;0 &amp;lt;= m, n &amp;lt;= 200&lt;/li&gt;
&lt;li&gt;1 &amp;lt;= m + n &amp;lt;= 200&lt;/li&gt;
&lt;li&gt;-109 &amp;lt;= nums1[i], nums2[j] &amp;lt;= 109&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span&gt;&lt;b&gt;Solution&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;가능한 최선의 수행 시간(Best Conceivable Runtime(BCR)&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;O(m + n)&lt;/li&gt;
&lt;/ul&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;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;최대한 BCR 이내로 풀어볼 수 있게 한다.&lt;/li&gt;
&lt;li&gt;각각&amp;nbsp;m과&amp;nbsp;n&amp;nbsp;크기의&amp;nbsp;두&amp;nbsp;개의&amp;nbsp;정렬된&amp;nbsp;배열&amp;nbsp;nums1과&amp;nbsp;nums2가&amp;nbsp;제공됩니다.&amp;nbsp;이&amp;nbsp;두&amp;nbsp;배열을&amp;nbsp;하나의&amp;nbsp;정렬된&amp;nbsp;배열로&amp;nbsp;병합해야&amp;nbsp;하며&amp;nbsp;결과는&amp;nbsp;nums1에&amp;nbsp;저장되어야&amp;nbsp;합니다.&amp;nbsp;nums1의&amp;nbsp;크기는&amp;nbsp;m+n이므로&amp;nbsp;이&amp;nbsp;추가&amp;nbsp;공간을&amp;nbsp;사용하여&amp;nbsp;병합된&amp;nbsp;배열을&amp;nbsp;저장할&amp;nbsp;수&amp;nbsp;있습니다.&amp;nbsp;배열의&amp;nbsp;끝부터&amp;nbsp;반복하여&amp;nbsp;nums1의&amp;nbsp;끝에&amp;nbsp;더&amp;nbsp;큰&amp;nbsp;요소를&amp;nbsp;배치할&amp;nbsp;수&amp;nbsp;있습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;b&gt;Solution1 : Using STL&lt;/b&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;nums2를&amp;nbsp;탐색하고&amp;nbsp;인덱스&amp;nbsp;m부터&amp;nbsp;시작하여&amp;nbsp;nums1의&amp;nbsp;끝에&amp;nbsp;해당&amp;nbsp;요소를&amp;nbsp;추가합니다.&lt;br /&gt;sort()&amp;nbsp;함수를&amp;nbsp;사용하여&amp;nbsp;전체&amp;nbsp;nums1&amp;nbsp;배열을&amp;nbsp;정렬합니다.&lt;/p&gt;
&lt;pre id=&quot;code_1709272647693&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;class Solution {
public:
    void merge(vector&amp;lt;int&amp;gt;&amp;amp; nums1, int m, vector&amp;lt;int&amp;gt;&amp;amp; nums2, int n) {
        for (int j = 0, i = m; j&amp;lt;n; j++){
            nums1[i] = nums2[j];
            i++;
        }
        sort(nums1.begin(),nums1.end());
    }
};&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;Time complexity : O((m + n)log(m + n))&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Space Complexity : O(1)&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;b&gt;Solution2 : Two Pointer&lt;/b&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;ol style=&quot;list-style-type: decimal; background-color: #f2f7ff; color: #3b3f4e; text-align: left;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;포인터 i와 j를 각각 m-1과 n-1로 초기화합니다.&lt;/li&gt;
&lt;li&gt;또 다른 포인터인 k를 m+n-1로 초기화합니다. 이 포인터는 nums1 배열에서 더 큰 요소를 배치할 위치를 추적하는 데 사용됩니다.&lt;/li&gt;
&lt;li&gt;배열 i와 j의 끝에서부터 시작하여 해당 위치의 요소를 비교합니다.&lt;/li&gt;
&lt;li&gt;nums1의 더 큰 요소를 k 위치에 배치하고, 이에 따라 해당 포인터 i 또는 j를 감소시킵니다.&lt;/li&gt;
&lt;li&gt;nums2의 모든 요소를 반복할 때까지 이 작업을 반복합니다.&lt;/li&gt;
&lt;li&gt;만약 nums1에 아직 요소가 남아 있다면, 해당 요소는 이미 올바른 위치에 있으므로 아무 작업도 필요하지 않습니다.&lt;/li&gt;
&lt;/ol&gt;
&lt;pre id=&quot;code_1709272737199&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;class Solution {
public:
    void merge(vector&amp;lt;int&amp;gt;&amp;amp; nums1, int m, vector&amp;lt;int&amp;gt;&amp;amp; nums2, int n) {
        int i = m - 1;
        int j = n - 1;
        int k = m + n - 1;
        
        while (j &amp;gt;= 0) {
            if (i &amp;gt;= 0 &amp;amp;&amp;amp; nums1[i] &amp;gt; nums2[j]) {
                nums1[k--] = nums1[i--];
            } else {
                nums1[k--] = nums2[j--];
            }
        }
    }
};&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;Time complexity : O(m + n)&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Space Complexity : O(1)&amp;nbsp;&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;span style=&quot;background-color: #ffffff; color: #666666;&quot;&gt;출처 :&lt;span&gt; &lt;a href=&quot;https://leetcode.com/problems/merge-sorted-array/solutions/3436053/beats-100-best-c-java-python-and-javascript-solution-two-pointer-stl/&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://leetcode.com/problems/merge-sorted-array/solutions/3436053/beats-100-best-c-java-python-and-javascript-solution-two-pointer-stl/&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;</description>
      <category>IT/Problem Solving</category>
      <category>LeetCode</category>
      <category>mergesortedarray</category>
      <category>두 배열 합치기</category>
      <author>ROGERNM</author>
      <guid isPermaLink="true">https://googleyness.tistory.com/115</guid>
      <comments>https://googleyness.tistory.com/entry/C-LeetCode-Merge-Sorted-Array#entry115comment</comments>
      <pubDate>Fri, 1 Mar 2024 15:00:59 +0900</pubDate>
    </item>
    <item>
      <title>Apache Kafka에서의 Transaction 이해하기</title>
      <link>https://googleyness.tistory.com/entry/Apache-Kafka%EC%97%90%EC%84%9C%EC%9D%98-Transaction-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0</link>
      <description>&lt;p style=&quot;background-color: #ffffff;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #1f1f1f;&quot;&gt;Apache Kafka에서 Transaction은 여러 메시지 그룹의 &lt;/span&gt;&lt;span style=&quot;color: #1f1f1f;&quot;&gt;일관성&lt;/span&gt;&lt;span style=&quot;color: #1f1f1f;&quot;&gt;을 보장하는 메커니즘입니다. 쉽게 말하면, 여러 메시지를 하나의 묶음으로 처리하여 &lt;/span&gt;&lt;span style=&quot;color: #1f1f1f;&quot;&gt;모두 성공하거나 모두 실패&lt;/span&gt;&lt;span style=&quot;color: #1f1f1f;&quot;&gt;하도록 하는 기능입니다. 이는 데이터 손실이나 불일치를 방지하는 데 중요한 역할을 합니다.&lt;/span&gt;&lt;/p&gt;
&lt;h3 style=&quot;background-color: #ffffff;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #1f1f1f;&quot;&gt;Transaction 종류&lt;/span&gt;&lt;/h3&gt;
&lt;p style=&quot;background-color: #ffffff;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #1f1f1f;&quot;&gt;Kafka는 두 가지 Transaction 모델을 지원합니다.&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 style=&quot;list-style-type: disc; color: #1f1f1f;&quot;&gt;&lt;span style=&quot;color: #1f1f1f;&quot;&gt;Producer Transaction:&lt;/span&gt;&lt;span style=&quot;color: #1f1f1f;&quot;&gt; Producer는 Transaction을 시작하고 여러 메시지를 &lt;/span&gt;&lt;span style=&quot;color: #1f1f1f;&quot;&gt;Producer&lt;/span&gt;&lt;span style=&quot;color: #1f1f1f;&quot;&gt;합니다. 모든 메시지가 성공적으로 전송되면 Transaction을 &lt;/span&gt;&lt;span style=&quot;color: #1f1f1f;&quot;&gt;Commit&lt;/span&gt;&lt;span style=&quot;color: #1f1f1f;&quot;&gt;하고, 그렇지 않으면 &lt;/span&gt;&lt;span style=&quot;color: #1f1f1f;&quot;&gt;Rollback&lt;/span&gt;&lt;span style=&quot;color: #1f1f1f;&quot;&gt;합니다.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc; color: #1f1f1f;&quot;&gt;&lt;span style=&quot;color: #1f1f1f;&quot;&gt;Consumer Transaction:&lt;/span&gt;&lt;span style=&quot;color: #1f1f1f;&quot;&gt; Consumer는 Transaction을 시작하고 여러 메시지를 &lt;/span&gt;&lt;span style=&quot;color: #1f1f1f;&quot;&gt;Consume&lt;/span&gt;&lt;span style=&quot;color: #1f1f1f;&quot;&gt;합니다. 모든 메시지를 성공적으로 처리하면 Transaction을 Commit하고, 그렇지 않으면 Rollback합니다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 style=&quot;background-color: #ffffff;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #1f1f1f;&quot;&gt;Transaction 예시&lt;/span&gt;&lt;/h3&gt;
&lt;p style=&quot;background-color: #ffffff;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #1f1f1f;&quot;&gt;Producer Transaction 예시:&lt;/span&gt;&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li style=&quot;list-style-type: decimal; color: #1f1f1f;&quot;&gt;&lt;span style=&quot;color: #1f1f1f;&quot;&gt;Producer는 Transaction을 시작합니다.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: decimal; color: #1f1f1f;&quot;&gt;&lt;span style=&quot;color: #1f1f1f;&quot;&gt;Producer는 Topic A에 메시지 &quot;Hello&quot;를 전송합니다.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: decimal; color: #1f1f1f;&quot;&gt;&lt;span style=&quot;color: #1f1f1f;&quot;&gt;Producer는 Topic B에 메시지 &quot;World&quot;를 전송합니다.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: decimal; color: #1f1f1f;&quot;&gt;&lt;span style=&quot;color: #1f1f1f;&quot;&gt;두 메시지가 모두 성공적으로 전송되면 Producer는 Transaction을 Commit합니다.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: decimal; color: #1f1f1f;&quot;&gt;&lt;span style=&quot;color: #1f1f1f;&quot;&gt;만약 메시지 중 하나라도 전송에 실패하면 Producer는 Transaction을 Rollback합니다.&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p style=&quot;background-color: #ffffff;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #1f1f1f;&quot;&gt;Consumer Transaction 예시:&lt;/span&gt;&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li style=&quot;list-style-type: decimal; color: #1f1f1f;&quot;&gt;&lt;span style=&quot;color: #1f1f1f;&quot;&gt;Consumer는 Transaction을 시작합니다.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: decimal; color: #1f1f1f;&quot;&gt;&lt;span style=&quot;color: #1f1f1f;&quot;&gt;Consumer는 Topic A에서 메시지 &quot;Hello&quot;를 Consume합니다.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: decimal; color: #1f1f1f;&quot;&gt;&lt;span style=&quot;color: #1f1f1f;&quot;&gt;Consumer는 Topic B에서 메시지 &quot;World&quot;를 Consume합니다.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: decimal; color: #1f1f1f;&quot;&gt;&lt;span style=&quot;color: #1f1f1f;&quot;&gt;두 메시지가 모두 성공적으로 처리되면 Consumer는 Transaction을 Commit합니다.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: decimal; color: #1f1f1f;&quot;&gt;&lt;span style=&quot;color: #1f1f1f;&quot;&gt;만약 메시지 중 하나라도 처리에 실패하면 Consumer는 Transaction을 Rollback합니다.&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 style=&quot;background-color: #ffffff;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #1f1f1f;&quot;&gt;Transaction 사용 시 고려 사항&lt;/span&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc; color: #1f1f1f;&quot;&gt;&lt;span style=&quot;color: #1f1f1f;&quot;&gt;Transaction은 성능에 영향을 줄 수 있습니다.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc; color: #1f1f1f;&quot;&gt;&lt;span style=&quot;color: #1f1f1f;&quot;&gt;Transaction은 복잡성을 증가시킬 수 있습니다.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc; color: #1f1f1f;&quot;&gt;&lt;span style=&quot;color: #1f1f1f;&quot;&gt;Transaction은 모든 애플리케이션에 적합하지 않습니다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 style=&quot;background-color: #ffffff;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #1f1f1f;&quot;&gt;Ref&lt;/span&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc; color: #1f1f1f;&quot;&gt;&lt;span style=&quot;color: #1f1f1f;&quot;&gt;Apache Kafka Transaction 문서: &lt;/span&gt;&lt;span style=&quot;color: #1155cc;&quot;&gt;&lt;/span&gt;&lt;a href=&quot;https://www.confluent.io/blog/transactions-apache-kafka/&quot;&gt;https://www.confluent.io/blog/transactions-apache-kafka/&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc; color: #1f1f1f;&quot;&gt;&lt;span style=&quot;color: #1f1f1f;&quot;&gt;Kafka Transaction 튜토리얼: &lt;/span&gt;&lt;span style=&quot;color: #1155cc;&quot;&gt;&lt;/span&gt;&lt;a href=&quot;https://www.confluent.io/blog/transactions-apache-kafka/&quot;&gt;https://www.confluent.io/blog/transactions-apache-kafka/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt; &lt;/p&gt;</description>
      <category>IT/Kafka</category>
      <category>apachekafka</category>
      <category>COMMIT</category>
      <category>consumer</category>
      <category>Producer</category>
      <category>Rollback</category>
      <category>transaction</category>
      <author>ROGERNM</author>
      <guid isPermaLink="true">https://googleyness.tistory.com/114</guid>
      <comments>https://googleyness.tistory.com/entry/Apache-Kafka%EC%97%90%EC%84%9C%EC%9D%98-Transaction-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0#entry114comment</comments>
      <pubDate>Wed, 28 Feb 2024 23:08:36 +0900</pubDate>
    </item>
  </channel>
</rss>