<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>예니의 코딩일기</title>
    <link>https://yen-coding-diary.tistory.com/</link>
    <description>프로그래머스 데이터 엔지니어링 데브코스 2기 수강생 입니다</description>
    <language>ko</language>
    <pubDate>Wed, 15 Jul 2026 07:16:27 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>예니ㅣ</managingEditor>
    <image>
      <title>예니의 코딩일기</title>
      <url>https://tistory1.daumcdn.net/tistory/6680705/attach/3dcd7877ed1e4faf89272ac00ecb7a9b</url>
      <link>https://yen-coding-diary.tistory.com</link>
    </image>
    <item>
      <title>기초 확률 분포</title>
      <link>https://yen-coding-diary.tistory.com/154</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #dddddd;&quot;&gt;강의&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;베르누이 분포&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&quot;이항변수&quot;(Binary Varaibles)는 0과 1로 구성된 집합을 치역으로 갖는 확률변수 입니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;211&quot; data-origin-height=&quot;30&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cpSaUH/btsEfsXPpiw/Ixigi7PPkkacVCYZpIyRR1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cpSaUH/btsEfsXPpiw/Ixigi7PPkkacVCYZpIyRR1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cpSaUH/btsEfsXPpiw/Ixigi7PPkkacVCYZpIyRR1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcpSaUH%2FbtsEfsXPpiw%2FIxigi7PPkkacVCYZpIyRR1%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;211&quot; height=&quot;30&quot; data-origin-width=&quot;211&quot; data-origin-height=&quot;30&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;157&quot; data-origin-height=&quot;32&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/0nMYt/btsEeF4cPd3/cN6bO3gm9kEYooyZqvkKt0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/0nMYt/btsEeF4cPd3/cN6bO3gm9kEYooyZqvkKt0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/0nMYt/btsEeF4cPd3/cN6bO3gm9kEYooyZqvkKt0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F0nMYt%2FbtsEeF4cPd3%2FcN6bO3gm9kEYooyZqvkKt0%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;157&quot; height=&quot;32&quot; data-origin-width=&quot;157&quot; data-origin-height=&quot;32&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;202&quot; data-origin-height=&quot;186&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/pgOai/btsEa9k6Eci/xyQ0gJfvimjhjCnkuZQsu1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/pgOai/btsEa9k6Eci/xyQ0gJfvimjhjCnkuZQsu1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/pgOai/btsEa9k6Eci/xyQ0gJfvimjhjCnkuZQsu1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FpgOai%2FbtsEa9k6Eci%2FxyQ0gJfvimjhjCnkuZQsu1%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;202&quot; height=&quot;186&quot; data-origin-width=&quot;202&quot; data-origin-height=&quot;186&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;233&quot; data-origin-height=&quot;48&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cEBlXI/btsEfpfJO0e/iRlkiaT85bgvqFqmCEoOn1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cEBlXI/btsEfpfJO0e/iRlkiaT85bgvqFqmCEoOn1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cEBlXI/btsEfpfJO0e/iRlkiaT85bgvqFqmCEoOn1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcEBlXI%2FbtsEfpfJO0e%2FiRlkiaT85bgvqFqmCEoOn1%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;233&quot; height=&quot;48&quot; data-origin-width=&quot;233&quot; data-origin-height=&quot;48&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;336&quot; data-origin-height=&quot;52&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/QAnDj/btsEcbJBMGN/eM5P2XdfbMkVOVAVj8NrbK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/QAnDj/btsEcbJBMGN/eM5P2XdfbMkVOVAVj8NrbK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/QAnDj/btsEcbJBMGN/eM5P2XdfbMkVOVAVj8NrbK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FQAnDj%2FbtsEcbJBMGN%2FeM5P2XdfbMkVOVAVj8NrbK%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;336&quot; height=&quot;52&quot; data-origin-width=&quot;336&quot; data-origin-height=&quot;52&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;이항 분포&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;201&quot; data-origin-height=&quot;82&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bsDLoM/btsEhBmqtlq/u7xkLHz46HwRkYGPc0xvf1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bsDLoM/btsEhBmqtlq/u7xkLHz46HwRkYGPc0xvf1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bsDLoM/btsEhBmqtlq/u7xkLHz46HwRkYGPc0xvf1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbsDLoM%2FbtsEhBmqtlq%2Fu7xkLHz46HwRkYGPc0xvf1%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;201&quot; height=&quot;82&quot; data-origin-width=&quot;201&quot; data-origin-height=&quot;82&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;312&quot; data-origin-height=&quot;75&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/D2Sk5/btsEhnWhkh6/l3if0Em3E1ANHkZKTWWeEK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/D2Sk5/btsEhnWhkh6/l3if0Em3E1ANHkZKTWWeEK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/D2Sk5/btsEhnWhkh6/l3if0Em3E1ANHkZKTWWeEK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FD2Sk5%2FbtsEhnWhkh6%2Fl3if0Em3E1ANHkZKTWWeEK%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;312&quot; height=&quot;75&quot; data-origin-width=&quot;312&quot; data-origin-height=&quot;75&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;베타 분포&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;213&quot; data-origin-height=&quot;43&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bxCwFa/btsEcqs9oCv/3jk4kiHEPqiQfyPMxXwxHk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bxCwFa/btsEcqs9oCv/3jk4kiHEPqiQfyPMxXwxHk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bxCwFa/btsEcqs9oCv/3jk4kiHEPqiQfyPMxXwxHk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbxCwFa%2FbtsEcqs9oCv%2F3jk4kiHEPqiQfyPMxXwxHk%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;213&quot; height=&quot;43&quot; data-origin-width=&quot;213&quot; data-origin-height=&quot;43&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;132&quot; data-origin-height=&quot;38&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/C5pJi/btsEdVM0Egw/wxvScr2Mk7RZNwha60jaj1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/C5pJi/btsEdVM0Egw/wxvScr2Mk7RZNwha60jaj1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/C5pJi/btsEdVM0Egw/wxvScr2Mk7RZNwha60jaj1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FC5pJi%2FbtsEdVM0Egw%2FwxvScr2Mk7RZNwha60jaj1%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;132&quot; height=&quot;38&quot; data-origin-width=&quot;132&quot; data-origin-height=&quot;38&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;88&quot; data-origin-height=&quot;27&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Mktel/btsEhyQMfXr/iPn9OUlqbmuhEha6Hjp3hK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Mktel/btsEhyQMfXr/iPn9OUlqbmuhEha6Hjp3hK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Mktel/btsEhyQMfXr/iPn9OUlqbmuhEha6Hjp3hK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FMktel%2FbtsEhyQMfXr%2FiPn9OUlqbmuhEha6Hjp3hK%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;88&quot; height=&quot;27&quot; data-origin-width=&quot;88&quot; data-origin-height=&quot;27&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;190&quot; data-origin-height=&quot;100&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/eym2mE/btsEhUzhRpy/O70cJkoNds2ahgPBmUIkKK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/eym2mE/btsEhUzhRpy/O70cJkoNds2ahgPBmUIkKK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/eym2mE/btsEhUzhRpy/O70cJkoNds2ahgPBmUIkKK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Feym2mE%2FbtsEhUzhRpy%2FO70cJkoNds2ahgPBmUIkKK%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;190&quot; height=&quot;100&quot; data-origin-width=&quot;190&quot; data-origin-height=&quot;100&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;/p&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;&amp;nbsp;&lt;/p&gt;</description>
      <category>데브코스 TIL/Machine Learning</category>
      <category>_머신러닝</category>
      <category>_확률분포</category>
      <category>프로그래머스</category>
      <category>프로그래머스데브코스</category>
      <category>프로그래머스데브코스데이터엔지니어링</category>
      <author>예니ㅣ</author>
      <guid isPermaLink="true">https://yen-coding-diary.tistory.com/154</guid>
      <comments>https://yen-coding-diary.tistory.com/154#entry154comment</comments>
      <pubDate>Wed, 31 Jan 2024 16:25:35 +0900</pubDate>
    </item>
    <item>
      <title>기초 확률</title>
      <link>https://yen-coding-diary.tistory.com/153</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;background-color: #dddddd;&quot;&gt;&lt;b&gt;강의&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;확률&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&quot;표본집합&quot;은 실험의 결과로 발생하는 모든 결과의 집합 입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&quot;확률&quot;은 집합의 부분집합을 실수값에 대응시키는 함수 입니다.&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;style5&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;확률변수&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&quot;확률변수&quot;(Random Variable)은 표본집합의 원소를 실수갑에 대응시키는 함수 입니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;422&quot; data-origin-height=&quot;72&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/z9N7H/btsEbCHoOGC/ngHLWJx0jXnJkEjYCjucrK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/z9N7H/btsEbCHoOGC/ngHLWJx0jXnJkEjYCjucrK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/z9N7H/btsEbCHoOGC/ngHLWJx0jXnJkEjYCjucrK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fz9N7H%2FbtsEbCHoOGC%2FngHLWJx0jXnJkEjYCjucrK%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;381&quot; height=&quot;65&quot; data-origin-width=&quot;422&quot; data-origin-height=&quot;72&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;&quot;연속확률변수&quot;(Continuous Random Variable)은 누적분포함수를 가진 확률변수에 대해 다음 식을 만족하는 확률밀도함수가 존재하는 확률변수 입니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;307&quot; data-origin-height=&quot;95&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/efpnu6/btsEbGQuEvd/bLoXNPEmlqlD9FQMCw0ru1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/efpnu6/btsEbGQuEvd/bLoXNPEmlqlD9FQMCw0ru1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/efpnu6/btsEbGQuEvd/bLoXNPEmlqlD9FQMCw0ru1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fefpnu6%2FbtsEbGQuEvd%2FbLoXNPEmlqlD9FQMCw0ru1%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;239&quot; height=&quot;74&quot; data-origin-width=&quot;307&quot; data-origin-height=&quot;95&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;360&quot; data-origin-height=&quot;102&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bR2e1b/btsEbaK0UiN/DeNngOi0vfTtkuZwHESFik/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bR2e1b/btsEbaK0UiN/DeNngOi0vfTtkuZwHESFik/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bR2e1b/btsEbaK0UiN/DeNngOi0vfTtkuZwHESFik/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbR2e1b%2FbtsEbaK0UiN%2FDeNngOi0vfTtkuZwHESFik%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;289&quot; height=&quot;82&quot; data-origin-width=&quot;360&quot; data-origin-height=&quot;102&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;h4 data-ke-size=&quot;size20&quot;&gt;&lt;u&gt;확률변수 성질&lt;/u&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;덧셈법칙(Sum Rule)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;148&quot; data-origin-height=&quot;43&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cEJaUx/btsEhT8bJkr/ahoQTNrtfBmJywlqfQEjXK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cEJaUx/btsEhT8bJkr/ahoQTNrtfBmJywlqfQEjXK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cEJaUx/btsEhT8bJkr/ahoQTNrtfBmJywlqfQEjXK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcEJaUx%2FbtsEhT8bJkr%2FahoQTNrtfBmJywlqfQEjXK%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;148&quot; height=&quot;43&quot; data-origin-width=&quot;148&quot; data-origin-height=&quot;43&quot;/&gt;&lt;/span&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;곱셈법칙(Product Rule)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;287&quot; data-origin-height=&quot;32&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/vWQxw/btsEf7MNMVU/XDDcITy5CjofEW2e8NE4y1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/vWQxw/btsEf7MNMVU/XDDcITy5CjofEW2e8NE4y1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/vWQxw/btsEf7MNMVU/XDDcITy5CjofEW2e8NE4y1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FvWQxw%2FbtsEf7MNMVU%2FXDDcITy5CjofEW2e8NE4y1%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;287&quot; height=&quot;32&quot; data-origin-width=&quot;287&quot; data-origin-height=&quot;32&quot;/&gt;&lt;/span&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;베이즈 확률(Bayes)
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;사후확률(Posterior)&lt;/li&gt;
&lt;li&gt;사전확률(Prior)&lt;/li&gt;
&lt;li&gt;가능도 혹은 우도(Likelihood)&lt;/li&gt;
&lt;li&gt;경계확률(Nomalization)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;240&quot; data-origin-height=&quot;95&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/XpbxP/btsEhmbXG07/JQTg9IkaJjv3VFKuNH4vV1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/XpbxP/btsEhmbXG07/JQTg9IkaJjv3VFKuNH4vV1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/XpbxP/btsEhmbXG07/JQTg9IkaJjv3VFKuNH4vV1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FXpbxP%2FbtsEhmbXG07%2FJQTg9IkaJjv3VFKuNH4vV1%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;240&quot; height=&quot;95&quot; data-origin-width=&quot;240&quot; data-origin-height=&quot;95&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;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;기댓값과 분산&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&quot;기댓값&quot;(Expectation)은 확률분포 하에서 함수의 평균값 입니다.&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;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;127&quot; data-origin-height=&quot;25&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/7M8VV/btsEb7Aokhj/g2kyFy2jRljkjAEEQFDkn1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/7M8VV/btsEb7Aokhj/g2kyFy2jRljkjAEEQFDkn1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/7M8VV/btsEb7Aokhj/g2kyFy2jRljkjAEEQFDkn1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F7M8VV%2FbtsEb7Aokhj%2Fg2kyFy2jRljkjAEEQFDkn1%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;127&quot; height=&quot;25&quot; data-origin-width=&quot;127&quot; data-origin-height=&quot;25&quot;/&gt;&lt;/span&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;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;132&quot; data-origin-height=&quot;32&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bdJ6Zs/btsEhWYag2l/iDelYO04pTKOK9XeKxB9Z0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bdJ6Zs/btsEhWYag2l/iDelYO04pTKOK9XeKxB9Z0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bdJ6Zs/btsEhWYag2l/iDelYO04pTKOK9XeKxB9Z0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbdJ6Zs%2FbtsEhWYag2l%2FiDelYO04pTKOK9XeKxB9Z0%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;132&quot; height=&quot;32&quot; data-origin-width=&quot;132&quot; data-origin-height=&quot;32&quot;/&gt;&lt;/span&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;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;131&quot; data-origin-height=&quot;56&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b2TG1B/btsEf1siPvE/I5uNdFZ2zhxgy9tsI3mwr0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b2TG1B/btsEf1siPvE/I5uNdFZ2zhxgy9tsI3mwr0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b2TG1B/btsEf1siPvE/I5uNdFZ2zhxgy9tsI3mwr0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb2TG1B%2FbtsEf1siPvE%2FI5uNdFZ2zhxgy9tsI3mwr0%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;131&quot; height=&quot;56&quot; data-origin-width=&quot;131&quot; data-origin-height=&quot;56&quot;/&gt;&lt;/span&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;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;187&quot; data-origin-height=&quot;42&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/nlBXd/btsEhKctZTN/KjPKvMMMKX6uN3GgRXuvs0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/nlBXd/btsEhKctZTN/KjPKvMMMKX6uN3GgRXuvs0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/nlBXd/btsEhKctZTN/KjPKvMMMKX6uN3GgRXuvs0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnlBXd%2FbtsEhKctZTN%2FKjPKvMMMKX6uN3GgRXuvs0%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;187&quot; height=&quot;42&quot; data-origin-width=&quot;187&quot; data-origin-height=&quot;42&quot;/&gt;&lt;/span&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;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;161&quot; data-origin-height=&quot;37&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cRi3cG/btsEdMJpXH2/DveBAkKl9VKGLiojIwN9GK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cRi3cG/btsEdMJpXH2/DveBAkKl9VKGLiojIwN9GK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cRi3cG/btsEdMJpXH2/DveBAkKl9VKGLiojIwN9GK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcRi3cG%2FbtsEdMJpXH2%2FDveBAkKl9VKGLiojIwN9GK%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;161&quot; height=&quot;37&quot; data-origin-width=&quot;161&quot; data-origin-height=&quot;37&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;&quot;분산&quot;(Variance)는 밀도함수의 값들이 기댓값으로부터 흩어져 있는 정도 입니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;417&quot; data-origin-height=&quot;45&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/doCn9v/btsEhUF2dXD/CG1mdOnrzibHZCY8zDPUCK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/doCn9v/btsEhUF2dXD/CG1mdOnrzibHZCY8zDPUCK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/doCn9v/btsEhUF2dXD/CG1mdOnrzibHZCY8zDPUCK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdoCn9v%2FbtsEhUF2dXD%2FCG1mdOnrzibHZCY8zDPUCK%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;417&quot; height=&quot;45&quot; data-origin-width=&quot;417&quot; data-origin-height=&quot;45&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;&quot;공분산&quot;(Covariance)는 두 개의 확률변수에 대한 공통 분산 입니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;308&quot; data-origin-height=&quot;56&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/xfuDJ/btsEf6tCkGR/fGVoqqtAc44GgK40Okqhck/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/xfuDJ/btsEf6tCkGR/fGVoqqtAc44GgK40Okqhck/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/xfuDJ/btsEf6tCkGR/fGVoqqtAc44GgK40Okqhck/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FxfuDJ%2FbtsEf6tCkGR%2FfGVoqqtAc44GgK40Okqhck%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;308&quot; height=&quot;56&quot; data-origin-width=&quot;308&quot; data-origin-height=&quot;56&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;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;확률 해석 관점&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&gt;빈도주의(Frequentist) : 반복가능한 사건들의 빈도수에 기반&lt;/li&gt;
&lt;li&gt;베이지안(Bayesian) : 불확실성을 정량적으로 표현&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>데브코스 TIL/Machine Learning</category>
      <category>_머신러닝</category>
      <category>_확률</category>
      <category>프로그래머스</category>
      <category>프로그래머스데브코스</category>
      <category>프로그래머스데브코스데이터엔지니어링</category>
      <author>예니ㅣ</author>
      <guid isPermaLink="true">https://yen-coding-diary.tistory.com/153</guid>
      <comments>https://yen-coding-diary.tistory.com/153#entry153comment</comments>
      <pubDate>Wed, 31 Jan 2024 16:15:26 +0900</pubDate>
    </item>
    <item>
      <title>기초 선형대수</title>
      <link>https://yen-coding-diary.tistory.com/152</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;background-color: #dddddd;&quot;&gt;&lt;b&gt;강의&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;기본 표기법&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&gt;벡터&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;137&quot; data-origin-height=&quot;146&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/SWTzp/btsEaXcxSSz/kpAdkJZ3wqTO4alxsO2hTK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/SWTzp/btsEaXcxSSz/kpAdkJZ3wqTO4alxsO2hTK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/SWTzp/btsEaXcxSSz/kpAdkJZ3wqTO4alxsO2hTK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FSWTzp%2FbtsEaXcxSSz%2FkpAdkJZ3wqTO4alxsO2hTK%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;97&quot; height=&quot;103&quot; data-origin-width=&quot;137&quot; data-origin-height=&quot;146&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1706578090398&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import numpy as np
x = np.array(list)&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;행렬&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;320&quot; data-origin-height=&quot;153&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ybIvn/btsD6xlb40b/2nrNJ1vx55Z20dqfYcxRq0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ybIvn/btsD6xlb40b/2nrNJ1vx55Z20dqfYcxRq0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ybIvn/btsD6xlb40b/2nrNJ1vx55Z20dqfYcxRq0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FybIvn%2FbtsD6xlb40b%2F2nrNJ1vx55Z20dqfYcxRq0%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;230&quot; height=&quot;110&quot; data-origin-width=&quot;320&quot; data-origin-height=&quot;153&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1706578141898&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import numpy as np
A = np.array([
    list1,
    list2
    ...
])&lt;/code&gt;&lt;/pre&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;style5&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;행렬의 곱셈&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;785&quot; data-origin-height=&quot;118&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/SUycC/btsEaVFP2kA/0lHJ610AhIkQp1WUCqjpKk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/SUycC/btsEaVFP2kA/0lHJ610AhIkQp1WUCqjpKk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/SUycC/btsEaVFP2kA/0lHJ610AhIkQp1WUCqjpKk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FSUycC%2FbtsEaVFP2kA%2F0lHJ610AhIkQp1WUCqjpKk%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;559&quot; height=&quot;84&quot; data-origin-width=&quot;785&quot; data-origin-height=&quot;118&quot;/&gt;&lt;/span&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;벡터 X 벡터&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;936&quot; data-origin-height=&quot;237&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bSdy6J/btsEaMIVk6V/bX0YkhKtU85KFSRtc1J0a1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bSdy6J/btsEaMIVk6V/bX0YkhKtU85KFSRtc1J0a1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bSdy6J/btsEaMIVk6V/bX0YkhKtU85KFSRtc1J0a1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbSdy6J%2FbtsEaMIVk6V%2FbX0YkhKtU85KFSRtc1J0a1%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;619&quot; height=&quot;157&quot; data-origin-width=&quot;936&quot; data-origin-height=&quot;237&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;948&quot; data-origin-height=&quot;203&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b2ZbZt/btsD4jA9H2u/dCBkgwjXOJEOregfK2MhpK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b2ZbZt/btsD4jA9H2u/dCBkgwjXOJEOregfK2MhpK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b2ZbZt/btsD4jA9H2u/dCBkgwjXOJEOregfK2MhpK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb2ZbZt%2FbtsD4jA9H2u%2FdCBkgwjXOJEOregfK2MhpK%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;645&quot; height=&quot;138&quot; data-origin-width=&quot;948&quot; data-origin-height=&quot;203&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1706578382792&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import numpy as np

# 내적
x = np.array(list1)
y = np.array(list2)
x.dot(y)

# 외적
x = np.expand_dims(x, axis=1)
y = np.expand_dims(y, axis=0)
np.matmul(x,y)&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;행렬 X 벡터&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;967&quot; data-origin-height=&quot;266&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c5aO18/btsEaVTkXGM/ezShiKIy4uAmudEeqidfK0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c5aO18/btsEaVTkXGM/ezShiKIy4uAmudEeqidfK0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c5aO18/btsEaVTkXGM/ezShiKIy4uAmudEeqidfK0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc5aO18%2FbtsEaVTkXGM%2FezShiKIy4uAmudEeqidfK0%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;653&quot; height=&quot;180&quot; data-origin-width=&quot;967&quot; data-origin-height=&quot;266&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;892&quot; data-origin-height=&quot;210&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cJnLHd/btsD8xkWydP/aI4ONv0Kl2P6YZETnLMVpk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cJnLHd/btsD8xkWydP/aI4ONv0Kl2P6YZETnLMVpk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cJnLHd/btsD8xkWydP/aI4ONv0Kl2P6YZETnLMVpk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcJnLHd%2FbtsD8xkWydP%2FaI4ONv0Kl2P6YZETnLMVpk%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;605&quot; height=&quot;142&quot; data-origin-width=&quot;892&quot; data-origin-height=&quot;210&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;873&quot; data-origin-height=&quot;487&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bbN9Ta/btsEbcm1voi/Gp61F8oIB5BK4fD4FM8rD1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bbN9Ta/btsEbcm1voi/Gp61F8oIB5BK4fD4FM8rD1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bbN9Ta/btsEbcm1voi/Gp61F8oIB5BK4fD4FM8rD1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbbN9Ta%2FbtsEbcm1voi%2FGp61F8oIB5BK4fD4FM8rD1%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;590&quot; height=&quot;329&quot; data-origin-width=&quot;873&quot; data-origin-height=&quot;487&quot;/&gt;&lt;/span&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;행렬 X 행렬&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;782&quot; data-origin-height=&quot;445&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cgiZJx/btsEbbPdaCZ/SjyqsjvTGIPsmsgi0MK03K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cgiZJx/btsEbbPdaCZ/SjyqsjvTGIPsmsgi0MK03K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cgiZJx/btsEbbPdaCZ/SjyqsjvTGIPsmsgi0MK03K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcgiZJx%2FbtsEbbPdaCZ%2FSjyqsjvTGIPsmsgi0MK03K%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;332&quot; data-origin-width=&quot;782&quot; data-origin-height=&quot;445&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;972&quot; data-origin-height=&quot;325&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/be2uI0/btsEa8LIbVY/pOcaT94kdnB5XZMGgg1kGk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/be2uI0/btsEa8LIbVY/pOcaT94kdnB5XZMGgg1kGk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/be2uI0/btsEa8LIbVY/pOcaT94kdnB5XZMGgg1kGk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbe2uI0%2FbtsEa8LIbVY%2FpOcaT94kdnB5XZMGgg1kGk%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;666&quot; height=&quot;223&quot; data-origin-width=&quot;972&quot; data-origin-height=&quot;325&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;835&quot; data-origin-height=&quot;487&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/OiVeh/btsD4TaZkNv/dB7FpVw0KVnVsxFJxDTc4K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/OiVeh/btsD4TaZkNv/dB7FpVw0KVnVsxFJxDTc4K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/OiVeh/btsD4TaZkNv/dB7FpVw0KVnVsxFJxDTc4K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FOiVeh%2FbtsD4TaZkNv%2FdB7FpVw0KVnVsxFJxDTc4K%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;644&quot; height=&quot;376&quot; data-origin-width=&quot;835&quot; data-origin-height=&quot;487&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;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;특수 행렬&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&gt;정방행렬(Square Matrix) : 행과 열의 개수 동일&lt;/li&gt;
&lt;li&gt;상삼각행렬(Upper Triangular Matrix) : 주대각선 아래 원소의 값이 모두 0인 정방행렬&lt;/li&gt;
&lt;li&gt;하삼각행렬(Lower Triangular Matrix) : 주대각선 위 원소의 값이 모두 0인 정방행렬&lt;/li&gt;
&lt;li&gt;대각행렬(Diagonal Matrix) : 주대각선 외의 모든 원소의 값이 0인 정방행렬&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1706579103617&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import numpy as np
np.diag(D)		# 주대각선 값&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;단위행렬(Identity Matrix) : 주대각선의 모든 원소의 값이 1인 대각행렬&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1706579145712&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import nupmy as np
I = np.eye(n)&lt;/code&gt;&lt;/pre&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;style5&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;연산&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&gt;전치(Transpose)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;150&quot; data-origin-height=&quot;57&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/BK6TX/btsEaPZVlvv/nx9PGKRCSLJLlFvBtzWjZ0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/BK6TX/btsEaPZVlvv/nx9PGKRCSLJLlFvBtzWjZ0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/BK6TX/btsEaPZVlvv/nx9PGKRCSLJLlFvBtzWjZ0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FBK6TX%2FbtsEaPZVlvv%2Fnx9PGKRCSLJLlFvBtzWjZ0%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;113&quot; height=&quot;43&quot; data-origin-width=&quot;150&quot; data-origin-height=&quot;57&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;231&quot; data-origin-height=&quot;102&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/djUnJ8/btsD7lSBCUK/6nl8BaT6LXYYQWJEEPlOtK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/djUnJ8/btsD7lSBCUK/6nl8BaT6LXYYQWJEEPlOtK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/djUnJ8/btsD7lSBCUK/6nl8BaT6LXYYQWJEEPlOtK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdjUnJ8%2FbtsD7lSBCUK%2F6nl8BaT6LXYYQWJEEPlOtK%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;177&quot; height=&quot;78&quot; data-origin-width=&quot;231&quot; data-origin-height=&quot;102&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1706579352462&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;A.T&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;대칭(Symmetic) : 행렬이 자신의 정방행렬과 동일&lt;/li&gt;
&lt;li&gt;반대칭(Anti-Symmetric) : 행렬이 자신의 부호가 반대인 정방행렬과 동일&lt;/li&gt;
&lt;li&gt;대각합(Trace) : 주대각선의 모든 원소들의 합&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1043&quot; data-origin-height=&quot;167&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/crmfEG/btsEbbn877S/CYoEOVTzaf0qzMihQnjFd0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/crmfEG/btsEbbn877S/CYoEOVTzaf0qzMihQnjFd0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/crmfEG/btsEbbn877S/CYoEOVTzaf0qzMihQnjFd0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcrmfEG%2FbtsEbbn877S%2FCYoEOVTzaf0qzMihQnjFd0%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;754&quot; height=&quot;167&quot; data-origin-width=&quot;1043&quot; data-origin-height=&quot;167&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1706579529380&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import numpy as np
np.trace(A)&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;놈(Norms) : 벡터의 길이&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;252&quot; data-origin-height=&quot;117&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bkzZIS/btsD3JNIuO4/OmC7Idlko0bCEb0HlUq351/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bkzZIS/btsD3JNIuO4/OmC7Idlko0bCEb0HlUq351/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bkzZIS/btsD3JNIuO4/OmC7Idlko0bCEb0HlUq351/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbkzZIS%2FbtsD3JNIuO4%2FOmC7Idlko0bCEb0HlUq351%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;211&quot; height=&quot;98&quot; data-origin-width=&quot;252&quot; data-origin-height=&quot;117&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;405&quot; data-origin-height=&quot;105&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bT4E6G/btsEbz98XV2/UZZCboItC09UZ9fBVeUw8K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bT4E6G/btsEbz98XV2/UZZCboItC09UZ9fBVeUw8K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bT4E6G/btsEbz98XV2/UZZCboItC09UZ9fBVeUw8K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbT4E6G%2FbtsEbz98XV2%2FUZZCboItC09UZ9fBVeUw8K%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;343&quot; height=&quot;89&quot; data-origin-width=&quot;405&quot; data-origin-height=&quot;105&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;298&quot; data-origin-height=&quot;157&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ZpOeR/btsEcr46thH/f85plPLg0tuKkkYYesn1Bk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ZpOeR/btsEcr46thH/f85plPLg0tuKkkYYesn1Bk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ZpOeR/btsEcr46thH/f85plPLg0tuKkkYYesn1Bk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FZpOeR%2FbtsEcr46thH%2Ff85plPLg0tuKkkYYesn1Bk%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;262&quot; height=&quot;138&quot; data-origin-width=&quot;298&quot; data-origin-height=&quot;157&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1706579783969&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;LA.norm(A)&lt;/code&gt;&lt;/pre&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;style5&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;선형독립&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&quot;선형독립&quot;(Linear Independent)는 벡터들의 집합에 속해 있는 어떤 벡터도 나머지 벡터들의 선형조합으로 나타낼 수 없는 경우를 말합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&quot;종속&quot;(Dependent)은 어떠한 벡터가 나머지 벡터들의 선형조합으로 나타낼 수 있는 경우를 말합니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Column Rank : 행렬의 열의 부분집합 중 가장 큰 선형독립인 집합의 크기&lt;/li&gt;
&lt;li&gt;Row Rank : 행렬의 행의 부분집합 중 가장 큰 선형독립인 집합의 크기&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;902&quot; data-origin-height=&quot;137&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dIxu4p/btsD8AvcDJf/YPOtB2cZk5UX23lPXBaHr0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dIxu4p/btsD8AvcDJf/YPOtB2cZk5UX23lPXBaHr0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dIxu4p/btsD8AvcDJf/YPOtB2cZk5UX23lPXBaHr0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdIxu4p%2FbtsD8AvcDJf%2FYPOtB2cZk5UX23lPXBaHr0%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;689&quot; height=&quot;137&quot; data-origin-width=&quot;902&quot; data-origin-height=&quot;137&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1706580030577&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;LA.matrix_rank(A)&lt;/code&gt;&lt;/pre&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;style5&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;역행렬&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&quot;역행렬&quot;(The Inverse)는 다음을 식을 만족하는 정방행렬 입니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;211&quot; data-origin-height=&quot;51&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ORU9F/btsD4Sb5n0K/yBgDsrB89fBbaDk3WEt8g0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ORU9F/btsD4Sb5n0K/yBgDsrB89fBbaDk3WEt8g0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ORU9F/btsD4Sb5n0K/yBgDsrB89fBbaDk3WEt8g0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FORU9F%2FbtsD4Sb5n0K%2FyBgDsrB89fBbaDk3WEt8g0%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;186&quot; height=&quot;45&quot; data-origin-width=&quot;211&quot; data-origin-height=&quot;51&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;497&quot; data-origin-height=&quot;136&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/czuO8H/btsD5w1bvzN/nq6Qm3IrCHuSSvZn2LnEhk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/czuO8H/btsD5w1bvzN/nq6Qm3IrCHuSSvZn2LnEhk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/czuO8H/btsD5w1bvzN/nq6Qm3IrCHuSSvZn2LnEhk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FczuO8H%2FbtsD5w1bvzN%2Fnq6Qm3IrCHuSSvZn2LnEhk%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;431&quot; height=&quot;118&quot; data-origin-width=&quot;497&quot; data-origin-height=&quot;136&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1706580164070&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;LA.inv(A)&lt;/code&gt;&lt;/pre&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;style5&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;직교 행렬&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&quot;직교&quot;(Orthogonal)는 다음 식을 만족하는 경우를 말합니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;92&quot; data-origin-height=&quot;41&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cXMjG9/btsD9C7DrxW/7g2Lthrg8MrsVPcb1gsmOk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cXMjG9/btsD9C7DrxW/7g2Lthrg8MrsVPcb1gsmOk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cXMjG9/btsD9C7DrxW/7g2Lthrg8MrsVPcb1gsmOk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcXMjG9%2FbtsD9C7DrxW%2F7g2Lthrg8MrsVPcb1gsmOk%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;92&quot; height=&quot;41&quot; data-origin-width=&quot;92&quot; data-origin-height=&quot;41&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;&quot;직교행렬&quot;은 모든 열이 서로 직교이고 정규화된 정방행렬 입니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;107&quot; data-origin-height=&quot;67&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/boEkw0/btsD4lshBUp/YgI5YLPWzwrnjbRIiqW8E1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/boEkw0/btsD4lshBUp/YgI5YLPWzwrnjbRIiqW8E1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/boEkw0/btsD4lshBUp/YgI5YLPWzwrnjbRIiqW8E1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FboEkw0%2FbtsD4lshBUp%2FYgI5YLPWzwrnjbRIiqW8E1%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;75&quot; height=&quot;47&quot; data-origin-width=&quot;107&quot; data-origin-height=&quot;67&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;301&quot; data-origin-height=&quot;71&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bJjEBM/btsD4k70TJk/bTKqJfb6y1n3Qf4uhkCA2K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bJjEBM/btsD4k70TJk/bTKqJfb6y1n3Qf4uhkCA2K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bJjEBM/btsD4k70TJk/bTKqJfb6y1n3Qf4uhkCA2K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbJjEBM%2FbtsD4k70TJk%2FbTKqJfb6y1n3Qf4uhkCA2K%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;238&quot; height=&quot;56&quot; data-origin-width=&quot;301&quot; data-origin-height=&quot;71&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;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;공간&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&quot;생성&quot;(Span)은 벡터의 집합이 다음 식을 만족하는 경우를 말합니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;553&quot; data-origin-height=&quot;82&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cpnpQR/btsEbAOKG65/OfT9Vjrxqr1tK4wL92WUl0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cpnpQR/btsEbAOKG65/OfT9Vjrxqr1tK4wL92WUl0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cpnpQR/btsEbAOKG65/OfT9Vjrxqr1tK4wL92WUl0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcpnpQR%2FbtsEbAOKG65%2FOfT9Vjrxqr1tK4wL92WUl0%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;452&quot; height=&quot;67&quot; data-origin-width=&quot;553&quot; data-origin-height=&quot;82&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;&quot;치역&quot;(Range)는 행렬의 모든 열들에 대한 생성 입니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;377&quot; data-origin-height=&quot;37&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cwWdc7/btsEaYvOJOa/SsX122l2ZqqPXxIGKoR2Ek/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cwWdc7/btsEaYvOJOa/SsX122l2ZqqPXxIGKoR2Ek/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cwWdc7/btsEaYvOJOa/SsX122l2ZqqPXxIGKoR2Ek/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcwWdc7%2FbtsEaYvOJOa%2FSsX122l2ZqqPXxIGKoR2Ek%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;316&quot; height=&quot;31&quot; data-origin-width=&quot;377&quot; data-origin-height=&quot;37&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;&quot;영공간&quot;(Nullspace)은 행렬과 곱해졌을 때 0이 되는 모든 벡터들의 집합 입니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;302&quot; data-origin-height=&quot;38&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bdlFZi/btsEa8ybNap/ASIUC277mj5iohlaufWmB1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bdlFZi/btsEa8ybNap/ASIUC277mj5iohlaufWmB1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bdlFZi/btsEa8ybNap/ASIUC277mj5iohlaufWmB1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbdlFZi%2FbtsEa8ybNap%2FASIUC277mj5iohlaufWmB1%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;270&quot; height=&quot;34&quot; data-origin-width=&quot;302&quot; data-origin-height=&quot;38&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;&quot;투영&quot;(Projection)은 치역 위에서 벡터가 다음 식을 만족하는 것을 말합니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;512&quot; data-origin-height=&quot;66&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dAcNBa/btsD4UuchYM/ydnKxOq9IJTleoH9mRsSQk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dAcNBa/btsD4UuchYM/ydnKxOq9IJTleoH9mRsSQk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dAcNBa/btsD4UuchYM/ydnKxOq9IJTleoH9mRsSQk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdAcNBa%2FbtsD4UuchYM%2FydnKxOq9IJTleoH9mRsSQk%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;396&quot; height=&quot;51&quot; data-origin-width=&quot;512&quot; data-origin-height=&quot;66&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;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;행렬식&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;797&quot; data-origin-height=&quot;86&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bQ9e6n/btsD6u28ggt/JyRVpiwtEOqtKHfkZf8pFK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bQ9e6n/btsD6u28ggt/JyRVpiwtEOqtKHfkZf8pFK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bQ9e6n/btsD6u28ggt/JyRVpiwtEOqtKHfkZf8pFK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbQ9e6n%2FbtsD6u28ggt%2FJyRVpiwtEOqtKHfkZf8pFK%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;695&quot; height=&quot;75&quot; data-origin-width=&quot;797&quot; data-origin-height=&quot;86&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1706580821954&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;LA.det(A)&lt;/code&gt;&lt;/pre&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;style5&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;이차형식&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1000&quot; data-origin-height=&quot;161&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bUrDDj/btsEaZuHYcQ/e9IHOS5kqWhkIFVEHkykn0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bUrDDj/btsEaZuHYcQ/e9IHOS5kqWhkIFVEHkykn0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bUrDDj/btsEaZuHYcQ/e9IHOS5kqWhkIFVEHkykn0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbUrDDj%2FbtsEaZuHYcQ%2Fe9IHOS5kqWhkIFVEHkykn0%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;767&quot; height=&quot;123&quot; data-origin-width=&quot;1000&quot; data-origin-height=&quot;161&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;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;고유값과 고유벡터&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;966&quot; data-origin-height=&quot;106&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ceAW7Y/btsEaVTl0nu/Ke7kvFoi0qK0HXHw1Ku5c1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ceAW7Y/btsEaVTl0nu/Ke7kvFoi0qK0HXHw1Ku5c1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ceAW7Y/btsEaVTl0nu/Ke7kvFoi0qK0HXHw1Ku5c1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FceAW7Y%2FbtsEaVTl0nu%2FKe7kvFoi0qK0HXHw1Ku5c1%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;705&quot; height=&quot;77&quot; data-origin-width=&quot;966&quot; data-origin-height=&quot;106&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;936&quot; data-origin-height=&quot;162&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bHfnaR/btsEaYo3PXq/4yWaOxhIokkaZqhtqReaZ1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bHfnaR/btsEaYo3PXq/4yWaOxhIokkaZqhtqReaZ1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bHfnaR/btsEaYo3PXq/4yWaOxhIokkaZqhtqReaZ1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbHfnaR%2FbtsEaYo3PXq%2F4yWaOxhIokkaZqhtqReaZ1%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;739&quot; height=&quot;128&quot; data-origin-width=&quot;936&quot; data-origin-height=&quot;162&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1706581035292&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;eigenvalues, eigenvectors = LA.eig(A)&lt;/code&gt;&lt;/pre&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;style5&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;행렬미분(Matrix Calculus)&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&gt;The Gradient&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;831&quot; data-origin-height=&quot;578&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/qAjTW/btsEbHf180k/T6skvd2hrdkhw9K75dYpNK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/qAjTW/btsEbHf180k/T6skvd2hrdkhw9K75dYpNK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/qAjTW/btsEbHf180k/T6skvd2hrdkhw9K75dYpNK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FqAjTW%2FbtsEbHf180k%2FT6skvd2hrdkhw9K75dYpNK%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;646&quot; height=&quot;449&quot; data-origin-width=&quot;831&quot; data-origin-height=&quot;578&quot;/&gt;&lt;/span&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;The Hessian&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;547&quot; data-origin-height=&quot;318&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/quddD/btsD3K6FIPD/NQKeOr0zoyGCIEuafigeMk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/quddD/btsD3K6FIPD/NQKeOr0zoyGCIEuafigeMk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/quddD/btsD3K6FIPD/NQKeOr0zoyGCIEuafigeMk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FquddD%2FbtsD3K6FIPD%2FNQKeOr0zoyGCIEuafigeMk%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;410&quot; height=&quot;238&quot; data-origin-width=&quot;547&quot; data-origin-height=&quot;318&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;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;적용예시&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&gt;최소제곱법(Laest Squares)&lt;/li&gt;
&lt;li&gt;고유값과 최적화문제(Eigenvalues as Optimization)&lt;/li&gt;
&lt;li&gt;Autoencoder와 Principle Components Analysis(PCA)&lt;/li&gt;
&lt;li&gt;최적의 D 찾기&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>데브코스 TIL/Machine Learning</category>
      <category>_머신러닝</category>
      <category>_선형대수</category>
      <category>프로그래머스</category>
      <category>프로그래머스데브코스</category>
      <category>프로그래머스데브코스데이터엔지니어링</category>
      <author>예니ㅣ</author>
      <guid isPermaLink="true">https://yen-coding-diary.tistory.com/152</guid>
      <comments>https://yen-coding-diary.tistory.com/152#entry152comment</comments>
      <pubDate>Tue, 30 Jan 2024 11:22:21 +0900</pubDate>
    </item>
    <item>
      <title>머신러닝 소개</title>
      <link>https://yen-coding-diary.tistory.com/151</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;background-color: #dddddd;&quot;&gt;&lt;b&gt;강의&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;Machine Learing&lt;/span&gt;&lt;/h3&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&quot;Machine Learning&quot;은 경험을 통해 자동으로 개선하는 컴퓨터 알고리즘 연구 입니다.&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;&quot;Test Dataset&quot;은 모델 평가를 위한 별도의 데이터 입니다.&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;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;u&gt;학습 종류&lt;/u&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;지도 학습(Supervised Learning) : 목표값(Target)이 주어진 경우
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;분류(Classfication) : 목표값이 이산적인 경우&lt;/li&gt;
&lt;li&gt;회귀(Regression) : 목표값이 연속적인 경우&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;비지도 학습(Unsupervised Learning) : 목표값(Target)이 없는 경우
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;군집(Clustering)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&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;u&gt;이론&lt;/u&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;확률 이론(Probability Theory) : 예측값의 불확실성을 정량적으로 표현할 수 있는 수학적인 프레임워크&lt;/li&gt;
&lt;li&gt;결정 이론(Decision Theory) : 최적의 예측을 수행할 수 있는 방법론&lt;/li&gt;
&lt;/ul&gt;
&lt;p 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;&quot;오차 함수&quot;(Error Function)은 모델의 품질을 수치화하여 나타내는 함수 입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&quot;일반화&quot;(Generalization)은 모델에서 이전에 접하지 못한 새로운 데이터에 대해 올바른 예측을 수행하는 역량 입니다.&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;h4 data-ke-size=&quot;size20&quot;&gt;&lt;u&gt;오류&lt;/u&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;과소적합(Under-fitting)&lt;/li&gt;
&lt;li&gt;과대적합(Over-fitting)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;503&quot; data-origin-height=&quot;390&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Dcg6G/btsEaXJJ5Zs/WKicEN7SWAodXVjXOjmcm0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Dcg6G/btsEaXJJ5Zs/WKicEN7SWAodXVjXOjmcm0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Dcg6G/btsEaXJJ5Zs/WKicEN7SWAodXVjXOjmcm0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FDcg6G%2FbtsEaXJJ5Zs%2FWKicEN7SWAodXVjXOjmcm0%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;503&quot; height=&quot;390&quot; data-origin-width=&quot;503&quot; data-origin-height=&quot;390&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;style5&quot; /&gt;
&lt;h3 style=&quot;color: #000000;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;머신러닝 프로젝트 과정&lt;/span&gt;&lt;/h3&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&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;/ul&gt;
&lt;/li&gt;
&lt;li&gt;데이터 수집
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Test Dataset &amp;amp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;Train Dataset&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;데이터 탐색 및 시각화&lt;/li&gt;
&lt;li&gt;머신러닝 알고리즘 데이터 처리&lt;br /&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;/ul&gt;
&lt;/li&gt;
&lt;li&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;/li&gt;
&lt;li&gt;모델 상세 조정&lt;br /&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;그리드 탐색 혹은&lt;span&gt;&amp;nbsp;&lt;/span&gt;랜덤 탐색&lt;/li&gt;
&lt;li&gt;특성 중요도, 에러 분석&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;솔루션 제시&lt;/li&gt;
&lt;li&gt;시스템 론칭 및 모니터링, 유지 보수&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 style=&quot;color: #000000;&quot; data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>데브코스 TIL/Machine Learning</category>
      <category>_과정</category>
      <category>_머신러닝</category>
      <category>_소개</category>
      <category>프로그래머스</category>
      <category>프로그래머스데브코스</category>
      <category>프로그래머스데브코스데이터엔지니어링</category>
      <author>예니ㅣ</author>
      <guid isPermaLink="true">https://yen-coding-diary.tistory.com/151</guid>
      <comments>https://yen-coding-diary.tistory.com/151#entry151comment</comments>
      <pubDate>Mon, 29 Jan 2024 13:37:56 +0900</pubDate>
    </item>
    <item>
      <title>Kafka &amp;amp; Spark Streaming 연동 실습</title>
      <link>https://yen-coding-diary.tistory.com/150</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;background-color: #dddddd;&quot;&gt;&lt;b&gt;실습&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;fake_people 토픽의 title top 10 계산하기&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&gt;spark.jars.packages 설정
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;spark-defaults.conf 파일 수정&lt;/li&gt;
&lt;li&gt;SparkSession 생성시 config 지정&lt;/li&gt;
&lt;li&gt;spark-submit 실행시 --packages 옵션 사용&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1706501161697&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# kafka_source_streaming.py

from pyspark.sql import SparkSession
from pyspark.sql.functions import from_json, col, expr
from pyspark.sql.types import StructType, StructField, StringType, LongType, DoubleType, IntegerType, ArrayType


if __name__ == &quot;__main__&quot;:
    spark = SparkSession \
        .builder \
        .appName(&quot;File Streaming Demo&quot;) \
        .master(&quot;local[3]&quot;) \
        .config(&quot;spark.streaming.stopGracefullyOnShutdown&quot;, &quot;true&quot;) \
        .getOrCreate()

    schema = StructType([
        StructField(&quot;id&quot;, StringType()),
        StructField(&quot;name&quot;, StringType()),
        StructField(&quot;title&quot;, StringType())
    ])

    kafka_df = spark.readStream \
        .format(&quot;kafka&quot;) \
        .option(&quot;kafka.bootstrap.servers&quot;, &quot;localhost:9092&quot;) \
        .option(&quot;subscribe&quot;, &quot;fake_people&quot;) \
        .option(&quot;startingOffsets&quot;, &quot;earliest&quot;) \
        .load()
    kafka_df.printSchema()
    &quot;&quot;&quot;
    |-- key: binary (nullable = true)
    |-- value: binary (nullable = true)
    |-- topic: string (nullable = true)
    |-- partition: integer (nullable = true)
    |-- offset: long (nullable = true)
    |-- timestamp: timestamp (nullable = true)
    |-- timestampType: integer (nullable = true)
    &quot;&quot;&quot;
    value_df = kafka_df.select(from_json(col(&quot;value&quot;).cast(&quot;string&quot;), schema).alias(&quot;value&quot;))
    value_df.createOrReplaceTempView(&quot;fake_people&quot;)
    value_df.printSchema()
    count_df = spark.sql(&quot;SELECT value.title, COUNT(1) count FROM fake_people GROUP BY 1 ORDER BY 2 DESC LIMIT 10&quot;)

    count_writer_query = count_df.writeStream \
        .format(&quot;console&quot;) \
        .outputMode(&quot;complete&quot;) \
        .option(&quot;checkpointLocation&quot;, &quot;chk-point-dir-json&quot;) \
        .start()

    print(&quot;Listening to Kafka&quot;)
    count_writer_query.awaitTermination()&lt;/code&gt;&lt;/pre&gt;
&lt;pre id=&quot;code_1706501316366&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;spark-shell
    spark-submit --packages org.apache.spark:spark-sql-kafka-0-10_2.12:3.3.1 kafka_source_streaming.py&lt;/code&gt;&lt;/pre&gt;</description>
      <category>데브코스 TIL/빅데이터, 스트리밍 데이터 처리</category>
      <category>_Kafka</category>
      <category>_Spark</category>
      <category>_SparkStreaming</category>
      <category>_실습</category>
      <category>프로그래머스</category>
      <category>프로그래머스데브코스</category>
      <category>프로그래머스데브코스데이터엔지니어링</category>
      <author>예니ㅣ</author>
      <guid isPermaLink="true">https://yen-coding-diary.tistory.com/150</guid>
      <comments>https://yen-coding-diary.tistory.com/150#entry150comment</comments>
      <pubDate>Mon, 29 Jan 2024 13:10:27 +0900</pubDate>
    </item>
    <item>
      <title>Spark Streaming 소개 및 실습</title>
      <link>https://yen-coding-diary.tistory.com/149</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;background-color: #dddddd;&quot;&gt;&lt;b&gt;강의&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;Spark Streaming&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&quot;Spark Streaming&quot;는 실시간 데이터 스트림 처리를 위한 Spark API 입니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;데이터 소스 : Kafk, Kinesis, Flume, TCP 소켓&lt;/li&gt;
&lt;li&gt;고급 함수 사용 : Join, Map, Reduce, Window&lt;/li&gt;
&lt;li&gt;웹 UI : localhost:4040&lt;/li&gt;
&lt;/ul&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;u&gt;동작 방식&lt;/u&gt;&lt;/h4&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;새로운 데이터를 이전 데이터에 Merge 혹은 Replace&lt;/li&gt;
&lt;li&gt;데이터 위치 관리&lt;/li&gt;
&lt;li&gt;실패시 Fault Tolerance 및 데이터 재처리 관리&lt;/li&gt;
&lt;li&gt;최종 결과 스트림 일괄 생성 : Spark Engine
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;DStream
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;RDD 기반&lt;/li&gt;
&lt;li&gt;Spark SQL 엔진의 최적화 기능 사용 불가&lt;/li&gt;
&lt;li&gt;이벤트 발생 시간 기반 처리 불가&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Structured Streaming
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;DataFrame 기반&lt;/li&gt;
&lt;li&gt;Catalyst 기반 최적화 혜택&amp;nbsp;&lt;/li&gt;
&lt;li&gt;이벤트 발생 시간 기반 처리 가능&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;737&quot; data-origin-height=&quot;127&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bnaBFV/btsD4VshA6V/DvZ3s9szs3KEpQeMa5yty1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bnaBFV/btsD4VshA6V/DvZ3s9szs3KEpQeMa5yty1/img.png&quot; data-alt=&quot;내부 동작&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bnaBFV/btsD4VshA6V/DvZ3s9szs3KEpQeMa5yty1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbnaBFV%2FbtsD4VshA6V%2FDvZ3s9szs3KEpQeMa5yty1%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;737&quot; height=&quot;127&quot; data-origin-width=&quot;737&quot; data-origin-height=&quot;127&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;내부 동작&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;u&gt;구성 요소&lt;/u&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Source
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;스트리밍 데이터를 수집하는 외부 시스템&lt;/li&gt;
&lt;li&gt;ReadStream 사용&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1706499825288&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;lines_df = spark.readStream\
    .format(&quot;socket&quot;)\
    .option(&quot;host&quot;, &quot;localhost&quot;)\
    .option(&quot;port&quot;, &quot;9999&quot;)\
    .load()&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Sink
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;수집한 데이터를 처리하여 출력하는 외부 시스템&lt;/li&gt;
&lt;li&gt;OutputMode : Append, Update, Complete&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1706500059140&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;word_count_query = counts_df.writeStream\
    .format(&quot;console&quot;)\
    .outputMode(&quot;complete&quot;)\
    .option(&quot;checkpointLocation&quot;, &quot;chk-point-dir&quot;)\
    .start()&lt;/code&gt;&lt;/pre&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;style5&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #dddddd;&quot;&gt;실습&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;Streaming WordCount 예제&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&gt;터미널 1 : Netcat을 데이터 Producer로 사용&lt;/li&gt;
&lt;li&gt;터미널 2 : Spark Structured Streaming으로 생성한 Consumer 실행&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1706500668513&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# wordcount_streaming.py

from pyspark.sql import SparkSession
from pyspark.sql.functions import *


if __name__ == &quot;__main__&quot;:
    spark = SparkSession \
        .builder \
        .appName(&quot;Streaming Word Count&quot;) \
        .master(&quot;local[3]&quot;) \
        .config(&quot;spark.streaming.stopGracefullyOnShutdown&quot;, &quot;true&quot;) \
        .config(&quot;spark.sql.shuffle.partitions&quot;, 3) \
        .getOrCreate()

    # READ
    lines_df = spark.readStream \
        .format(&quot;socket&quot;) \
        .option(&quot;host&quot;, &quot;localhost&quot;) \
        .option(&quot;port&quot;, &quot;9999&quot;) \
        .load()

    # TRANSFORM
    words_df = lines_df.select(expr(&quot;explode(split(value,' ')) as word&quot;))
    counts_df = words_df.groupBy(&quot;word&quot;).count()

    # SINK
    word_count_query = counts_df.writeStream \
        .format(&quot;console&quot;) \
        .outputMode(&quot;complete&quot;) \
        .option(&quot;checkpointLocation&quot;, &quot;chk-point-dir&quot;) \
        .start()

    print(&quot;Listening to localhost:9999&quot;)
    word_count_query.awaitTermination()&lt;/code&gt;&lt;/pre&gt;
&lt;pre id=&quot;code_1706500829235&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# 터미널 1

nc -lk 9999&lt;/code&gt;&lt;/pre&gt;
&lt;pre id=&quot;code_1706500881951&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# 터미널 2

spark-submit wordcount_streaming.py&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>데브코스 TIL/빅데이터, 스트리밍 데이터 처리</category>
      <category>_Spark</category>
      <category>_SparkStreaming</category>
      <category>_소개</category>
      <category>_실습</category>
      <category>프로그래머스</category>
      <category>프로그래머스데브코스</category>
      <category>프로그래머스데브코스데이터엔지니어링</category>
      <author>예니ㅣ</author>
      <guid isPermaLink="true">https://yen-coding-diary.tistory.com/149</guid>
      <comments>https://yen-coding-diary.tistory.com/149#entry149comment</comments>
      <pubDate>Mon, 29 Jan 2024 13:02:02 +0900</pubDate>
    </item>
    <item>
      <title>Kafka ksqlDB</title>
      <link>https://yen-coding-diary.tistory.com/148</link>
      <description>&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;background-color: #dddddd;&quot;&gt;&lt;b&gt;강의&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;ksqlDB&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&quot;ksqlDB&quot;는 REST API 혹은 ksql 클라이언트 툴을 이용하여 Topic을 테이블처러 SQL로 조작할 수 있는 방법 입니다.&lt;/p&gt;
&lt;pre id=&quot;code_1706157033891&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;docker ps
docker exec -it ContainerID sh

ksql
    CREATE STREAM my_stream (id STRING, name STRING, title STRING) with (kafka_topic='fake_peaple', value_format='JSON');
    SELECT * FROM my_stream;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>데브코스 TIL/빅데이터, 스트리밍 데이터 처리</category>
      <category>_Kafka</category>
      <category>_ksqlDB</category>
      <category>프로그래머스</category>
      <category>프로그래머스데브코스</category>
      <category>프로그래머스데브코스데이터엔지니어링</category>
      <author>예니ㅣ</author>
      <guid isPermaLink="true">https://yen-coding-diary.tistory.com/148</guid>
      <comments>https://yen-coding-diary.tistory.com/148#entry148comment</comments>
      <pubDate>Thu, 25 Jan 2024 13:31:42 +0900</pubDate>
    </item>
    <item>
      <title>Kafka 프로그래밍 실습</title>
      <link>https://yen-coding-diary.tistory.com/147</link>
      <description>&lt;h2 style=&quot;color: #000000;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;background-color: #dddddd;&quot;&gt;&lt;b&gt;실습&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;h3 style=&quot;color: #000000;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;랜덤하게 사람 정보 생성 및 저장하는 KafkaProducer 구현&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&gt;Faker 모듈 사용&lt;/li&gt;
&lt;li&gt;pydantic 모듈의 BaseModel 사용&lt;/li&gt;
&lt;li&gt;Topic 생성 후 추가&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1706155201548&quot; class=&quot;cmake&quot; style=&quot;background-color: #f8f8f8; color: #383a42;&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;pip install faker
pip install pydantic&lt;/code&gt;&lt;/pre&gt;
&lt;pre id=&quot;code_1706155201549&quot; class=&quot;angelscript&quot; style=&quot;background-color: #f8f8f8; color: #383a42;&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;python&quot;&gt;&lt;code&gt;# person.py

from pydantic import BaseModel

class Person(BaseModel):
    id: str
    name: str
    title: str&lt;/code&gt;&lt;/pre&gt;
&lt;pre id=&quot;code_1706155201549&quot; class=&quot;routeros&quot; style=&quot;background-color: #f8f8f8; color: #383a42;&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;python&quot;&gt;&lt;code&gt;# fake_person_producer.py

import uuid
import json
from typing import List
from person import Person

from faker import Faker
from kafka.admin import NewTopic
from kafka.errors import TopicAlreadyExistsError
from kafka import KafkaAdminClient
from kafka.producer import KafkaProducer


def create_topic(bootstrap_servers, name, partitions, replica=1):
    client = KafkaAdminClient(bootstrap_servers=bootstrap_servers)
    try:
        topic = NewTopic(
            name=name,
            num_partitions=partitions,
            replication_factor=replica)
        client.create_topics([topic])
    except TopicAlreadyExistsError as e:
        print(e)
        pass
    finally:
        client.close()


def main():
    topic_name = &quot;fake_people&quot;
    bootstrap_servers = [&quot;localhost:9092&quot;]

    # create a topic first
    create_topic(bootstrap_servers, topic_name, 4)

    # ingest some random people events
    people: List[Person] = []
    faker = Faker()
    producer = KafkaProducer(
        bootstrap_servers=bootstrap_servers,
        client_id=&quot;Fake_Person_Producer&quot;,
        
    )

    for _ in range(100):
        person = Person(id=str(uuid.uuid4()), name=faker.name(), title=faker.job().title())
        people.append(person)
        producer.send(
            topic=topic_name,
            key=person.title.lower().replace(r's+', '-').encode('utf-8'),
            value=person.json().encode('utf-8'))

    producer.flush()

if __name__ == '__main__':
    main()&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style5&quot; data-ke-type=&quot;horizontalRule&quot; /&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;랜덤하게 저장된 사람 정보 확인하는 KafkaConsumer 구현&lt;/span&gt;&lt;/h3&gt;
&lt;h4 style=&quot;color: #000000;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;u&gt;Offset Auto Commit : True&lt;/u&gt;&lt;/h4&gt;
&lt;pre id=&quot;code_1706155201552&quot; class=&quot;python&quot; style=&quot;background-color: #f8f8f8; color: #383a42;&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;python&quot;&gt;&lt;code&gt;import json

from kafka.consumer import KafkaConsumer


def key_deserializer(key):
    return key.decode('utf-8')


def value_deserializer(value):
    return json.loads(value.decode('utf-8'))


def main():
    topic_name = &quot;fake_people&quot;
    bootstrap_servers = [&quot;localhost:9092&quot;]
    consumer_group_id = &quot;fake_people_group&quot;

    consumer = KafkaConsumer(
        bootstrap_servers=bootstrap_servers,
        group_id=consumer_group_id,
        key_deserializer=key_deserializer,
        value_deserializer=value_deserializer,
        auto_offset_reset='earliest',
        enable_auto_commit=True)

    consumer.subscribe([topic_name])
    for record in consumer:
        print(f&quot;&quot;&quot;
            Consumed person {record.value} with key '{record.key}'
            from partition {record.partition} at offset {record.offset}
        &quot;&quot;&quot;)


if __name__ == '__main__':
    main()&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #000000;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;u&gt;Offset Auto Commit : False&lt;/u&gt;&lt;/h4&gt;
&lt;pre id=&quot;code_1706155264544&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import json

from kafka import TopicPartition, OffsetAndMetadata
from kafka.consumer import KafkaConsumer


def key_deserializer(key):
    return key.decode('utf-8')


def value_deserializer(value):
    return json.loads(value.decode('utf-8'))


def main():
    topic_name = &quot;fake_people&quot;
    bootstrap_servers = [&quot;localhost:9092&quot;]
    consumer_group_id = &quot;manual_fake_people_group&quot;

    consumer = KafkaConsumer(
        bootstrap_servers=bootstrap_servers,
        group_id=consumer_group_id,
        key_deserializer=key_deserializer,
        value_deserializer=value_deserializer,
        auto_offset_reset='earliest',
        enable_auto_commit=False)

    consumer.subscribe([topic_name])
    for record in consumer:
        print(f&quot;&quot;&quot;
            Consumed person {record.value} with key '{record.key}'
            from partition {record.partition} at offset {record.offset}
        &quot;&quot;&quot;)

        topic_partition = TopicPartition(record.topic, record.partition)
        offset = OffsetAndMetadata(record.offset + 1, record.timestamp)
        consumer.commit({
            topic_partition: offset
        })

if __name__ == '__main__':
    main()&lt;/code&gt;&lt;/pre&gt;</description>
      <category>데브코스 TIL/빅데이터, 스트리밍 데이터 처리</category>
      <category>_Consumer</category>
      <category>_Kafka</category>
      <category>_Producer</category>
      <category>_실습</category>
      <category>_프로그래밍</category>
      <category>프로그래머스</category>
      <category>프로그래머스데브코스</category>
      <category>프로그래머스데브코스데이터엔지니어링</category>
      <author>예니ㅣ</author>
      <guid isPermaLink="true">https://yen-coding-diary.tistory.com/147</guid>
      <comments>https://yen-coding-diary.tistory.com/147#entry147comment</comments>
      <pubDate>Thu, 25 Jan 2024 13:01:52 +0900</pubDate>
    </item>
    <item>
      <title>Kafka 프로그래밍</title>
      <link>https://yen-coding-diary.tistory.com/146</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;background-color: #dddddd;&quot;&gt;&lt;b&gt;강의&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;Kafka 프로그래밍 언어&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&gt;Java
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;Apache Kafka Java Client&lt;/li&gt;
&lt;li&gt;Spring Kafka&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Python
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;Confluent Kafka Python&lt;/li&gt;
&lt;li&gt;Kafka-Python&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1706070051133&quot; class=&quot;bash&quot; style=&quot;background-color: #f8f8f8; color: #383a42; text-align: start;&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;pip install kafka-python&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;.NET
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;Confluent Kafka .NET&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Go
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;Sarama&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Node.js
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;node-rdkafka&lt;/li&gt;
&lt;li&gt;kafka-node&lt;/li&gt;
&lt;/ul&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;style5&quot; /&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;Kafka 기본 프로그래밍&lt;/span&gt;&lt;/h3&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;u&gt;Producer 생성&lt;/u&gt;&lt;/h4&gt;
&lt;pre id=&quot;code_1706070021116&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;from time import sleep
from json import dumps
from kafka import KafkaProducer

producer = KafkaProducer(
   bootstrap_servers=['localhost:9092'],
   value_serializer=lambda x: dumps(x).encode('utf-8')
)

for j in range(999):
   print(&quot;Iteration&quot;, j)
   data = {'counter': j}
   producer.send('topic_test', value=data)
   sleep(0.5)&lt;/code&gt;&lt;/pre&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;u&gt;Consumer 객체 생성&lt;/u&gt;&lt;/h4&gt;
&lt;pre id=&quot;code_1706070622534&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;from json import loads
from time import sleep

consumer = KafkaConsumer(
   'topic_test',
   bootstrap_servers=['localhost:9092'],
   auto_offset_reset='earliest',
   enable_auto_commit=True,
   group_id='my-group-id',
   value_deserializer=lambda x: loads(x.decode('utf-8'))
)
for event in consumer:
   event_data = event.value
   # Do whatever you want
   print(event_data)
   sleep(2)&lt;/code&gt;&lt;/pre&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;u&gt;Topic 생성&lt;/u&gt;&lt;/h4&gt;
&lt;pre id=&quot;code_1706153388805&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;client = KafkaAdminClient(bootstrap_servers=bootstrap_servers)
topic = NewTopic(
	name=name,
	num_partitions=partitions,
	replication_factor=replica)
client.create_topics([topic])&lt;/code&gt;&lt;/pre&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;style5&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;Kafka Client Tool&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Producer와 Consumer를 각각 터미널에서 실행하면 Side-by-side로 메세지가 발생하는 것을 확인할 수 있습니다.&lt;/p&gt;
&lt;pre id=&quot;code_1706152642829&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;docker exec -it Broker_Container_ID sh

kafka-topics
kafka-topics --bootstrap-server kafka1:9092 --list
kafka-topics --bootstrap-server kafka1:9092 --delete --topic topic_test

kafka-configs

kafka-console-consumer
kafka-console-consumer --bootstrap-server kafka1:9092 --topic test_console --from-beginning

kafka-console-producer
kafka-console-producer --bootstrap-server kafka1:9092 --topic test_console
	Hellow World
    Bye&lt;/code&gt;&lt;/pre&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;style5&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;Topic 파라미터&lt;/span&gt;&lt;/h3&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;u&gt;KafkaProducer&lt;/u&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;bootstrap_servers : 브로커 리스트&lt;/li&gt;
&lt;li&gt;client_id : Producer 이름&lt;/li&gt;
&lt;li&gt;key_serializer, value_serializer : serialize 방법 지정&lt;/li&gt;
&lt;li&gt;enable_idempotence : 중복 메세지 전송 결정&lt;/li&gt;
&lt;li&gt;acks: 0, 1, 'all'&amp;nbsp;&lt;/li&gt;
&lt;li&gt;retries : 재시도 횟수&lt;/li&gt;
&lt;li&gt;delivery.timeout.ms : 메세지 전송 최대 시간&lt;/li&gt;
&lt;li&gt;linger_ms, batch_size : 배치 전송&lt;/li&gt;
&lt;/ul&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;u&gt;KafkaConsumer&lt;/u&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;bootstrap_servers : 브로커 리스트&lt;/li&gt;
&lt;li&gt;client_id : Consumer 이름&lt;/li&gt;
&lt;li&gt;group_id : Consumer Group 이름&lt;/li&gt;
&lt;li&gt;key_deserializer, value_deserializer : serialize 방법 지정&lt;/li&gt;
&lt;li&gt;auto_offset_reset&lt;/li&gt;
&lt;li&gt;enable_auto_commit&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;style5&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;Message Processing Guarantee 방식&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&gt;Exactly Once&lt;/li&gt;
&lt;li&gt;At Least Once&lt;/li&gt;
&lt;li&gt;At Most Once&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>데브코스 TIL/빅데이터, 스트리밍 데이터 처리</category>
      <category>_ClientTool</category>
      <category>_Kafka</category>
      <category>_TopicParameter</category>
      <category>_프로그래밍</category>
      <category>프로그래머스</category>
      <category>프로그래머스데브코스</category>
      <category>프로그래머스데브코스데이터엔지니어링</category>
      <author>예니ㅣ</author>
      <guid isPermaLink="true">https://yen-coding-diary.tistory.com/146</guid>
      <comments>https://yen-coding-diary.tistory.com/146#entry146comment</comments>
      <pubDate>Wed, 24 Jan 2024 13:31:04 +0900</pubDate>
    </item>
    <item>
      <title>Kafka 설치</title>
      <link>https://yen-coding-diary.tistory.com/145</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;background-color: #dddddd;&quot;&gt;&lt;b&gt;강의&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;Kafka 설치&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&gt;Docker Compose 사영&lt;/li&gt;
&lt;li&gt;Github repo 사용 : &lt;a href=&quot;https://github.com/conduktor/kafka-stack-docker-compose&quot;&gt;https://github.com/conduktor/kafka-stack-docker-compose&lt;/a&gt;&amp;nbsp;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;full-stack.yml&lt;/li&gt;
&lt;li&gt;zk-single-kafka-single.yml&lt;/li&gt;
&lt;li&gt;zk-single-kafka-multiple.yml&lt;/li&gt;
&lt;li&gt;zk-multiple-kafka-single.yml&lt;/li&gt;
&lt;li&gt;zk-multiple-kafka-multiple.yml&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Kafka 웹 UI
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;localhost:8080&lt;/li&gt;
&lt;li&gt;ID : admin@admin.io / Password : admin&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1706069676314&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;git clone https://github.com/conduktor/kafka-stack-docker-compose
cd kafka-stack-docker-compose
docker compose -f full-stack.yml up		# 컴퓨터 사양이 좋은 경우
docker compose -f zk-single-kafka-single.yml up		# 컴퓨터 사양이 안좋은 경우&lt;/code&gt;&lt;/pre&gt;</description>
      <category>데브코스 TIL/빅데이터, 스트리밍 데이터 처리</category>
      <category>_Kafka</category>
      <category>_설치</category>
      <category>프로그래머스</category>
      <category>프로그래머스데브코스</category>
      <category>프로그래머스데브코스데이터엔지니어링</category>
      <author>예니ㅣ</author>
      <guid isPermaLink="true">https://yen-coding-diary.tistory.com/145</guid>
      <comments>https://yen-coding-diary.tistory.com/145#entry145comment</comments>
      <pubDate>Wed, 24 Jan 2024 13:16:36 +0900</pubDate>
    </item>
  </channel>
</rss>