<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>감으로 코딩하던 내가 알고 코딩할 때까지</title>
    <link>https://data-science-study.tistory.com/</link>
    <description></description>
    <language>ko</language>
    <pubDate>Fri, 7 Aug 2026 03:13:48 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>yongyogn</managingEditor>
    <item>
      <title>[서평] 이기적 빅데이터분석기사 실기 기본서</title>
      <link>https://data-science-study.tistory.com/140</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;빅데이터 분석기사 실기 준비를 위한 교재로 &amp;lt;이기적 빅데이터분석기사 실기 기본서&amp;gt;를 선택했습니다. IT 자격증 분야에서 좋은 평가를 받고 있는 영진닷컴의 이기적 시리즈는 믿고 보는 수험서인 것 같습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.yes24.com/Product/Goods/123404496&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.yes24.com/Product/Goods/123404496&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1730000332219&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;book&quot; data-og-title=&quot;2024 이기적 빅데이터분석기사 실기 (Python 분석) - 예스24&quot; data-og-description=&quot;본 도서는 최신 출제기준을 적용한 도서로, 빅데이터분석기사 실기 시험의 경향을 분석하여 수험생들이 혼자서도 학습할 수 있도록 한 완벽 대비서이다. 파이썬 언어를 기반으로 작성되었으며,&quot; data-og-host=&quot;www.yes24.com&quot; data-og-source-url=&quot;https://www.yes24.com/Product/Goods/123404496&quot; data-og-url=&quot;https://www.yes24.com/Product/Goods/123404496&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bJXBgX/hyXlO9HH8R/KLrxUaLbHNmmc1UVpgxau1/img.jpg?width=886&amp;amp;height=1200&amp;amp;face=0_0_886_1200,https://scrap.kakaocdn.net/dn/zOqYD/hyXlHCKCIm/YRTKvpJRQRAZntYver6LdK/img.jpg?width=886&amp;amp;height=1200&amp;amp;face=0_0_886_1200,https://scrap.kakaocdn.net/dn/vLHha/hyXpxyqCGO/oCRO67QRHvVkZTeOSd4zh1/img.jpg?width=886&amp;amp;height=1200&amp;amp;face=0_0_886_1200&quot;&gt;&lt;a href=&quot;https://www.yes24.com/Product/Goods/123404496&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.yes24.com/Product/Goods/123404496&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bJXBgX/hyXlO9HH8R/KLrxUaLbHNmmc1UVpgxau1/img.jpg?width=886&amp;amp;height=1200&amp;amp;face=0_0_886_1200,https://scrap.kakaocdn.net/dn/zOqYD/hyXlHCKCIm/YRTKvpJRQRAZntYver6LdK/img.jpg?width=886&amp;amp;height=1200&amp;amp;face=0_0_886_1200,https://scrap.kakaocdn.net/dn/vLHha/hyXpxyqCGO/oCRO67QRHvVkZTeOSd4zh1/img.jpg?width=886&amp;amp;height=1200&amp;amp;face=0_0_886_1200');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;2024 이기적 빅데이터분석기사 실기 (Python 분석) - 예스24&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;본 도서는 최신 출제기준을 적용한 도서로, 빅데이터분석기사 실기 시험의 경향을 분석하여 수험생들이 혼자서도 학습할 수 있도록 한 완벽 대비서이다. 파이썬 언어를 기반으로 작성되었으며,&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.yes24.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;KakaoTalk_20241027_123000386.jpg&quot; data-origin-width=&quot;3000&quot; data-origin-height=&quot;4000&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dysY2z/btsKkfF6jsR/MxFdJIeKRQe26bE3tI7ue0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dysY2z/btsKkfF6jsR/MxFdJIeKRQe26bE3tI7ue0/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dysY2z/btsKkfF6jsR/MxFdJIeKRQe26bE3tI7ue0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdysY2z%2FbtsKkfF6jsR%2FMxFdJIeKRQe26bE3tI7ue0%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;3000&quot; height=&quot;4000&quot; data-filename=&quot;KakaoTalk_20241027_123000386.jpg&quot; data-origin-width=&quot;3000&quot; data-origin-height=&quot;4000&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;최근에 실기 문제 유형의 개편이 있었는데, 그 부분을 확실히 담은 최신판이었고, 가장 많이 쓰는 언어는 Python으로 시험을 준비하는 사람들은 위한 버전이었습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;KakaoTalk_20241027_123000386_01.jpg&quot; data-origin-width=&quot;3000&quot; data-origin-height=&quot;4000&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/PqfMl/btsKktKQJZj/6LV8Fm7PoTJVwZR7UCdKM0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/PqfMl/btsKktKQJZj/6LV8Fm7PoTJVwZR7UCdKM0/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/PqfMl/btsKktKQJZj/6LV8Fm7PoTJVwZR7UCdKM0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FPqfMl%2FbtsKktKQJZj%2F6LV8Fm7PoTJVwZR7UCdKM0%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;3000&quot; height=&quot;4000&quot; data-filename=&quot;KakaoTalk_20241027_123000386_01.jpg&quot; data-origin-width=&quot;3000&quot; data-origin-height=&quot;4000&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이기적 수험서의 장점은 다양한 학습자교의 제공입니다. 계획 없는 P라도 이기적에서 제공해주는 학습 플랜만 따라간다면 누구나 합격할 수 있을 것 같습니다. 위의 캘린더, 스터디 플래너, 오답노트 뿐만 아니라, &amp;lt;이기적 스터디 카페&amp;gt;에 가입하면 Q&amp;amp;A 서비스, 교재 구매 인증 시 추가 학습 자료, 동영상 강의&lt;span style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot;&gt;(&lt;/span&gt;&lt;a style=&quot;background-color: #ffffff; color: #163fc7; text-align: start;&quot; href=&quot;https://cafe.naver.com/yjbooks/154853&quot;&gt;&lt;span&gt;필기&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot;&gt;/&lt;/span&gt;&lt;a style=&quot;background-color: #ffffff; color: #163fc7; text-align: start;&quot; href=&quot;https://www.youtube.com/watch?v=XWnSx21eZDA&amp;amp;list=PL6i7rGeEmTvo1SNjoY1-FMDAQOS69Il6e&quot;&gt;&lt;span&gt;실기&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot;&gt;)&lt;/span&gt; 까지 무료로 제공하고 있습니다. 이 정도의 학습자로라면 누구나 독학으로 합격할 수 있을 것 같습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;KakaoTalk_20241027_123000386_02.jpg&quot; data-origin-width=&quot;3000&quot; data-origin-height=&quot;4000&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bwX5ax/btsKkcQoshb/zk9tcsiNlaQzWAAEN1TQ40/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bwX5ax/btsKkcQoshb/zk9tcsiNlaQzWAAEN1TQ40/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bwX5ax/btsKkcQoshb/zk9tcsiNlaQzWAAEN1TQ40/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbwX5ax%2FbtsKkcQoshb%2Fzk9tcsiNlaQzWAAEN1TQ40%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;3000&quot; height=&quot;4000&quot; data-filename=&quot;KakaoTalk_20241027_123000386_02.jpg&quot; data-origin-width=&quot;3000&quot; data-origin-height=&quot;4000&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;실기시험을 준비할 때 가장 걱정되는 것이 실제 시험환경은 어떨지에 관한 것일 건데요. 이 책에는 그 부분도 정확하게 설명해두어서, 실제 시험장에 들어가기 전 걱정을 덜 수 있을 것 같습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;KakaoTalk_20241027_123000386_03.jpg&quot; data-origin-width=&quot;3000&quot; data-origin-height=&quot;4000&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/VeYd3/btsKkuCY0tJ/Ex5qenNkyiKETiKgqeFlA0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/VeYd3/btsKkuCY0tJ/Ex5qenNkyiKETiKgqeFlA0/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/VeYd3/btsKkuCY0tJ/Ex5qenNkyiKETiKgqeFlA0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FVeYd3%2FbtsKkuCY0tJ%2FEx5qenNkyiKETiKgqeFlA0%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;3000&quot; height=&quot;4000&quot; data-filename=&quot;KakaoTalk_20241027_123000386_03.jpg&quot; data-origin-width=&quot;3000&quot; data-origin-height=&quot;4000&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;파이썬을 베이스로 한 수험서로, 데이터 분석에 필요한 파이썬 코드 뿐만아니라, 파이썬의 기본 코드도 설명해주고 있어서, 파이썬이 완전 처음이신 분이라도 누구나 학습을 시작하기에 어려움이 없을 것 같습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;KakaoTalk_20241027_123000386_04.jpg&quot; data-origin-width=&quot;3000&quot; data-origin-height=&quot;4000&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/wUWas/btsKk3SGD4g/myRqJKwhMtBT4qKW9fPp4K/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/wUWas/btsKk3SGD4g/myRqJKwhMtBT4qKW9fPp4K/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/wUWas/btsKk3SGD4g/myRqJKwhMtBT4qKW9fPp4K/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FwUWas%2FbtsKk3SGD4g%2FmyRqJKwhMtBT4qKW9fPp4K%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;3000&quot; height=&quot;4000&quot; data-filename=&quot;KakaoTalk_20241027_123000386_04.jpg&quot; data-origin-width=&quot;3000&quot; data-origin-height=&quot;4000&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;마지막으로 실기시험 준비에 가장 중요한 모의고사를 직접 풀어볼 수 있는 과정이 포함되어 있습니다.해설도 자세히 나와있어서 문제를 어떻게 풀어야할 지 이해하기에 너무나도 쉬웠습니다.&lt;/p&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;lt;이기적 빅데이터분석기사 실기 기본서&amp;gt;로 이번 빅데이터 분석기사 실기 시험에 붙어봐요.&lt;/p&gt;</description>
      <category>책</category>
      <author>yongyogn</author>
      <guid isPermaLink="true">https://data-science-study.tistory.com/140</guid>
      <comments>https://data-science-study.tistory.com/140#entry140comment</comments>
      <pubDate>Sun, 27 Oct 2024 12:47:09 +0900</pubDate>
    </item>
    <item>
      <title>[HackerRank] Weather Observation Station 18(MySQL)</title>
      <link>https://data-science-study.tistory.com/139</link>
      <description>&lt;h4 data-ke-size=&quot;size20&quot;&gt;문제&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;300&quot; data-origin-height=&quot;290&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/xtd8r/btsHtqKaKZZ/jI8OKGUK7RNTljbPp7baH0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/xtd8r/btsHtqKaKZZ/jI8OKGUK7RNTljbPp7baH0/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/xtd8r/btsHtqKaKZZ/jI8OKGUK7RNTljbPp7baH0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fxtd8r%2FbtsHtqKaKZZ%2FjI8OKGUK7RNTljbPp7baH0%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;300&quot; height=&quot;290&quot; data-origin-width=&quot;300&quot; data-origin-height=&quot;290&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위와 같은 STATION 테이블에서, \(P_{1}(a, b), P_{2}(c, d)\)를 정의&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- a: LAT_N의 최소값&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- b: LONG_W의 최소값&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- c: LAT_N의 최대값&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- d: LONG_W의 최대값&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;일 때,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1번 문제: \(P_{1}\)과 \(P_{2}\) 사이의 맨하탄 거리를 구하고, 소숫점 4자리로 반올림&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2번 문제: &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;\(P_{1}\)과 \(P_{2}\) 사이의 유클리디안 거리를 구하고, 소숫점 4자리로 반올림&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;※ 맨하탄 거리 \(d(P_{1}, P_{2}) = (|a - c|) + (|b - d|)\)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;※ 유클리디안 거리 \(d(P_{1}, P_{2}) = \sqrt{(a - c)^{2} + (b - d)^{2}}\)&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;/h4&gt;
&lt;pre id=&quot;code_1716000402114&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;-- 1번. 맨하탄 거리
-- a: MIN(LAT_N)
-- b: MIN(LONG_W)
-- c: MAX(LAT_N)
-- d: MAX(LONG_W)
-- ABS(): 절댓값(| |)
-- ROUND(a, n): a를 소숫점 n자리로 반올림
SELECT ROUND(ABS(MIN(LAT_N) - MAX(LAT_N)) + ABS(MIN(LONG_W) - MAX(LONG_W)), 4) FROM STATION

-- 출력
259.6859&lt;/code&gt;&lt;/pre&gt;
&lt;pre id=&quot;code_1716003365621&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;-- 2번. 유클리디안 거리
-- a: MIN(LAT_N)
-- b: MIN(LONG_W)
-- c: MAX(LAT_N)
-- d: MAX(LONG_W)
-- SQRT(): 제곱근
-- POWER(a, n): a의 n제곱
-- ROUND(a, n): a를 소숫점 n자리로 반올림
SELECT ROUND(SQRT(POWER(MIN(LAT_N) - MAX(LAT_N), 2) + POWER(MIN(LONG_W) - MAX(LONG_W), 2)), 4) FROM STATION

-- 출력
184.1616&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>SQL</category>
      <author>yongyogn</author>
      <guid isPermaLink="true">https://data-science-study.tistory.com/139</guid>
      <comments>https://data-science-study.tistory.com/139#entry139comment</comments>
      <pubDate>Sat, 18 May 2024 12:29:31 +0900</pubDate>
    </item>
    <item>
      <title>[HackerRank] New Companies(MySQL)</title>
      <link>https://data-science-study.tistory.com/138</link>
      <description>&lt;h4 data-ke-size=&quot;size20&quot;&gt;문제&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;113&quot; data-origin-height=&quot;199&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/HQwVd/btsHngNwytl/korJ6ugQXOBzU8BzGZjkSK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/HQwVd/btsHngNwytl/korJ6ugQXOBzU8BzGZjkSK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/HQwVd/btsHngNwytl/korJ6ugQXOBzU8BzGZjkSK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FHQwVd%2FbtsHngNwytl%2FkorJ6ugQXOBzU8BzGZjkSK%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;199&quot; data-origin-width=&quot;113&quot; data-origin-height=&quot;199&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/wyWx3/btsHl7KGYpR/iKfkLmH4K2L8AghkunAEfK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/wyWx3/btsHl7KGYpR/iKfkLmH4K2L8AghkunAEfK/img.png&quot; data-origin-width=&quot;196&quot; data-origin-height=&quot;117&quot; data-is-animation=&quot;false&quot; data-widthpercent=&quot;24.81&quot; style=&quot;width: 24.231%; margin-right: 10px;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/wyWx3/btsHl7KGYpR/iKfkLmH4K2L8AghkunAEfK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FwyWx3%2FbtsHl7KGYpR%2FiKfkLmH4K2L8AghkunAEfK%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;196&quot; height=&quot;117&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bRtrHo/btsHlHMgY32/k1aBw6SUkgH0NtqUaTv9NK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bRtrHo/btsHlHMgY32/k1aBw6SUkgH0NtqUaTv9NK/img.png&quot; data-origin-width=&quot;230&quot; data-origin-height=&quot;119&quot; data-is-animation=&quot;false&quot; style=&quot;width: 27.9565%; margin-right: 10px;&quot; data-widthpercent=&quot;28.62&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bRtrHo/btsHlHMgY32/k1aBw6SUkgH0NtqUaTv9NK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbRtrHo%2FbtsHlHMgY32%2Fk1aBw6SUkgH0NtqUaTv9NK%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;119&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/biqT4E/btsHlFt7VSK/5W1n4d8Otpt3Lz1OyKR9uK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/biqT4E/btsHlFt7VSK/5W1n4d8Otpt3Lz1OyKR9uK/img.png&quot; data-origin-width=&quot;478&quot; data-origin-height=&quot;152&quot; data-is-animation=&quot;false&quot; style=&quot;width: 45.4869%;&quot; data-widthpercent=&quot;46.57&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/biqT4E/btsHlFt7VSK/5W1n4d8Otpt3Lz1OyKR9uK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbiqT4E%2FbtsHlFt7VSK%2F5W1n4d8Otpt3Lz1OyKR9uK%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;478&quot; height=&quot;152&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/BnJfB/btsHmuS9hRz/oQcFscllYdpp0hZRkPRbP1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/BnJfB/btsHmuS9hRz/oQcFscllYdpp0hZRkPRbP1/img.png&quot; data-origin-width=&quot;604&quot; data-origin-height=&quot;152&quot; data-is-animation=&quot;false&quot; data-widthpercent=&quot;50.17&quot; style=&quot;width: 49.5881%; margin-right: 10px;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/BnJfB/btsHmuS9hRz/oQcFscllYdpp0hZRkPRbP1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FBnJfB%2FbtsHmuS9hRz%2FoQcFscllYdpp0hZRkPRbP1%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;604&quot; height=&quot;152&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bzEuwj/btsHmYlWYqD/tti7iyP16PiZmlFZRgmnz0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bzEuwj/btsHmYlWYqD/tti7iyP16PiZmlFZRgmnz0/img.png&quot; data-origin-width=&quot;738&quot; data-origin-height=&quot;187&quot; data-is-animation=&quot;false&quot; style=&quot;width: 49.2491%;&quot; data-widthpercent=&quot;49.83&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bzEuwj/btsHmYlWYqD/tti7iyP16PiZmlFZRgmnz0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbzEuwj%2FbtsHmYlWYqD%2Ftti7iyP16PiZmlFZRgmnz0%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;738&quot; height=&quot;187&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;테이블로부터&lt;br /&gt;회사 코드 | 설립자 | Lead Manager 총원 |&amp;nbsp; Senior Manager 총원 |&amp;nbsp; Manager 총원 | Employee 총원&lt;br /&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;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. Employee 테이블에 설립자를 제외한 각 직급별 데이터가 다 나와 있으므로, Employee 테이블과 Company 테이블만 JOIN하여 COUNT&lt;/p&gt;
&lt;pre id=&quot;code_1715415767437&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT 
    C.company_code,
    C.founder,
    COUNT(DISTINCT E.lead_manager_code),
    COUNT(DISTINCT E.senior_manager_code),
    COUNT(DISTINCT E.manager_code),
    COUNT(DISTINCT E.employee_code)
FROM Company C
    LEFT JOIN Employee E ON C.company_code = E.company_code
GROUP BY
    C.company_code,
    C.founder
ORDER BY C.company_code

-- 출력
C1 Angela 1 2 5 13 
C10 Earl 1 1 2 3 
C100 Aaron 1 2 4 10 
C11 Robert 1 1 1 1 
C12 Amy 1 2 6 14 
C13 Pamela 1 2 5 14 
C14 Maria 1 1 3 5 
C15 Joe 1 1 2 3 
C16 Linda 1 1 3 5 
C17 Melissa 1 2 3 7 
C18 Carol 1 2 5 6 
C19 Paula 1 2 4 7 
C2 Frank 1 1 1 3 
C20 Marilyn 1 1 2 2 
C21 Jennifer 1 1 3 7 
C22 Harry 1 1 3 6 
C23 David 1 1 1 2 
C24 Julia 1 1 2 6 
C25 Kevin 1 1 2 5 
C26 Paul 1 1 1 3 
C27 James 1 1 1 3 
C28 Kelly 1 2 5 9 
C29 Robin 1 2 4 9 
C3 Patrick 1 2 2 5 
C30 Ralph 1 1 2 5 
C31 Gloria 1 1 1 3 
C32 Victor 1 2 4 8 
C33 David 1 2 5 12 
C34 Joyce 1 2 6 10 
C35 Donna 1 2 6 12 
C36 Michelle 1 2 5 11 
C37 Stephanie 1 1 2 5 
C38 Gerald 1 2 4 6 
C39 Walter 1 1 3 7 
C4 Lisa 1 1 1 1 
C40 Christina 1 1 3 6 
C41 Brandon 1 2 3 7 
C42 Elizabeth 1 2 4 8 
C43 Joseph 1 2 4 6 
C44 Lawrence 1 1 3 4 
C45 Marilyn 1 1 1 3 
C46 Lori 1 2 3 9 
C47 Matthew 1 2 3 4 
C48 Jesse 1 1 3 3 
C49 John 1 1 3 8 
C5 Kimberly 1 2 3 9 
C50 Martha 1 1 2 5 
C51 Timothy 1 2 5 12 
C52 Christine 1 1 2 2 
C53 Anthony 1 1 1 1 
C54 Paula 1 2 4 7 
C55 Kimberly 1 2 2 3 
C56 Louise 1 1 1 3 
C57 Martin 1 1 2 5 
C58 Paul 1 2 4 8 
C59 Antonio 1 1 2 4 
C6 Bonnie 1 1 2 6 
C60 Jacqueline 1 1 1 2 
C61 Diana 1 1 1 1 
C62 John 1 2 5 11 
C63 Dorothy 1 2 5 7 
C64 Evelyn 1 1 1 2 
C65 Phillip 1 2 4 8 
C66 Evelyn 1 2 4 11 
C67 Debra 1 1 1 3 
C68 David 1 2 5 9 
C69 Willie 1 1 1 3 
C7 Michael 1 1 1 2 
C70 Brandon 1 2 4 7 
C71 Ann 1 2 5 10 
C72 Emily 1 2 3 7 
C73 Dorothy 1 1 1 2 
C74 Jonathan 1 2 4 7 
C75 Dorothy 1 1 2 4 
C76 Marilyn 1 2 5 12 
C77 Norma 1 2 5 10 
C78 Nancy 1 2 3 7 
C79 Andrew 1 1 2 2 
C8 Todd 1 1 1 3 
C80 Keith 1 1 1 2 
C81 Benjamin 1 1 3 9 
C82 Charles 1 1 2 3 
C83 Alan 1 2 3 4 
C84 Tammy 1 1 1 3 
C85 Anna 1 2 4 8 
C86 James 1 1 3 5 
C87 Robin 1 2 3 5 
C88 Jean 1 1 2 3 
C89 Andrew 1 2 4 7 
C9 Joe 1 1 3 6 
C90 Roy 1 1 2 3 
C91 Diana 1 2 2 2 
C92 Christina 1 1 1 3 
C93 Jesse 1 1 2 2 
C94 Joyce 1 2 5 13 
C95 Patricia 1 1 3 5 
C96 Gregory 1 1 2 2 
C97 Brian 1 1 1 1 
C98 Christine 1 1 2 5 
C99 Lillian 1 1 2 6&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;2. Employee 테이블에는 Lead Manager나 Senior Manager, Manager 중 하위 직급이 없는 사람에 대한 정보가 없으므로 완벽한 정보를 가지지 않을 수 있으므로, 상위 직급의 테이블도 연쇄적으로 JOIN하여 누락을 방지할 필요가 있음&lt;/p&gt;
&lt;pre id=&quot;code_1715415928307&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT 
    C.company_code,
    C.founder,
    COUNT(DISTINCT L.lead_manager_code),
    COUNT(DISTINCT S.senior_manager_code),
    COUNT(DISTINCT M.manager_code),
    COUNT(DISTINCT E.employee_code)
FROM Company C
    LEFT JOIN Lead_Manager L ON C.company_code = L.company_code
    LEFT JOIN Senior_Manager S ON L.company_code = S.company_code
    LEFT JOIN Manager M ON L.company_code = M.company_code
    LEFT JOIN Employee E ON L.company_code = E.company_code
GROUP BY
    C.company_code,
    C.founder
ORDER BY C.company_code

-- 출력
C1 Angela 1 2 5 13 
C10 Earl 1 1 2 3 
C100 Aaron 1 2 4 10 
C11 Robert 1 1 1 1 
C12 Amy 1 2 6 14 
C13 Pamela 1 2 5 14 
C14 Maria 1 1 3 5 
C15 Joe 1 1 2 3 
C16 Linda 1 1 3 5 
C17 Melissa 1 2 3 7 
C18 Carol 1 2 5 6 
C19 Paula 1 2 4 7 
C2 Frank 1 1 1 3 
C20 Marilyn 1 1 2 2 
C21 Jennifer 1 1 3 7 
C22 Harry 1 1 3 6 
C23 David 1 1 1 2 
C24 Julia 1 1 2 6 
C25 Kevin 1 1 2 5 
C26 Paul 1 1 1 3 
C27 James 1 1 1 3 
C28 Kelly 1 2 5 9 
C29 Robin 1 2 4 9 
C3 Patrick 1 2 2 5 
C30 Ralph 1 1 2 5 
C31 Gloria 1 1 1 3 
C32 Victor 1 2 4 8 
C33 David 1 2 5 12 
C34 Joyce 1 2 6 10 
C35 Donna 1 2 6 12 
C36 Michelle 1 2 5 11 
C37 Stephanie 1 1 2 5 
C38 Gerald 1 2 4 6 
C39 Walter 1 1 3 7 
C4 Lisa 1 1 1 1 
C40 Christina 1 1 3 6 
C41 Brandon 1 2 3 7 
C42 Elizabeth 1 2 4 8 
C43 Joseph 1 2 4 6 
C44 Lawrence 1 1 3 4 
C45 Marilyn 1 1 1 3 
C46 Lori 1 2 3 9 
C47 Matthew 1 2 3 4 
C48 Jesse 1 1 3 3 
C49 John 1 1 3 8 
C5 Kimberly 1 2 3 9 
C50 Martha 1 1 2 5 
C51 Timothy 1 2 5 12 
C52 Christine 1 1 2 2 
C53 Anthony 1 1 1 1 
C54 Paula 1 2 4 7 
C55 Kimberly 1 2 2 3 
C56 Louise 1 1 1 3 
C57 Martin 1 1 2 5 
C58 Paul 1 2 4 8 
C59 Antonio 1 1 2 4 
C6 Bonnie 1 1 2 6 
C60 Jacqueline 1 1 1 2 
C61 Diana 1 1 1 1 
C62 John 1 2 5 11 
C63 Dorothy 1 2 5 7 
C64 Evelyn 1 1 1 2 
C65 Phillip 1 2 4 8 
C66 Evelyn 1 2 4 11 
C67 Debra 1 1 1 3 
C68 David 1 2 5 9 
C69 Willie 1 1 1 3 
C7 Michael 1 1 1 2 
C70 Brandon 1 2 4 7 
C71 Ann 1 2 5 10 
C72 Emily 1 2 3 7 
C73 Dorothy 1 1 1 2 
C74 Jonathan 1 2 4 7 
C75 Dorothy 1 1 2 4 
C76 Marilyn 1 2 5 12 
C77 Norma 1 2 5 10 
C78 Nancy 1 2 3 7 
C79 Andrew 1 1 2 2 
C8 Todd 1 1 1 3 
C80 Keith 1 1 1 2 
C81 Benjamin 1 1 3 9 
C82 Charles 1 1 2 3 
C83 Alan 1 2 3 4 
C84 Tammy 1 1 1 3 
C85 Anna 1 2 4 8 
C86 James 1 1 3 5 
C87 Robin 1 2 3 5 
C88 Jean 1 1 2 3 
C89 Andrew 1 2 4 7 
C9 Joe 1 1 3 6 
C90 Roy 1 1 2 3 
C91 Diana 1 2 2 2 
C92 Christina 1 1 1 3 
C93 Jesse 1 1 2 2 
C94 Joyce 1 2 5 13 
C95 Patricia 1 1 3 5 
C96 Gregory 1 1 2 2 
C97 Brian 1 1 1 1 
C98 Christine 1 1 2 5 
C99 Lillian 1 1 2 6&lt;/code&gt;&lt;/pre&gt;</description>
      <category>SQL</category>
      <author>yongyogn</author>
      <guid isPermaLink="true">https://data-science-study.tistory.com/138</guid>
      <comments>https://data-science-study.tistory.com/138#entry138comment</comments>
      <pubDate>Sat, 11 May 2024 17:25:36 +0900</pubDate>
    </item>
    <item>
      <title>[서평] 이기적 경영정보시각화능력 필기 기본서</title>
      <link>https://data-science-study.tistory.com/137</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;새로 생긴 경영정보시각화능력 자격증을 준비하기 위해 이기적을 찾았습니다. IT 관련 자격증을 준비할 때 언제나 찾아보던 이기적 출판사에서 나온 책이라 믿고 보기로 하였습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;경영정보시각화능력 자격증은 회계, 재무, 마케팅 등 경영과 관련된 정보와 데이터 관련 내용, 그리고 이런 정보들을 효과적으로 시각화하여 경영을 도울 수 있는 능력을 시험하는 자격증입니다. 데이터 분석을 진행하며 시각화는 정말 중요한 한 부분이라고 생각하여 자격증을 준비하며 시각화 능력을 기르는 것은 좋은 기회라고 생각하였습니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;KakaoTalk_20240420_121256203.jpg&quot; data-origin-width=&quot;3000&quot; data-origin-height=&quot;4000&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/EwiM7/btsGLJc4uPH/vGQu5nGkbp3U3OGUh8VqYK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/EwiM7/btsGLJc4uPH/vGQu5nGkbp3U3OGUh8VqYK/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/EwiM7/btsGLJc4uPH/vGQu5nGkbp3U3OGUh8VqYK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FEwiM7%2FbtsGLJc4uPH%2FvGQu5nGkbp3U3OGUh8VqYK%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;400&quot; height=&quot;533&quot; data-filename=&quot;KakaoTalk_20240420_121256203.jpg&quot; data-origin-width=&quot;3000&quot; data-origin-height=&quot;4000&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;책의 두께는 별로 두껍지 않습니다. 자격증 시험은 딥하게 들어갈 필요없이 합격을 위해 필요한 부분만 있으면 된다고 생각하기 때문에 이런 두께는 환영입니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;KakaoTalk_20240420_121256203_01.jpg&quot; data-origin-width=&quot;3000&quot; data-origin-height=&quot;4000&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/erLZJA/btsGM2v5D64/kz6JPdarJJRgdn8QMFXKDK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/erLZJA/btsGM2v5D64/kz6JPdarJJRgdn8QMFXKDK/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/erLZJA/btsGM2v5D64/kz6JPdarJJRgdn8QMFXKDK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FerLZJA%2FbtsGM2v5D64%2Fkz6JPdarJJRgdn8QMFXKDK%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;400&quot; height=&quot;533&quot; data-filename=&quot;KakaoTalk_20240420_121256203_01.jpg&quot; data-origin-width=&quot;3000&quot; data-origin-height=&quot;4000&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;책의 목차는 다음과 같이 구성되어 있습니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dxfQYR/btsGMAtiUzn/8HD2UZr2kaPT3mfWeVtuu1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dxfQYR/btsGMAtiUzn/8HD2UZr2kaPT3mfWeVtuu1/img.png&quot; data-origin-width=&quot;2250&quot; data-origin-height=&quot;3000&quot; data-is-animation=&quot;false&quot; data-filename=&quot;edited_KakaoTalk_20240420_121256203_02.jpg&quot; width=&quot;400&quot; height=&quot;533&quot; data-widthpercent=&quot;50&quot; style=&quot;width: 49.4186%; margin-right: 10px;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dxfQYR/btsGMAtiUzn/8HD2UZr2kaPT3mfWeVtuu1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdxfQYR%2FbtsGMAtiUzn%2F8HD2UZr2kaPT3mfWeVtuu1%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;2250&quot; height=&quot;3000&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cVQoLi/btsGNs2dRzG/KBU3u2AOOyK7bv5SxQs961/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cVQoLi/btsGNs2dRzG/KBU3u2AOOyK7bv5SxQs961/img.jpg&quot; data-origin-width=&quot;3000&quot; data-origin-height=&quot;4000&quot; data-is-animation=&quot;false&quot; data-filename=&quot;KakaoTalk_20240420_121256203_03.jpg&quot; style=&quot;width: 49.4186%;&quot; data-widthpercent=&quot;50&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cVQoLi/btsGNs2dRzG/KBU3u2AOOyK7bv5SxQs961/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcVQoLi%2FbtsGNs2dRzG%2FKBU3u2AOOyK7bv5SxQs961%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;3000&quot; height=&quot;4000&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;이번에 처음 시행되는 시험이라 다소 생소할 수도 있는 경영정보시각화 능력 자격증에 대한 정보도 상세하게 설명해주어 더 검색할 필요없이 공부에만 집중할 수 있었습니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_KakaoTalk_20240420_121256203_04.jpg&quot; data-origin-width=&quot;3000&quot; data-origin-height=&quot;2250&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/2HVQT/btsGN1iKkC7/nbw8ukcKZKhpLKfkbMddd1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/2HVQT/btsGN1iKkC7/nbw8ukcKZKhpLKfkbMddd1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/2HVQT/btsGN1iKkC7/nbw8ukcKZKhpLKfkbMddd1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F2HVQT%2FbtsGN1iKkC7%2Fnbw8ukcKZKhpLKfkbMddd1%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;400&quot; height=&quot;300&quot; data-filename=&quot;edited_KakaoTalk_20240420_121256203_04.jpg&quot; data-origin-width=&quot;3000&quot; data-origin-height=&quot;2250&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;책에는 기본 이론은 물론 '기적의 Tip'을 페이지마다 설명해주어 놓치는 부분없이 공부할 수 있었습니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;KakaoTalk_20240420_121256203_05.jpg&quot; data-origin-width=&quot;3000&quot; data-origin-height=&quot;4000&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bnhjpc/btsGOHxtywG/bZWhSnEAmbFKhfYkS7YkSK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bnhjpc/btsGOHxtywG/bZWhSnEAmbFKhfYkS7YkSK/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bnhjpc/btsGOHxtywG/bZWhSnEAmbFKhfYkS7YkSK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbnhjpc%2FbtsGOHxtywG%2FbZWhSnEAmbFKhfYkS7YkSK%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;400&quot; height=&quot;533&quot; data-filename=&quot;KakaoTalk_20240420_121256203_05.jpg&quot; data-origin-width=&quot;3000&quot; data-origin-height=&quot;4000&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;각 장의 마무리는 배운 개념을 체크할 수 있는 문제들로 구성되어 한 번 더 확인하고 복습할 수 있었습니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_KakaoTalk_20240420_121256203_06.jpg&quot; data-origin-width=&quot;3000&quot; data-origin-height=&quot;2250&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bepGeF/btsGNs8ZJ9P/iUqK4NkFawvnnouRojxgsk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bepGeF/btsGNs8ZJ9P/iUqK4NkFawvnnouRojxgsk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bepGeF/btsGNs8ZJ9P/iUqK4NkFawvnnouRojxgsk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbepGeF%2FbtsGNs8ZJ9P%2FiUqK4NkFawvnnouRojxgsk%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;400&quot; height=&quot;300&quot; data-filename=&quot;edited_KakaoTalk_20240420_121256203_06.jpg&quot; data-origin-width=&quot;3000&quot; data-origin-height=&quot;2250&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;예상문제 또한 시험에 대한 정보가 없는 상황에서 큰 도움이 되는 파트였습니다. 이미 다른 IT 관련 자격증의 문제집을 담당해온 이기적 출판사에서 내준 예상문제라면 더 신뢰성 있어보입니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_KakaoTalk_20240420_121256203_07.jpg&quot; data-origin-width=&quot;3000&quot; data-origin-height=&quot;2250&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/yngCA/btsGLFhvADp/B9DHXiPcPt4nYg3z4J11Y1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/yngCA/btsGLFhvADp/B9DHXiPcPt4nYg3z4J11Y1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/yngCA/btsGLFhvADp/B9DHXiPcPt4nYg3z4J11Y1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FyngCA%2FbtsGLFhvADp%2FB9DHXiPcPt4nYg3z4J11Y1%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;400&quot; height=&quot;533&quot; data-filename=&quot;edited_KakaoTalk_20240420_121256203_07.jpg&quot; data-origin-width=&quot;3000&quot; data-origin-height=&quot;2250&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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;KakaoTalk_20240420_121256203_08.jpg&quot; data-origin-width=&quot;3000&quot; data-origin-height=&quot;4000&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/x9mHv/btsGNrCfbqH/KA7hBdiALGhk0K4XFnaO60/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/x9mHv/btsGNrCfbqH/KA7hBdiALGhk0K4XFnaO60/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/x9mHv/btsGNrCfbqH/KA7hBdiALGhk0K4XFnaO60/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fx9mHv%2FbtsGNrCfbqH%2FKA7hBdiALGhk0K4XFnaO60%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;400&quot; height=&quot;533&quot; data-filename=&quot;KakaoTalk_20240420_121256203_08.jpg&quot; data-origin-width=&quot;3000&quot; data-origin-height=&quot;4000&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;이기적 경영정보시각화능력 자격증 필기 문제집과 함께 다같이 한 번에 합격할 수 있었으면 좋겠습니다~!&lt;/p&gt;</description>
      <category>책</category>
      <author>yongyogn</author>
      <guid isPermaLink="true">https://data-science-study.tistory.com/137</guid>
      <comments>https://data-science-study.tistory.com/137#entry137comment</comments>
      <pubDate>Sat, 20 Apr 2024 13:34:35 +0900</pubDate>
    </item>
    <item>
      <title>[HackerRank] Occupations(MySQL)</title>
      <link>https://data-science-study.tistory.com/136</link>
      <description>&lt;h4 data-ke-size=&quot;size20&quot;&gt;문제&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;465&quot; data-origin-height=&quot;511&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/0ze6Z/btsGq1KY9uQ/Js36BJ9dbeXQJzKLno7EsK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/0ze6Z/btsGq1KY9uQ/Js36BJ9dbeXQJzKLno7EsK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/0ze6Z/btsGq1KY9uQ/Js36BJ9dbeXQJzKLno7EsK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F0ze6Z%2FbtsGq1KY9uQ%2FJs36BJ9dbeXQJzKLno7EsK%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;400&quot; height=&quot;440&quot; data-origin-width=&quot;465&quot; data-origin-height=&quot;511&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&quot;노드&quot; || &quot;노드의 부모&quot;로 구성된 테이블에서&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- Root: root node&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- Leaf: leaf node&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- inner: neither root node nor leaf node&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;구분하여 node 오름차순으로 정렬&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;Sample Output&lt;/h4&gt;
&lt;pre id=&quot;code_1712538553403&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;1 Leaf
2 Inner
3 Leaf
5 Root
6 Leaf
8 Inner
9 Leaf&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;661&quot; data-origin-height=&quot;319&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cUdJyM/btsGqXBUlOw/vNRfKeSkakHk4HU998yC60/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cUdJyM/btsGqXBUlOw/vNRfKeSkakHk4HU998yC60/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cUdJyM/btsGqXBUlOw/vNRfKeSkakHk4HU998yC60/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcUdJyM%2FbtsGqXBUlOw%2FvNRfKeSkakHk4HU998yC60%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;400&quot; height=&quot;193&quot; data-origin-width=&quot;661&quot; data-origin-height=&quot;319&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;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. P가 null이면 root node 이다.&lt;/p&gt;
&lt;pre id=&quot;code_1712538748787&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;CASE WHEN P IS NULL THEN 'Root'&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. N 중에 P에도 값이 있는 node는 누군가의 부모이므로 leaf node가 될 수 없다. root node도 아니기에 inner node이다.&lt;/p&gt;
&lt;pre id=&quot;code_1712538764761&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;CASE WHEN N IN (SELECT DISTINCT P FROM BST) THEN 'Inner'&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. 그 외에는 전부 leaf node이다.&lt;/p&gt;
&lt;pre id=&quot;code_1712538773737&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;CASE ELSE 'Leaf'&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4. 종합하여 N과 함께 출력하고 N을 기준으로 오름차순으로 정렬한다.&lt;/p&gt;
&lt;pre id=&quot;code_1712538803377&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT
    N,
    (CASE
        WHEN P IS NULL THEN 'Root'
        WHEN N IN (SELECT DISTINCT P FROM BST) THEN 'Inner'
        ELSE 'Leaf'
    END) AS position
FROM BST
ORDER BY N&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>SQL</category>
      <author>yongyogn</author>
      <guid isPermaLink="true">https://data-science-study.tistory.com/136</guid>
      <comments>https://data-science-study.tistory.com/136#entry136comment</comments>
      <pubDate>Mon, 8 Apr 2024 10:13:36 +0900</pubDate>
    </item>
    <item>
      <title>[HackerRank] Occupations(MySQL)</title>
      <link>https://data-science-study.tistory.com/135</link>
      <description>&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;문제&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;462&quot; data-origin-height=&quot;689&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c4jWjO/btsGeyI0NXq/zzomHlXBBDHu28e5DOd9m0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c4jWjO/btsGeyI0NXq/zzomHlXBBDHu28e5DOd9m0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c4jWjO/btsGeyI0NXq/zzomHlXBBDHu28e5DOd9m0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc4jWjO%2FbtsGeyI0NXq%2FzzomHlXBBDHu28e5DOd9m0%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;400&quot; height=&quot;597&quot; data-origin-width=&quot;462&quot; data-origin-height=&quot;689&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&quot;이름&quot; || &quot;직업&quot;으로 구성된 테이블에서&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1열: 직업이 Doctor인 사람 이름 (오름차순 정렬)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2열: 직업이 Professor인 사람 이름 (오름차순 정렬)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3열: 직업이 Singer인 사람 이름 (오름차순 정렬)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4열: 직업이 Actor인 사람 이름 (오름차순 정렬)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;직업 별 이름의 최대 개수 이하인 열에서 빈 셀은 Null로 출력&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;Sample Output&lt;/b&gt;&lt;/h4&gt;
&lt;pre id=&quot;code_1711929476196&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;Jenny    Ashley     Meera  Jane
Samantha Christeen  Priya  Julia
NULL     Ketty      NULL   Maria&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;b&gt;풀이&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. 직업 별 이름들을 서브쿼리로 추출해서 JOIN&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; - row_number() over(ORDER BY Name) 열 추가: 이름 오름차순 정렬 + JOIN 기준으로 하여, 빈 셀에 Null 삽입&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; - JOIN 방향은 이름 개수가 가장 많은 Professor 열 기준: 다른 열 기준 시 Professor의 이름이 잘리기 때문&lt;/p&gt;
&lt;pre id=&quot;code_1711929526505&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT d.Name, p.Name, s.Name, a.Name
FROM
(SELECT Name, row_number() over(ORDER BY Name) as r
FROM OCCUPATIONS
WHERE Occupation = 'Doctor') AS d
RIGHT JOIN
(SELECT Name, row_number() over(ORDER BY Name) as r
FROM OCCUPATIONS
WHERE Occupation = 'Professor') AS p
ON d.r = p.r
LEFT JOIN
(SELECT Name, row_number() over(ORDER BY Name) as r
FROM OCCUPATIONS
WHERE Occupation = 'Singer') AS s
ON p.r = s.r
LEFT JOIN
(SELECT Name, row_number() over(ORDER BY Name) as r
FROM OCCUPATIONS
WHERE Occupation = 'Actor') AS a
ON s.r = a.r

-- 출력
Aamina Ashley Christeen Eve 
Julia Belvet Jane Jennifer 
Priya Britney Jenny Ketty 
NULL Maria Kristeen Samantha 
NULL Meera NULL NULL 
NULL Naomi NULL NULL 
NULL Priyanka NULL NULL&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>SQL</category>
      <author>yongyogn</author>
      <guid isPermaLink="true">https://data-science-study.tistory.com/135</guid>
      <comments>https://data-science-study.tistory.com/135#entry135comment</comments>
      <pubDate>Mon, 1 Apr 2024 09:06:25 +0900</pubDate>
    </item>
    <item>
      <title>[HackerRank] The PADS(MySQL)</title>
      <link>https://data-science-study.tistory.com/134</link>
      <description>&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;문제&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;317&quot; data-origin-height=&quot;469&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/qV2j2/btsFUXh7Afe/0RGMlGvrw4rWxGmNXmIkak/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/qV2j2/btsFUXh7Afe/0RGMlGvrw4rWxGmNXmIkak/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/qV2j2/btsFUXh7Afe/0RGMlGvrw4rWxGmNXmIkak/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FqV2j2%2FbtsFUXh7Afe%2F0RGMlGvrw4rWxGmNXmIkak%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;317&quot; height=&quot;469&quot; data-origin-width=&quot;317&quot; data-origin-height=&quot;469&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&quot;이름&quot; || &quot;직업&quot; 으로 구성된 테이블에서&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. &quot;이름 (직업의 첫 글자)&quot; 형태로 추출(이름 오름차순)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. 각 직업의 수를 세서 &quot;There are a total of 3 doctors&quot;와 같이 출력(직업 count 오름차순, 직업명 오름차순)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;Sample Output&lt;/b&gt;&lt;/h4&gt;
&lt;pre class=&quot;bash&quot; style=&quot;color: #000000; text-align: start;&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;Ashely(P)
Christeen(P)
Jane(A)
Jenny(D)
Julia(A)
Ketty(P)
Maria(A)
Meera(S)
Priya(S)
Samantha(D)
There are a total of 2 doctors.
There are a total of 2 singers.
There are a total of 3 actors.
There are a total of 3 professors.&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;b&gt;풀이&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. &quot;이름 (직업의 첫 글자)&quot;를 이름 기준 오름차순으로 출력&lt;/p&gt;
&lt;pre id=&quot;code_1710893781822&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT CONCAT(Name, '(', SUBSTR(Occupation,1,1),')') 
FROM OCCUPATIONS 
ORDER BY Name;

-- 출력
Aamina(D)
Ashley(P)
Belvet(P)
Britney(P)
Christeen(S)
Eve(A)
Jane(S)
Jennifer(A)
Jenny(S)
Julia(D)
Ketty(A)
Kristeen(S)
Maria(P)
Meera(P)
Naomi(P)
Priya(D)
Priyanka(P)
Samantha(A)&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. 각 직업의 수를 세서 &quot;There are a total of 3 doctors&quot;를 직업 수 오름차순, 직업명 오름차순으로 출력&lt;/p&gt;
&lt;pre id=&quot;code_1710893875851&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT CONCAT('There are a total of ', COUNT(Occupation), ' ', LOWER(Occupation), 's.') 
FROM OCCUPATIONS
GROUP BY Occupation
ORDER BY COUNT(Occupation), Occupation;

-- 출력
There are a total of 3 doctors.
There are a total of 4 actors.
There are a total of 4 singers.
There are a total of 7 professors.&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. 두 쿼리를 UNION으로 결합하여 한 줄로 출력하려고 했지만 MySQL에서 UNION을 사용할 때 ORDER BY가 적용되지 않아 오류 발생&lt;/p&gt;
&lt;pre id=&quot;code_1710894030930&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT CONCAT(Name, '(', SUBSTR(Occupation,1,1),')') 
FROM OCCUPATIONS 
ORDER BY Name
UNION
SELECT CONCAT('There are a total of ', COUNT(Occupation), ' ', LOWER(Occupation), 's.') 
FROM OCCUPATIONS
GROUP BY Occupation
ORDER BY COUNT(Occupation), Occupation

-- 출력
-- ERROR 1064 (42000) at line 1: You have an error in your SQL syntax; check the manual
-- that corresponds to your MySQL server version for the right syntax to use near 'UNION
-- SELECT CONCAT('There are a total of ', COUNT(Occupation), ' ', LOWER(Occup' at line 4&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4. 각 쿼리를 서브쿼리에 넣어 UNION 시도했지만 MySQL에서 UNION하면 ORDER BY로 한 정렬이 풀려버림&lt;/p&gt;
&lt;pre id=&quot;code_1710894335891&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT a.*
FROM (SELECT CONCAT(Name, '(', SUBSTR(Occupation,1,1),')') 
      FROM OCCUPATIONS 
      ORDER BY Name) AS a
UNION
SELECT b.*
FROM (SELECT CONCAT('There are a total of ', COUNT(Occupation), ' ', LOWER(Occupation), 's.') 
      FROM OCCUPATIONS
      GROUP BY Occupation
      ORDER BY COUNT(Occupation), Occupation) AS b

-- 출력
Ashley(P)
Samantha(A)
Julia(D)
Britney(P)
Maria(P)
Meera(P)
Priya(D)
Priyanka(P)
Jennifer(A)
Ketty(A)
Belvet(P)
Naomi(P)
Jane(S)
Jenny(S)
Kristeen(S)
Christeen(S)
Eve(A)
Aamina(D)
There are a total of 3 doctors.
There are a total of 4 actors.
There are a total of 4 singers.
There are a total of 7 professors.&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;b&gt;정답&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;5. 두 쿼리를 UNION으로 묶지않고 &quot;;&quot;로 각 쿼리를 끝내 두 번 출력하는 방법으로 변경&lt;/p&gt;
&lt;pre id=&quot;code_1710895146425&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT CONCAT(Name, '(', SUBSTR(Occupation,1,1),')') 
FROM OCCUPATIONS 
ORDER BY Name;

SELECT CONCAT('There are a total of ', COUNT(Occupation), ' ', LOWER(Occupation), 's.') 
FROM OCCUPATIONS
GROUP BY Occupation
ORDER BY COUNT(Occupation), Occupation;

-- 출력
Aamina(D)
Ashley(P)
Belvet(P)
Britney(P)
Christeen(S)
Eve(A)
Jane(S)
Jennifer(A)
Jenny(S)
Julia(D)
Ketty(A)
Kristeen(S)
Maria(P)
Meera(P)
Naomi(P)
Priya(D)
Priyanka(P)
Samantha(A)
There are a total of 3 doctors.
There are a total of 4 actors.
There are a total of 4 singers.
There are a total of 7 professors.&lt;/code&gt;&lt;/pre&gt;</description>
      <category>SQL</category>
      <author>yongyogn</author>
      <guid isPermaLink="true">https://data-science-study.tistory.com/134</guid>
      <comments>https://data-science-study.tistory.com/134#entry134comment</comments>
      <pubDate>Wed, 20 Mar 2024 09:40:21 +0900</pubDate>
    </item>
    <item>
      <title>[머신러닝 교과서] 퍼셉트론 구현</title>
      <link>https://data-science-study.tistory.com/133</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;● 퍼셉트론&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;1. 초기 머신러닝의 역사&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;- Warren McCulloch과 Walter Pits가 뇌의 뉴런 개념을 발표&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp;(&lt;b&gt;MCP 뉴런 &lt;/b&gt;- 신경 세포를 이진 출력을 내는 간단한 논리 회로로 표현)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;- Frank Rosenblatt는 MCP 뉴런 모델을 기반으로 &lt;b&gt;퍼셉트론 학습 개념&lt;/b&gt;을 발표&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;- 퍼셉트론 규칙에서 자동으로 최적의 &lt;b&gt;가중치&lt;/b&gt;를 학습하는 알고리즘 제안&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;- 가중치는 뉴런의 출력 신호를 낼지 말지 결정하기 위해 입력 특성에 곱하는 계수&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;- &lt;b&gt;지도학습&lt;/b&gt;과 &lt;b&gt;분류 문제&lt;/b&gt;에서 퍼셉트론 알고리즘을 사용하여 새로운 데이터가 한 클래스에 속하는지 아닌지 예측 가능&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;2. 인공 뉴런의 수학적 정의&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;- 두 클래스를 1과 -1로 나타냄&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;- &lt;b&gt;입력값&lt;/b&gt; \(x\)와 &lt;b&gt;가중치 벡터&lt;/b&gt; \(w\)의 선형 조합으로 결정함수 \(\phi(z)\) 정의&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$z = w_{1}x_{1} + w_{2}x_{2} + \cdots + w_{m}x_{m}$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$w = \begin{bmatrix} w_{1} \\ \vdots&amp;nbsp;&amp;nbsp;\\ w_{m} \end{bmatrix}, x= \begin{bmatrix} x_{1} \\ \vdots&amp;nbsp;&amp;nbsp;\\ x_{m} \end{bmatrix}$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;- 특정 샘플 \(x\)의 최종 입력이 &lt;b&gt;사전 정의된 임계값 \(\theta\)&lt;/b&gt;보다 크면 클래스 1, 아니면 클래스 -1로 예측&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$\phi(z) = \begin{cases} 1 &amp;amp; z \geq \theta \\ -1 &amp;amp; 그외 \end{cases}$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;- \(z \geq \theta\) 식에서 \(\theta\)를 왼쪽으로 넘겨 \(w_{0}=-\theta\)이고, \(x_{0}=1\)인 0번째 가중치를 정의하여 식 간소화&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$z = w_{0}x_{0} + w_{1}x_{1} + \cdots + w_{m}x_{m} = w^{T}x$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;- 결정함수는 다음과 같이 변경&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$\phi(z) = \begin{cases} 1 &amp;amp; z \geq 0 \\ -1 &amp;amp; 그외 \end{cases}$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;- \(w_{0} = -\theta\)를 &lt;b&gt;절편&lt;/b&gt;이라고 함&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b3MrOr/btsCaxAu2dm/LbKRpU5HAuAXTcGgsbZzJK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b3MrOr/btsCaxAu2dm/LbKRpU5HAuAXTcGgsbZzJK/img.png&quot; width=&quot;300&quot; height=&quot;306&quot; data-origin-width=&quot;612&quot; data-origin-height=&quot;625&quot; data-is-animation=&quot;false&quot; style=&quot;width: 51.6568%; margin-right: 10px;&quot; data-widthpercent=&quot;52.26&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b3MrOr/btsCaxAu2dm/LbKRpU5HAuAXTcGgsbZzJK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb3MrOr%2FbtsCaxAu2dm%2FLbKRpU5HAuAXTcGgsbZzJK%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;612&quot; height=&quot;625&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bStxzi/btsDkEY6N1O/tMgAPAQgEx2OU8MRKLeuKk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bStxzi/btsDkEY6N1O/tMgAPAQgEx2OU8MRKLeuKk/img.png&quot; data-origin-width=&quot;601&quot; data-origin-height=&quot;672&quot; data-is-animation=&quot;false&quot; width=&quot;300&quot; height=&quot;335&quot; style=&quot;width: 47.1804%;&quot; data-widthpercent=&quot;47.74&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bStxzi/btsDkEY6N1O/tMgAPAQgEx2OU8MRKLeuKk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbStxzi%2FbtsDkEY6N1O%2FtMgAPAQgEx2OU8MRKLeuKk%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;601&quot; height=&quot;672&quot;/&gt;&lt;/span&gt;&lt;/div&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;h3 data-ke-size=&quot;size23&quot;&gt;3. 퍼셉트론 학습 규칙&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;- 뇌의 뉴런 하나가 작동하는 방식을 흉내내는 환원주의 접근 방식 사용&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;가중치를 0 또는 랜덤한 작은 값으로 초기화&lt;/li&gt;
&lt;li&gt;각 훈련 샘플 \(x^{(i)}\)에서 다음 작업 수행
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;출력 값 \(\hat{y}\) 계산&lt;br /&gt;&amp;rarr; 출력값은 계단 함수로 예측한 클래스 레이블&lt;/li&gt;
&lt;li&gt;가중치 업데이트&lt;br /&gt;&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;&amp;rarr;&lt;span&gt; &lt;/span&gt;&lt;/span&gt;\(w_{j}:=w_{j}+\Delta w_{j}\)&lt;br /&gt;&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;&amp;rarr;&lt;span&gt; &lt;/span&gt;&lt;/span&gt;가중치 업데이트 값인 \(\Delta w_{j}=\eta (y^{(i)}-\hat{y}^{(i)})x_{j}^{(i)}\)&lt;br /&gt;&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;&amp;rarr;&lt;span&gt; \(\eta\)는 학습률로 0.0~0.1 사이의 값&lt;br /&gt;&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;&amp;rarr;&lt;span&gt; \(y^{(i)}\)와 \(\hat{y}^{(i)}\)는 각각 \(i\)번째 훈련 샘플의 정답 레이블,&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;&lt;span&gt;&amp;nbsp;예측 레이블&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;&lt;span&gt;&amp;nbsp;- 가중치 벡터의 모든 가중치는 동시에 업데이트&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;&lt;span&gt;&amp;nbsp;- 모든 가중치가 각자의 업데이트 값 \(\Delta w_{j}\)에 의해 업데이트되기 전에 예측 레이블 \(\hat{y}^{(i)}\)를 다시 계산하지 않음&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;rarr; \(\Delta w_{0}=\eta(y^{(i)}-output^{(i)})\)&lt;br /&gt;&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&amp;rarr; \(\Delta w_{1}=\eta(y^{(i)}-output^{(i)})x_{1}^{(i)}\)&lt;br /&gt;&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&amp;rarr; \(\Delta w_{2}=\eta(y^{(i)}-output^{(i)})x_{2}^{(i)}\)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;&lt;span&gt;&amp;nbsp;- 퍼셉트론이 클래스 레이블을 정확히 예측하면 가중치 유지(업데이트 값은 0)&lt;br /&gt;&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&amp;rarr; \(y^{(i)}=-1, \hat{y}^{(i)}=-1, \Delta w_{j}=\eta(-1-(-1))x_{j}^{(i)}=0\) &lt;br /&gt;&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&amp;rarr; &lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;\(y^{(i)}=1, \hat{y}^{(i)}=1,\Delta w_{j}=\eta(1-1)x_{j}^{(i)}=0\)&lt;br /&gt;&amp;nbsp;- 퍼셉트론이 클래스 레이블을 잘못 예측하면 가중치를 양성 또는 음성 타겟 클래스 방향으로 이동시킴&lt;br /&gt;&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&amp;rarr; &lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;\(y^{(i)}=1, \hat{y}^{(i)}=-1, \Delta w_{j}=\eta(1-(-1))x_{j}^{(i)}=\eta(2)x_{j}^{(i)}\) &lt;br /&gt;&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&amp;rarr; &lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;\(y^{(i)}=-1, \hat{y}^{(i)}=1, \Delta w_{j}=\eta(-1-1)x_{j}^{(i)}=\eta(-2)x_{j}^{(i)}\)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;&amp;nbsp;- 가중치 업데이트는 \(x_{j}^{(i)}\)값에 비례하여, 이 값을 조절해 결정경계를 더 크게 움직이거나 더 작게 움직일 수 있음&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;&amp;nbsp;- 퍼셉트론은 두 클래스가 선형적으로 구분되고 학습률이 충분히 작을 때만 수렴이 보장됨&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;&amp;nbsp;- 선형 결정 경계로 나눌 수 없다면 훈련 데이터셋을 반복할 최대 횟수(epoch)를 지정해 분류 허용 오차 지정, 그렇지 않으면 퍼셉트론은 가중치 업데이트를 멈추지 않음&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;839&quot; data-origin-height=&quot;488&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/clKCuW/btsFeG20McR/I7ekKnp71xd4CucjqfoS9k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/clKCuW/btsFeG20McR/I7ekKnp71xd4CucjqfoS9k/img.png&quot; data-alt=&quot;퍼셉트론 알고리즘&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/clKCuW/btsFeG20McR/I7ekKnp71xd4CucjqfoS9k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FclKCuW%2FbtsFeG20McR%2FI7ekKnp71xd4CucjqfoS9k%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;500&quot; height=&quot;291&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;839&quot; data-origin-height=&quot;488&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;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;4. 파이썬으로 퍼셉트론&amp;nbsp; 학습 알고리즘 구현&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;- 퍼셉트론 클래스 정의&lt;/p&gt;
&lt;pre id=&quot;code_1708766187429&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

class Perceptron(object):
    def __init__(self, eta = 0.01, n_iter = 50, random_state = 1):
        self.eta = eta
        self.n_iter = n_iter
        self.random_state = random_state

    def fit(self, X, y):
        rgen = np.random.RandomState(self.random_state) # 난수 생성기 객체 생성(격리된 시드 부여 가능, 이전과 동일한 랜덤 시드 재현 가능)
        self.w_ = rgen.normal(loc = 0.0, scale = 0.01,
                              size = 1 + X.shape[1])    # 평균 0, 표준편차 0.01의 정규분포에서 훈련 데이터 개수(X.shape[1]) + 절편(1)만큼의 난수 생성
        self.errors_ = []                               # 훈련 중 error의 감소 확인을 위한 객체

        for _ in range(self.n_iter):
            errors = 0
            for xi, target in zip(X, y):
                update = self.eta * (target - self.predict(xi)) # 가중치 w_j의 변화량
                self.w_[1:] += update * xi                      # 각 훈련 데이터에 가중치값 곱하기
                self.w_[0] += update                            # 가중치값 업데이트
                errors += int(update != 0.0)                    # 업데이트 된 값이 0이 아니면(실제값과 예측값이 다르면) errors에 1 더함
            self.errors_.append(errors)                         # 전체 훈련 데이터에서 예측값이 실제값과 다르게 나온 횟수 추가
        return self
    
    # 최종입력인 Z 계산
    def net_input(self, X):
        return np.dot(X, self.w_[1:]) + self.w_[0]
    
    # 결정함수를 임계값인 0과 비교, 크거나 같으면 1, 작으면 -1로 반환
    def predict(self, X):
        return np.where(self.net_input(X) &amp;gt;= 0, 1, -1)&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;- fit 메서드 내의 w_객체에 가중치를 초기화하여 선언&lt;br /&gt;&amp;nbsp;- 가중치가 0이 아니어야 학습률(eta)가 분류 결과에 영향을 줄 수 있어 0이 아닌 랜덤 값으로 초기화&lt;br /&gt;&amp;nbsp;- 가중치가 0이면 eta는 가중치 벡터의 방향이 아니라 크기에만 영향을 미침&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;- 붓꽃 데이터셋에서 퍼셉트론 훈련&lt;br /&gt;&amp;nbsp;- Perceptron은 이진분류이므로 setosa와 versicolor에 대해서만 분류 진행&lt;br /&gt;&amp;nbsp;- 또한, 특성은 첫번째 특성(꽃받침 길이)와 세번째 특성(꽃잎 길이)을 사용&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1708769072564&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import pandas as pd
import matplotlib.pyplot as plt

s = 'https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data'
df = pd.read_csv(s, header = None, encoding = 'utf-8')

# 처음 100개의 데이터(setosa 50개와 versicolor 50개)의 다섯번째 열인 예측 대상을 y로 선언
y = df.iloc[0:100, 4].values
# setosa이면 -1, versicolor이면 1로 변경
y = np.where(y == 'Iris-setosa', -1, 1)

# 처음 100개의 데이터에서 예측에 사용하고자 하는 특성인 첫번재 열과 세번째 열만 추출
X = df.iloc[0:100, [0, 2]].values

# 산점도로 시각화
plt.scatter(X[:50, 0], X[:50, 1], color = 'red', marker = 'o', label = 'setose')
plt.scatter(X[50:100, 0], X[50:100, 1], color = 'blue', marker = 'x', label = 'versicolor')
plt.xlabel('sepal length [cm]')
plt.ylabel('petal length [cm]')
plt.legend(loc = 'upper left')
plt.show()&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;554&quot; data-origin-height=&quot;432&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/2G3Jc/btsFhqkkwJ2/sSxQuqo3jWVQJaBmUoEguk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/2G3Jc/btsFhqkkwJ2/sSxQuqo3jWVQJaBmUoEguk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/2G3Jc/btsFhqkkwJ2/sSxQuqo3jWVQJaBmUoEguk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F2G3Jc%2FbtsFhqkkwJ2%2FsSxQuqo3jWVQJaBmUoEguk%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;400&quot; height=&quot;312&quot; data-origin-width=&quot;554&quot; data-origin-height=&quot;432&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1708769377882&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# Perceptron 알고리즘 훈련
ppn = Perceptron(eta = 0.1, n_iter = 10)
ppn.fit(X, y)

# 훈련 과정에서 각 반복에서 나온 오차의 개수 시각화
plt.plot(range(1, len(ppn.errors_) + 1), ppn.errors_, marker = 'o')
plt.xlabel('Epochs')
plt.ylabel('Number of updates')
plt.show()&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;567&quot; data-origin-height=&quot;432&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/BaIeC/btsFjHlnjce/mXvErmcwgu9gqdTccDYWu1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/BaIeC/btsFjHlnjce/mXvErmcwgu9gqdTccDYWu1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/BaIeC/btsFjHlnjce/mXvErmcwgu9gqdTccDYWu1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FBaIeC%2FbtsFjHlnjce%2FmXvErmcwgu9gqdTccDYWu1%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;400&quot; height=&quot;305&quot; data-origin-width=&quot;567&quot; data-origin-height=&quot;432&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1708769987073&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;from matplotlib.colors import ListedColormap

# 결정경계 시각화 함수
def plot_decision_regions(X, y, classifier, resolution = 0.02):
    markers = ('s', 'x', 'o', '^', 'v')
    colors = ('red', 'blue', 'lightgreen', 'gray', 'cyan')
    cmap = ListedColormap(colors[:len(np.unique(y))])

    # 두 특성의 최소값과 최대값에 각각 -1, +1을 한 값을 정의
    x1_min, x1_max = X[:, 0].min() - 1, X[:, 0].max() + 1
    x2_min, x2_max = X[:, 1].min() - 1, X[:, 1].max() + 1
    # 위에서 구한 최소값과 최대값을 시작으로 하는 meshgrid 생성(최소값과 최대값 사이에 0.02의 간격으로 데이터 생성)
    xx1, xx2 = np.meshgrid(np.arange(x1_min, x1_max, resolution),
                           np.arange(x2_min, x2_max, resolution))
    
    # ravel 함수로 meshgrid를 1차원으로 평평하게 펴고, xx1, xx2를 각각 X, y로 Perceptron에 넣어 예측
    Z = classifier.predict(np.array([xx1.ravel(), xx2.ravel()]).T)
    # 예측된 값을 다시 meshgrid 형태로 변경
    Z = Z.reshape(xx1.shape)

    # contourf 함수로 등고선 그래프 그리기(등고선이 두 집단의 경계로 그려짐)
    # 분류된 값이 -1인 것과 1인 것을 각각 빨간색과 파란색으로 구분
    plt.contourf(xx1, xx2, Z, alpha = 0.3, cmap = cmap)
    plt.xlim(xx1.min(), xx1.max())
    plt.ylim(xx2.min(), xx2.max())
    # 훈련 데이터를 빨간색 네모 모양와 파란색 x모양으로 구분
    for idx, cl in enumerate(np.unique(y)):
        plt.scatter(x = X[y == cl, 0], y = X[y == cl, 1],
                    alpha = 0.8, c = colors[idx], marker = markers[idx], label = cl, edgecolor = 'black')
    
plot_decision_regions(X, y, classifier = ppn)
plt.xlabel('sepal length [cm]')
plt.ylabel('petal length [cm]')
plt.legend(loc = 'upper left')
plt.show()&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;554&quot; data-origin-height=&quot;433&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Ys4ru/btsFf4vAiHI/QRepQe3JbOKKBmWZxI2zNK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Ys4ru/btsFf4vAiHI/QRepQe3JbOKKBmWZxI2zNK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Ys4ru/btsFf4vAiHI/QRepQe3JbOKKBmWZxI2zNK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FYs4ru%2FbtsFf4vAiHI%2FQRepQe3JbOKKBmWZxI2zNK%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;400&quot; height=&quot;313&quot; data-origin-width=&quot;554&quot; data-origin-height=&quot;433&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;- OvR(One-versus-Resr)기법을 사용하면 이진 분류기로 다중 클래스 문제 해결 가능&lt;br /&gt;&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;&amp;rarr;&lt;span&gt; &lt;/span&gt;&lt;/span&gt;클래스마다 하나의 분류기를 훈련(각 클래스를 양성으로 분류하고 나머지는 음성으로 분류)&lt;br /&gt;&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;&amp;rarr;&lt;span&gt; &lt;/span&gt;&lt;/span&gt;레이블이 없는 새로운 데이터 샘플 분류 시에는 클래스 레이블의 개수와 같은 n개의 분류기 사용&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;br /&gt;&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;&amp;rarr;&lt;span&gt;&lt;span&gt; 신뢰도가 가장 높은 클래스 레이블(최종 입력의 절댓값이 가장 큰 클래스)을 분류하려는 샘플의 레이블로 선택&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;- 퍼셉트론의 가장 큰 문제는 수렴&lt;br /&gt;&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;&amp;rarr;&lt;span&gt;&lt;span&gt;&lt;span&gt; 구 클래스가 선형적인 초평면으로 구분될 수 있을 때 수렴하지만, 선형 결정 경계로 완벽하게 구분되지 않으면 최대 epoch를 지정하지 않는한 가중치 업데이트가 멈추지 않음&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;</description>
      <category>Python/Machine Learning</category>
      <author>yongyogn</author>
      <guid isPermaLink="true">https://data-science-study.tistory.com/133</guid>
      <comments>https://data-science-study.tistory.com/133#entry133comment</comments>
      <pubDate>Sat, 24 Feb 2024 19:35:46 +0900</pubDate>
    </item>
    <item>
      <title>[서평] 그림으로 배우는 네트워크 프로토콜</title>
      <link>https://data-science-study.tistory.com/132</link>
      <description>&lt;p style=&quot;background-color: #ffffff; color: #404040; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;데이터 분석을 공부하며 네트워크 트래픽을 추출하고 분석해 BI를 창출하는 일에 관심이 있습니다. 네트워크를 모니터링하고 운영하는 일을 배우는데 좋은 기회가 될 것 같아 책을 보게 되었습니다. 데이터 분석 결과를 공유하기 위한 웹사이트 개발을 하고 이후에 보안 위협 탐지를 공부하는데도 프로토콜 지식이 필수 일 것 같아&amp;nbsp;&amp;nbsp;이 책을 통해 배워볼 수 있을 것 같았습니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;KakaoTalk_20240220_105106737.jpg&quot; data-origin-width=&quot;3000&quot; data-origin-height=&quot;4000&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/baWjWl/btsE9JYd5pF/8OLLzf9Ava0xkzYmafvrrk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/baWjWl/btsE9JYd5pF/8OLLzf9Ava0xkzYmafvrrk/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/baWjWl/btsE9JYd5pF/8OLLzf9Ava0xkzYmafvrrk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbaWjWl%2FbtsE9JYd5pF%2F8OLLzf9Ava0xkzYmafvrrk%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;3000&quot; height=&quot;4000&quot; data-filename=&quot;KakaoTalk_20240220_105106737.jpg&quot; data-origin-width=&quot;3000&quot; data-origin-height=&quot;4000&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;책의 목차는 다음과 같습니다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;1장 네트워크의 개요&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #666666; text-align: justify;&quot;&gt;01 네트워크의 기본&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #666666; text-align: justify;&quot;&gt;02 네트워크의 역사&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #666666; text-align: justify;&quot;&gt;03 네트워크 프로토콜&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #666666; text-align: justify;&quot;&gt;04 프로토콜과 데이터의 흐름&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #666666; text-align: justify;&quot;&gt;05 네트워크를 구성하는 장치&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #666666; text-align: justify;&quot;&gt;06 패킷을 캡처해 보자&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;2장 통신에 필수적인 프로토콜&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #666666; text-align: justify;&quot;&gt;07 이더넷의 기본&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #666666; text-align: justify;&quot;&gt;08 이더넷 패킷을 캡처해 보자&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #666666; text-align: justify;&quot;&gt;09 IPv4의 기본&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #666666; text-align: justify;&quot;&gt;10 IPv4의 패킷 형식&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #666666; text-align: justify;&quot;&gt;11 IPv4 주소&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #666666; text-align: justify;&quot;&gt;12 IPv4의 주소 분류&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #666666; text-align: justify;&quot;&gt;13 IPv6의 기본&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #666666; text-align: justify;&quot;&gt;14 IPv6 주소&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;3장 통신의 신뢰성을 뒷받침하는 프로토콜&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #666666; text-align: justify;&quot;&gt;15 TCP의 기본&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #666666; text-align: justify;&quot;&gt;16 TCP 헤더 형식의 기본&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #666666; text-align: justify;&quot;&gt;17 TCP 커넥션의 흐름&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #666666; text-align: justify;&quot;&gt;18 TCP 패킷을 캡처해 보자&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #666666; text-align: justify;&quot;&gt;19 UDP의 기초&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;4장 일상에서 사용하는 인터넷을 지원하는 프로토콜&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #666666; text-align: justify;&quot;&gt;20 HTTP와 HTTPS&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #666666; text-align: justify;&quot;&gt;21 HTTP와 HTTPS의 패킷을 캡처해 보자&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #666666; text-align: justify;&quot;&gt;22 DNS의 기본&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #666666; text-align: justify;&quot;&gt;23 SMTP&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #666666; text-align: justify;&quot;&gt;24 POP, IMAP&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #666666; text-align: justify;&quot;&gt;25 PPPoE와 IPoE&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;5장 네트워크를 지원하는 기술&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #666666; text-align: justify;&quot;&gt;26 DHCP의 기본&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #666666; text-align: justify;&quot;&gt;27 NAT, NAPT의 기본&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #666666; text-align: justify;&quot;&gt;28 NTP의 기본&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #666666; text-align: justify;&quot;&gt;29 ARP의 기본&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #666666; text-align: justify;&quot;&gt;30 라우팅 프로토콜&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #666666; text-align: justify;&quot;&gt;31 TELNET, SSH&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #666666; text-align: justify;&quot;&gt;32 SNMP&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #666666; text-align: justify;&quot;&gt;33 FTP&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #666666; text-align: justify;&quot;&gt;34 ICMP&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;6장 물리 계층과 관련된 기술&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #666666; text-align: justify;&quot;&gt;35 프로토콜과 물리 계층의 관계&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #666666; text-align: justify;&quot;&gt;36 LAN 케이블&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #666666; text-align: justify;&quot;&gt;37 광섬유 케이블&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #666666; text-align: justify;&quot;&gt;38 무선 LAN&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;7장 보안에 관련된 기술&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #666666; text-align: justify;&quot;&gt;39 정보 보안의 기본&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #666666; text-align: justify;&quot;&gt;40 SSL/TLS&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #666666; text-align: justify;&quot;&gt;41 VPN&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #666666; text-align: justify;&quot;&gt;42 다양한 VPN&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #666666; text-align: justify;&quot;&gt;43 제로 트러스트&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/p587g/btsE8zO8EQg/afRqUNUih6QKCXJUyH3ryk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/p587g/btsE8zO8EQg/afRqUNUih6QKCXJUyH3ryk/img.jpg&quot; data-origin-width=&quot;3000&quot; data-origin-height=&quot;4000&quot; data-is-animation=&quot;false&quot; data-filename=&quot;KakaoTalk_20240220_105106737_01.jpg&quot; style=&quot;width: 49.4186%; margin-right: 10px;&quot; data-widthpercent=&quot;50&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/p587g/btsE8zO8EQg/afRqUNUih6QKCXJUyH3ryk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fp587g%2FbtsE8zO8EQg%2FafRqUNUih6QKCXJUyH3ryk%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;3000&quot; height=&quot;4000&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bbOOVv/btsE6PZbq72/EGIgk0ubXwltEoUkEaaBw0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bbOOVv/btsE6PZbq72/EGIgk0ubXwltEoUkEaaBw0/img.jpg&quot; data-origin-width=&quot;3000&quot; data-origin-height=&quot;4000&quot; data-is-animation=&quot;false&quot; data-filename=&quot;KakaoTalk_20240220_105106737_02.jpg&quot; style=&quot;width: 49.4186%;&quot; data-widthpercent=&quot;50&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bbOOVv/btsE6PZbq72/EGIgk0ubXwltEoUkEaaBw0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbbOOVv%2FbtsE6PZbq72%2FEGIgk0ubXwltEoUkEaaBw0%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;3000&quot; height=&quot;4000&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/obQPH/btsE6EQ9M1z/8QCaS20nAnowwaQKzuFlu0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/obQPH/btsE6EQ9M1z/8QCaS20nAnowwaQKzuFlu0/img.jpg&quot; data-origin-width=&quot;3000&quot; data-origin-height=&quot;4000&quot; data-is-animation=&quot;false&quot; data-filename=&quot;KakaoTalk_20240220_105106737_03.jpg&quot; style=&quot;width: 49.4186%; margin-right: 10px; margin-top: 10px;&quot; data-widthpercent=&quot;50&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/obQPH/btsE6EQ9M1z/8QCaS20nAnowwaQKzuFlu0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FobQPH%2FbtsE6EQ9M1z%2F8QCaS20nAnowwaQKzuFlu0%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;3000&quot; height=&quot;4000&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bxVb8T/btsE9ZGvyBd/woIg3IEivPz4zUouX3TcQ1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bxVb8T/btsE9ZGvyBd/woIg3IEivPz4zUouX3TcQ1/img.jpg&quot; data-origin-width=&quot;3000&quot; data-origin-height=&quot;4000&quot; data-is-animation=&quot;false&quot; data-filename=&quot;KakaoTalk_20240220_105106737_04.jpg&quot; style=&quot;width: 49.4186%; margin-top: 10px;&quot; data-widthpercent=&quot;50&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bxVb8T/btsE9ZGvyBd/woIg3IEivPz4zUouX3TcQ1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbxVb8T%2FbtsE9ZGvyBd%2FwoIg3IEivPz4zUouX3TcQ1%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;3000&quot; height=&quot;4000&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/rvaqR/btsE6WjLOTK/1nwbUNLKCYC1d84HsMjeBK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/rvaqR/btsE6WjLOTK/1nwbUNLKCYC1d84HsMjeBK/img.jpg&quot; data-origin-width=&quot;3000&quot; data-origin-height=&quot;4000&quot; data-is-animation=&quot;false&quot; data-filename=&quot;KakaoTalk_20240220_105106737_05.jpg&quot; style=&quot;width: 49.4186%; margin-right: 10px; margin-top: 10px;&quot; data-widthpercent=&quot;50&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/rvaqR/btsE6WjLOTK/1nwbUNLKCYC1d84HsMjeBK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FrvaqR%2FbtsE6WjLOTK%2F1nwbUNLKCYC1d84HsMjeBK%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;3000&quot; height=&quot;4000&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/2BZpy/btsE6CseKZE/a2c78SLNd5km0H4C9F5VVK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/2BZpy/btsE6CseKZE/a2c78SLNd5km0H4C9F5VVK/img.jpg&quot; data-origin-width=&quot;3000&quot; data-origin-height=&quot;4000&quot; data-is-animation=&quot;false&quot; data-filename=&quot;KakaoTalk_20240220_105106737_06.jpg&quot; style=&quot;width: 49.4186%; margin-top: 10px;&quot; data-widthpercent=&quot;50&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/2BZpy/btsE6CseKZE/a2c78SLNd5km0H4C9F5VVK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F2BZpy%2FbtsE6CseKZE%2Fa2c78SLNd5km0H4C9F5VVK%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;3000&quot; height=&quot;4000&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;책의 가장 좋은 점은 그림을 통해 이해하기 쉽게 설명해준다는 점이었습니다. 공부하려는 분야가 네트워크인만큼 인터넷과 라우터, 스위치 그리고 데스크톱이나 서버 간의 연결 관계가 중요해보이는데 이러한 점을 그림으로 설명하니 머릿속에 구조가 더 잘 들어왔습니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;KakaoTalk_20240220_105106737_07.jpg&quot; data-origin-width=&quot;3000&quot; data-origin-height=&quot;4000&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/0jhHj/btsE3nJaKv9/QSqKmGzkQ53cBoL86KHNO1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/0jhHj/btsE3nJaKv9/QSqKmGzkQ53cBoL86KHNO1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/0jhHj/btsE3nJaKv9/QSqKmGzkQ53cBoL86KHNO1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F0jhHj%2FbtsE3nJaKv9%2FQSqKmGzkQ53cBoL86KHNO1%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;3000&quot; height=&quot;4000&quot; data-filename=&quot;KakaoTalk_20240220_105106737_07.jpg&quot; data-origin-width=&quot;3000&quot; data-origin-height=&quot;4000&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;각 장의 마지막에는 연습문제를 통해 배운 것을 복습하고 확인하며 확실히 기억할 수 있도록 도와주었습니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;KakaoTalk_20240220_105106737_08.jpg&quot; data-origin-width=&quot;3000&quot; data-origin-height=&quot;4000&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/biakvO/btsE9OrFx59/uA2xwQgKHIvczW2LxpMiy1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/biakvO/btsE9OrFx59/uA2xwQgKHIvczW2LxpMiy1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/biakvO/btsE9OrFx59/uA2xwQgKHIvczW2LxpMiy1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbiakvO%2FbtsE9OrFx59%2FuA2xwQgKHIvczW2LxpMiy1%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;3000&quot; height=&quot;4000&quot; data-filename=&quot;KakaoTalk_20240220_105106737_08.jpg&quot; data-origin-width=&quot;3000&quot; data-origin-height=&quot;4000&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;앞으로 데이터 분석을 공부하면서도 계속 네트워크와 프로토콜의 구조에 대해서도 공부하며 학문의 분야를 넓히고, 둘을 결합하여 더 방대한 데이터를 분석하는 데이터 분석가가 될 수 있을 것 같습니다.&lt;/p&gt;</description>
      <category>책</category>
      <author>yongyogn</author>
      <guid isPermaLink="true">https://data-science-study.tistory.com/132</guid>
      <comments>https://data-science-study.tistory.com/132#entry132comment</comments>
      <pubDate>Tue, 20 Feb 2024 15:27:04 +0900</pubDate>
    </item>
    <item>
      <title>[서평] Let's 태블로, 쉽게 배우는 데이터 시각화</title>
      <link>https://data-science-study.tistory.com/131</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;데이터 분석에서 중요한 것 중 하나가 데이터 시각화이다. 분석한 결과를 잘 시각화하여 전달하여 다른 사람들도 내가 분석한 데이터에 대해 알게 하는 것이 데이터 분석의 마무리이다. 그렇기에 데이터 시각화를 공부해야겠다고 생각했고, 마침 태블로를 활용한 데이터 시각화를 공부할 수 있는 책을 리뷰할 수 있는 기회가 생겼다. 태블로는 PowerBI와 함께 기업에서 많이 활용하고 있는 데이터 시각화 툴 중 하나로 알고 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;리뷰할 책은 이 책이다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;KakaoTalk_20231113_192603579.jpg&quot; data-origin-width=&quot;3000&quot; data-origin-height=&quot;4000&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/MSI84/btsAi2BXH3C/23mUv88XvHvtvNHTjQZPm0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/MSI84/btsAi2BXH3C/23mUv88XvHvtvNHTjQZPm0/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/MSI84/btsAi2BXH3C/23mUv88XvHvtvNHTjQZPm0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FMSI84%2FbtsAi2BXH3C%2F23mUv88XvHvtvNHTjQZPm0%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;3000&quot; height=&quot;4000&quot; data-filename=&quot;KakaoTalk_20231113_192603579.jpg&quot; data-origin-width=&quot;3000&quot; data-origin-height=&quot;4000&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;목차는 다음과 같다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #555555; text-align: start;&quot;&gt;머리말&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #555555; text-align: start;&quot;&gt;이 책의 구성과 특징&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #555555; text-align: start;&quot;&gt;PART 01 태블로와 함께하는 데이터 시각화 첫걸음&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #555555; text-align: start;&quot;&gt;CHAPTER 01 데이터 시각화는 무엇인가요?&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #555555; text-align: start;&quot;&gt;01 데이터 시각화의 개념&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #555555; text-align: start;&quot;&gt;02 데이터 시각화의 필요성과 역할&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #555555; text-align: start;&quot;&gt;03 데이터 시각화의 전략&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #555555; text-align: start;&quot;&gt;CHAPTER 02 태블로는 어떤 도구인가요?&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #555555; text-align: start;&quot;&gt;04 태블로 제품군에 대한 이해&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #555555; text-align: start;&quot;&gt;05 태블로 데스크탑 설치&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #555555; text-align: start;&quot;&gt;06 태블로 인터페이스 소개&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #555555; text-align: start;&quot;&gt;07 태블로 vs. 엑셀&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #555555; text-align: start;&quot;&gt;PART 02 태블로와 함께하는 데이터 시각화, 차트 그리기&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #555555; text-align: start;&quot;&gt;CHAPTER 03 데이터 시각화 기본 차트, 무작정 따라 그리기 (1)&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #555555; text-align: start;&quot;&gt;08 필드를 시트 위에 올리는 방법&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #555555; text-align: start;&quot;&gt;09 데이터 시각화 기본 차트 #1 - 바 차트&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #555555; text-align: start;&quot;&gt;10 마크 카드 활용하기&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #555555; text-align: start;&quot;&gt;11 데이터 시각화 기본 차트 #2 - 라인 차트&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #555555; text-align: start;&quot;&gt;12 라인 차트 vs. 영역 차트&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #555555; text-align: start;&quot;&gt;13 데이터 시각화 기본 차트 #3 - 파이 차트&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #555555; text-align: start;&quot;&gt;14 파이 차트는 좋은 데이터 시각화 방식이 아니다?&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #555555; text-align: start;&quot;&gt;연습 문제&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #555555; text-align: start;&quot;&gt;CHAPTER 04 데이터 시각화 기본 차트, 무작정 따라 그리기 (2)&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #555555; text-align: start;&quot;&gt;15 상관관계를 시각화하는 차트, 스캐터 플롯&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #555555; text-align: start;&quot;&gt;16 추세선 활용하기&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #555555; text-align: start;&quot;&gt;17 분포를 시각화하는 차트 #1 - 박스 플롯&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #555555; text-align: start;&quot;&gt;18 분포를 시각화하는 차트 #2 - 히스토그램&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #555555; text-align: start;&quot;&gt;19 테이블을 직관적으로 표현하는 방식, 하이라이트 테이블&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #555555; text-align: start;&quot;&gt;연습 문제&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #555555; text-align: start;&quot;&gt;CHAPTER 05 태블로 이해를 위한 열쇠, 핵심 개념 집중 공략&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #555555; text-align: start;&quot;&gt;20 태블로 핵심 개념 #1 - 차원과 측정값&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #555555; text-align: start;&quot;&gt;21 태블로 핵심 개념 #2 - 연속형과 불연속형&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #555555; text-align: start;&quot;&gt;22 태블로 핵심 개념 #3 - Level of Detail&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #555555; text-align: start;&quot;&gt;23 태블로의 4가지 계산 방법&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #555555; text-align: start;&quot;&gt;CHAPTER 06 데이터 시각화 기본 차트 되짚어 보기&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #555555; text-align: start;&quot;&gt;PART 03 태블로와 함께하는 데이터 시각적 분석&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #555555; text-align: start;&quot;&gt;CHAPTER 07 시각화 목표를 향한 첫걸음, 데이터 이어 붙이기&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #555555; text-align: start;&quot;&gt;24 태블로 데스크탑에서 데이터 결합 작업을?&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #555555; text-align: start;&quot;&gt;25 세로로 길쭉하게 결합하는 과정, 유니온&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #555555; text-align: start;&quot;&gt;26 가로로 빵빵하게 결합하는 과정 - 조인, 관계, 블렌딩&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #555555; text-align: start;&quot;&gt;CHAPTER 08 필터를 활용하여 세부적으로 들여다보기&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #555555; text-align: start;&quot;&gt;27 필터에 대한 기본 이해&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #555555; text-align: start;&quot;&gt;28 태블로에서 필터는 왜 그렇게 중요한가?&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #555555; text-align: start;&quot;&gt;29 추출 데이터의 범위를 조정하는 추출 필터&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #555555; text-align: start;&quot;&gt;30 분석 데이터의 범위를 조정하는 데이터 원본 필터&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #555555; text-align: start;&quot;&gt;31 데이터 탐색에서 가장 많이 활용되는 차원 필터&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #555555; text-align: start;&quot;&gt;32 적용 방식에 따라 다른 의미를 가지는 측정값 필터&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #555555; text-align: start;&quot;&gt;33 작동 우선순위를 바꾸는 필터 #1 - 컨텍스트 필터&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #555555; text-align: start;&quot;&gt;34 작동 우선순위를 바꾸는 필터 #2 - 테이블 계산 필터와 숨기기&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #555555; text-align: start;&quot;&gt;연습 문제&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #555555; text-align: start;&quot;&gt;CHAPTER 09 이중 축을 활용하여 비교 맥락 만들기&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #555555; text-align: start;&quot;&gt;35 이중 축의 정의, 2개의 축&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #555555; text-align: start;&quot;&gt;36 이중 축의 가장 중요한 의미, 비교 맥락 만들기&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #555555; text-align: start;&quot;&gt;37 이중 축의 추가적인 활용법, 디자인 요소 더하기&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #555555; text-align: start;&quot;&gt;38 이중 축 vs. 결합 축&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #555555; text-align: start;&quot;&gt;39 이중 축을 절묘하게 활용하는 도넛 차트 연습 문제&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #555555; text-align: start;&quot;&gt;CHAPTER 10 분석 패널을 활용한 데이터 시각화 고도화&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #555555; text-align: start;&quot;&gt;40 분석 패널 소개&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #555555; text-align: start;&quot;&gt;41 데이터의 의미를 명확히 드러내는 보조선&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #555555; text-align: start;&quot;&gt;42 알고리즘을 활용하는 분석 기능&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #555555; text-align: start;&quot;&gt;연습 문제&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #555555; text-align: start;&quot;&gt;CHAPTER 11 공간적 맥락을 드러내는 지도 시각화&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #555555; text-align: start;&quot;&gt;43 태블로와 지도 시각화&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #555555; text-align: start;&quot;&gt;44 지도 시각화, 양날의 검&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #555555; text-align: start;&quot;&gt;45 지리경계 구역을 표현하는 지도 시각화&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #555555; text-align: start;&quot;&gt;46 위치를 정확히 짚어주는 지도 시각화&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #555555; text-align: start;&quot;&gt;연습 문제&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #555555; text-align: start;&quot;&gt;CHAPTER 12 데이터 시각적 분석 되짚어 보기&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #555555; text-align: start;&quot;&gt;PART 04 태블로로 완성하는 정보 종합 상황판, 대시보드&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #555555; text-align: start;&quot;&gt;CHAPTER 13 대시보드는 시트의 조합, 그 이상이다&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #555555; text-align: start;&quot;&gt;47 대시보드 구성 요소 - 시트, 개체, 동작&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #555555; text-align: start;&quot;&gt;48 대시보드 콘텐츠 구성, 육하원칙(5W1H)을 따라가자&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #555555; text-align: start;&quot;&gt;49 대시보드 실습을 위한 차트 준비&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #555555; text-align: start;&quot;&gt;50 대시보드 인터페이스&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #555555; text-align: start;&quot;&gt;51 대시보드 구성 방법 - 바둑판식 vs. 부동&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #555555; text-align: start;&quot;&gt;52 시트, 개체, 동작을 활용한 대시보드 구성&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #555555; text-align: start;&quot;&gt;53 태블로를 파워포인트처럼 활용하는 스토리&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #555555; text-align: start;&quot;&gt;CHAPTER 14 대시보드 되짚어 보기&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #555555; text-align: start;&quot;&gt;CHAPTER 15 기본 차트를 넘어 더 넓은 시각화의 영역으로&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #555555; text-align: start;&quot;&gt;54 바 차트가 지루할 땐 변형을 생각해보세요&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #555555; text-align: start;&quot;&gt;55 날짜 및 시간에 따른 변화를 표현하는 다른 방법들&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #555555; text-align: start;&quot;&gt;56 간트 차트의 다양한 활용법&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;목차에서 알수 있듯이, 엄청 많은 내용을 책에 담고 있다. 책이 두꺼워 보이지 않았는데 넘기다보니 끝없이 많은 내용이 펼쳐졌고 태블로를 활용한 시각화에 대한 거의 모든걸 알 수 있을 것 같은 느낌이었다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/6W885/btsAjgmq4fj/N0CIBAennKaKTb2c2O3czk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/6W885/btsAjgmq4fj/N0CIBAennKaKTb2c2O3czk/img.jpg&quot; data-origin-width=&quot;3000&quot; data-origin-height=&quot;4000&quot; data-is-animation=&quot;false&quot; data-filename=&quot;KakaoTalk_20231113_192603579_01.jpg&quot; style=&quot;width: 49.4186%; margin-right: 10px;&quot; data-widthpercent=&quot;50&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/6W885/btsAjgmq4fj/N0CIBAennKaKTb2c2O3czk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F6W885%2FbtsAjgmq4fj%2FN0CIBAennKaKTb2c2O3czk%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;3000&quot; height=&quot;4000&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bPcRAc/btsAcQWB5xV/r3rNa1kOdvDp3dFHSBt0A0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bPcRAc/btsAcQWB5xV/r3rNa1kOdvDp3dFHSBt0A0/img.jpg&quot; data-origin-width=&quot;3000&quot; data-origin-height=&quot;4000&quot; data-is-animation=&quot;false&quot; data-filename=&quot;KakaoTalk_20231113_192603579_02.jpg&quot; style=&quot;width: 49.4186%;&quot; data-widthpercent=&quot;50&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bPcRAc/btsAcQWB5xV/r3rNa1kOdvDp3dFHSBt0A0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbPcRAc%2FbtsAcQWB5xV%2Fr3rNa1kOdvDp3dFHSBt0A0%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;3000&quot; height=&quot;4000&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cbjXKy/btsAfBxU5rk/uOy8pKzcDhQwrmMWNk8Dc1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cbjXKy/btsAfBxU5rk/uOy8pKzcDhQwrmMWNk8Dc1/img.jpg&quot; data-origin-width=&quot;3000&quot; data-origin-height=&quot;4000&quot; data-is-animation=&quot;false&quot; data-filename=&quot;KakaoTalk_20231113_192603579_03.jpg&quot; style=&quot;width: 49.4186%; margin-right: 10px; margin-top: 10px;&quot; data-widthpercent=&quot;50&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cbjXKy/btsAfBxU5rk/uOy8pKzcDhQwrmMWNk8Dc1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcbjXKy%2FbtsAfBxU5rk%2FuOy8pKzcDhQwrmMWNk8Dc1%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;3000&quot; height=&quot;4000&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/K2Vte/btsz9yvCUbq/ebM1kpwGOKqO7IjMxC0WTK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/K2Vte/btsz9yvCUbq/ebM1kpwGOKqO7IjMxC0WTK/img.jpg&quot; data-origin-width=&quot;3000&quot; data-origin-height=&quot;4000&quot; data-is-animation=&quot;false&quot; data-filename=&quot;KakaoTalk_20231113_192603579_04.jpg&quot; style=&quot;width: 49.4186%; margin-top: 10px;&quot; data-widthpercent=&quot;50&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/K2Vte/btsz9yvCUbq/ebM1kpwGOKqO7IjMxC0WTK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FK2Vte%2Fbtsz9yvCUbq%2FebM1kpwGOKqO7IjMxC0WTK%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;3000&quot; height=&quot;4000&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;책 내용은 데이터 시각화에 대한 이론과 태블로에 대한 설명으로 시작한다. 이 책의 실습 내용은 태블로 무료 버전을 활용하는 것으로, 누구나 따라하며 공부할 수 있다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;KakaoTalk_20231113_192603579_05.jpg&quot; data-origin-width=&quot;3000&quot; data-origin-height=&quot;4000&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bE49QI/btsAks0Xydu/qAKkJIerfiIfs90JlmsGYk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bE49QI/btsAks0Xydu/qAKkJIerfiIfs90JlmsGYk/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bE49QI/btsAks0Xydu/qAKkJIerfiIfs90JlmsGYk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbE49QI%2FbtsAks0Xydu%2FqAKkJIerfiIfs90JlmsGYk%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;3000&quot; height=&quot;4000&quot; data-filename=&quot;KakaoTalk_20231113_192603579_05.jpg&quot; data-origin-width=&quot;3000&quot; data-origin-height=&quot;4000&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;데이터 시각화는 이론 공부가 아니라 직접 해보는 실습이 주요하다고 생각하는데 이런 연습 문제가 챕터마다 있어 직접 배웠던 내용을 따라하고, 응용해볼 수 있어 더 기억에 잘 남고 손에 익어 시각화 방법을 더 잘 활용할 수 있게 될 것 같다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;KakaoTalk_20231113_192603579_06.jpg&quot; data-origin-width=&quot;3000&quot; data-origin-height=&quot;4000&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/OhTgc/btsAjhlknwg/gFRhlWbnD6K5uwKP0q8FQk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/OhTgc/btsAjhlknwg/gFRhlWbnD6K5uwKP0q8FQk/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/OhTgc/btsAjhlknwg/gFRhlWbnD6K5uwKP0q8FQk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FOhTgc%2FbtsAjhlknwg%2FgFRhlWbnD6K5uwKP0q8FQk%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;3000&quot; height=&quot;4000&quot; data-filename=&quot;KakaoTalk_20231113_192603579_06.jpg&quot; data-origin-width=&quot;3000&quot; data-origin-height=&quot;4000&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;내가 왼쪽의 단순한 라인 차트를 색깔과 요소들을 잘 조합해 오른쪽과 같은 그래프로 만들 수 있게 되다니 믿기지 않았다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cpmyEW/btsAaFODhLU/3ma1LuiwksNXPhMxaWeNDK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cpmyEW/btsAaFODhLU/3ma1LuiwksNXPhMxaWeNDK/img.jpg&quot; data-origin-width=&quot;3000&quot; data-origin-height=&quot;4000&quot; data-is-animation=&quot;false&quot; data-filename=&quot;KakaoTalk_20231113_192603579_07.jpg&quot; style=&quot;width: 49.4186%; margin-right: 10px;&quot; data-widthpercent=&quot;50&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cpmyEW/btsAaFODhLU/3ma1LuiwksNXPhMxaWeNDK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcpmyEW%2FbtsAaFODhLU%2F3ma1LuiwksNXPhMxaWeNDK%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;3000&quot; height=&quot;4000&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/tT1CU/btsz93a7Bgy/Y23hRK12G7OLX8617Eeog0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/tT1CU/btsz93a7Bgy/Y23hRK12G7OLX8617Eeog0/img.jpg&quot; data-origin-width=&quot;3000&quot; data-origin-height=&quot;4000&quot; data-is-animation=&quot;false&quot; data-filename=&quot;KakaoTalk_20231113_192603579_08.jpg&quot; style=&quot;width: 49.4186%;&quot; data-widthpercent=&quot;50&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/tT1CU/btsz93a7Bgy/Y23hRK12G7OLX8617Eeog0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FtT1CU%2Fbtsz93a7Bgy%2FY23hRK12G7OLX8617Eeog0%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;3000&quot; height=&quot;4000&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;이책으로 공부하면 전체적으로 여러가지 다양한 그래프들을 접해보며 시각화에 대한 감각도 기를 수 있고, 태블로 활용법도 잘 숙지하여 분석 결과를 원하는대로 시각화할 수 있을 것 같다.&lt;/p&gt;</description>
      <category>책</category>
      <author>yongyogn</author>
      <guid isPermaLink="true">https://data-science-study.tistory.com/131</guid>
      <comments>https://data-science-study.tistory.com/131#entry131comment</comments>
      <pubDate>Mon, 13 Nov 2023 19:37:20 +0900</pubDate>
    </item>
  </channel>
</rss>