<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
        <title>Tabula rasa</title>
        <description>Tabula rasa - corazzon</description>
        <link>http://corazzon.github.io</link>
        <link>http://corazzon.github.io</link>
        <lastBuildDate>2026-04-06T00:59:36+00:00</lastBuildDate>
        <pubDate>2026-04-06T00:59:36+00:00</pubDate>
        <ttl>1800</ttl>


        <item>
                <title>[도서 리뷰] 맛있는 디자인 피그마 with AI</title>
                <description>&lt;p&gt;이 리뷰는 한빛미디어의 나는리뷰어다 활동으로 책을 무상으로 제공받아 작성하였습니다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/0Ti0kdO.png&quot; width=&quot;300&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;이-책을-읽게-된-계기&quot;&gt;이 책을 읽게 된 계기&lt;/h2&gt;

&lt;p&gt;발표자료를 만들다 보면 내용만 잘 정리한다고 해서 좋은 자료가 되는 것은 아니라는 점을 자주 느끼게 된다. 같은 내용을 담고 있어도 어떤 자료는 훨씬 정돈되어 보이고, 어떤 자료는 다소 산만하게 느껴지는데, 그 차이는 대개 정보의 위계와 배치, 그리고 전체적인 일관성에서 생긴다. 이런 이유로 발표자료를 조금 더 안정감 있게 만들기 위해 피그마를 활용하게 되는 경우가 있다. 피그마는 단순히 화면을 그리는 도구라기보다, 텍스트와 도형, 이미지, 표, 아이콘 같은 요소를 일정한 규칙 안에서 정리하고 반복해서 활용하기에 적합한 도구이기 때문이다. 제목 위치와 크기를 일정하게 맞추거나, 강조 박스와 카드형 요소를 반복해서 쓰거나, 전체 자료의 분위기를 흔들리지 않게 유지하는 데 분명한 장점이 있다. 이런 점 때문에 발표자료를 더 정돈된 방식으로 만들고 싶다는 생각에서 이 책을 읽게 되었다.&lt;/p&gt;

&lt;p&gt;이 책을 보면서 먼저 든 생각은 피그마를 기능 중심으로만 설명하지 않는다는 점이었다. 기본 기능에서 출발하지만, 점차 오토레이아웃, 컴포넌트, 베리언트, 베리어블, 반응형, 모드 설계까지 이어지는 구성이어서 피그마를 왜 실무에서 많이 쓰는지 이해하기 쉬웠다. 발표자료를 자주 만드는 입장에서는 이런 흐름이 특히 의미 있게 느껴진다. 발표자료 역시 한 장씩 따로 만드는 것이 아니라, 여러 장의 슬라이드를 하나의 체계 안에서 정리해야 하기 때문이다. 그런 점에서 이 책은 피그마 사용법을 익히는 책이면서 동시에 정보를 구조적으로 다루는 방식을 익히게 해주는 책이라는 인상을 준다.&lt;/p&gt;

&lt;h2 id=&quot;발표자료를-자주-만드는-사람에게-도움이-되는-이유&quot;&gt;발표자료를 자주 만드는 사람에게 도움이 되는 이유&lt;/h2&gt;

&lt;p&gt;이 책은 UI/UX 디자인 입문서이지만, 발표자료를 자주 만드는 사람에게도 충분히 참고가 된다. 발표자료는 한 장만 보기 좋게 만드는 것보다, 전체 흐름 안에서 같은 기준을 유지하는 것이 더 중요하다. 표지, 목차, 배경 설명, 문제 정의, 해결 방안, 기대 효과, 일정, 결론처럼 반복되는 슬라이드 구조가 있을 때 이를 감각에만 의존해 구성하면 자료 전체가 쉽게 흔들릴 수 있다. 반면 이 책에서 다루는 스타일 등록, 컬러 시스템, 타이포그래피, 단위 체계, 컴포넌트 설계 개념을 이해하면 발표자료도 조금 더 안정적으로 정리할 수 있다.&lt;/p&gt;

&lt;p&gt;예를 들어 슬라이드 제목은 어떤 위치와 크기로 둘지, 본문은 어느 정도 밀도로 유지할지, 핵심 수치나 메시지는 어떤 형식으로 강조할지 같은 기준을 미리 정할 수 있다. 그렇게 되면 슬라이드를 추가할 때마다 형식을 다시 고민하는 시간이 줄고, 자료 전체의 인상도 훨씬 정돈된다. 결국 이 책은 디자이너를 위한 책이면서도, 발표자료를 더 일관성 있게 만들고 싶은 사람에게 실질적인 힌트를 줄 수 있다.&lt;/p&gt;

&lt;h2 id=&quot;uiux-디자이너처럼-발표자료를-만들고-싶은-사람에게-주는-점&quot;&gt;UI/UX 디자이너처럼 발표자료를 만들고 싶은 사람에게 주는 점&lt;/h2&gt;

&lt;p&gt;많은 사람이 UI/UX 디자이너처럼 발표자료를 만들고 싶다고 할 때, 실제로 바라는 것은 화려한 표현보다도 깔끔한 정렬, 적절한 여백, 분명한 정보 위계, 안정된 시각적 톤에 가까운 경우가 많다. 그런 점에서 이 책은 도움이 된다. 오토레이아웃을 배우면 요소 사이 간격과 정렬을 일정하게 맞추는 방식을 이해할 수 있고, 컴포넌트와 베리언트를 배우면 반복되는 제목 박스, 요약 카드, 강조 영역 같은 요소를 통일감 있게 관리하는 감각을 익힐 수 있다. 베리어블과 컬러 시스템은 자료 전체의 색상과 강조 기준을 정리하는 데 참고가 된다.&lt;/p&gt;

&lt;p&gt;이런 내용은 발표자료 작업과도 자연스럽게 연결된다. 발표는 짧은 시간 안에 핵심을 전달해야 하므로, 구조가 조금만 복잡해도 읽는 사람이 흐름을 놓치기 쉽다. 이 책은 보기 좋은 화면을 만드는 데서 그치지 않고, 정보를 보다 읽기 쉽게 정리하는 방식까지 생각하게 해준다는 점에서 의미가 있다. 발표자료를 만들 때도 결국 필요한 것은 장식보다 구조라는 점을 다시 확인하게 된다.&lt;/p&gt;

&lt;h2 id=&quot;작업-효율을-높이는-데-참고할-수-있는-부분&quot;&gt;작업 효율을 높이는 데 참고할 수 있는 부분&lt;/h2&gt;

&lt;p&gt;이 책에서 눈에 띄는 부분 가운데 하나는 AI 기능을 단순한 체험 요소가 아니라, 반복 작업을 줄이는 보조 도구로 다룬다는 점이다. 소개된 내용을 보면 이미지 생성과 편집, 텍스트 다듬기, 번역, 레이어 이름 정리, 유사 에셋 탐색, 초안 UI 생성 등 실제 작업 과정에서 시간을 줄일 수 있는 기능들이 포함되어 있다. 이런 기능은 발표자료를 자주 만드는 사람에게도 그대로 연결된다. 초안 문장을 짧게 다듬거나, 여러 슬라이드에서 반복되는 표현을 정리하거나, 시각 요소를 빠르게 정돈하는 방식으로 활용할 수 있기 때문이다.&lt;/p&gt;

&lt;p&gt;특히 발표자료는 새로 만드는 시간보다 수정하고 다듬는 시간이 더 많이 드는 경우가 많다. 설명을 줄이고, 표현을 바꾸고, 레이아웃을 다시 맞추는 과정이 반복되는데, 이 책은 그런 반복 작업을 어떻게 가볍게 할 수 있을지 생각해보게 한다. 그래서 디자이너가 아니더라도 강사, 기획자, 마케터, PM처럼 발표자료를 자주 만드는 사람에게 참고할 만한 지점이 있다.&lt;/p&gt;

&lt;h2 id=&quot;발표자료를-정리하는-방식에-주는-힌트&quot;&gt;발표자료를 정리하는 방식에 주는 힌트&lt;/h2&gt;

&lt;p&gt;이 책을 보며 얻을 수 있는 가장 실질적인 힌트는 발표자료도 하나의 체계로 관리해야 한다는 점이다. 많은 경우 슬라이드마다 조금씩 다른 방식으로 제목을 두고, 강조 박스를 만들고, 색을 쓰다 보니 전체 자료가 통일감을 잃게 된다. 그런데 이 책에서 설명하는 파운데이션, 디자인 토큰, 베리어블, 컴포넌트 개념은 이런 문제를 줄이는 데 도움이 된다.&lt;/p&gt;

&lt;p&gt;이를 발표자료에 적용하면 제목, 소제목, 본문, 캡션의 위계를 먼저 정하고, 핵심 수치 강조 영역이나 사례 소개 박스, 비교 카드, 일정 정리 구간 같은 반복 요소를 일정한 형식으로 관리할 수 있다. 이렇게 기준을 세워두면 슬라이드가 늘어나도 자료 전체의 톤을 유지하기가 훨씬 쉬워진다. 결국 이 책은 감각에만 기대지 않고, 반복 가능한 규칙으로 발표자료의 품질을 관리하는 데 참고가 될 수 있다.&lt;/p&gt;

&lt;h2 id=&quot;정리&quot;&gt;정리&lt;/h2&gt;

&lt;p&gt;이 책은 피그마를 처음 배우는 사람에게는 비교적 체계적인 입문서가 될 수 있고, 이미 몇 번 사용해본 사람에게는 기능 중심의 사용에서 구조 중심의 활용으로 넘어가는 계기를 줄 수 있다. 그리고 그 활용 범위는 화면 디자인에만 머물지 않는다. 발표자료를 자주 만드는 사람에게도 충분히 도움이 된다. 피그마를 활용하면 일반적인 문서 도구로는 만들기 어려운 정돈된 레이아웃과 반복 가능한 시각 규칙을 구현하기가 쉬운데, 이 책은 그 장점을 이해하는 데 도움을 준다.&lt;/p&gt;

&lt;p&gt;특히 발표자료를 만들 때마다 슬라이드마다 분위기가 달라지거나, 더 정돈된 자료를 만들고 싶지만 무엇부터 손봐야 할지 막막했던 사람이라면 이 책을 통해 일정한 기준을 세우는 감각을 얻을 수 있다. 그런 점에서 이 책은 피그마 기능을 익히는 책이면서 동시에 발표자료를 좀 더 차분하고 일관되게 정리하는 방법을 생각해보게 하는 책이라고 볼 수 있다.&lt;/p&gt;
</description>
                <link>http://corazzon.github.io/hb-figma-ai-book</link>
                <guid>http://corazzon.github.io/hb-figma-ai-book</guid>
                <pubDate>2026-04-05T00:00:00+00:00</pubDate>
        </item>

        <item>
                <title>[도서 리뷰] 혼자 공부하는 바이브 코딩 with 클로드 코드</title>
                <description>&lt;p&gt;이 리뷰는 한빛미디어의 나는리뷰어다 활동으로 책을 무상으로 제공받아 작성하였습니다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/RGkOq6p.jpeg&quot; height=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;p&gt;요즘 바이브 코딩을 해보면 우리가 오랫동안 믿어왔던 “코딩은 배워야만 할 수 있다”는 전제가 빠르게 무너지고 있다는게 느껴진다. 코딩을 어렵게 만드는 요소는 단지 문법이 아니라, 문법을 배우기 전에는 무엇도 만들 수 없다는 구조 자체였다. 결과를 보기까지 시간이 오래 걸리고, 오류가 나면 어디서부터 손대야 할지 막막해지고, 그 과정이 반복되면서 “이건 내 영역이 아니다”라는 결론으로 이어지곤 했다. 『혼자 공부하는 바이브 코딩 with 클로드 코드』는 그 고전적인 학습 경로를 뒤집는다. 이 책에서 독자는 먼저 결과물을 만들고, 그 결과물을 개선하는 과정에서 필요한 만큼만 이해하게 된다. 그래서 이 책은 코딩 입문서라기보다, AI 시대에 “만드는 사람”이 되는 방법을 안내하는 실전형 가이드에 가깝다.&lt;/p&gt;

&lt;p&gt;책의 초반에서 강조하는 바이브 코딩이라는 개념은 처음에는 다소 가볍게 느껴질 수도 있지만, 실습을 따라가다 보면 이것이 단순한 유행어가 아니라 현실적으로 가장 효율적인 개발 방식 중 하나가 되어가고 있음을 체감하게 된다. 바이브 코딩은 사람과 AI의 역할을 명확히 나눈다. 사람은 무엇을 만들지, 왜 만드는지, 어떤 기준으로 좋은 결과인지 같은 의도와 판단을 책임지고, AI는 그 의도를 구현하는 데 필요한 코드 작성과 반복 작업, 수정과 확장 같은 실행을 담당한다. 이 역할 분담이 자연스럽게 받아들여지는 순간, 코딩은 더 이상 “내가 직접 코드를 쓸 수 있느냐”의 문제가 아니라 “내가 원하는 결과를 충분히 구체적으로 정의하고 지시할 수 있느냐”의 문제로 바뀐다.&lt;/p&gt;

&lt;p&gt;이 변화가 특히 크게 와 닿는 이유는, 책이 비전공자를 대상으로 한 친절한 구성임에도 불구하고 결과물이 결코 가볍지 않기 때문이다. 단순한 장난감 예제를 따라 치는 수준에서 끝나는 것이 아니라, 웹페이지를 만들고 기능을 붙이고, 부족한 부분을 찾아 개선하고, 결국에는 실제로 배포를 염두에 둔 흐름까지 경험하게 한다. 그 과정에서 HTML이나 CSS 같은 기초 문법이 아예 중요하지 않다고 말하는 것은 아니지만, 그 지식이 “시작하기 위한 조건”이 아니라 “더 잘 만들기 위한 도구”로 위치가 바뀐다. 이 순서 전환이야말로 비전공자에게는 가장 큰 선물이다. 배워야만 시작할 수 있는 것이 아니라, 시작하면서 배우는 구조가 되기 때문이다.&lt;/p&gt;

&lt;p&gt;중간으로 넘어가며 프롬프트를 다루는 방식은 이 책의 메시지를 더욱 선명하게 만든다. 여기에서 프롬프트는 단순한 명령어가 아니라, 기획 문서이자 요구사항 정의서이자 협업 지시서처럼 작동한다. 무엇을 만들고 싶은지 막연히 말하는 대신, 어떤 기능이 필요하고, 어떤 흐름으로 만들고, 어떤 기준으로 검토할지를 단계적으로 전달하도록 유도한다. 마케팅 포트폴리오 같은 실습은 특히 인상적인데, 개발 경험이 없는 사람도 자신이 가진 업무 언어와 목표를 AI가 이해할 수 있는 형태로 정리해 전달하기만 하면, 실제로 작동하는 결과물을 얻을 수 있다는 사실을 보여준다. 여기서 핵심은 코딩 지식이 아니라 사고의 구조화 능력이고, 그 능력은 전공 여부와 무관하게 누구나 훈련을 통해 갖출 수 있다는 점이다.&lt;/p&gt;

&lt;p&gt;클로드 코드로 넘어가면 책의 분위기는 한층 더 ‘실제 개발’에 가까워진다. 터미널을 열고 프로젝트 폴더를 준비하고, 필요한 데이터나 파일을 구성하고, 실행과 수정의 루프를 돌리는 과정은 개발자에게 익숙한 흐름이지만, 이 책은 그 흐름을 비전공자도 따라갈 수 있도록 AI를 중심에 둔 방식으로 재구성한다. 손글씨 인식 프로그램 같은 예제는 언뜻 보면 난도가 높아 보이지만, 독자는 딥러닝 이론을 깊게 파고들기보다는 “지금 단계에서 무엇을 만들어야 하는지”를 AI에게 명확히 전달하고, 그 결과를 검토하며 다음 지시로 이어가는 방식으로 진행하게 된다. 결국 독자는 코드를 외우지 않아도 개발 프로세스를 경험하게 되고, 이 경험이 쌓일수록 코딩은 두려운 영역이 아니라 관리 가능한 작업으로 바뀐다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/wuomA0a.jpeg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;p&gt;이 책이 더 설득력 있게 느껴지는 지점은 AI를 만능으로 포장하지 않는다는 데 있다. AI가 실수할 수 있고, 맥락을 놓칠 수 있고, 때로는 엉뚱한 결과를 내놓을 수 있다는 현실을 숨기지 않는다. 대신 그 상황에서 사람이 무엇을 해야 하는지를 구체적으로 알려준다. 프롬프트를 더 구체화하거나, 단계를 나누어 지시하거나, 검증 규칙을 추가하거나, 컨텍스트를 관리하는 방식으로 문제를 해결하는 흐름이 자연스럽게 포함되어 있다. 이는 단지 “AI를 쓰면 쉽다”가 아니라, “AI와 함께 일하려면 어떤 운영 감각이 필요한가”를 체득하게 만드는 구성이다. 그래서 책을 읽고 나면 AI를 대하는 태도가 바뀐다. 막연한 기대나 불신이 아니라, 도구로서의 AI를 어떻게 통제하고 활용할지에 대한 실무적인 감각이 생긴다.&lt;/p&gt;

&lt;p&gt;후반부의 AI 에이전트 개념은 이 책이 단순한 입문서가 아니라는 것을 다시 한 번 확인시킨다. 역할을 나눈 여러 AI를 팀처럼 운영하며 코드 리뷰, 최적화, UX 개선 같은 작업을 분담시키는 방식은, 혼자서도 작은 개발 조직을 운영하는 듯한 경험을 제공한다. 이 부분에서 중요한 메시지는 개발자가 아닌 사람에게도 크게 다가온다. 개발을 한다는 것은 결국 역할과 프로세스의 조합이며, 내가 직접 코드를 쓰지 않더라도 팀이 움직일 수 있도록 요구사항을 정리하고 방향을 제시할 수 있다면 제품을 만들어낼 수 있다는 것이다. 즉, 비전공자가 코딩을 “배우지 않고도” 가능해지는 이유는 AI가 코드를 대신 써주기 때문만이 아니라, 개발이라는 작업이 본질적으로 협업과 의사결정의 연속이라는 점을 AI가 보완해주기 때문이다.&lt;/p&gt;

&lt;p&gt;마지막으로 MCP와 외부 연동, 배포와 데이터베이스까지 이어지는 흐름은 “AI로 만든 결과물은 연습용”이라는 편견을 완전히 깨준다. 노션 같은 업무 도구와 연결하고, 데이터베이스를 붙이고, 배포를 통해 누구나 접속할 수 있는 형태로 확장하는 과정은 실제 서비스 개발의 핵심 단계들이다. 그런데 이 책은 그 복잡한 단계를 비전공자도 접근할 수 있는 언어로 풀고, 무엇을 입력하고 무엇을 확인해야 하는지의 관점으로 안내한다. 물론 코드와 시스템을 깊이 이해하는 사람이 더 유리한 순간은 여전히 존재하겠지만, 적어도 “이걸 하려면 먼저 몇 달은 공부해야 한다”는 시대는 확실히 지나가고 있다는 메시지가 강하게 전달된다.&lt;/p&gt;

&lt;p&gt;결국 이 책을 읽고 남는 결론은 명확하다. 이제 코딩은 개발자만의 기술이 아니라, 문제를 발견하고 해결하고 싶은 누구에게나 열려 있는 실행 방식이 되고 있다. 몇 가지 프롬프트만으로도 시작할 수 있고, 결과물을 보며 수정해나가는 과정에서 점점 더 나아질 수 있으며, 무엇보다도 “내가 직접 코드를 쓰지 못한다”는 이유로 만들기를 포기할 필요가 없어진다. 지금까지 코딩을 멀리해왔던 비전공자라면, 이 책은 단지 친절한 안내서가 아니라 스스로에게 “나도 만들 수 있다”는 확신을 주는 출발점이 될 것이다. 개발자에게도 이 책은 유용하다. 더 빠른 구현을 넘어, 앞으로의 개발이 어떤 방식으로 재편될지, 그리고 AI를 팀으로 운영하는 감각이 왜 중요한지에 대해 현실적인 힌트를 제공하기 때문이다.&lt;/p&gt;

&lt;p&gt;이제는 정말로, 아이디어가 있고 목표가 있고 그걸 설명할 수만 있다면 누구나 코딩을 할 수 있는 시대에 들어섰다. 『혼자 공부하는 바이브 코딩 with 클로드 코드』는 그 시대를 구호로 말하지 않고, 실습과 흐름으로 설득하는 책이었다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/6629Cc9.jpeg&quot; height=&quot;600&quot; /&gt;&lt;/p&gt;
</description>
                <link>http://corazzon.github.io/hb-vibe-coding</link>
                <guid>http://corazzon.github.io/hb-vibe-coding</guid>
                <pubDate>2025-12-25T00:00:00+00:00</pubDate>
        </item>

        <item>
                <title>[도서 리뷰] 요즘 교사를 위한 AI 디지털 수업 설계 가이드 with 2022 개정 교육과정</title>
                <description>&lt;ul&gt;
  &lt;li&gt;한빛미디어 서평단 &lt;나는리뷰어다&gt; 활동을 위해서 책을 협찬 받아 작성된 서평입니다.&lt;/나는리뷰어다&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;요즘-교사를-위한-ai-디지털-수업-설계-가이드-with-2022-개정-교육과정-리뷰&quot;&gt;요즘 교사를 위한 AI 디지털 수업 설계 가이드 with 2022 개정 교육과정 리뷰&lt;/h2&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/Ed4wO70.jpeg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;p&gt;평소 강의나 발표를 준비할 때 디지털 도구나 AI를 어떻게 활용하면 더 효과적일지 고민하던 터라, 이 책의 목차를 보고 흥미가 생겼다. 책의 대상은 교사지만, 내용을 읽다 보니 초·중·고 교실을 넘어 &lt;strong&gt;대중 강연이나 워크숍을 기획할 때도 활용할 수 있는 아이디어가 많았다&lt;/strong&gt;. 무엇보다 “기술은 수업의 본질을 대체하지 않고 보완한다”는 출판사 소개 문구가 특히 마음에 남았다.&lt;/p&gt;

&lt;hr /&gt;

&lt;h3 id=&quot;미래형-교육과정에서-강의의-방향성을-보다&quot;&gt;미래형 교육과정에서 강의의 방향성을 보다&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Part 01&lt;/strong&gt;은 2022 개정 교육과정의 배경과 변화, 그리고 ‘깊이 있는 학습’과 ‘개념 기반 탐구 학습’을 설명한다. 학교 교육의 흐름을 다루지만, 강의나 발표에서도 &lt;strong&gt;단순 지식 전달을 넘어 ‘왜’와 ‘어떻게’를 탐구하게 하는 설계가 필요하다&lt;/strong&gt;는 점을 일깨워준다.
또 ‘아날로그 수업에 왜 디지털 기술이 필요한가’라는 질문은 발표 도구를 선택할 때 고민하는 부분과 맞닿아 있다. 청중이 더 깊이 참여하고 이해하도록 돕는 데 기술을 활용해야 한다는 점이 와닿았다.&lt;/p&gt;

&lt;hr /&gt;

&lt;h3 id=&quot;디지털-기반-아날로그-수업의-원칙에서-얻은-힌트&quot;&gt;디지털 기반 아날로그 수업의 원칙에서 얻은 힌트&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Part 02&lt;/strong&gt;는 책의 핵심이다. ‘디지털 기반 아날로그 수업(디.기.아.수.)’은 기술로 모든 걸 대체하지 않고, 아날로그 수업의 장점을 살리면서 디지털의 확장성을 더하자는 개념이다.
이 부분을 읽으면서 강의 자료 제작이나 청중과의 소통 방식을 다시 돌아보게 됐다. 특히 책에서 강조한 학습 과학의 세 가지 원칙은 강연에도 적용할 만했다.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;이중 부호화(Dual Coding)&lt;/strong&gt;: 이미지와 텍스트를 함께 제시할 때 이해와 기억이 잘 된다는 원리. 슬라이드 디자인에 바로 적용할 수 있다.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;인지 부하 이론(Cognitive Load Theory)&lt;/strong&gt;: 한 화면에 너무 많은 정보를 담지 말고 핵심 메시지를 나눠 제시해야 한다는 점이 유용했다.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;인출 연습(Retrieval Practice)&lt;/strong&gt;: 청중이 중간중간 스스로 내용을 떠올릴 기회를 주면 학습 효과가 높아진다는 팁은 워크숍 진행에도 활용할 수 있겠다.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;또 책에서 소개한 &lt;strong&gt;백워드 설계(Backward Design)&lt;/strong&gt; 원리도 도움이 됐다. 강의의 목표를 먼저 설정하고 그에 맞게 흐름과 활동을 거꾸로 배치하는 방식인데, 강연 스토리라인을 짤 때 활용하면 메시지가 더 선명해질 것 같다.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/PumZ7Rf.jpeg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;h3 id=&quot;ai와-피드백-도구의-활용-가능성&quot;&gt;AI와 피드백 도구의 활용 가능성&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Part 03&lt;/strong&gt;에서는 교과별 AI 도구 활용 예시와 평가·기록 방안이 나오는데, 교육 현장을 넘어 다양한 강의 상황에서도 쓸 만한 아이디어가 많았다.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;강연 중간에 실시간 퀴즈나 투표를 AI·디지털 툴로 진행해 참여를 높이는 방법&lt;/li&gt;
  &lt;li&gt;강연 후 디지털 설문과 AI 요약 기능을 활용해 청중 피드백을 빠르게 분석하는 아이디어&lt;/li&gt;
  &lt;li&gt;‘탐구 → 내재화 → 활용 → 성찰’로 이어지는 &lt;strong&gt;배움의 4단계 흐름&lt;/strong&gt;을 발표 설계에 응용해 청중이 생각을 정리하도록 돕는 방식&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;이런 아이디어들은 청중이 단순히 듣기만 하는 강연을 넘어 적극적으로 사고하고 참여하도록 설계할 때 도움이 된다.&lt;/p&gt;

&lt;hr /&gt;

&lt;h3 id=&quot;강사가-직접-만드는-도구에-대한-흥미&quot;&gt;강사가 직접 만드는 도구에 대한 흥미&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Part 04&lt;/strong&gt;에서는 GPTs, Claude의 Artifact, 구글 스프레드시트와 GAS를 활용한 &lt;strong&gt;노코드 기반의 수업·평가 도구 개발&lt;/strong&gt;을 다룬다.
전문적인 코딩 지식이 없어도 강연 후 간단한 설문 앱이나 피드백 자동화 도구를 만들어 현장에서 바로 활용할 수 있다는 점이 특히 흥미로웠다. 강의를 자주 하는 입장에서, 이런 도구들이 청중의 반응을 더 체계적으로 수집하고 개선점으로 연결할 수 있도록 도와줄 것 같다.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/vGgLiYL.jpeg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;h3 id=&quot;책소개에서-얻은-메시지&quot;&gt;책소개에서 얻은 메시지&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;교사의 철학을 지키면서 기술을 전략적으로 녹여낸다&lt;/strong&gt;는 점: 강의나 발표도 결국 강사의 메시지가 중심이라는 점을 다시 느꼈다.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;AI는 조력자일 뿐, 본질을 대체하지 않는다&lt;/strong&gt;는 점: 기술에 의존하기보다 청중과의 교감을 우선시해야겠다는 생각이 들었다.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;평가와 기록까지 통합 운영&lt;/strong&gt;: 강연의 사후 피드백과 개선을 체계적으로 이어갈 방법을 찾던 차에 도움이 될 것 같았다.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;창작자로서의 강사 역량&lt;/strong&gt;: 도구를 직접 만들어 활용할 수 있도록 안내하는 내용이 신선했다.&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;h3 id=&quot;강의의-본질을-지키면서-기술을-더하다&quot;&gt;강의의 본질을 지키면서 기술을 더하다&lt;/h3&gt;

&lt;p&gt;책을 읽으며 얻은 가장 큰 배움은 &lt;strong&gt;기술은 강의를 화려하게 꾸미는 장식이 아니라, 메시지를 더 잘 전달하고 참여를 높이기 위한 도구&lt;/strong&gt;라는 것이다.
초·중·고 교육 현장을 위한 실전 가이드지만, 대중을 대상으로 하는 강의와 발표를 준비하는 사람에게도 &lt;strong&gt;깊이 있는 학습 설계, 백워드 설계, 학습 과학 원리, AI 활용 피드백&lt;/strong&gt; 등 실질적인 아이디어를 준다.&lt;/p&gt;

&lt;p&gt;앞으로 강의를 준비할 때 기술에만 의존하기보다 청중의 경험과 메시지의 본질을 중심에 두고, 이 책에서 배운 원칙과 도구를 활용해보면 좋겠다는 생각이 들었다. 강연과 워크숍을 더 입체적이고 참여적인 경험으로 만들 수 있는 길을 보여준 책이었다.&lt;/p&gt;

&lt;hr /&gt;
&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/qdDVTI4.jpeg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;#디지털기반아날로그수업 #AI활용강의 #백워드설계 #워크숍팁 #책리뷰 #강의아이디어&lt;/strong&gt;&lt;/p&gt;
</description>
                <link>http://corazzon.github.io/hb-ai-teach</link>
                <guid>http://corazzon.github.io/hb-ai-teach</guid>
                <pubDate>2025-09-28T00:00:00+00:00</pubDate>
        </item>

        <item>
                <title>[도서 리뷰] 핸즈온 생성형 AI</title>
                <description>&lt;p&gt;한빛미디어 서평단 &lt;나는리뷰어다&gt; 활동을 위해서 책을 협찬 받아 작성된 서평입니다.&lt;/나는리뷰어다&gt;&lt;/p&gt;

&lt;h2 id=&quot;핸즈온-생성형-ai&quot;&gt;핸즈온 생성형 AI&lt;/h2&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/9U58pso.jpeg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;p&gt;생성형 AI가 화두인 요즘, 단순히 ChatGPT나 미드저니 같은 도구를 사용하는 것을 넘어서 실제로 모델을 이해하고 커스터마이징하고 싶을 때가 종종 있다.
모델을 좀 더 깊게 이해하고 원리를 이해해 보기에도 좋을 것 같아 이 책을 읽게 되었다.&lt;/p&gt;

&lt;h3 id=&quot;책의-전체적인-구성&quot;&gt;책의 전체적인 구성&lt;/h3&gt;

&lt;p&gt;이 책은 크게 3부로 나뉘어 있다. 1부에서는 기존에 공개된 모델들을 활용하는 방법을, 2부에서는 내 데이터로 모델을 파인튜닝하는 방법을, 3부에서는 좀 더 창의적이고 고급 활용법을 다룬다. 처음부터 끝까지 읽어보니 학습자의 수준을 고려한 단계적 구성이 잘 되어 있다는 느낌이었다.&lt;/p&gt;

&lt;h3 id=&quot;실습-프로젝트가-핵심&quot;&gt;실습 프로젝트가 핵심&lt;/h3&gt;

&lt;p&gt;각 장마다 실제 프로젝트가 포함되어 있는데, 이게 이 책의 가장 큰 장점이다. 예를 들어:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;2장에서는 언어 모델을 이용한 텍스트 생성 프로젝트&lt;/li&gt;
  &lt;li&gt;3장에서는 의미 기반 이미지 검색 프로젝트&lt;/li&gt;
  &lt;li&gt;5장에서는 Gradio로 인터랙티브 데모 만들기&lt;/li&gt;
  &lt;li&gt;6장에서는 검색 증강 생성(RAG) 프로젝트&lt;/li&gt;
  &lt;li&gt;7장에서는 SDXL 드림부스 LoRA 학습하기&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;이런 식으로 각 장에서 배운 이론을 바로 실습으로 적용해볼 수 있어서 이해도가 훨씬 높아진다. 특히 RAG나 LoRA 같은 최신 기법들을 직접 구현해볼 수 있다는 점이 좋았다.&lt;/p&gt;

&lt;h3 id=&quot;허깅페이스-생태계-활용&quot;&gt;허깅페이스 생태계 활용&lt;/h3&gt;

&lt;p&gt;책 전반에 걸쳐 허깅페이스의 다양한 도구들을 활용한다. 트랜스포머 라이브러리는 물론이고, 디퓨저스, 데이터셋, 그라디오까지 실무에서 실제로 많이 쓰이는 도구들을 배울 수 있다. API 문서만 보면 이해하기 어려운 부분들을 실제 예제를 통해 배우니까 훨씬 와닿았다.&lt;/p&gt;

&lt;h3 id=&quot;확산-모델-부분이-특히-인상적&quot;&gt;확산 모델 부분이 특히 인상적&lt;/h3&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/AJp8VbH.jpeg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;p&gt;4장과 5장에서 다루는 확산 모델 부분이 개인적으로 가장 도움이 되었다. 스테이블 디퓨전이 어떻게 작동하는지 수학적 원리부터 실제 구현까지 상세히 설명해준다. 특히 5장의 “주석이 달린 샘플링 루프” 부분은 코드 한 줄 한 줄이 무엇을 하는지 자세히 해설되어 있어서 확산 모델의 동작 과정을 완전히 이해할 수 있었다.&lt;/p&gt;

&lt;h3 id=&quot;파인튜닝이-핵심&quot;&gt;파인튜닝이 핵심&lt;/h3&gt;

&lt;p&gt;6장과 7장의 파인튜닝 부분도 실무적으로 매우 유용하다. 언어 모델과 이미지 생성 모델 모두 내 데이터로 어떻게 학습시키는지 알 수 있다. 특히 LoRA나 어댑터 같은 효율적인 파인튜닝 기법들을 배울 수 있어서 실제 프로젝트에서 바로 써먹을 수 있을 것 같다.&lt;/p&gt;

&lt;p&gt;양자화 부분도 인상적이었다. GPU 메모리가 제한적인 환경에서 어떻게 큰 모델을 효율적으로 돌릴 수 있는지 구체적인 방법을 제시한다.&lt;/p&gt;

&lt;h3 id=&quot;멀티모달까지-커버&quot;&gt;멀티모달까지 커버&lt;/h3&gt;

&lt;p&gt;텍스트, 이미지뿐만 아니라 9장에서는 오디오 생성까지 다룬다. 음성 합성이나 오디오 생성은 다른 책에서 잘 다루지 않는 영역인데, 이 책에서는 Whisper부터 음성 합성까지 전체적인 파이프라인을 배울 수 있다.&lt;/p&gt;

&lt;h3 id=&quot;최신-동향까지&quot;&gt;최신 동향까지&lt;/h3&gt;

&lt;p&gt;10장에서는 생성형 AI 분야의 최신 동향을 다룬다. 선호도 최적화, 긴 컨텍스트, 전문가 혼합 모델 등 최근 화두가 되는 기술들을 소개한다. 빠르게 변화하는 AI 분야에서 어떤 방향으로 발전하고 있는지 전체적인 그림을 그릴 수 있어서 좋았다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/T96KAxP.jpeg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;전체적으로 생성형 AI를 실무적으로 활용하고 싶다면 정말 좋은 책이다. 이론만 나열하는 게 아니라 실제로 손으로 코딩해가면서 배울 수 있어서, 읽고 나면 바로 프로젝트에 적용할 수 있는 실력이 생긴다. 생성형 AI 분야에서 전문성을 기르고 싶다면 한 번쯤 읽어볼 만한 책이다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/8s6Imou.jpeg&quot; height=&quot;600&quot; /&gt;&lt;/p&gt;
</description>
                <link>http://corazzon.github.io/hb-llm-engineering</link>
                <guid>http://corazzon.github.io/hb-llm-engineering</guid>
                <pubDate>2025-07-25T00:00:00+00:00</pubDate>
        </item>

        <item>
                <title>[도서 리뷰] LLM 엔지니어링</title>
                <description>&lt;p&gt;한빛미디어 서평단 &lt;나는리뷰어다&gt; 활동을 위해서 책을 협찬 받아 작성된 서평입니다.&lt;/나는리뷰어다&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/yHjCjxv.jpeg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;p&gt;『LLM 엔지니어링 – RAG, 파인튜닝, LLMOps로 완성하는 실무 중심의 LLM 애플리케이션 개발』은 실제 제품 수준의 LLM 애플리케이션을 개발하고 배포할 수 있도록 돕는 실전 중심의 안내서이다. 이 책의 가장 큰 특징은 단순한 API 호출이나 모델 응용에 그치지 않고, 하나의 완결된 프로젝트를 통해 LLM 개발의 전 과정을 따라가게 한다는 점이다. 책 전체는 ‘LLM Twin’이라는 개인 맞춤형 AI 캐릭터를 구현하는 과정을 중심으로 구성되어 있으며, 이를 통해 독자는 LLM 기반 애플리케이션의 기획, 개발, 배포, 운영까지 아우르는 포괄적인 경험을 하게 된다.&lt;/p&gt;

&lt;p&gt;초반부에서는 LLM Twin이라는 개념을 통해 개인의 글쓰기 스타일과 성격을 모방하는 AI의 필요성과 목적을 설명하고, 이를 구현하기 위한 시스템 아키텍처를 소개한다. 이 부분에서는 단순히 모델을 다루는 기술적인 측면뿐만 아니라, 하나의 제품으로서 LLM 애플리케이션이 가져야 할 구조와 기능에 대한 전반적인 이해를 제공한다. 이어지는 장에서는 파이썬 생태계를 기반으로 프로젝트를 설치하고, 실습에 사용할 MLOps 및 LLMOps 도구들, 벡터 검색 DB인 Qdrant, NoSQL DB인 MongoDB, 그리고 클라우드 인프라로서 AWS 준비 방법 등을 다룬다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/let2aTv.jpeg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;p&gt;중반부에서는 본격적인 데이터 엔지니어링과 모델 학습, RAG 파이프라인 설계에 들어간다. 웹스크래핑을 통해 데이터를 수집하고, 이를 전처리하여 벡터화한 후 저장소에 적재하는 파이프라인을 직접 구현하게 된다. 이를 바탕으로 RAG(Retrieval-Augmented Generation) 아키텍처를 구성하며, 단순한 검색-생성 결합이 아닌, 문서 기반 지시문 및 응답 형태로 확장된 고급 RAG 구성을 실습할 수 있다. 고급 RAG 구성은 실제 서비스 환경에서의 사용자 질의 대응력 향상과 밀접한 연관이 있으며, 이 책은 그것을 실제 코드 수준에서 상세히 안내한다.&lt;/p&gt;

&lt;p&gt;지도 학습 기반의 파인튜닝 장에서는 LoRA와 QLoRA 같은 최신 경량화 기법을 활용하여 학습 비용을 줄이면서도 모델의 성능을 개선하는 방법을 제시한다. 특히 지시문 데이터셋을 직접 생성하고 이를 기반으로 SFT(Supervised Fine-Tuning)를 적용하는 과정은, 단순히 공개된 데이터셋을 이용하는 것이 아니라 자신만의 맞춤형 데이터로 모델을 조정하는 경험을 제공한다. 이어서 선호도 기반 파인튜닝에서는 최근 주목받고 있는 DPO(Direct Preference Optimization) 기법을 다룬다. 사용자 선호 데이터를 수집하고 이를 바탕으로 모델이 보다 자연스럽고 일관성 있게 응답할 수 있도록 정렬 파인튜닝을 수행하는 이 과정을 통해, 사용자 맞춤형 AI 응답 품질을 높이는 실제 전략을 배울 수 있다.&lt;/p&gt;

&lt;p&gt;후반부에서는 모델 평가와 추론 최적화, 서비스 배포와 운영까지 이어진다. 모델 성능 평가에서는 BLEU, ROUGE 같은 평가 지표뿐만 아니라, 실제 사용 맥락에서의 응답 품질을 측정하는 평가 방법론도 함께 소개된다. 추론 최적화 부분에서는 양자화와 모델 병렬 처리 전략이 등장하며, 이는 고사양 장비 없이도 추론 속도와 비용을 개선하려는 개발자들에게 특히 유용하다. 이 과정에서도 Hugging Face의 Optimum과 같은 라이브러리 활용법이 함께 안내된다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/Sqi1Igy.jpeg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;p&gt;배포 파트에서는 FastAPI 기반의 RESTful 서버 구현을 통해 추론 API를 설계하고, 오토스케일링을 포함한 클라우드 배포 전략까지 다룬다. 모놀리식 아키텍처와 마이크로서비스 아키텍처를 비교 분석하면서 서비스 구조 설계에 대한 이해를 높이고, 급증하는 트래픽을 처리할 수 있는 탄력적 인프라 구축까지 안내한다. 이 부분은 실무 환경에서 LLM을 실제로 활용하려는 팀과 조직에게 매우 실용적인 내용을 담고 있다.&lt;/p&gt;

&lt;p&gt;마지막으로 LLMOps에 관한 챕터에서는 DevOps, MLOps, LLMOps의 차이점을 설명하고, 실험 추적, 버전 관리, 테스트, 모니터링, 재현 가능성 등 운영 환경에서의 안정성과 신뢰성을 확보하기 위한 핵심 원칙들을 실습 중심으로 제시한다. 특히, MLflow, Weights &amp;amp; Biases(W\&amp;amp;B), DVC 등 LLM 실험 및 버전 관리를 위한 툴체인 구성법은 실제 조직 내 모델 운영과 유지보수에 실질적인 도움을 준다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/ZdWyzOs.jpeg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;p&gt;이 책의 장점은 최신 LLM 기술 트렌드를 충실히 반영하면서도 단순한 개념 설명에 그치지 않고, 실제 코드와 프로젝트 흐름을 통해 독자가 직접 구현하며 배울 수 있도록 구성되어 있다는 점이다. RAG, LoRA, QLoRA, DPO, Qdrant, FastAPI, LLMOps 등 현재 LLM 엔지니어링 분야에서 가장 핵심적인 기술들을 모두 아우르며, 이들을 실무에 적용하는 데 필요한 모든 구성 요소를 빠짐없이 소개한다.&lt;/p&gt;

&lt;p&gt;다만 이 책은 중급 이상의 개발자를 대상으로 한다. 파이썬 기본 문법, REST API 설계, 리눅스 기반 서버 운용, 도커, 데이터베이스, Hugging Face 라이브러리 등에 대한 사전 지식이 없다면 진입 장벽이 있을 수 있다. 그러나 이 모든 도구를 이미 활용해본 독자라면, 이 책은 실질적인 기술 내공을 한 단계 끌어올릴 수 있는 실습형 가이드이다.&lt;/p&gt;

&lt;p&gt;『LLM 엔지니어링』은 단순히 AI를 ‘사용’하는 것 뿐만 아니라, AI를 ‘구현하고 운영’하는 개발자와 엔지니어, 기술 리더를 위한 실무 지침서이다. 생성형 AI 시대에 개인화된 서비스 개발과 LLMOps 체계를 도입하고자 할 때 도움이 되는 책이다.&lt;/p&gt;
</description>
                <link>http://corazzon.github.io/hb-llmops</link>
                <guid>http://corazzon.github.io/hb-llmops</guid>
                <pubDate>2025-06-28T00:00:00+00:00</pubDate>
        </item>

        <item>
                <title>[도서 리뷰] LLM 서비스 설계와 최적화</title>
                <description>&lt;p&gt;한빛미디어 서평단 &lt;나는리뷰어다&gt; 활동을 위해서 책을 협찬 받아 작성된 서평입니다.&lt;/나는리뷰어다&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/b1aRe6z.jpeg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;h1 id=&quot;llm-서비스-설계와-최적화-서평&quot;&gt;LLM 서비스 설계와 최적화 서평&lt;/h1&gt;

&lt;p&gt;이 책은 생성형 AI와 LLM(대규모 언어 모델)의 활용에 있어 핵심 과제인 비용 최적화에 초점을 맞춘 종합적인 가이드다. 현재 AI 개발 환경에서 딥시크와 같은 소형 모델의 등장으로 ‘적은 투자로 높은 성능’이라는 최적화 패러다임이 주목받고 있는 시점에, 이 책은 실용적인 관점에서 LLM 서비스의 효율적 구축 방법을 제시한다.&lt;/p&gt;

&lt;h2 id=&quot;주요-강점&quot;&gt;주요 강점&lt;/h2&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;체계적인 접근&lt;/strong&gt;: 책의 구성은 기초 개념부터 고급 최적화 기법까지 단계적으로 설명하여 AI 기술 도입의 전체 흐름을 파악할 수 있게 한다. 1장에서 생성형 AI의 기초와 상용화 과정을 설명하고, 점진적으로 깊이 있는 기술적 내용으로 진행되는 구조는 독자의 이해도를 고려한 설계로 보인다.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;다양한 최적화 기법 소개&lt;/strong&gt;: 2~3장에서 다루는 파인튜닝, PEFT(Parameter-Efficient Fine-Tuning), 그리고 다양한 추론 테크닉은 LLM 활용 시 발생하는 비용 문제에 대한 다각적인 접근법을 보여준다. 특히 벡터 스토어를 이용한 캐싱, 효율적인 추론을 위한 배칭 프롬프트 등은 AI 서비스 운영에 참고할 만한 내용이다.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;균형 잡힌 시각&lt;/strong&gt;: 4장의 모델 선택과 대안, 6장의 성능과 비용의 균형에 관한 논의는 기술적 측면뿐만 아니라 비즈니스적 가치 평가에도 통찰을 제공한다. 이는 기술 구현과 비즈니스 요구 사항 사이의 균형점을 찾고자 하는 독자들에게 유용한 관점을 제시한다.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;h3 id=&quot;생성형-ai의-기초와-비용-최적화의-중요성&quot;&gt;생성형 AI의 기초와 비용 최적화의 중요성&lt;/h3&gt;
&lt;p&gt;1장은 생성형 AI 애플리케이션과 LLM의 기본 개념부터 시작하여 상용화 과정에서 마주하는 도전 과제들을 설명한다. 특히 ‘비용 최적화의 중요성’을 강조함으로써 이후 내용의 필요성을 분명히 하고 있다. 이 부분은 AI 기술 도입을 고려하는 기업과 개발자들에게 왜 최적화가 중요한지에 대한 명확한 근거를 제공한다.&lt;/p&gt;

&lt;h3 id=&quot;파인튜닝과-peft&quot;&gt;파인튜닝과 PEFT&lt;/h3&gt;
&lt;p&gt;2장은 파인튜닝 및 커스터마이징 기법과 함께, 파라미터 효율적 파인튜닝(PEFT)을 중점적으로 다룬다. PEFT는 전체 모델 파라미터의 일부만 조정함으로써 계산 비용을 절감하는 방법론으로, 책에서는 이 기법의 비용 및 성능에 대한 영향을 분석하고 있다. 이 장은 기술적 깊이와 실용적 접근을 동시에 제공하려는 시도가 엿보인다.&lt;/p&gt;

&lt;h3 id=&quot;추론-최적화-기법의-다양성&quot;&gt;추론 최적화 기법의 다양성&lt;/h3&gt;
&lt;p&gt;3장은 책의 가장 실용적인 부분으로, 프롬프트 엔지니어링부터 텍스트 요약, 배칭 프롬프트, 모델 최적화 방법까지 다양한 추론 테크닉을 소개한다. 이 장은 특히 LLM을 실제 서비스에 적용할 때 발생하는 다양한 상황에 대응할 수 있는 기법들을 다루고 있어, 개발자들이 참고하기에 좋은 자료가 될 것으로 보인다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/qNtq7fJ.jpeg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;h3 id=&quot;소형-모델과-대안-모델의-가능성&quot;&gt;소형 모델과 대안 모델의 가능성&lt;/h3&gt;
&lt;p&gt;4장에서는 GPT-4와 같은 대형 모델 대신 소형 모델(SLM) 및 도메인 특화 모델을 활용하는 전략을 제시한다. ‘효율적인 소형 모델’과 ‘성공적인 소형 모델 사례’를 통해 대안 모델의 실질적인 가능성을 보여주는 부분은 비용 제약이 있는 기업들에게 유용한 정보를 제공한다. 또한 ‘범용 모델을 활용한 프롬프트의 성능’ 섹션은 기존 모델을 최대한 활용하는 방안을 탐색하는 현실적인 접근법을 보여준다.&lt;/p&gt;

&lt;h3 id=&quot;인프라-및-배포-전략의-중요성&quot;&gt;인프라 및 배포 전략의 중요성&lt;/h3&gt;
&lt;p&gt;5장은 인프라 및 배포 튜닝 전략을 다루는데, 하드웨어 활용부터 모니터링과 옵저버빌리티까지 서비스 운영 측면에서의 최적화를 포괄적으로 설명한다. 이 장은 개발 단계를 넘어 지속적인 서비스 운영에 필요한 인프라 최적화의 중요성을 강조하며, 실제 서비스 배포 시 고려해야 할 요소들을 제시한다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/QLoHFBg.jpeg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;h3 id=&quot;성능과-비용의-균형&quot;&gt;성능과 비용의 균형&lt;/h3&gt;
&lt;p&gt;6장은 ‘성능과 비용의 균형’이라는 주제로 이 책의 핵심 메시지를 다시 한번 강조한다. 생성형 AI 애플리케이션의 미래 트렌드를 전망하면서, 책 전체를 통해 소개된 다양한 최적화 기법들을 어떻게 실제 비즈니스 상황에 적용할 수 있는지에 대한 종합적인 시각을 제공한다.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/gnmJWIz.jpeg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;p&gt;이 책은 생성형 AI 서비스 구축에 있어 가장 중요한 과제인 ‘비용 최적화’에 초점을 맞춰, 이론적 배경과 실용적 접근을 함께 제시하고 있다. 전체 6장에 걸쳐 LLM의 기초부터 최적화 기법, 모델 선택, 인프라 전략까지 포괄적인 내용을 다루고 있어, AI 개발과 관련된 다양한 측면을 이해하는 데 도움이 된다.&lt;/p&gt;

&lt;p&gt;특히 국내 스타트업과 기업 환경에서 제한된 자원으로 효과적인 AI 서비스를 구축하고자 하는 이들에게 유용한 참고 자료가 될 것으로 보인다. 기술의 깊이와 비즈니스적 통찰을 모두 담고 있어, AI 개발 팀 전체가 참고할 만한 가치가 있으며, 급변하는 AI 기술 환경에서 지속 가능한 서비스 구축을 위한 다양한 관점을 제공한다.&lt;/p&gt;

&lt;p&gt;다만, 일부 내용에서는 더 구체적인 사례나 실험 결과, 그리고 각 기법의 한계점에 대한 더 깊은 논의가 있었다면 독자들에게 더 균형 잡힌 시각을 제공했을 것이다. 그럼에도 불구하고, 이 책은 LLM 기반 서비스의 비용 최적화라는 중요한 주제를 체계적으로 다루고 있어, AI 기술을 실제 비즈니스에 적용하고자 하는 이들에게 유익한 안내서가 될 것이다.&lt;/p&gt;
</description>
                <link>http://corazzon.github.io/hb-llm-optim</link>
                <guid>http://corazzon.github.io/hb-llm-optim</guid>
                <pubDate>2025-05-21T00:00:00+00:00</pubDate>
        </item>

        <item>
                <title>[도서 리뷰] 공여사들의 엑셀 혁명 with 챗GPT</title>
                <description>&lt;p&gt;이 리뷰는 한빛미디어의 나는리뷰어다 활동으로 책을 무상으로 제공받아 작성하였습니다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/9qUZFw3.jpeg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;공여사들의 엑셀 혁명 with 챗GPT&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;엑셀&lt;/strong&gt;을 제대로 배우고 싶거나 &lt;strong&gt;업무 효율을 극대화&lt;/strong&gt;하려는 사람들을 위한 &lt;strong&gt;실용적인 가이드&lt;/strong&gt;이다. &lt;strong&gt;엑셀을 처음 배우는 사람&lt;/strong&gt;부터, 이미 사용 중인 사람까지 &lt;strong&gt;엑셀과 챗GPT&lt;/strong&gt;를 결합한 혁신적인 방법을 소개하며, &lt;strong&gt;AI 시대의 일잘러&lt;/strong&gt;가 될 수 있도록 돕는다.&lt;/p&gt;

&lt;p&gt;이 책은 &lt;strong&gt;엑셀 기본기&lt;/strong&gt;부터 &lt;strong&gt;챗GPT 활용법&lt;/strong&gt;까지 단계별로 학습할 수 있도록 구성되어 있다. &lt;strong&gt;엑셀&lt;/strong&gt;을 처음 시작하는 사람부터, 어느 정도 사용하지만 &lt;strong&gt;업무 효율&lt;/strong&gt;을 높이고 싶은 사람까지 모두 활용할 수 있다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/heCvj0d.jpeg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;PART 01: 인간의 영역&lt;/strong&gt;에서는 &lt;strong&gt;엑셀 기본기&lt;/strong&gt;를 확실하게 익힐 수 있다. &lt;strong&gt;엑셀의 최소한의 상식&lt;/strong&gt; 14가지를 바탕으로, 직장에서 자주 사용하는 &lt;strong&gt;기능들&lt;/strong&gt;을 빠르게 배울 수 있다. &lt;strong&gt;셀 사용법&lt;/strong&gt;, &lt;strong&gt;입력 방식&lt;/strong&gt;, &lt;strong&gt;참조 사용법&lt;/strong&gt;, &lt;strong&gt;값 표시 형식&lt;/strong&gt; 등 실무에서 반드시 필요한 기초부터 &lt;strong&gt;피벗 테이블&lt;/strong&gt;을 활용한 보고서 작성법까지 소개한다. 이 부분은 직장인들이 &lt;strong&gt;엑셀 기본기&lt;/strong&gt;를 빠르게 배울 수 있도록 돕는다.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;PART 02: 챗GPT의 영역&lt;/strong&gt;에서는 &lt;strong&gt;엑셀에서 발생할 수 있는 어려운 문제들&lt;/strong&gt;을 &lt;strong&gt;챗GPT&lt;/strong&gt;로 해결하는 방법을 안내한다. &lt;strong&gt;엑셀 에러 해결&lt;/strong&gt;, &lt;strong&gt;신규 함수 익히기&lt;/strong&gt;, &lt;strong&gt;복잡한 수식 작성법&lt;/strong&gt;, &lt;strong&gt;매크로 작성법&lt;/strong&gt;, &lt;strong&gt;데이터 분석&lt;/strong&gt; 등 &lt;strong&gt;챗GPT&lt;/strong&gt;를 활용하여, 사람이 하기 어려운 작업들을 대신 처리하는 방법을 알려준다. 이를 통해 &lt;strong&gt;엑셀&lt;/strong&gt;에서 복잡한 작업을 효율적으로 처리하고, 반복적인 업무를 자동화할 수 있다.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;h3 id=&quot;part-01-인간의-영역---실무-엑셀-기본기-익히기&quot;&gt;&lt;strong&gt;Part 01: 인간의 영역 - 실무 엑셀 기본기 익히기&lt;/strong&gt;&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;PART 01&lt;/strong&gt;에서는 &lt;strong&gt;엑셀 기본기&lt;/strong&gt;를 학습할 수 있는 내용들이 집중적으로 다뤄진다. &lt;strong&gt;엑셀&lt;/strong&gt;은 &lt;strong&gt;셀&lt;/strong&gt;이라는 단위로 데이터를 다루는 프로그램이며, 그 기본적인 사용법을 익히는 것이 매우 중요하다. 이 책에서는 &lt;strong&gt;셀 사용법&lt;/strong&gt;, &lt;strong&gt;셀 병합&lt;/strong&gt;, &lt;strong&gt;입력 방식&lt;/strong&gt;, &lt;strong&gt;참조 사용법&lt;/strong&gt;, &lt;strong&gt;값 표시 형식&lt;/strong&gt; 등 &lt;strong&gt;엑셀을 처음 접하는 사람&lt;/strong&gt;도 쉽게 이해할 수 있도록 기초적인 내용을 다룬다.&lt;/p&gt;

&lt;p&gt;또한, &lt;strong&gt;직장인들이 실무에서 자주 사용하는 함수들&lt;/strong&gt;도 소개된다. 예를 들어, &lt;strong&gt;IF&lt;/strong&gt;, &lt;strong&gt;VLOOKUP&lt;/strong&gt;, &lt;strong&gt;SUMIF&lt;/strong&gt; 등의 함수는 직장에서 반복적으로 사용되는 기본 함수들이다. 이 책에서는 각 함수의 개념과 활용법을 &lt;strong&gt;실무에 맞춰 설명&lt;/strong&gt;하고, &lt;strong&gt;피벗 테이블&lt;/strong&gt;을 활용한 보고서 작성법까지 다루고 있어, &lt;strong&gt;엑셀을 실무에 바로 적용할 수 있는 능력&lt;/strong&gt;을 기를 수 있다.&lt;/p&gt;

&lt;p&gt;핵심은 &lt;strong&gt;엑셀의 기초를 잘 다지면&lt;/strong&gt;, 실제로 업무에서 필요한 80%의 엑셀 문제를 &lt;strong&gt;빠르게 해결할 수 있다는 점&lt;/strong&gt;이다.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;엑셀을 이용한 데이터 분석&lt;/strong&gt;은, 파이썬처럼 복잡한 코드를 작성하지 않아도 &lt;strong&gt;기본 함수&lt;/strong&gt;와 &lt;strong&gt;피벗 테이블&lt;/strong&gt;만으로 충분히 강력한 분석을 할 수 있다. 예를 들어, &lt;strong&gt;VLOOKUP&lt;/strong&gt;을 활용하여 여러 테이블의 데이터를 쉽게 결합하고, &lt;strong&gt;SUMIF&lt;/strong&gt;와 &lt;strong&gt;COUNTIF&lt;/strong&gt;로 특정 조건에 맞는 데이터를 빠르게 집계할 수 있다. 이런 &lt;strong&gt;기본 함수들&lt;/strong&gt;만으로도 &lt;strong&gt;효율적인 데이터 분석&lt;/strong&gt;이 가능하다. 파이썬으로 데이터를 다루는 것보다 &lt;strong&gt;엑셀&lt;/strong&gt;은 &lt;strong&gt;간단하고 직관적&lt;/strong&gt;이어서, &lt;strong&gt;빠른 시간 내에 데이터를 처리하고 분석할 수 있다.&lt;/strong&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;h3 id=&quot;part-02-챗gpt의-영역---ai-시대의-일잘러는-챗gpt-이렇게-씁니다&quot;&gt;&lt;strong&gt;Part 02: 챗GPT의 영역 - AI 시대의 일잘러는 챗GPT 이렇게 씁니다&lt;/strong&gt;&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;PART 02&lt;/strong&gt;에서는 &lt;strong&gt;엑셀의 복잡한 문제들&lt;/strong&gt;을 &lt;strong&gt;챗GPT&lt;/strong&gt;를 활용하여 &lt;strong&gt;효율적으로 해결하는 방법&lt;/strong&gt;을 배울 수 있다. &lt;strong&gt;엑셀&lt;/strong&gt;을 활용하는 데 있어 &lt;strong&gt;복잡한 수식&lt;/strong&gt;이나 &lt;strong&gt;반복적인 작업&lt;/strong&gt;은 필수적이지만 시간이 많이 걸리고 실수가 발생할 수 있다. &lt;strong&gt;챗GPT&lt;/strong&gt;는 이런 &lt;strong&gt;작업들을 자동화&lt;/strong&gt;하거나 &lt;strong&gt;복잡한 계산을 단순화&lt;/strong&gt;해주는 도구로, 엑셀을 사용하는 업무에서 &lt;strong&gt;강력한 도우미&lt;/strong&gt;가 된다.&lt;/p&gt;

&lt;p&gt;이 책에서는 &lt;strong&gt;엑셀 에러를 해결하는 방법&lt;/strong&gt;, &lt;strong&gt;잘 쓰지 않는 함수들&lt;/strong&gt;을 &lt;strong&gt;챗GPT로 빠르게 익히는 법&lt;/strong&gt;, &lt;strong&gt;매크로 짜는 법&lt;/strong&gt; 등을 소개한다. 특히, &lt;strong&gt;엑셀 특화된 프롬프트 스킬&lt;/strong&gt;을 통해 &lt;strong&gt;데이터 분석&lt;/strong&gt;이나 &lt;strong&gt;수식 작성&lt;/strong&gt;에서 더 이상 사람이 수작업으로 처리할 필요가 없다. 예를 들어, &lt;strong&gt;경영기획팀&lt;/strong&gt;에서는 &lt;strong&gt;KPI 등급을 매기는 방법&lt;/strong&gt;, &lt;strong&gt;영업팀&lt;/strong&gt;에서는 &lt;strong&gt;주소 데이터 정제&lt;/strong&gt;를 &lt;strong&gt;챗GPT로 해결&lt;/strong&gt;할 수 있다.&lt;/p&gt;

&lt;p&gt;또한, &lt;strong&gt;엑셀 수식&lt;/strong&gt;이나 &lt;strong&gt;매크로 작성&lt;/strong&gt;을 챗GPT가 대신 해주는 방법을 배워, &lt;strong&gt;수동 작업에서 벗어나&lt;/strong&gt; 더 높은 &lt;strong&gt;업무 효율&lt;/strong&gt;을 구현할 수 있다. 특히 &lt;strong&gt;복잡한 수식&lt;/strong&gt;이나 &lt;strong&gt;대규모 데이터 처리&lt;/strong&gt;에서 챗GPT는 &lt;strong&gt;시간과 노력을 절약&lt;/strong&gt;해준다.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;엑셀만으로도 가능하지만&lt;/strong&gt;, 챗GPT는 특히 &lt;strong&gt;큰 데이터셋&lt;/strong&gt;을 다룰 때 효율성을 크게 높일 수 있다. 예를 들어, &lt;strong&gt;대량의 데이터 분석&lt;/strong&gt;을 엑셀 내에서 &lt;strong&gt;매크로&lt;/strong&gt;로 처리할 수 있지만, &lt;strong&gt;챗GPT&lt;/strong&gt;를 활용하면 이를 &lt;strong&gt;자동화&lt;/strong&gt;하거나 &lt;strong&gt;고급 분석&lt;/strong&gt;을 빠르게 진행할 수 있어, &lt;strong&gt;업무의 속도&lt;/strong&gt;와 &lt;strong&gt;정확도&lt;/strong&gt;를 높이는 데 큰 도움이 된다.&lt;/p&gt;

&lt;hr /&gt;

&lt;h3 id=&quot;완전-요즘스런-엑셀챗gpt-학습법으로-ai-시대-일잘러가-된다&quot;&gt;&lt;strong&gt;완전 요즘스런 엑셀+챗GPT 학습법으로 AI 시대 일잘러가 된다&lt;/strong&gt;&lt;/h3&gt;

&lt;p&gt;혼란스러운 &lt;strong&gt;AI 시대&lt;/strong&gt;에서, 어디까지가 &lt;strong&gt;인간이 알아야 하는 영역&lt;/strong&gt;이고, 어디까지가 &lt;strong&gt;챗GPT&lt;/strong&gt;와 같은 도구를 활용해야 하는지 혼란스러울 수 있다. 하지만 &lt;strong&gt;이 책&lt;/strong&gt;에서는 &lt;strong&gt;엑셀&lt;/strong&gt;의 기본적인 내용은 &lt;strong&gt;사람이 해야 하는 영역&lt;/strong&gt;으로, 나머지 어려운 문제는 &lt;strong&gt;챗GPT가 도와줄 영역&lt;/strong&gt;으로 확실히 구분한다.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;인간의 영역&lt;/strong&gt;과 &lt;strong&gt;챗GPT의 영역&lt;/strong&gt;을 구분하여 학습하면, &lt;strong&gt;엑셀&lt;/strong&gt;이라는 &lt;strong&gt;레거시 도구&lt;/strong&gt;와 &lt;strong&gt;챗GPT&lt;/strong&gt;라는 최첨단 도구를 자유롭게 다루며, &lt;strong&gt;AI 시대의 일잘러&lt;/strong&gt;로 거듭날 수 있다. &lt;strong&gt;엑셀과 챗GPT를 결합&lt;/strong&gt;하여 &lt;strong&gt;업무 효율성&lt;/strong&gt;을 &lt;strong&gt;극대화&lt;/strong&gt;하고, &lt;strong&gt;반복 작업&lt;/strong&gt;이나 &lt;strong&gt;복잡한 계산&lt;/strong&gt;을 자동화하는 방법을 배우는 것은, &lt;strong&gt;모든 직장인&lt;/strong&gt;에게 필수적인 스킬이다.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;이 책은 &lt;strong&gt;엑셀의 기본기&lt;/strong&gt;부터 &lt;strong&gt;고급 기술&lt;/strong&gt;까지 두루 다루며, &lt;strong&gt;챗GPT&lt;/strong&gt;를 활용해 &lt;strong&gt;업무 효율을 높이는 방법&lt;/strong&gt;을 제시한다. &lt;strong&gt;엑셀 초보자&lt;/strong&gt;는 물론, &lt;strong&gt;고급 사용&lt;/strong&gt;자도 유용한 팁을 얻을 수 있어, &lt;strong&gt;엑셀과 AI&lt;/strong&gt;의 결합을 통해 &lt;strong&gt;업무 효율&lt;/strong&gt;을 한층 &lt;strong&gt;업그레이드&lt;/strong&gt;할 수 있다. 특히, &lt;strong&gt;엑셀만으로도 가능하지만&lt;/strong&gt;, &lt;strong&gt;챗GPT&lt;/strong&gt;를 활용하면 &lt;strong&gt;대규모 데이터 분석&lt;/strong&gt;이나 &lt;strong&gt;복잡한 수식 작성&lt;/strong&gt;에서 더욱 뛰어난 효율성을 보여준다. 
&lt;strong&gt;AI 시대&lt;/strong&gt;에 꼭 필요한 &lt;strong&gt;엑셀+챗GPT&lt;/strong&gt; 학습법을 제공하는 책이다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/HicpnKN.jpeg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;
</description>
                <link>http://corazzon.github.io/hb-ggirls-excel</link>
                <guid>http://corazzon.github.io/hb-ggirls-excel</guid>
                <pubDate>2025-05-05T00:00:00+00:00</pubDate>
        </item>

        <item>
                <title>[도서 리뷰] 일잘러의 비밀, 챗GPT와 GPTs로 나만의 AI 챗봇 만들기</title>
                <description>&lt;p&gt;이 리뷰는 한빛미디어의 나는리뷰어다 활동으로 책을 무상으로 제공받아 작성하였습니다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/osa6Vvz.png&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;h1 id=&quot;일잘러의-비밀-챗gpt와-gpts로-나만의-ai-챗봇-만들기&quot;&gt;『일잘러의 비밀, 챗GPT와 GPTs로 나만의 AI 챗봇 만들기』&lt;/h1&gt;

&lt;p&gt;『일잘러의 비밀, 챗GPT와 GPTs로 나만의 AI 챗봇 만들기』는 생성형 AI 도구인 챗GPT를 실무에 어떻게 활용할 수 있을지를 중심으로 구성된 실용서다. 특히 GPTs 기능을 활용해 개인화된 AI 챗봇을 만들고, 이를 다양한 업무에 연결하는 데 초점을 맞추고 있다.&lt;/p&gt;

&lt;h3 id=&quot;실무-흐름에-맞춘-구성&quot;&gt;실무 흐름에 맞춘 구성&lt;/h3&gt;

&lt;p&gt;책은 총 4개의 파트로 나뉘며, 기초 사용법부터 실제 업무 적용, 챗봇 제작까지 단계별로 설명한다. 초반에는 챗GPT와 GPT-4의 차이점, OpenAI가 발표한 기술 변화 등을 정리해 AI에 대한 전반적인 이해를 돕는다. 이후에는 계정 설정, 프롬프트 작성, 마크다운 활용법 등 기본 기능을 소개하며 자연스럽게 실습으로 이어지도록 구성돼 있다.&lt;/p&gt;

&lt;h4 id=&quot;part-01-챗gpt-준비하기&quot;&gt;PART 01. 챗GPT 준비하기&lt;/h4&gt;
&lt;p&gt;GPT-3.5와 GPT-4의 차이점, OpenAI의 발전 흐름, 주요 기능 발표를 정리한 ‘12 Days of OpenAI’ 등 기술 배경을 체계적으로 소개한다. 챗GPT가 어떤 방향으로 발전하고 있는지를 이해하는 데 도움이 된다. 기술 뉴스나 트렌드에 관심이 있는 사람에게도 유용한 구성이다.&lt;/p&gt;

&lt;h4 id=&quot;part-02-챗gpt-다양하게-활용하기-i&quot;&gt;PART 02. 챗GPT 다양하게 활용하기 I&lt;/h4&gt;
&lt;p&gt;프롬프트 작성법, 콘텐츠 제작, 문서 자동화 등 실생활이나 업무에서 직접 활용할 수 있는 사례 중심으로 설명한다. 블로그 글쓰기, 이메일 작성, 보도자료 작성 등 마케팅이나 커뮤니케이션 업무에 도움이 되는 예시가 많다. 이미지 생성 및 분석 파트도 포함되어 있어 시각 콘텐츠를 다루는 사람에게 실용적이다.&lt;/p&gt;

&lt;h4 id=&quot;part-03-챗gpt-다양하게-활용하기-ii&quot;&gt;PART 03. 챗GPT 다양하게 활용하기 II&lt;/h4&gt;
&lt;p&gt;GPT-4를 활용한 데이터 분석, 웹 크롤링, 엑셀·스프레드시트 연동 등 조금 더 기술적인 내용을 다룬다. 데이터 탐색, 시각화, 예측 모델링까지 포함되어 있어 데이터를 다루는 실무자에게 특히 도움이 된다. 웹 데이터를 수집하고 가공하는 방법을 단계별로 설명하고 있어 관련 업무에 활용하기 좋다.&lt;/p&gt;

&lt;h4 id=&quot;part-04-gpts로-나만의-ai-챗봇-만들기&quot;&gt;PART 04. GPTs로 나만의 AI 챗봇 만들기&lt;/h4&gt;
&lt;p&gt;GPTs와 GPT 스토어 개념 소개부터 챗봇 만들기 실습까지 구성되어 있다. 연말정산 도우미, 지하철 혼잡도 안내, 회의록 정리 등 실생활과 밀접한 챗봇 예제를 중심으로 구성되어 있어 실용성이 높다. API를 활용해 챗봇 기능을 확장하는 방법도 포함되어 있다. 개발 경험이 없어도 따라가기 어렵지 않게 구성되어 있다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/UmSPtiy.png&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/VG4Swur.jpeg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;h3 id=&quot;실용적인-예시-중심&quot;&gt;실용적인 예시 중심&lt;/h3&gt;

&lt;p&gt;콘텐츠 제작, 문서 자동화, 이미지 생성 및 분석 등 실무에서 자주 마주치는 작업을 중심으로 예시가 구성돼 있다. 특히 이메일 작성, 보도자료 작성, 블로그 콘텐츠 작성 등은 마케팅·커뮤니케이션 직무에 실질적인 도움이 될 수 있다. 이미지 분석을 활용한 재무제표 요약, 통계 해석 등도 포함되어 있어 직무 확장성도 고려되어 있다.&lt;/p&gt;

&lt;h3 id=&quot;데이터-분석과-자동화까지&quot;&gt;데이터 분석과 자동화까지&lt;/h3&gt;

&lt;p&gt;GPT-4를 이용한 데이터 분석, 웹 스크래핑, 엑셀과 스프레드시트 연동 등 기술적으로 한 단계 더 나아간 주제들도 포함되어 있다. 각 장은 따라하기 쉬운 예제와 함께 구성되어 있어 처음 접하는 사람도 활용 방법을 익히는 데 큰 어려움은 없다.&lt;/p&gt;

&lt;h3 id=&quot;나만의-챗봇-만들기&quot;&gt;나만의 챗봇 만들기&lt;/h3&gt;

&lt;p&gt;후반부에는 GPTs 기능을 이용해 연말정산 도우미, 회의록 작성, 지하철 혼잡도 안내 챗봇 등을 만드는 실습이 포함돼 있다. 개발 경험이 없어도 챗봇을 만들 수 있도록 구성되어 있으며, 외부 API 연동을 통해 기능을 확장하는 방법도 소개한다. GPT 스토어의 구조나 챗봇 설정 항목에 대한 설명도 실려 있어 챗GPT 고급 사용자로 넘어가는 데 도움이 된다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/tAFY9oX.png&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;h3 id=&quot;총평&quot;&gt;총평&lt;/h3&gt;

&lt;p&gt;이 책은 챗GPT를 단순한 대화형 도구로 보는 것을 넘어서, 실무에서 유용하게 활용할 수 있는 하나의 작업 도구로 접근하고 있다. 전반적으로 실습 중심이고, 사례가 구체적이어서 따라 하기 수월하다. 업무 자동화나 개인화된 AI 도구에 관심이 있는 사람에게 적합하며, 챗GPT를 좀 더 전략적으로 활용하고 싶은 실무자에게도 좋은 참고서가 될 수 있다. 제목처럼 ‘일잘러’가 되기 위한 실질적인 기술적 기반을 익히는 데 도움을 주는 책이다.&lt;/p&gt;
</description>
                <link>http://corazzon.github.io/hb-work-secret-gpts</link>
                <guid>http://corazzon.github.io/hb-work-secret-gpts</guid>
                <pubDate>2025-03-30T00:00:00+00:00</pubDate>
        </item>

        <item>
                <title>[도서 리뷰] GPT와 파이썬을 활용한 실전 LLM 앱 개발</title>
                <description>&lt;p&gt;이 리뷰는 한빛미디어의 나는리뷰어다 활동으로 책을 무상으로 제공받아 작성하였습니다.&lt;/p&gt;

&lt;h2 id=&quot;gpt와-파이썬을-활용한-실전-llm-앱-개발&quot;&gt;GPT와 파이썬을 활용한 실전 LLM 앱 개발&lt;/h2&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/5mezZiV.jpeg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;h3 id=&quot;chapter-1-gpt-모델과-챗gpt&quot;&gt;CHAPTER 1 GPT 모델과 챗GPT&lt;/h3&gt;

&lt;p&gt;이 장에서는 LLM(대형 언어 모델)의 개념과 GPT 시리즈의 발전 과정을 상세히 설명한다. 특히 트랜스포머 아키텍처와 GPT 모델이 작동하는 방식을 심층적으로 다루며, 토큰화와 예측 단계에 대한 이해를 돕는다. 또한 GPT-1에서 GPT-4o까지의 발전을 연대기적으로 정리하고, AI의 멀티모달 기능과 비즈니스 활용 사례를 소개하여 이 기술이 실세계에서 어떻게 응용되고 있는지를 보여준다. AI 할루시네이션 문제와 모델 최적화 방법까지 다루고 있다.&lt;/p&gt;

&lt;h3 id=&quot;chapter-2-오픈ai-api&quot;&gt;CHAPTER 2 오픈AI API&lt;/h3&gt;

&lt;p&gt;GPT 모델을 실용적으로 활용하기 위해 오픈AI API의 개념과 사용법을 체계적으로 정리했다. API 가용 모델을 GPT 베이스, 인스트럭트GPT, GPT-3.5, GPT-4 등으로 분류하여 설명하고, 오픈AI 플레이그라운드를 활용한 실습을 제공한다. API 호출 방법과 다양한 출력 옵션, JSON 포맷 활용법도 상세히 다루고 있다. 비용 관리, 정보 보안 문제까지 고려한 점도 실용적이다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/au5u1Hf.jpeg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/Ne3sLUh.jpeg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;h3 id=&quot;chapter-3-llm-기반-애플리케이션-개발&quot;&gt;CHAPTER 3 LLM 기반 애플리케이션 개발&lt;/h3&gt;

&lt;p&gt;LLM을 활용한 애플리케이션을 구축하는 과정에서 고려해야 할 핵심 사항들을 다룬다. API 키 관리 및 보안 문제부터 소프트웨어 아키텍처 패턴, LLM 기반 앱의 기능까지 상세하게 설명하며, 실제 프로젝트 예제도 포함되어 있어 실습에 도움이 된다. 뉴스 생성, 유튜브 동영상 요약, 챗봇 개발, 감정 분석 등의 다양한 애플리케이션 사례를 제공하여 실전 감각을 익힐 수 있다. 또한 API 호출 비용과 보안 이슈까지 다루고 있다.&lt;/p&gt;

&lt;h3 id=&quot;chapter-4-gpt-4o-및-챗gpt-활용-고급-기법&quot;&gt;CHAPTER 4 GPT-4o 및 챗GPT 활용 고급 기법&lt;/h3&gt;

&lt;p&gt;이 장에서는 GPT-4o와 챗GPT를 활용한 프롬프트 엔지니어링, 파인 튜닝, RAG(검색 증강 생성) 등 고급 기법을 심도 있게 설명한다. 효과적인 프롬프트 설계 방법과 단계별 사고 기법, 퓨샷 러닝 기법 등을 적용하여 성능을 최적화하는 방법을 소개한다. 특히 RAG의 개념과 한계를 설명하며, GPT의 비결정성과 할루시네이션 문제를 해결하는 전략까지 다루고 있어, LLM을 실무에 적용할 때 필요한 내용을 포함하고 있다.&lt;/p&gt;

&lt;h3 id=&quot;chapter-5-프레임워크로-llm-기능-높이기&quot;&gt;CHAPTER 5 프레임워크로 LLM 기능 높이기&lt;/h3&gt;

&lt;p&gt;GPT 기반 애플리케이션 개발의 생산성을 높이는 다양한 프레임워크를 소개한다. 랭체인과 라마인덱스를 활용한 RAG 구현 방법을 다루며, GPTs 및 어시스턴트 API를 활용한 대화형 AI 솔루션 구축 방법도 설명한다. 특히 랭체인의 동적 프롬프트, 에이전트, 메모리, 임베딩 기능 등을 활용하는 방법을 구체적으로 설명하여 실제 프로젝트에서 활용할 수 있도록 돕는다. 오픈AI의 어시스턴트 API 활용법도 자세히 다루어, 챗봇 개발자와 AI 엔지니어들에게 유용한 가이드가 된다.&lt;/p&gt;

&lt;h3 id=&quot;chapter-6-마치며&quot;&gt;CHAPTER 6 마치며&lt;/h3&gt;

&lt;p&gt;책에서 다룬 핵심 개념을 요약하고, LLM 기반 애플리케이션 개발 과정을 단계별로 정리한다. 아이디어 구상부터 요구 사항 정의, 프로토타입 제작, 개선과 반복, 최종 검토까지 전반적인 개발 프로세스를 설명하며, 실무에서 어떻게 적용할 수 있는지에 대한 가이드를 제공한다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/rNa7ESI.jpeg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;h4 id=&quot;appendix-a-c&quot;&gt;APPENDIX A-C&lt;/h4&gt;

&lt;p&gt;부록에서는 스트림릿을 활용한 UI 개발, GPTs 활용법, 용어 정리 등 추가적인 정보가 제공된다. 오픈AI의 최신 모델인 o1 활용법도 포함되어 있다.&lt;/p&gt;

&lt;p&gt;이 책은 GPT와 파이썬을 활용하여 실전적인 LLM 애플리케이션을 개발에 관련된 내용으로 구성되어 있다. 기초 개념부터 고급 기법, 실습 프로젝트, 보안 및 비용 관리까지 다루고 있다. OpenAI API의 질의응답 뿐만 아니라 음성, 이미지 등에 대한 API도 함께 다루고 있고 또 API를 활용해서 현실 문제 해결을 할 수 있는 다양한 예시를 볼 수 있는 책이었다.&lt;/p&gt;

</description>
                <link>http://corazzon.github.io/hb-dev-llm</link>
                <guid>http://corazzon.github.io/hb-dev-llm</guid>
                <pubDate>2025-02-28T00:00:00+00:00</pubDate>
        </item>

        <item>
                <title>[도서 리뷰] 한 권으로 배우는 게임 프로그래밍</title>
                <description>&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/ZYVBjrx.jpeg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;p&gt;이 책은 체계적이고 직관적인 구성으로 초보자도 이해할 수 있는 쉬운 설명과 함께 심화 내용까지 다루며, 단계별로 학습할 수 있도록 구성되어 있다. 
각 장의 내용은 실제 게임 개발에서 자주 접하게 되는 문제를 다루고 있어, 실무에 가까운 꼭 필요한 내용들을 살펴볼 수 있다.
게임 프로그래밍은 수학, 물리 등에 대한 다양한 응용이 들어가기 때문에 복잡한 알고리즘에 대한 이해하 필요한데 이 책은 이런 기본기를 가장 중요한 포인트로 작성되었다.
그럼, 챕터별로 살펴보겠다.&lt;/p&gt;

&lt;hr /&gt;

&lt;h4 id=&quot;chapter-1-개발-환경-구성과-게임-세계-이해&quot;&gt;&lt;strong&gt;CHAPTER 1: 개발 환경 구성과 게임 세계 이해&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;책의 첫 장은 초보자를 위한 훌륭한 출발점이다. &lt;strong&gt;유니티 엔진과 개발 도구 설치&lt;/strong&gt;에 대한 설명이 상세하고 직관적이며, 2D 및 3D 그래픽의 차이점과 UI 구성 요소에 대한 소개가 게임의 세계를 이해하는 데 필수적인 정보를 제공한다.&lt;br /&gt;
이 장을 통해 독자는 개발 환경을 설정하고, 게임 세계의 기본 개념을 명확히 익힐 수 있다.&lt;/p&gt;

&lt;hr /&gt;

&lt;h4 id=&quot;chapter-2-수학과-물리&quot;&gt;&lt;strong&gt;CHAPTER 2: 수학과 물리&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;게임 개발에서 중요한 &lt;strong&gt;수학과 물리의 기초&lt;/strong&gt;를 친절하게 풀어낸 부분이다. 벡터와 좌표, 삼각함수와 같은 기초 개념을 실제 예제와 함께 학습할 수 있어, 이론과 실습의 균형을 잘 맞춘다.&lt;br /&gt;
특히, &lt;strong&gt;적과의 대치&lt;/strong&gt;에서 다루는 벡터의 내적과 외적, &lt;strong&gt;Easing 그래프&lt;/strong&gt;와 같은 심화 예제는 독자가 게임 내에서의 물리적 움직임을 더 깊이 이해하도록 돕는다.&lt;/p&gt;

&lt;hr /&gt;

&lt;h4 id=&quot;chapter-3-게임-프로그래밍에-필요한-기법&quot;&gt;&lt;strong&gt;CHAPTER 3: 게임 프로그래밍에 필요한 기법&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;랭킹 시스템, AI의 길 찾기, 충돌 처리 알고리즘&lt;/strong&gt;과 같은 실제 게임 개발에 자주 쓰이는 기술을 상세히 설명한 이 장은 실질적인 문제 해결 능력을 키운다.&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;랭킹 시스템 구현&lt;/strong&gt;에서 자료구조와 정렬 알고리즘을 다루며, 성능 최적화를 위한 핵심 개념을 배울 수 있다.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;AI의 길 찾기&lt;/strong&gt;는 DFS, BFS, 다익스트라, A*와 같은 경로 탐색 알고리즘을 상세히 설명하며 AI 설계에 필요한 기반을 제공한다.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;충돌 처리&lt;/strong&gt; 부분은 게임 개발의 필수 기술인 충돌 탐지 알고리즘을 다양한 방식으로 설명하며, 직관적인 예제와 코드로 실무적 활용도를 높인다.&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;h4 id=&quot;chapter-4-게임-프로그래밍-방법론&quot;&gt;&lt;strong&gt;CHAPTER 4: 게임 프로그래밍 방법론&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;마지막 장은 게임 프로그래밍의 철학과 설계 원칙을 다룬다.&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;객체 지향 프로그래밍&lt;/strong&gt;에서는 클래스, 상속, 다형성 등의 개념을 명확히 설명하며, 실습과 함께 이해를 돕는다.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;디자인 패턴&lt;/strong&gt;은 실무에서 자주 활용되는 전략 패턴, 옵저버 패턴, 상태 패턴 등을 게임 사례와 결합해 설명하여 개발자의 응용력을 높인다.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;안티 패턴&lt;/strong&gt;은 개발 시 피해야 할 실수를 상세히 다루며, 실무에서 발생할 수 있는 문제를 미리 예방할 수 있도록 구성한다.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;이 장은 단순한 프로그래밍 기술을 넘어, &lt;strong&gt;어떻게 더 좋은 코드를 작성할 것인가&lt;/strong&gt;에 대해 고민하게 만든다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/LjB8Deq.jpeg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;h3 id=&quot;이-책을-읽을-때-미리-이런-내용을-알아두면-좋겠다&quot;&gt;&lt;strong&gt;이 책을 읽을 때 미리 이런 내용을 알아두면 좋겠다.&lt;/strong&gt;&lt;/h3&gt;

&lt;hr /&gt;

&lt;h4 id=&quot;1-프로그래밍-기초-지식&quot;&gt;&lt;strong&gt;1. 프로그래밍 기초 지식&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;책의 많은 내용이 코딩을 중심으로 진행되므로, 다음의 프로그래밍 기초 지식을 알고 있어야 한다.&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;변수와 자료형&lt;/strong&gt;&lt;br /&gt;
변수 선언, 데이터 타입의 개념 (정수, 문자열, 배열 등)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;조건문과 반복문&lt;/strong&gt;&lt;br /&gt;
&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;if&lt;/code&gt;, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;for&lt;/code&gt;, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;while&lt;/code&gt; 등의 기본 구조&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;함수 작성 및 사용법&lt;/strong&gt;&lt;br /&gt;
파라미터와 반환값을 이해하고, 함수를 작성할 수 있는 능력&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;기본 자료구조&lt;/strong&gt;&lt;br /&gt;
배열(Array), 리스트(List), 딕셔너리(Dictionary)와 같은 기초 자료구조에 대한 이해&lt;br /&gt;
—&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;2-수학과-물리-기초&quot;&gt;&lt;strong&gt;2. 수학과 물리 기초&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;게임 개발에서 중요한 수학과 물리 개념이 책에서 많이 등장하므로, 기초적인 이해가 필요하다.&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;기하학&lt;/strong&gt;
    &lt;ul&gt;
      &lt;li&gt;좌표계와 좌표의 개념 (2D/3D)&lt;/li&gt;
      &lt;li&gt;삼각함수 (사인, 코사인, 탄젠트)&lt;/li&gt;
      &lt;li&gt;벡터의 기본 개념과 연산 (덧셈, 내적, 외적)&lt;/li&gt;
      &lt;li&gt;각도와 라디안 단위&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;물리학&lt;/strong&gt;
    &lt;ul&gt;
      &lt;li&gt;위치, 속도, 가속도의 개념&lt;/li&gt;
      &lt;li&gt;충돌과 반발(물리엔진 기본 이해)&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;h4 id=&quot;3-게임-엔진-사용-경험&quot;&gt;&lt;strong&gt;3. 게임 엔진 사용 경험&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;책에서 유니티를 사용하므로, 유니티 엔진에 대한 기본적인 사용 경험이 있다면 학습에 큰 도움이 된다.&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;유니티 기본 개념&lt;/strong&gt;
    &lt;ul&gt;
      &lt;li&gt;유니티 인터페이스 및 프로젝트 생성 방법&lt;/li&gt;
      &lt;li&gt;씬(Scene)과 게임 오브젝트(Game Object)의 기본 사용법&lt;/li&gt;
      &lt;li&gt;컴포넌트(Component)의 개념&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;C# 스크립팅 경험&lt;/strong&gt;
    &lt;ul&gt;
      &lt;li&gt;유니티에서 사용하는 C# 스크립트를 작성해본 경험이 있다면 학습이 훨씬 수월하다.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;h4 id=&quot;4-알고리즘과-자료구조-기초&quot;&gt;&lt;strong&gt;4. 알고리즘과 자료구조 기초&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;랭킹 시스템, AI 길 찾기, 충돌 처리 등에서 알고리즘과 자료구조가 자주 등장하므로, 다음과 같은 기본 지식을 알고 있어야 한다.&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;정렬 알고리즘&lt;/strong&gt;&lt;br /&gt;
버블 정렬, 선택 정렬 등 기본적인 정렬 알고리즘 이해&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;자료구조&lt;/strong&gt;&lt;br /&gt;
트리(Tree), 스택(Stack), 큐(Queue), 힙(Heap)과 같은 자료구조의 기본 개념&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;그래프 탐색 알고리즘&lt;/strong&gt;&lt;br /&gt;
DFS(깊이 우선 탐색), BFS(너비 우선 탐색)&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;h4 id=&quot;5-객체-지향-프로그래밍oop&quot;&gt;&lt;strong&gt;5. 객체 지향 프로그래밍(OOP)&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;4장에서 객체 지향 프로그래밍(OOP)을 심도 있게 다루므로, 다음 개념을 미리 이해하고 있으면 좋다.&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;클래스와 객체&lt;/strong&gt;&lt;br /&gt;
클래스의 정의와 인스턴스화&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;상속&lt;/strong&gt;&lt;br /&gt;
부모 클래스와 자식 클래스의 관계&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;다형성&lt;/strong&gt;&lt;br /&gt;
메서드 오버라이딩과 인터페이스의 기본 개념&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;캡슐화&lt;/strong&gt;&lt;br /&gt;
접근 제어자(public, private, protected)의 역할&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;h4 id=&quot;6-게임-개발에-대한-관심과-경험&quot;&gt;&lt;strong&gt;6. 게임 개발에 대한 관심과 경험&lt;/strong&gt;&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;간단한 2D 또는 3D 게임을 만들어 본 경험이 있거나, 간단한 게임 로직을 작성해본 경험이 있다면 책에서 다루는 내용을 더 쉽게 이해할 수 있다.&lt;/li&gt;
  &lt;li&gt;게임의 구조(메뉴, 캐릭터, 적, 점수 등)에 대한 기초적인 이해가 있다면 좋다.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/aWm7Lbz.jpeg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;p&gt;책 한권으로 모든 내용을 배울 수는 없지만 필요한 핵심 내용에 대해서 이해하기에는 충분한 책이지 않나 싶다.&lt;/p&gt;

&lt;p&gt;이 리뷰는 한빛미디어의 나는 리뷰어다 이벤트를 통해 책을 제공받아 작성했습니다.&lt;/p&gt;
</description>
                <link>http://corazzon.github.io/hb-game-one-book</link>
                <guid>http://corazzon.github.io/hb-game-one-book</guid>
                <pubDate>2024-11-26T00:00:00+00:00</pubDate>
        </item>

        <item>
                <title>[도서 리뷰] 쿠버네티스 창시자에게 배우는 모범 사례(2판)</title>
                <description>&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/ZaGg3tp.png&quot; height=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;개발자-워크플로우-모니터링-보안-등-실무에-필수적인-주제들을-폭넓게-다루는-책&quot;&gt;개발자 워크플로우, 모니터링, 보안 등 실무에 필수적인 주제들을 폭넓게 다루는 책&lt;/h2&gt;

&lt;p&gt;이 책은 쿠버네티스의 기초 배포부터 고급 운영까지 전체 라이프사이클을 포괄하는 실용적인 가이드북이다. 특히 주목할만한 점은 각 장의 말미에 “모범 사례”를 정리하여 실전에서 바로 적용할 수 있는 지침을 제공한다.
주제별로 크게 실무, 운영, 보안 내용으로 나눠본다면 다음과 같이 볼 수 있다.&lt;/p&gt;

&lt;h3 id=&quot;실무-중심의-내용&quot;&gt;실무 중심의 내용&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;모니터링과 로깅(3장)&lt;/li&gt;
  &lt;li&gt;CI/CD 파이프라인 구축(5장)&lt;/li&gt;
  &lt;li&gt;글로벌 배포 전략(7장)&lt;/li&gt;
  &lt;li&gt;리소스 관리와 스케일링(8장)&lt;/li&gt;
  &lt;li&gt;네트워크 보안과 서비스 메시(9장)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;현대적인-쿠버네티스-운영-주제&quot;&gt;현대적인 쿠버네티스 운영 주제&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;머신러닝 워크로드 운영(14장)&lt;/li&gt;
  &lt;li&gt;GitOps 기반 배포 전략(18장)&lt;/li&gt;
  &lt;li&gt;카오스 엔지니어링과 로드 테스팅(20장)&lt;/li&gt;
  &lt;li&gt;커스텀 오퍼레이터 개발(21장)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;보안-관련-내용&quot;&gt;보안 관련 내용&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;파드와 컨테이너 보안(10장)&lt;/li&gt;
  &lt;li&gt;클러스터 정책과 거버넌스(11장)&lt;/li&gt;
  &lt;li&gt;종합적인 보안 가이드(19장)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;쿠버네티스 창시자 브렌던 번스와 세 명의 전문가가 함께 집필한 이 책은 쿠버네티스 운영의 전체 생애주기를 포괄하는 실용적인 안내서다. 2020년 출간된 『쿠버네티스 모범 사례』의 개정판으로, 최신 쿠버네티스 생태계의 변화와 실전 경험을 반영하여 더욱 깊이 있는 내용을 담아냈다.&lt;/p&gt;

&lt;p&gt;이 책의 가장 큰 강점은 실무 중심의 체계적인 구성에 있다. 1장부터 4장까지는 기본적인 서비스 설치와 구성, 개발자 워크플로우 등 기초적인 내용을 다루며, 5장부터는 CI/CD, 버저닝, 글로벌 배포, 리소스 관리 등 실제 프로덕션 환경에서 마주하는 다양한 과제들을 심도 있게 다룬다. 특히 각 장의 말미에 정리된 ‘모범 사례’ 섹션은 실무자들이 흔히 겪는 문제들에 대한 검증된 해결책을 제시하고 있어 매우 유용하다.&lt;/p&gt;

&lt;p&gt;현대적인 쿠버네티스 운영에 필수적인 주제들도 충실히 다룬다. 머신러닝 워크로드 운영(14장), GitOps 기반 배포(18장), 카오스 테스팅과 로드 테스팅(20장) 등은 최근 클라우드 네이티브 환경에서 중요성이 커지고 있는 주제들이다. 특히 보안 관련 내용이 풍부한데, 파드와 컨테이너 보안(10장), 클러스터 정책과 거버넌스(11장), 그리고 종합적인 보안 가이드(19장)를 통해 엔터프라이즈급 보안 요구사항을 충족시킬 수 있는 상세한 지침을 제공한다.&lt;/p&gt;

&lt;p&gt;쿠버네티스를 처음 프로덕션에 도입하려는 개발자는 초반부의 기본 개념과 실습을 통해 실무에 필요한 기초가 잘 설명되어 있다. 이미 쿠버네티스를 운영 중인 DevOps 엔지니어들은 중반부의 심화 내용을 통해 더 안정적이고 효율적인 운영 방법을 익힐 수 있다. 플랫폼 아키텍트들은 후반부의 고급 주제들을 통해 확장 가능하고 유지보수가 용이한 아키텍처를 설계하는 데 필요한 인사이트를 얻을 수 있다.&lt;/p&gt;

&lt;p&gt;그리고 이 책은 실제 현장에서 검증된 사례들을 풍부하게 다루고 있다. 멀티클러스터 관리, 외부 서비스 통합, 스테이트풀 애플리케이션 운영 등 실무자들이 자주 마주치는 도전 과제들에 대해 구체적이고 실용적인 해결 방안을 제시한다. 또한 최신 트렌드인 서비스 메시, GitOps, 머신러닝 워크로드 등을 다루면서도, 이를 실제 환경에 적용하는 방법과 고려사항을 상세히 다룬다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/VuFfeB4.jpeg&quot; height=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/NVm99lF.jpeg&quot; height=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;이 리뷰는 한빛미디어의 나는 리뷰어다 이벤트를 통해 책을 제공받아 작성했습니다.&lt;/p&gt;
</description>
                <link>http://corazzon.github.io/hb-k8n</link>
                <guid>http://corazzon.github.io/hb-k8n</guid>
                <pubDate>2024-10-28T00:00:00+00:00</pubDate>
        </item>

        <item>
                <title>[도서 리뷰] 코드 밖 커뮤니케이션</title>
                <description>&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/1aslhNk.jpeg&quot; height=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;“코드 밖 커뮤니케이션”은 기술적 역량 못지않게 중요한 개발자의 소프트 스킬, 특히 커뮤니케이션 능력 향상에 초점을 맞춘 실용서다.&lt;/p&gt;

&lt;p&gt;이 책의 가장 큰 강점은 실제 개발 현장의 구체적인 상황을 예로 들며 효과적인 방법과 피해야 할 사례를 명확히 대비시킨다는 점이다. 예를 들어, 시스템 아키텍처를 설명하는 다이어그램 작성에 있어 복잡한 구조를 계층별로 명확히 구분하고 직관적인 아이콘을 사용한 좋은 예시와 과도한 색상과 화살표로 혼란을 주는 나쁜 예시를 함께 제시한다. 이러한 비교를 통해 효과적인 시각적 커뮤니케이션 방법을 직관적으로 이해할 수 있었다.&lt;/p&gt;

&lt;p&gt;또한 이 책은 개발자 간 소통에만 국한되지 않고 디자이너, 프로젝트 매니저, 비개발 이해관계자들과의 효과적인 의사소통 방법까지 폭넓게 다루고 있다. 특히 기술적 내용을 비전문가도 이해할 수 있게 설명하는 방법에 대한 조언이 인상적이었다.&lt;/p&gt;

&lt;p&gt;원격 및 하이브리드 근무 환경에서의 커뮤니케이션 전략을 다루는 부분은 현 시대의 개발 환경을 잘 반영하고 있다. 비동기 작업 중심의 ‘원격 우선’ 정책이나 시간대 차이를 고려한 ‘대칭 이메일’ 사용 전략 같은 내용은 글로벌 팀과 협업하는 개발자들에게 실질적인 도움이 될 것으로 보인다.&lt;/p&gt;

&lt;p&gt;특히 주목할 만한 부분은 ‘아키텍처 결정 레코드(ADR)’ 사용법과 ‘GitHub에서 문서를 코드처럼 관리하기’ 같은 실용적인 팁들이다.&lt;/p&gt;

&lt;p&gt;파트별로 해당 내용을 정리해 보면,&lt;/p&gt;

&lt;h3 id=&quot;part-1--시각적-커뮤니케이션&quot;&gt;PART 1 | 시각적 커뮤니케이션&lt;/h3&gt;
&lt;p&gt;이 파트에서는 다이어그램과 시각적 자료를 통해 복잡한 정보를 어떻게 명확하고 일관되게 전달할 수 있는지를 다룬다. 독자의 수준에 맞춘 추상화 레벨 조정, 시각적 일관성, 접근성을 고려한 디자인 등 실제 현장에서 자주 부딪히는 문제들을 해결하는 방법을 구체적으로 설명한다. 예를 들어, 시각적 정보의 과부하를 방지하고, 다이어그램의 흐름과 구조를 명확히 하여 독자가 쉽게 이해할 수 있는 자료를 만드는 방법을 다룬다.&lt;/p&gt;

&lt;h3 id=&quot;part-2--멀티모달-커뮤니케이션&quot;&gt;PART 2 | 멀티모달 커뮤니케이션&lt;/h3&gt;
&lt;p&gt;여기서는 서면, 언어적, 비언어적 커뮤니케이션을 다룬다. 기술 문서에서 자주 저지르는 실수들, 메시지를 인코딩하고 디코딩하는 방법, 설득력 있는 커뮤니케이션을 위한 수사학적 전략을 통해 개발자가 더 나은 커뮤니케이터가 될 수 있도록 돕는다. 특히, 서면 커뮤니케이션에서 간결함을 유지하고, 기술 용어와 축약어 사용을 적절히 조정하는 방법은 코드 리뷰나 기술 문서 작성에서 매우 유용하다.&lt;/p&gt;

&lt;h3 id=&quot;part-3--지식-전달하기&quot;&gt;PART 3 | 지식 전달하기&lt;/h3&gt;
&lt;p&gt;지식 관리와 문서화의 중요성을 다룬다. 프로젝트의 일시적인 요구에 휘둘리기보다는, 지속 가능한 문서화를 통해 지식을 관리하고 공유하는 방법을 설명한다. 아키텍처 결정 기록(ADR)과 같은 도구를 활용해 팀 내에서 지식 자산을 효율적으로 관리하는 데 도움을 준다. 이를 통해 개발자는 단순한 코더를 넘어 팀 내에서 중요한 지식 전달자로 자리매김할 수 있다.&lt;/p&gt;

&lt;h3 id=&quot;part-4--원격으로-소통하기&quot;&gt;PART 4 | 원격으로 소통하기&lt;/h3&gt;
&lt;p&gt;원격 근무 환경에서 발생하는 소통 문제와 그 해결책을 다룬다. 동기식·비동기식 커뮤니케이션의 차이를 이해하고, 각 상황에 맞는 도구와 방법을 선택하는 것이 중요하다. 이 파트에서는 팀이 서로 다른 시간대에 있어도 효율적으로 협업할 수 있는 패턴과 전략을 제공한다. 이는 원격 근무 환경에서의 생산성과 협업 능력을 높이는 데 도움이 된다.&lt;/p&gt;

&lt;p&gt;이 책은 단순한 이론서가 아닌 실제 현장에서 즉시 적용 가능한 실용적인 가이드북이다. 
뛰어난 개발자란 우수한 코드를 작성하는 능력뿐만 아니라 그 코드의 가치를 효과적으로 전달할 수 있는 능력을 갖춘 사람이라는 점을 이 책은 잘 보여주고 있다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/6X6OD5W.jpeg&quot; height=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;이 리뷰는 한빛미디어의 나는 리뷰어다 이벤트를 통해 책을 제공받아 작성했습니다.&lt;/p&gt;
</description>
                <link>http://corazzon.github.io/hb-code-outside</link>
                <guid>http://corazzon.github.io/hb-code-outside</guid>
                <pubDate>2024-09-29T00:00:00+00:00</pubDate>
        </item>

        <item>
                <title>[도서 리뷰] 실무로 통하는 클린 코드</title>
                <description>&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/KlU7j9h.jpeg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;클린-코드&quot;&gt;클린 코드&lt;/h2&gt;

&lt;p&gt;로버트 C. 마틴의 『클린 코드』는 오랫동안 소프트웨어 개발자들 사이에서 코드 품질 향상의 바이블로 여겨져 왔다. 이 책은 코드의 가독성, 유지보수성, 확장성을 높이기 위한 원칙과 가이드라인을 제시하며, 많은 개발자들에게 코드 작성의 새로운 기준을 제시했다. 그러나 이번에 읽은 이 책은 『클린 코드』에 이어, 좀 더 실질적인 적용 방법과 구체적인 사례를 통해 클린 코드를 실무에 어떻게 구현할 수 있을지에 대한 깊이 있는 통찰을 제공해 준다는 점에서 큰 장점이 있다.&lt;/p&gt;

&lt;p&gt;특히 이 책이 유용했던 이유는, 파이썬을 비롯한 여러 프로그래밍 언어로 작성된 예시 코드를 통해 다양한 언어 환경에서 클린 코드 원칙을 어떻게 적용할 수 있는지를 구체적으로 설명해 준다는 점이다. 각 언어의 특성과 문법에 맞춰 클린 코드의 원칙을 어떻게 구현할 수 있는지를 설명함으로써, 개발자들이 자신이 사용하는 언어에서 이러한 원칙을 실천할 수 있도록 돕는다. 이러한 접근은 클린 코드의 개념을 더 깊이 이해하고, 실제 코드에 적용할 수 있는 자신감을 심어주었다.&lt;/p&gt;

&lt;p&gt;책에서 다루는 코드 예시는 파이썬뿐만 아니라 자바, C#, 자바스크립트 등 다양한 언어로 작성되어 있다. 이를 통해 각 언어의 특성에 맞게 클린 코드의 원칙을 어떻게 적용할 수 있을지에 대한 다양한 가능성을 발견할 수 있었다. 예를 들어, 파이썬의 동적 타이핑과 유연한 문법을 활용해 클린 코드의 원칙을 실현할 수 있는 방법에 대한 아이디어를 얻었다. 예시 코드가 여러 언어로 제공되면서, 내가 주로 사용하는 파이썬에서도 이 원칙들을 어떻게 구현할 수 있을지 구체적으로 생각해 볼 수 있었다.&lt;/p&gt;

&lt;p&gt;이 책은 코드 스멜과 리팩터링의 필요성에 대한 구체적인 예시를 풍부하게 제공한다. 『클린 코드』가 원칙적인 측면에서 코드의 질을 높이는 방법을 제시했다면, 이 책은 실제로 코드 스멜을 어떻게 식별하고, 리팩터링을 통해 문제를 해결할 수 있는지를 단계별로 안내한다. 이를 파이썬에 적용해 본다면, 테스트 코드에서 반복적으로 사용되는 설정 로직을 별도의 함수나 클래스로 분리하고, 중복 코드를 제거하는 방법을 고려해 볼 수 있다. 예를 들어, 파이썬의 &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;pytest&lt;/code&gt; 프레임워크를 사용해 공통의 테스트 준비 작업을 &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;fixture&lt;/code&gt;로 정의하고, 이를 여러 테스트에서 재사용함으로써 코드의 간결성과 일관성을 높일 수 있을 것이다.&lt;/p&gt;

&lt;p&gt;또한, 빈약한 모델과 기본형 집착에 대한 내용을 파이썬에 적용할 때는, 데이터를 다루는 방식을 보다 객체지향적으로 설계하는 것이 가능하다. 예를 들어, 단순히 문자열이나 숫자만을 사용하기보다는, 도메인 객체를 만들어 그 객체를 테스트 코드에 활용하는 방식으로 발전시킬 수 있다. 이를 통해 코드의 의미를 더 명확하게 표현할 수 있으며, 데이터의 무결성을 보장하면서 테스트 코드의 가독성을 높일 수 있다. 파이썬에서는 &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;dataclass&lt;/code&gt;를 활용하여 간단한 데이터 객체를 정의하고, 이를 통해 코드의 구조를 더욱 명확히 할 수 있을 것이다.&lt;/p&gt;

&lt;p&gt;가변성과 선언적 코드에 대한 챕터에서는 파이썬의 특성을 고려한 적용 방법을 생각해볼 수 있다. 예를 들어, 파이썬에서는 기본적으로 변수의 가변성이 높은데, 이 책에서 강조하는 불변성을 유지하기 위해 파이썬의 &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;frozenset&lt;/code&gt;이나 &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;tuple&lt;/code&gt;을 활용할 수 있다. 또한, 선언적 코드 작성의 예로는 리스트 컴프리헨션이나 제너레이터 표현식을 사용하여 코드를 더 명료하고 간결하게 만들 수 있다. 이런 접근은 코드의 의도를 명확히 드러내고, 유지보수성을 높이는 데 기여할 것이다.&lt;/p&gt;

&lt;p&gt;명명 규칙과 주석에 관한 내용은 파이썬의 네이밍 컨벤션과 잘 어우러질 수 있다. 예를 들어, 테스트 메서드의 이름을 통해 테스트의 목적과 기대 결과를 명확히 표현하고, 주석 대신 코드 자체로 의도를 드러내는 방식으로 코드를 작성할 수 있다. 파이썬에서는 메서드 이름을 명확하고 일관되게 지음으로써, 테스트 코드가 자체적으로 문서 역할을 하게 할 수 있다. 예를 들어, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;test_calculate_total_returns_correct_sum&lt;/code&gt;과 같이 메서드 이름을 통해 테스트의 목적을 분명히 할 수 있다.&lt;/p&gt;

&lt;p&gt;섣부른 최적화에 대한 경고는 파이썬 테스트 코드에서도 중요한 고려사항이 된다. 파이썬은 비교적 느린 인터프리터 언어이기 때문에 성능 최적화에 대한 유혹이 있을 수 있지만, 이 책에서 배운 바와 같이 테스트 코드에서는 우선 명료성과 유지보수성을 중시해야 한다. 예를 들어, 복잡한 최적화를 도입하기보다는, 간단한 테스트 케이스로 시작해 필요할 때 최적화를 추가하는 접근이 더 나을 것이다. &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;pytest&lt;/code&gt;의 매개변수화 기능을 활용하면, 복잡한 조건문 없이 다양한 테스트 시나리오를 간결하게 작성할 수 있다.&lt;/p&gt;

&lt;p&gt;이 책의 가장 큰 장점은 『클린 코드』의 원칙들을 다양한 언어로 구체적인 예시와 함께 설명하며, 이를 파이썬과 같은 실무 환경에 맞게 어떻게 적용할 수 있을지를 명확히 제시한다는 점이다. 파이썬의 유연한 문법과 기능을 활용해 이 원칙들을 구현함으로써, 코드 품질을 높이고 유지보수성을 강화할 수 있는 다양한 가능성을 열어줄 것이다. 예를 들어, 파이썬의 &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;context manager&lt;/code&gt;를 활용하여 자원 관리와 관련된 코드를 더 명확하고 안전하게 작성하거나, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;decorator&lt;/code&gt;를 사용해 중복 코드를 제거하고 관심사를 분리하는 방법도 고려해 볼 수 있다.&lt;/p&gt;

&lt;p&gt;결론적으로, 이 책은 『클린 코드』의 이론적 토대를 실무에 구현할 수 있는 구체적인 지침으로 발전시킨 중요한 책이다. 같은 원칙을 다양한 프로그래밍 언어에 어떻게 적용할 수 있는지를 비교 설명하는 접근은, 개발자들이 자신이 사용하는 언어에 맞춰 클린 코드의 개념을 실천하는 데 큰 도움을 준다. 앞으로 이 책에서 배운 원칙들을 바탕으로 파이썬 테스트 코드의 품질을 높이고, 유지보수성과 확장성을 동시에 확보하는 방향에 도움이 될 것이다.&lt;/p&gt;

&lt;p&gt;이 리뷰는 한빛미디어의 나는 리뷰어다 이벤트를 통해 책을 제공받아 작성했습니다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/FFwH8AU.jpeg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;
</description>
                <link>http://corazzon.github.io/hb-cleancode</link>
                <guid>http://corazzon.github.io/hb-cleancode</guid>
                <pubDate>2024-08-25T00:00:00+00:00</pubDate>
        </item>

        <item>
                <title>[도서 리뷰] 처음 시작하는 FastAPI</title>
                <description>&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/UhjoyCz.png&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;h1 id=&quot;처음-시작하는-fastapi&quot;&gt;처음 시작하는 FastAPI&lt;/h1&gt;

&lt;p&gt;이 책은 웹 개발과 파이썬을 통합하여 최신 기술을 활용하는 방법을 체계적으로 설명한다. “모던 웹과 파이썬”에서 시작하여 FastAPI를 중심으로 웹 애플리케이션 개발을 다루고, 실제 웹사이트 구현, 데이터 처리, 인증, 테스트, 배포 등의 주제를 포괄적으로 다룬다.&lt;/p&gt;

&lt;h2 id=&quot;part-1-모던-웹과-파이썬&quot;&gt;PART 1: 모던 웹과 파이썬&lt;/h2&gt;
&lt;h3 id=&quot;chapter-1-모던-웹&quot;&gt;CHAPTER 1: 모던 웹&lt;/h3&gt;
&lt;p&gt;이 장에서는 현대 웹의 기본 개념을 소개한다. 서비스와 API, 동시성, 계층, 데이터 등 웹 개발의 핵심 요소를 다룬다. 각 개념을 구체적으로 설명한다.&lt;/p&gt;

&lt;h3 id=&quot;chapter-2-모던-파이썬&quot;&gt;CHAPTER 2: 모던 파이썬&lt;/h3&gt;
&lt;p&gt;파이썬의 도구와 시작 방법, API 및 서비스, 변수, 타입 힌트, 데이터 구조, 웹 프레임워크 등을 설명한다. 파이썬의 최신 기능과 이를 활용하는 방법에 대해 구체적인 예제와 함께 설명하여 실무에서 바로 적용할 수 있게 돕는다.
FastAPI의 타입 힌트 기능은 파이썬의 타입 힌트 시스템을 기반으로 작동하며, 이를 통해 코드의 가독성, 유지보수성, 그리고 API의 자동화된 검증 및 문서화를 제공한다.&lt;/p&gt;

&lt;h2 id=&quot;part-2-빠르게-보는-fastapi&quot;&gt;PART 2: 빠르게 보는 FastAPI&lt;/h2&gt;
&lt;h3 id=&quot;chapter-3-fastapi-둘러보기&quot;&gt;CHAPTER 3: FastAPI 둘러보기&lt;/h3&gt;
&lt;p&gt;FastAPI의 기본 개념과 애플리케이션 생성, HTTP 요청과 응답, 자동 문서화 기능을 소개한다. FastAPI의 장점을 명확히 설명하며, 이를 통해 빠르고 효율적인 웹 개발이 가능함을 보여준다.&lt;/p&gt;

&lt;h3 id=&quot;chapter-4-starlette과-비동기-동시성&quot;&gt;CHAPTER 4: Starlette과 비동기, 동시성&lt;/h3&gt;
&lt;p&gt;FastAPI의 기반인 Starlette 프레임워크와 비동기 프로그래밍, 동시성 처리 방법을 다룬다. 직접적인 예제를 통해 비동기 처리의 효율성을 체감할 수 있다.
비동기 프로그래밍은 동시에 여러 작업을 수행할 수 있어, HTTP 요청을 빠르게 처리하는 데 유리하다. 예를 들어, 두 개의 외부 API에 비동기 요청을 보내고 그 결과를 결합하여 반환하는 경우, 각 요청을 순차적으로 처리하는 것보다 훨씬 빠르게 결과를 얻을 수 있다. 이는 네트워크 I/O를 효율적으로 처리하여 사용자에게 빠른 응답을 제공한다.&lt;/p&gt;

&lt;h3 id=&quot;chapter-5-pydantic과-타입-힌트-모델&quot;&gt;CHAPTER 5: Pydantic과 타입 힌트, 모델&lt;/h3&gt;
&lt;p&gt;데이터 검증과 관리에 사용되는 Pydantic 라이브러리와 타입 힌트를 설명한다. 데이터 유효성 검사와 모델 정의의 중요성을 강조하며, 이를 활용한 코드 예제를 제공한다.
Pydantic은 데이터를 자동으로 검증하고, 타입 힌트를 사용하여 입력 데이터를 정의할 수 있다. 이는 데이터가 정의된 스키마를 따르는지 확인하여, 잘못된 데이터 입력을 방지한다. 예를 들어, API 엔드포인트에 전달된 JSON 데이터가 예상한 형태와 일치하지 않으면, Pydantic은 이를 자동으로 감지하고 유효성 검사 오류를 발생시킨다.&lt;/p&gt;

&lt;h3 id=&quot;chapter-6-의존성&quot;&gt;CHAPTER 6: 의존성&lt;/h3&gt;
&lt;p&gt;의존성 관리의 중요성과 FastAPI에서의 의존성 주입 방법을 다룬다. 의존성 관련 문제와 해결 방법을 구체적으로 설명한다. 의존성 관리의 장점은 의존성 주입을 통해 코드를 모듈화하고 재사용성을 높일 수 있다. 특정 기능을 독립적인 모듈로 분리하여, 다른 부분에서도 쉽게 사용할 수 있게 된다. 이는 중복 코드를 줄이고 유지보수를 용이하게 만든다.&lt;/p&gt;

&lt;h3 id=&quot;chapter-7-프레임워크-비교&quot;&gt;CHAPTER 7: 프레임워크 비교&lt;/h3&gt;
&lt;p&gt;FastAPI와 Flask, Django 등의 다른 파이썬 웹 프레임워크를 비교한다. 각 프레임워크의 장단점을 분석하여, 상황에 맞는 적절한 선택을 도와준다. FastAPI를 사용해야 하는 상황은 높은 성능과 빠른 개발 속도가 필요한 경우이다. 비동기 기능을 기본 제공하여 많은 동시 요청을 효율적으로 처리할 수 있으며, 자동 문서화 기능으로 API 문서를 자동 생성해 개발과 유지보수를 용이하게 한다. 파이썬의 타입 힌트를 활용해 코드의 가독성과 유지보수성을 높이고, 직관적인 코드 작성이 가능해 개발 속도를 빠르게 할 수 있다. 이러한 특징 덕분에, 고성능 API 서버 구축이나 빠른 프로토타이핑이 필요한 프로젝트에서 FastAPI는 매우 적합한 선택이다. 상대적으로 작은 커뮤니티와 학습 곡선이 있지만, 높은 성능과 생산성 향상을 통해 충분히 보완할 수 있다.&lt;/p&gt;

&lt;h2 id=&quot;part-3-웹사이트-만들기&quot;&gt;PART 3: 웹사이트 만들기&lt;/h2&gt;
&lt;h3 id=&quot;chapter-8-웹-계층&quot;&gt;CHAPTER 8: 웹 계층&lt;/h3&gt;
&lt;p&gt;RESTful API 설계, 파일 및 디렉터리 구조, 첫 번째 웹사이트 코드 작성 등을 다룬다. 실제 웹 애플리케이션의 기초를 다지며, 단계별로 구현하는 방법을 설명한다.&lt;/p&gt;

&lt;h3 id=&quot;chapter-9-서비스-계층&quot;&gt;CHAPTER 9: 서비스 계층&lt;/h3&gt;
&lt;p&gt;서비스 계층의 정의와 레이아웃, 보호, 기능 구현 등을 설명한다. 서비스 계층의 역할과 이를 구현하는 방법을 구체적으로 다룬다. 서비스 계층은 비즈니스 로직을 캡슐화하여 애플리케이션의 다른 계층과 분리하는 역할을 한다. 이 계층은 데이터 처리, 검증, 변환 등의 기능을 담당하며, 데이터 계층과 웹 계층 간의 중간 다리 역할을 한다. 서비스 계층의 레이아웃은 모듈화되어 있어 유지보수와 테스트가 용이하다. 각 서비스는 독립적으로 구현되어 특정 기능을 수행하며, 이로 인해 코드의 재사용성과 가독성이 높아진다. 보호 측면에서는 인증 및 인가 로직을 포함하여 안전한 데이터 접근을 보장한다. 서비스 계층을 구현하는 방법으로는 먼저, 주요 비즈니스 로직을 식별하고 이를 개별 서비스로 나눈다. 각 서비스는 데이터베이스와 통신하여 필요한 데이터를 가져오고, 필요한 처리를 수행한 후 결과를 반환한다. 이를 통해 애플리케이션의 비즈니스 로직을 명확하게 분리하고, 코드의 일관성과 유지보수성을 높일 수 있다. FastAPI를 활용하면 의존성 주입과 같은 기능을 통해 서비스 계층의 구현이 더욱 간편하고 효율적이다.&lt;/p&gt;

&lt;h3 id=&quot;chapter-10-데이터-계층&quot;&gt;CHAPTER 10: 데이터 계층&lt;/h3&gt;
&lt;p&gt;데이터베이스 연동과 초기화, 서비스 계층과의 연결, 테스트 등을 설명한다. 데이터베이스의 중요성과 이를 효과적으로 관리하는 방법을 제시한다. 데이터 계층은 애플리케이션의 데이터를 저장하고 관리하는 역할을 한다. 데이터베이스 초기화는 테이블 생성, 스키마 정의 등을 포함하며, 마이그레이션 도구를 사용해 데이터베이스 변경 사항을 관리한다. 서비스 계층과 데이터 계층은 의존성 주입을 통해 연결되며, 서비스 계층은 데이터 계층을 통해 데이터베이스와 상호작용한다. 데이터 계층의 테스트는 단위 테스트와 통합 테스트를 포함하여, 데이터 처리 로직의 정확성을 검증한다.&lt;/p&gt;

&lt;h3 id=&quot;chapter-11-인증-및-인가&quot;&gt;CHAPTER 11: 인증 및 인가&lt;/h3&gt;
&lt;p&gt;인증과 인가의 필요성, 다양한 인증 방법, 미들웨어 등을 다룬다. 보안이 중요한 웹 애플리케이션에서의 필수 요소들을 구체적으로 설명한다.&lt;/p&gt;

&lt;p&gt;인증과 인가는 보안이 중요한 웹 애플리케이션에서 필수적이다. 인증은 사용자의 신원을 확인하는 과정이고, 인가는 인증된 사용자가 특정 자원에 접근할 권한이 있는지 확인하는 과정이다. JWT(토큰 기반 인증)는 널리 사용되는 방법으로, 사용자가 로그인하면 서버는 서명된 JWT를 발급하고, 클라이언트는 이를 저장하여 요청 시 포함시킨다. 서버는 JWT를 검증하여 사용자를 인증하고, 토큰 내 정보로 사용자의 권한을 확인한다. 미들웨어는 이러한 JWT 검증 로직을 처리하여, 모든 요청에 대해 인증 및 인가를 수행한다. FastAPI에서는 Depends와 함께 JWT 검증 미들웨어를 쉽게 통합할 수 있다.&lt;/p&gt;

&lt;h3 id=&quot;chapter-12-테스트&quot;&gt;CHAPTER 12: 테스트&lt;/h3&gt;
&lt;p&gt;웹 API 테스트, pytest를 이용한 테스트 자동화, 보안 테스트, 부하 테스트 등을 다룬다. 테스트의 중요성을 강조하며, 다양한 테스트 기법을 소개한다.&lt;/p&gt;

&lt;h3 id=&quot;chapter-13-프로덕션&quot;&gt;CHAPTER 13: 프로덕션&lt;/h3&gt;
&lt;p&gt;애플리케이션 배포, HTTPS 설정, 성능 최적화, 트러블슈팅 등을 설명한다. 실제 프로덕션 환경에서 발생할 수 있는 문제와 이를 해결하는 방법을 제시한다.&lt;/p&gt;

&lt;h2 id=&quot;part-4-갤러리&quot;&gt;PART 4: 갤러리&lt;/h2&gt;
&lt;h3 id=&quot;chapter-14-데이터베이스와-데이터-과학-ai&quot;&gt;CHAPTER 14: 데이터베이스와 데이터 과학, AI&lt;/h3&gt;
&lt;p&gt;데이터 저장소, 관계형 및 비관계형 데이터베이스, 데이터 과학과 AI의 활용을 다룬다. 데이터베이스와 데이터 과학의 융합을 통해 AI 프로젝트를 구현하는 방법을 설명한다.&lt;/p&gt;

&lt;h3 id=&quot;chapter-15-파일&quot;&gt;CHAPTER 15: 파일&lt;/h3&gt;
&lt;p&gt;파일 업로드와 다운로드, 정적 파일 서비스 등을 다룬다. 파일 처리의 중요성과 이를 효율적으로 관리하는 방법을 제시한다.&lt;/p&gt;

&lt;h3 id=&quot;chapter-16-양식과-템플릿&quot;&gt;CHAPTER 16: 양식과 템플릿&lt;/h3&gt;
&lt;p&gt;양식과 템플릿의 사용 방법을 설명한다. 사용자 인터페이스를 효율적으로 구축하는 방법을 소개한다.&lt;/p&gt;

&lt;h3 id=&quot;chapter-17-데이터-탐색-및-시각화&quot;&gt;CHAPTER 17: 데이터 탐색 및 시각화&lt;/h3&gt;
&lt;p&gt;데이터 탐색과 시각화 방법을 다룬다. 파이썬을 이용한 데이터 분석과 시각화 기법을 구체적으로 설명한다. 데이터과학과 연계해서 웹개발에 관심이 많은 편이라 직접 만든 결과를 웹으로 보여줄 수 있는 대시보드 등을 개발할 때 유용할만한 팁이 있다.&lt;/p&gt;

&lt;h3 id=&quot;chapter-18-게임&quot;&gt;CHAPTER 18: 게임&lt;/h3&gt;
&lt;p&gt;파이썬 게임 개발을 다룬다. 게임 로직 분리, 웹 계층과 서비스 계층의 구현, 테스트 방법 등을 설명한다. 게임 개발을 통해 파이썬의 다양한 활용 방법을 제시한다. 웹을 통해 단순한 게시판 등의 예제가 아닌 다양한 활용법을 제시하는 점이 인상적이었다.&lt;/p&gt;

&lt;p&gt;“처음 시작하는 FastAPI”는 웹 개발과 파이썬을 통합하여 최신 기술을 활용하는 방법을 체계적으로 설명하는 책이다. 모던 웹과 파이썬의 기본 개념을 다루며, FastAPI를 중심으로 웹 애플리케이션 개발을 단계별로 안내한다. RESTful API 설계, 파일 및 디렉터리 구조 설정, 데이터베이스 연동과 초기화, 인증과 인가, 서비스 계층의 구현 등을 포괄적으로 설명한다. 특히, FastAPI의 비동기 처리와 자동 문서화, Pydantic을 활용한 데이터 검증, JWT를 이용한 인증 방법 등을 자세히 다룬다. 이 책은 높은 성능과 빠른 개발 속도를 요구하는 프로젝트에 FastAPI가 적합하다는 점을 강조하며, 초보자부터 숙련자까지 모두에게 실무에서 바로 적용할 수 있는 유용한 내용을 제공한다. 단계별 설명과 다양한 예제로 구성된 이 책은 FastAPI를 통한 웹 개발의 모든 측면을 포괄적으로 다룬 훌륭한 참고서이다.&lt;/p&gt;

&lt;p&gt;다음은 “지은이의 말”이다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/bBpcnY3.png&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;p&gt;이 리뷰는 한빛미디어의 나는 리뷰어다 이벤트를 통해 책을 제공받아 작성했습니다.&lt;/p&gt;
</description>
                <link>http://corazzon.github.io/hb-fastapi-py</link>
                <guid>http://corazzon.github.io/hb-fastapi-py</guid>
                <pubDate>2024-07-28T00:00:00+00:00</pubDate>
        </item>

        <item>
                <title>[도서 리뷰] 데브옵스 엔지니어를 위한 실전 관찰 가능성 엔지니어링</title>
                <description>&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/n1oVqIW.jpeg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;p&gt;이 책은 현대 소프트웨어 개발과 운영 환경에서 날로 그 중요성이 커지고 있는 ‘관찰 가능성(Observability)’에 대해 포괄적이고 심도 있게 다루고 있다. 총 5개의 PART로 구성된 이 책은 관찰 가능성의 기본 개념부터 실제 적용 방법, 그리고 조직 문화에 미치는 영향까지 광범위한 내용을 체계적으로 설명하고 있다.&lt;/p&gt;

&lt;h3 id=&quot;개념의-명확한-정립&quot;&gt;개념의 명확한 정립&lt;/h3&gt;
&lt;p&gt;관찰 가능성의 개념을 명확히 정의하고, 기존의 모니터링과의 차이점을 상세히 설명하고 있어 관찰 가능성이 왜 현대 소프트웨어 시스템에서 필수적인지를 이해하는데 도움이 된다.&lt;/p&gt;

&lt;h3 id=&quot;실용적인-접근&quot;&gt;실용적인 접근&lt;/h3&gt;
&lt;p&gt;OpenTelemetry와 같은 실제 도구를 활용한 구현 방법을 상세히 다루고 있다.&lt;/p&gt;

&lt;h3 id=&quot;현대적인-소프트웨어-개발-트렌드와의-연계&quot;&gt;현대적인 소프트웨어 개발 트렌드와의 연계&lt;/h3&gt;
&lt;p&gt;클라우드 네이티브 환경, 마이크로서비스 아키텍처 등 현대적인 소프트웨어 개발 트렌드와 관찰 가능성의 연관성을 잘 설명하고 있다. 관찰 가능성이 현대 소프트웨어 개발 생태계에서 어떤 역할을 하는지 이해할 수 있다.&lt;/p&gt;

&lt;h3 id=&quot;데이터-기반-문제-해결-접근법-소개&quot;&gt;데이터 기반 문제 해결 접근법 소개&lt;/h3&gt;
&lt;p&gt;관찰 가능성을 통해 수집된 데이터를 활용한 문제 해결 방법을 상세히 설명하고 있어 실제 상황에서 데이터를 어떻게 해석하고 활용할 수 있는지에 대한 아이디어를 얻을 수 있다.&lt;/p&gt;

&lt;h3 id=&quot;slo-개념&quot;&gt;SLO 개념&lt;/h3&gt;
&lt;p&gt;서비스 수준 목표(SLO)와 같은 실용적인 개념을 소개하고, 이를 관찰 가능성과 연계하여 설명하고 있다. 관찰 가능성이 실제 비즈니스 목표와 어떻게 연결되는지 이해하는데 도움이 되었다.&lt;/p&gt;

&lt;h3 id=&quot;조직-문화와의-연계&quot;&gt;조직 문화와의 연계&lt;/h3&gt;
&lt;p&gt;관찰 가능성을 조직에 도입하고 확산시키는 방법에 대해 상세히 다루고 있다. 이는 기술적인 측면뿐만 아니라 조직 문화의 변화까지 고려한 포괄적인 접근 방식이다. 새로운 기술이나 방법론 등을 도입할 때는 조직에서 저항이 있을 수 밖에 없는데 이런 부분까지 고려한 점이 좋았다.&lt;/p&gt;

&lt;h3 id=&quot;사례-연구의-풍부한-활용&quot;&gt;사례 연구의 풍부한 활용&lt;/h3&gt;
&lt;p&gt;Parse, 슬랙, 허니컴과 같은 실제 기업들의 사례를 통해 관찰 가능성의 실제 적용 사례와 그 효과를 통해 실제 기업에서 어떻게 적용되는지에 대해 이해할 수 있어 좋았다.&lt;/p&gt;

&lt;h3 id=&quot;효율적인-데이터-스토리지-샘플링-전략&quot;&gt;효율적인 데이터 스토리지, 샘플링 전략&lt;/h3&gt;
&lt;p&gt;관찰 가능성 시스템의 효율적인 데이터 관리와 처리에 대해 다루고 있다. 데이터 스토리지에 대한 요구사항을 분석하고, 시계열 데이터베이스의 한계점을 설명하며, 허니컴 리트리버 사례를 통해 효율적인 데이터 저장 및 쿼리 전략을 소개한다. 데이터 수집 최적화를 위한 다양한 샘플링 전략을 다루며, 고정 확률, 트래픽 기반, 콘텐츠 기반 등의 접근 방식과 이들의 코드 구현 방법을 설명한다. 원격 측정 파이프라인 관리에 초점을 맞추어, 파이프라인의 주요 속성과 관리 과제를 논의하고, 슬랙의 사례 연구를 통해 실제 적용 사례를 보여준다. 또한 오픈소스 대안과 구축 vs 구매 결정에 대한 고려사항을 제시한다. 이를 통해 대규모 관찰 가능성 시스템 구축에 필요한 핵심 기술적 고려사항들을 알아볼 수 있다.&lt;/p&gt;

&lt;h3 id=&quot;앞으로의-전망-제시&quot;&gt;앞으로의 전망 제시&lt;/h3&gt;
&lt;p&gt;관찰 가능성의 과거와 현재를 분석하고, 미래의 발전 방향에 대해서도 논의하고 있다. 이는 독자들이 장기적인 관점에서 관찰 가능성을 이해하는 데 도움을 준다.&lt;/p&gt;

&lt;h3 id=&quot;비즈니스-가치&quot;&gt;비즈니스 가치&lt;/h3&gt;
&lt;p&gt;관찰 가능성이 단순히 기술적인 도구가 아니라 비즈니스에 실질적인 가치를 제공할 수 있음을 강조하고 있다. 기술 결정권자들에게 관찰 가능성 도입의 필요성을 설득하는 데 도움이 될것 같다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/cBRiPzE.jpeg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;p&gt;이 리뷰는 한빛미디어의 나는 리뷰어다 이벤트를 통해 책을 제공받아 작성했습니다.&lt;/p&gt;
</description>
                <link>http://corazzon.github.io/hb-devops</link>
                <guid>http://corazzon.github.io/hb-devops</guid>
                <pubDate>2024-06-24T00:00:00+00:00</pubDate>
        </item>

        <item>
                <title>[도서 리뷰] 실무로 통하는 ML 문제 해결 with 파이썬</title>
                <description>&lt;h3 id=&quot;실무로-통하는-ml-문제-해결-with-파이썬&quot;&gt;실무로 통하는 ML 문제 해결 with 파이썬&lt;/h3&gt;

&lt;p&gt;이 책은 기존 &lt;a href=&quot;https://hanbit.co.kr/store/books/look.php?p_code=B1652696754&quot;&gt;파이썬을 활용한 머신러닝 쿡북&lt;/a&gt;의 2판으로 이 책의 공동저자 중 한명인 크리스 알본(Chris Albon)은 데이터 사이언스와 머신 러닝 분야에서 잘 알려진 인물로, 특히 시각적인 설명과 교육 자료를 통해 잘 알고 있던 분이다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/NASMWYs.jpeg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;p&gt;아래 링크의 크리스 알본의 X계정을 팔로우 해보면 머신러닝과 관련된 여러 플래시카드를 그린 것을 볼 수 있다.
누구보다 쉽게 머신러닝 개념을 설명하고자 하는데 진심인듯한 모습을 볼 수 있다. 
또한 원서의 책이름에도 cookbook 이 들어갈 정도로 쉬운 설명에 진심이 느껴진다.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://x.com/chrisalbon/status/1589303505759924226&quot;&gt;X에서 Chris Albon 님 : “I’m drawing new machine learning flashcards every day. This is the new style because iPad drawing is easier than actual pen and paper (draw-to-product per card is seconds vs an hour) Thoughts or feedback? https://t.co/WzkV5fbaU8” / X&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;이 책은 데이터 사이언스와 머신러닝을 처음 접하는 사람들을 위한 실용적인 안내서로, 데이터 처리와 분석에 필요한 다양한 기법들을 체계적으로 소개하고 있다. 총 23장으로 구성되어 있으며, 각 장은 데이터 처리, 분석, 모델링에 필요한 기술을 세부적으로 다룬다.&lt;/p&gt;

&lt;h4 id=&quot;1장-벡터-행렬-배열&quot;&gt;&lt;strong&gt;1장: 벡터, 행렬, 배열&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;첫 번째 장은 벡터와 행렬, 배열의 기본 개념과 사용법을 설명한다. 벡터와 행렬을 만들고, 조작하는 다양한 방법들을 다루며, 넘파이 라이브러리를 활용한 효율적인 배열 관리를 소개한다. 수학적 연산과 데이터 전처리에 대한 기초를 탄탄히 다질 수 있다.&lt;/p&gt;

&lt;h4 id=&quot;2장-데이터-적재&quot;&gt;&lt;strong&gt;2장: 데이터 적재&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;두 번째 장에서는 다양한 소스로부터 데이터를 적재하는 방법을 배운다. CSV, 엑셀, JSON 파일 등 일반적인 파일 형식부터 SQLite, 구글 시트, S3 버킷 등 데이터베이스와 클라우드 서비스까지 폭넓게 다루고 있어 실제 현업에서 유용하게 활용할 수 있다.&lt;/p&gt;

&lt;h4 id=&quot;3장-데이터-랭글링&quot;&gt;&lt;strong&gt;3장: 데이터 랭글링&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;이 장은 데이터프레임을 다루는 기본적인 기술을 소개한다. 데이터프레임 생성, 슬라이싱, 정렬, 값 치환 등 데이터 정제와 변환에 필요한 여러 기법들을 설명하며, 판다스 라이브러리를 중심으로 실습한다.&lt;/p&gt;

&lt;h4 id=&quot;4장-수치형-데이터-다루기&quot;&gt;&lt;strong&gt;4장: 수치형 데이터 다루기&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;네 번째 장에서는 수치형 데이터의 전처리 방법을 다룬다. 특성 스케일링, 표준화, 정규화, 이상치 감지 및 처리 등 데이터 분석의 정확도를 높이기 위한 다양한 기법을 배울 수 있다.&lt;/p&gt;

&lt;h4 id=&quot;5장-범주형-데이터-다루기&quot;&gt;&lt;strong&gt;5장: 범주형 데이터 다루기&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;이 장은 범주형 데이터를 효과적으로 처리하는 방법을 설명한다. 순서가 있는 범주형 데이터와 없는 데이터의 인코딩 방법을 비롯해, 누락된 클래스 값을 대체하고 불균형한 클래스를 다루는 기술을 배운다.&lt;/p&gt;

&lt;h4 id=&quot;6장-텍스트-다루기&quot;&gt;&lt;strong&gt;6장: 텍스트 다루기&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;여섯 번째 장에서는 텍스트 데이터를 처리하고 분석하는 기법들을 다룬다. 텍스트 정제, 토큰화, 불용어 제거, 감성 분석 등 NLP(자연어 처리)의 기본적인 기술들을 실습할 수 있다.&lt;/p&gt;

&lt;h4 id=&quot;7장-날짜와-시간-다루기&quot;&gt;&lt;strong&gt;7장: 날짜와 시간 다루기&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;이 장에서는 날짜와 시간 데이터를 다루는 방법을 학습한다. 문자열을 날짜로 변환하고, 시간대를 처리하며, 날짜 간의 차이를 계산하는 등 시계열 데이터 분석에 필수적인 기술들을 소개한다.&lt;/p&gt;

&lt;h4 id=&quot;8장-이미지-다루기&quot;&gt;&lt;strong&gt;8장: 이미지 다루기&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;여덟 번째 장에서는 이미지 데이터를 처리하고 분석하는 방법을 배운다. 이미지 로드, 저장, 크기 변경, 자르기, 필터 적용 등 이미지 전처리 기법을 다루며, OpenCV와 파이토치 등을 활용한 실습을 포함한다.&lt;/p&gt;

&lt;h4 id=&quot;9장--19장-머신러닝-기법&quot;&gt;&lt;strong&gt;9장 ~ 19장: 머신러닝 기법&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;이 섹션에서는 다양한 머신러닝 기법들을 소개한다. 선형 회귀, 결정 트리, 랜덤 포레스트, k-최근접 이웃, 로지스틱 회귀, 서포트 벡터 머신, 나이브 베이즈, 군집 등 주요 알고리즘을 설명하고, 실습을 통해 모델을 구축하고 평가하는 방법을 배울 수 있다.&lt;/p&gt;

&lt;h4 id=&quot;20장--22장-신경망과-비정형-데이터&quot;&gt;&lt;strong&gt;20장 ~ 22장: 신경망과 비정형 데이터&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;이 장들은 신경망과 비정형 데이터를 다루는 방법을 다룬다. 파이토치를 활용한 텐서 처리, 신경망 구성, 이미지와 텍스트 분류 신경망 훈련 등을 실습한다. 특히 사전 훈련된 모델을 활용한 미세 튜닝 기법도 포함되어 있어 실용적이다.&lt;/p&gt;

&lt;h4 id=&quot;23장-훈련-모델의-저장-로딩-서빙&quot;&gt;&lt;strong&gt;23장: 훈련 모델의 저장, 로딩, 서빙&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;마지막 장에서는 훈련된 모델을 저장하고 로드하는 방법을 학습한다. 사이킷런, 텐서플로, 파이토치 등 주요 라이브러리를 활용한 모델 저장과 서빙 기술을 배울 수 있어, 실제 프로젝트에 적용할 유용한 팁을 알려준다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/4doXYSS.jpeg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/05hl8Sq.jpeg&quot; width=&quot;600&quot; /&gt;
개정판에서는 파이토치를 활용한 딥러닝 기법과 모델의 저장 서빙에 대한 내용이 대폭 강화되었고 책 이름이 바뀔 정도로 정말 많은 변화가 있었다.
평소 인상적으로 봐오던 크리스알본이 참여한 책이라 더 인상깊게 볼 수 있었다.&lt;/p&gt;
</description>
                <link>http://corazzon.github.io/hb-chris-ml</link>
                <guid>http://corazzon.github.io/hb-chris-ml</guid>
                <pubDate>2024-05-26T00:00:00+00:00</pubDate>
        </item>

        <item>
                <title>[도서 리뷰] 챗GPT API를 활용한 챗봇 만들기</title>
                <description>&lt;p&gt;5일만에 파이썬, 프롬프트 엔지니어링, 오픈AI API, 에이전트, 벡터DB 마스터하기라는 매력적인 문구에 이끌려 이 책을 읽게 되었다.
요즘 고객센터 문의나 질의응답에서 사람의 대답을 얻는 것보다 AI의 답을 얻는 것이 흔한 시대가 되었다.
기술적인 질문에 대해서도 일일이 찾아 답변하지 않아도 API 가 알아서 지난 질문의 답을 찾아와 링크까지 걸어주며 친절하게 답을 해준다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/dTvOmFh.jpeg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;챗GPT API를 활용한 챗봇 만들기&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;챗GPT 가 나오고 여러 서비스에 플러그인 형태로 API 를 활용한 플러그인을 지난 한 해 동안 여러 개 사용해 왔다.
API도 간단하고 단순하기 때문에 최근 점점 추상화 되고 있는 프로그래밍 라이브러리나 패키지를 활용하면 그럴 듯한 챗봇을 만들 수 있는데 이 책에 이런 레시피가 친절하게 나와있다.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/3VZAHkS.jpeg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;4 프롬프트 엔지니어링의 기초&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;챗봇 개발에 필요한 필수적인 파이썬에 대한 내용을 배우고 프롬프트 사용법 그리고 프롬프트 엔지니어링에 대한 기법까지 핵심적인 노하우 위주로 학습할 수 있도록 구성이 되어있다.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/Co7UeUQ.jpeg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;5 프롬프트 엔지니어링의 핵심 기법&lt;/li&gt;
  &lt;li&gt;원하는 답변을 얻기 위해 다음과 같은 프롬프트 기법에 대해서도 예시와 함께 설명을 하고 있다. 챗봇을 개발하다보면 API 사용뿐만 아니라 프롬프트를 어떻게 구성해야 할지에 대한 아이디어를 얻어볼 수 있도록 구성되어 있다.&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
  &lt;li&gt;프롬프트를 잘 만드는 방법 &lt;/li&gt;
  &lt;li&gt;LLM과 인-컨텍스트 러닝 &lt;/li&gt;
  &lt;li&gt;Few-shot Prompting &lt;/li&gt;
  &lt;li&gt;CoT 기법 &lt;/li&gt;
  &lt;li&gt;SC 기법 &lt;/li&gt;
  &lt;li&gt;ToT 기법 &lt;/li&gt;
  &lt;li&gt;ReAct 기법 &lt;/li&gt;
  &lt;li&gt;RAG 기법&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/Opv4rxt.jpeg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;6 프롬프트 엔지니어링으로 챗봇 설계하고 구현하기&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;이전 챕터에서 배운 기법을 활용하여 실제로 어떻게 프롬프트를 만들고 설계해야 하는지에 대한 구체적인 방법을 알아볼 수 있다.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;1. 대화형 언어 모델에서의 컨텍스트 
2. 챗봇 시스템 설계하기 
3. 프롬프트 만들기 
4. 프롬프트 실행하기 
5. 생성 결과 개선하기
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/i1l9FPR.jpeg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;7 웹 애플리케이션에서 챗봇과 대화하기&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;프롬프트를 구성하였다면 이제 직접 챗봇을 구현할 준비가 되었다. 백엔드나 서버개발이 처음일지라도 간단하게 애플리케이션을 구현할 수 있는 핵심적인 노하우를 소개하고 있다.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;1. 서버 프로그램의 동작 살펴보기 
2. 서버 구동 과정 손에 익히기 
3. application.py 살펴보기 
4. 웹 리소스 적용하기 
5. 화면에서 대화 주고받기 
6. Chatbot 객체와 연결해서 대화하기
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/Ce5vFXF.jpeg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;8 프롬프트 엔지니어링으로 챗봇 꾸미기&lt;/li&gt;
  &lt;li&gt;그럴 듯한 챗봇을 구현하기 위해 이전 챕터에서까지 다뤘던 내용을 활용할 수 있는 노하우를 제시한다.&lt;/li&gt;
&lt;/ul&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;1. 시스템 역할을 통한 페르소나 구축 
2. 시스템 역할 성능 개선하기 
3. 내 찐친으로 탈바꿈하기 
4. 컨텍스트 용량 관리하기 
5. 공통사항을 미리 반영하기
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/3RU6lwn.jpeg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;9 인간의 언어로 함수 호출하기&lt;/li&gt;
  &lt;li&gt;Tavily 를 활용하여 인터넷 검색을 활용하여 현실세계 데이터를 활용할 수 있는 방법을 소개한다.&lt;/li&gt;
&lt;/ul&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;1. 언어 모델이 함수를 호출하는 방법 
2. Function Calling 활용해서 인터넷 검색하기 
3. 병렬적 Function Calling
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/c6Xnlgi.jpeg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;10 에이전트 구현과 프롬프트 분할&lt;/li&gt;
  &lt;li&gt;사람과 일을 할 때도 작은 작업 단위로 체크해가며 진행해야 좀더 꼼꼼하게 일을 진행할 수 있는 것처럼 에이전트에게 복잡한 태스크를 분할하여 태스크를 진행할 수 있는 노하우를 다룬다.&lt;/li&gt;
&lt;/ul&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;1. 에이전트 개념 잡기 
2. 자율적 에이전트가 동작하는 원리 
3. 자율적 에이전트 구현하기 
4. 복잡한 Task 분할하기 
5. 찐친에게 에지를 주는 방법 
6. WarningAgent 구현하기 
7. WarningAgent 사용하기
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/IcDokeq.jpeg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;11 대화 내용 저장하기&lt;/li&gt;
  &lt;li&gt;몽고DB를 활용하여 데이터를 저장하는 방법에 대해 소개한다. 대화가 증발되지 않도록 다음에 다시 챗봇을 열었을 때도 지난 대화 내용을 확인할 수 있는 방법을 알 수 있다.&lt;/li&gt;
&lt;/ul&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;1. 도큐먼트 DB 
2. MemoryManager 구현하기 
3. MemoryManager 사용하기
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/mm9tMqh.jpeg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;12 기억을 위한 준비&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;임베딩 텍스트를 저장하고 사용할 수 있는 PineconeDB 활용법을 소개한다. 몽고DB 사용법 처럼 API를 통해 벡터DB를 활용할 수 있는 방법을 알 수 있다.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;1. 컴퓨터가 언어를 이해하는 방법 
2. 인간이 임베딩을 대하는 방법 
3. 임베딩 모델 사용해 보기 
4. 벡터DB의 필요성 
5. PineconeDB 맛보기
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/OAKaAk3.jpeg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;13 기억을 동작시키는 방법&lt;/li&gt;
  &lt;li&gt;임베딩되어 저장된 DB에서 유사도를 통해 데이터를 가져와서 대화를 생성하는 방법을 다루고 있다. 기억된 내용으로 유사도를 통해 답변을 생성하기 때문에 할루시네이션을 줄이고 의미있는 답변을 구성할 수 있는 노하우를 다루고 있다.&lt;/li&gt;
&lt;/ul&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;1. 대화 일괄 생성 
2. 기억을 구조화하는 방법 
3. 데이터베이스에 기록하기 
4. 실시간으로 기억 검색하기 
5. 실시간으로 기억해 내기 
6. 백그라운드에 기억 저장하기

&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/1aC2U2m.jpeg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;14 Assistants API 개념 잡기&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/qjvPW7K.jpeg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;15 Assistants API 심화 학습&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/DkIjJR6.jpeg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;16 GPTs와 API 사용전략&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/XvHrUNv.jpeg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;17 카카오톡에 챗봇 올리기&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/j4Y6Kmj.jpeg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;18 멀티모달 기능 적용하기&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/G6fHaS4.jpeg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;작게 여러 번 하기&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/gNMfRh0.jpeg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;p&gt;API를 활용하여 설치나 설정에 대한 부담을 줄이고 초보자라도 기본적인 파이썬 사용법을 이해하고 있다면 챗봇을 구현해 볼 수 있는 기본적인 기법을 짜임새 있게 설명하고 있다. 구름IDE를 사용하여 개발할 수 있는 방법까지 제공하고 있기 때문에 환경설정에 어려움을 느끼는 사람도 비교적 시행착오를 적게 줄여가면서 챗봇을 구현할 수 있는 노하우를 제시하고 있는 책이다.&lt;/p&gt;

&lt;p&gt;AskUp 과 같은 카카오톡 챗봇이나 디스코드 챗봇 등이 어떻게 구현되는지 지난 대화 내용이나 데이터를 바탕으로 어떻게 대화를 생성해 나가는지, 날씨와 같은 실시간성 정보를 어떻게 웹사이트 상에서 가져오는지에 대한 방법과 핵심 노하우를 배울 수 있는 책이다.&lt;/p&gt;

&lt;p&gt;이 리뷰는 한빛미디어의 나는 리뷰어다 이벤트를 통해 책을 제공받아 작성했습니다.&lt;/p&gt;

</description>
                <link>http://corazzon.github.io/chatbot-api-hb</link>
                <guid>http://corazzon.github.io/chatbot-api-hb</guid>
                <pubDate>2024-04-28T00:00:00+00:00</pubDate>
        </item>

        <item>
                <title>[도서 리뷰] 쉽고 빠르게 익히는 실전 LLM</title>
                <description>&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/6D7afG4.jpeg&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;모델을 직접 만들거나 파인튜닝 해서 쓰던 것에서 API를 사용하여 쉽게 나만의 모델을 만들 수 있는 시대가 되었다.
프로그래밍 초보자라도 API 사용법과 간단한 추상화된 웹개발 도구 몇 가지를 익힌다면 나만의 LLM 챗봇이나 AI도구를 만들 수 있는 시대가 되었다.&lt;/p&gt;

&lt;p&gt;이에 대한 친절한 가이드가 되는 책이 바로 이 책이다.
파이썬 기반의 다양한 라이브러리를 활용하여 웹개발이 처음이라도 FAST API를 통해 간단한 서비스를 구현할 수 있게 돕는 책이 바로 이 책이다.&lt;/p&gt;

&lt;p&gt;최근 LLM모델의 API를 사용한 서비스 개발 관심도가 엄청나게 높은데 친절한 튜토리얼을 찾고자 한다면 이 책이 큰 도움이 되리라 생각된다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/cmauo50.png&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;나만의 프롬프트 혹은 내가 수집한 데이터 혹은 검색을 함께 활용하여 논문을 분석하거나 리포트를 만들거나 복잡한 PDF문서에 있는 내용에서 원하는 정보를 찾기 위해 모델을 만들어 봤다면 작은 태스크일지라도 의외로 거쳐야하는 전처리 과정이 복잡하게 느껴질 수도 있고 또 선택지가 많아서 고민이 될 수도 있다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/rrkrPl1.png&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;긴 문서를 다룰 때 어떤식으로 청크를 다뤄야 할지에 대한 제안 사항도 참고해볼만하다.&lt;/p&gt;

&lt;p&gt;벡터DB를 구성한다면 Pinecone으로 할지 직전 구현할지 또 임베딩은 어떻게 할지, 토큰, 청킹 등 다양한 고민 앞에 놓이게 되는데 이런 고민에 대한 간단한 예제코드들이 다양하게 제공되어 잘 동작하는 코드를 통해 서비스 구현에 대한 힌트를 얻는데 도움이 되었다.&lt;/p&gt;

&lt;p&gt;이 책에서 제공하는 예제 소소코드만을 활용해서 내 업무나 연구에 활용한다면 제법 쉽고 빠르게 나만의 LLM서비스를 구현해 볼 수 있지 않을까 싶다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/32FgHVH.png&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;소스코드에 API 키만 바꿔 입력해보고 나만의 LLM 서비스를 만드는데 활용해 볼 수 있게 되어 있다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/0pFb4MS.png&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;책 소스코드 위치
    &lt;ul&gt;
      &lt;li&gt;&lt;a href=&quot;https://github.com/sinanuozdemir/quick-start-guide-to-llms/tree/main&quot;&gt;sinanuozdemir/quick-start-guide-to-llms&lt;/a&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;이 리뷰는 한빛미디어의 나는 리뷰어다 이벤트를 통해 책을 제공받아 작성했습니다.&lt;/p&gt;
</description>
                <link>http://corazzon.github.io/llm-hb</link>
                <guid>http://corazzon.github.io/llm-hb</guid>
                <pubDate>2024-03-24T00:00:00+00:00</pubDate>
        </item>

        <item>
                <title>[도서 리뷰] 딥러닝의 정석 (2판)</title>
                <description>&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/mHX5P3J.png&quot; width=&quot;300&quot; /&gt;&lt;/p&gt;

&lt;p&gt;파이토치는 딥러닝 연구 및 애플리케이션 개발에 있어 가장 인기 있는 프레임워크 중 하나로, 그 사용의 용이성과 유연성 때문에 널리 채택되고 있다. 이 책은 파이토치의 기본적인 사용법부터 고급 기능까지 체계적으로 다루며, 딥러닝의 다양한 주제를 이해하는데 도움을 준다.&lt;/p&gt;

&lt;p&gt;딥러닝 입문자라면 전반전인 기본을 탄탄하게 쌓는데 도움이 될만한 내용으로 구성되어 있고, 실무자에게도 기본 지식을 확인할 수 있는 기초를 탄탄하게 다질 수 있는 책이다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/12pEx8I.png&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;첫 장에서는 딥러닝에 필요한 선형대수학의 기초를 다루며, 행렬과 벡터의 연산부터 시작해 고유값과 고유벡터에 대한 개념을 설명한다.&lt;/p&gt;

&lt;p&gt;두 번째 장에서는 확률론의 기초를 다루며, 사건의 확률부터 조건부 확률, 확률 변수, 기댓값과 분산 등의 개념을 통해 모델의 불확실성을 수량화하는 방법을 설명한다. 또한, 베이즈 정리와 엔트로피 개념을 통해 데이터에서 정보를 추출하고 해석하는 방법에 대해 배운다. 딥러닝을 위한 베이즈 기법과 엔트로피에 대한 개념을 통해 딥러닝에 필요한 필수적인 이론과 수식을 배울 수 있다.&lt;/p&gt;

&lt;p&gt;세 번째 장에서는 신경망의 기본 구조와 작동 원리에 대해 설명한다. 이 장에서는 인공 뉴런, 퍼셉트론, 순방향 신경망 등의 기본적인 개념을 다루며, 활성화 함수의 종류와 역할에 대해서도 배운다.&lt;/p&gt;

&lt;p&gt;네 번째 장은 신경망 훈련에 초점을 맞추며, 경사하강법과 역전파 알고리즘을 비롯한 학습 알고리즘에 대해 자세히 다룬다. 이 장에서는 신경망의 학습 과정에서 발생할 수 있는 다양한 문제와 그 해결 방법에 대해 설명한다.&lt;/p&gt;

&lt;p&gt;다섯 번째 장에서는 PyTorch를 사용한 신경망 구현 방법을 소개한다. 이 장에서는 PyTorch의 기본 개념, 텐서 연산, 자동 미분 기능, 데이터 로딩 방법 등을 다루며, MNIST 데이터셋을 사용한 분류기를 구축하는 과정을 통해 실습한다.&lt;/p&gt;

&lt;p&gt;여섯 번째 장에서는 경사하강법에 관한 심화 내용을 다루며, 특히 심층 신경망의 학습 과정에서 발생할 수 있는 다양한 도전 과제를 소개한다. 이 장은 경사하강법의 기본 원리를 넘어서, 심층 신경망에서의 극소점 문제, 모델 식별성, 가짜 극소점의 영향 등을 다룬다. 또한, 학습 과정을 개선하기 위한 다양한 최적화 기법들, 예를 들어 모멘텀 기반 최적화, AdaGrad, RMSProp, Adam 등의 알고리즘을 소개하며, 각각의 장단점과 적용 사례를 설명한다.&lt;/p&gt;

&lt;p&gt;일곱 번째 장은 합성곱 신경망(CNN)에 대해 다루며, 이미지 인식과 처리에서의 핵심 기술로 CNN을 소개한다. 인간의 시각 시스템에서 영감을 받은 이 장은 필터, 피처 맵, 맥스 풀링 등의 개념을 소개하고, CNN의 다양한 아키텍처와 그 구현에 대해 설명한다. 또한, MNIST와 CIFAR-10 데이터셋을 사용한 실제 예제를 통해 CNN을 통한 이미지 분류, 객체 인식 등의 문제를 해결하기 위한 CNN의 기본적인 구조와 작동 원리를 배우게 된다.&lt;/p&gt;

&lt;p&gt;여덟 번째 장에서는 저차원 표현 학습과 임베딩 기술을 다룬다. 이 장은 텍스트, 이미지 등 고차원 데이터를 저차원 공간에 효과적으로 표현하는 방법을 소개한다. 주성분 분석(PCA), 오토인코더, Word2Vec 등의 기술을 통해, 데이터의 본질적인 특성을 추출하고, 이를 활용해 더 효율적인 학습과 데이터 해석을 가능하게 하는 방법을 배운다. 특히, 오토인코더의 경우, 데이터의 노이즈 제거와 희소 표현 학습에 효과적임을 설명하며, 실제 PyTorch를 이용한 구현 방법을 제시한다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/SexUuyx.png&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;열 번째 장은 생성 모델에 집중하며, 이를 통해 데이터를 생성하는 방법을 배운다. 생성적 적대 신경망(GAN)과 변이형 오토인코더(VAE)가 주요 주제로, 이들 모델이 어떻게 학습되어 새로운 데이터를 생성하는지 설명한다. GAN의 경우, 생성자와 판별자 간의 경쟁을 통해 학습이 이루어지는 과정을, VAE는 데이터의 잠재 공간을 학습하여 데이터를 생성하는 방식을 소개한다. 또한, 이 장에서는 PyTorch를 이용한 구현 방법과 함께, 생성 모델이 어떻게 이미지, 텍스트, 음악 등 다양한 유형의 데이터 생성에 적용될 수 있는지를 보여준다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/gQmM1Ad.png&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/1Awo5j5.png&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;열한 번째 장에서는 해석 가능성 방법론을 다룬다. 딥러닝 모델, 특히 심층 신경망은 종종 ‘블랙 박스’로 비판받는데, 이 장에서는 모델의 결정을 이해하고 해석하는 다양한 기법을 소개한다. 결정 트리와 같은 해석 가능한 모델부터, LIME, SHAP 같은 모델에 대한 해석을 돕는 방법론까지 다양한 접근 방법을 설명하며, 특히 피처 중요도와 부분 의존도 그래프를 통해 모델의 결정에 영향을 미치는 요인들을 분석하는 방법을 다룬다.&lt;/p&gt;

&lt;p&gt;열두 번째 장은 메모리 증강 신경망에 관한 것으로, 신경망에 외부 메모리를 결합하여 복잡한 문제를 해결하는 방법을 소개한다. 신경망 튜링 머신(NTM)과 미분 가능한 신경망 컴퓨터(DNC)가 주된 주제로, 이들 모델이 기존의 신경망 모델보다 어떻게 더 복잡한 패턴을 학습하고 기억할 수 있는지 설명한다. 이 장에서는 메모리 접근, 주소 지정 메커니즘, 간섭 없는 쓰기 등의 개념을 다루며, PyTorch를 이용한 구현 예제를 통해 실제 문제 해결에 적용하는 방법을 보여준다.&lt;/p&gt;

&lt;p&gt;마지막으로, 열세 번째 장에서는 강화 학습을 다룬다. 이 장은 강화 학습의 기본 개념, 마르코프 결정 과정, 정책, 보상 시스템 등을 소개하며, 심층 강화 학습이 어떻게 복잡한 환경에서의 학습 문제를 해결할 수 있는지 설명한다. 특히, Atari 게임을 마스터한 사례를 포함하여, 탐색과 활용의 균형, 다양한 강화 학습 알고리즘(예: Q-learning, 정책 그래디언트)의 원리와 적용 방법을 다룬다. 강화 학습이 어떻게 복잡한 의사결정 문제를 해결하는 데 사용될 수 있는지 이해하는데 도움이 된다.&lt;/p&gt;

&lt;p&gt;책에 대한 소스코드는 다음 링크에서 볼 수 있다.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/darksigma/Fundamentals-of-Deep-Learning-Book&quot;&gt;darksigma/Fundamentals-of-Deep-Learning-Book: Code companion to the O’Reilly “Fundamentals of Deep Learning” book&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;딥러닝을 배울 때 파이토치와 텐서플로 중에 고민을 하게 되는데 최근에는 텐서플로에 비해 파이토치가 직관적인 이유로 연구자들의 많은 선택을 받고 있다.
이론적인 내용과 수식, 코드까지 함께 배우고자 할 때 참고해 보면 좋을만한 책이다.&lt;/p&gt;

&lt;p&gt;최근 많은 주목을 받고 있는 트랜스포머까지 있다면 더 좋았겠다는 아쉬움도 있지만 강화학습까지 광범위한 내용을 다룬 책이기도 하다.&lt;/p&gt;

&lt;p&gt;이 리뷰는 한빛미디어의 나는 리뷰어다 이벤트를 통해 도서를 제공받아 작성했습니다.&lt;/p&gt;
</description>
                <link>http://corazzon.github.io/hb-dl-pytorch</link>
                <guid>http://corazzon.github.io/hb-dl-pytorch</guid>
                <pubDate>2024-02-25T00:00:00+00:00</pubDate>
        </item>

        <item>
                <title>[도서 리뷰] Release의 모든 것</title>
                <description>&lt;p&gt;“Release의 모든 것”은 다음 책의 번역서로 한국어서는 2판으로 한빛미디어에서 출판되었다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/jaQwRO1.png&quot; width=&quot;400&quot; border=&quot;1&quot; /&gt; 
&lt;img src=&quot;https://i.imgur.com/prWygeb.png&quot; width=&quot;400&quot; border=&quot;1&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://pragprog.com/titles/mnee2/release-it-second-edition/&quot;&gt;Release It! Second Edition: Design and Deploy Production-Ready Software by Michael Nygard&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;이 책은 개발자들이 프로덕션 환경에서 소프트웨어를 디자인하고 배포할 때 마주치는 다양한 문제들을 직관적이고 현실적으로 다루고 있다. 저자가 이야기하는 건 이론적인 얘기가 아니라, 실제 현장에서 겪은 경험을 토대로 한 거라서 경험 많은 사수에게 듣는 꿀팁같은 느낌이다.&lt;/p&gt;

&lt;p&gt;뭔가 한 문장으로 표현하자면, “빨리 배우고, 빨리 고쳐라” 라는 말이 떠오르게 하는 책이다. 새로운 기술 도입부터, 배포 전략, 장애 대응, 로깅, 모니터링까지, 이런걸 다루면서 ‘왜 나는 이런 삽질을 했지?’ 라는 경험을 공감하며 읽었다.&lt;/p&gt;

&lt;p&gt;이게 뭐 대충 이런 책일 줄 알았는데, 읽다보니까 나의 코드가 얼마나 부실한지를 깨닫게 되더라. 그동안 살면서 나만의 ‘나름대로 규칙’이라고 생각했던 게, 이 책에서는 ‘왜 그렇게 하는 게 좋은지’를 이해시켜주면서 책임감을 심어줬다.&lt;/p&gt;

&lt;p&gt;책 내용은 가볍게 볼 수 없는 테크니컬한 내용이 많아서 초급자에게는 조금 어려울 수도 있다. 그래도 실무에서 경험하고 나서 읽으면 더 와닿을 것 같다. 특히, 장애 대응에 관한 부분이 인상적이었다.&lt;/p&gt;

&lt;p&gt;대규모 웹 분산 시스템을 설계, 배포 및 운영하는 데 필요한 실질적인 지침과 전략을 제공하고 있다. 이 책은 실제 운영 환경에서 마주치는 문제들과 그에 대한 해결책을 다루며, 고가용성, 견고함, 복원력 있는 시스템을 만드는 방법에 중점을 두고있다. 대규모 웹 분산 시스템의 배포 및 운영에 깊이 관여하는 아키텍트, 시스템 엔지니어, 개발자, 운영 팀에게 유용한 지침을 제시한다. 실제 사례를 바탕으로 한 깊이 있는 통찰력을 통해, 이들은 시스템 설계 및 운영의 다양한 측면에서 나타날 수 있는 문제들을 예측하고 대비할 수 있게 도움을 주는 내용으로 구성되어 있다.&lt;/p&gt;

&lt;h3 id=&quot;공감할-만한-서비스-장애-이슈&quot;&gt;공감할 만한 서비스 장애 이슈&lt;/h3&gt;

&lt;p&gt;서비스를 운영해 본 개발자라면 다음과 같은 상황을 마주한 적이 있을 것이고 아래 상황들로 장애를 겪고 해결하는 과정을 겪었을 것이다.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;세션 수가 매우 높음&lt;/li&gt;
  &lt;li&gt;높은 네트워크 대역폭 사용량&lt;/li&gt;
  &lt;li&gt;긴 애플리케이션 서버 페이지 지연 시간(응답 시간)&lt;/li&gt;
  &lt;li&gt;낮은 CPU 사용량 (웹, 애플리케이션, 데이터베이스)&lt;/li&gt;
  &lt;li&gt;검색 서버는 정상적으로 응답&lt;/li&gt;
  &lt;li&gt;요청 처리 스레드 대부분이 바쁘고, 일부는 3분 이상 요청 처리 중&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;응답-지연-문제&quot;&gt;응답 지연 문제&lt;/h3&gt;

&lt;p&gt;응답 지연이 연계 장애를 유발한다는 점은 서비스를 운영해 본 개발자라면 공감할만한 주제다. 한 시스템에서의 지연이 전방의 시스템에 영향을 주고, 결국 전체적인 성능에 큰 영향을 미칠 수 있다. 이렇게 되면 안정성 문제가 일어나기 쉬워지고, 사용자 경험 또한 떨어지게 된다.
그래서 웹 사이트의 경우 응답 지연이 더 많은 트래픽을 발생시길 수도 있다. 사용자가 페이지를 기다리면서 반복해서 새로고침 버튼을 누르면서 더 많은 트래픽이 몰리면, 이미 과부하된 시스템에 더 큰 부담을 주게 되어 또 다른 문제의 원인이 된다.
응답 지연은 연쇄적으로 심각한 문제를 일으킨다는 것이다. 응답 지연은 시스템의 취약성을 초래하고, 특히 웹 사이트에서는 트래픽 폭증을 야기한다. 사용자가 기다림에 지쳐서 반복적으로 새로 고침을 시도하면서 시스템에 더 큰 부하를 주게된다.
응답 지연이 전체 시스템에 어떤 영향을 미치는지, 그리고 사용자가 어떻게 느끼는지를 생각하면서 설계를 해야한다.&lt;/p&gt;

&lt;p&gt;책에서 강조한 빠른 실패 개념도 실용적이다. 시스템이 복구할 수 없는 상태에 이르기 전에 빠르게 오류를 반환하여 장애의 확산을 막는 것이 현명한 판단이라고 생각한다. 이렇게 하면 초기에 문제를 파악하고 대응할 수 있기 때문에 시스템의 안정성을 크게 향상시킬 수 있다.
시스템이 응답성을 모니터링하고, 평균 응답 시간이 허용치를 초과할 때 즉시 오류 응답을 고려하는 것은 안정성을 유지하는 전략이다.&lt;/p&gt;

&lt;h3 id=&quot;메모리-누수나-자원-경합&quot;&gt;메모리 누수나 자원 경합&lt;/h3&gt;

&lt;p&gt;메모리 누수나 자원 경합 문제는 성능 저하의 주범이다. 이런 문제를 해결하기 위해서는 효율적인 자원 관리와 코드 최적화가 필수적이다. 그리고 네트워크 프로토콜의 최적화는 네트워크 지연을 줄이는 데에 큰 도움이 된다는 것을 느꼈다. 메모리 누수와 자원 경합을 찾아내는 것도 서비스 운영에 중요한 이슈다. 부족한 데이터베이스 연결이 응답을 느리게 만들고, 메모리 누수는 가비지 컬렉터의 과도한 작업을 유발해 전체 시스템의 성능을 떨어뜨린다. 이런 문제들을 해결하지 않으면 응답 지연은 점점 악화되어 불쾌한 사용자 경험을 낳을 수 있다.
지속적인 모니터링과 성능 테스트를 통해 잠재적인 문제를 사전에 예방하고, 현실적인 부하 테스트를 통해 시스템의 한계를 파악하여 대비책을 마련하는 것이 필요하다. 이러한 대처 방안들은 상황에 따라 달라질 수 있으며, 복합적인 문제의 경우 여러 접근 방식을 동시에 적용할 필요가 있다. 지속적인 모니터링, 로그 분석, 성능 튜닝 등을 통해 문제의 근본 원인을 찾아내고 해결할 필요가 있다.&lt;/p&gt;

&lt;h3 id=&quot;msa&quot;&gt;MSA&lt;/h3&gt;

&lt;p&gt;요즘은 IT 세계에서 ‘마이크로서비스’라는 용어가 핫하다. 이 책은 마이크로서비스 아키텍처에 대한 조언과 함께 현실적인 문제들을 다루고 있다. 개발의 측면뿐만 아니라 조직적인 측면에서도 마이크로서비스의 도입과 확장에 대한 고려 사항을 짚어주는 것이 특징이다.
마이크로서비스는 큰 시스템에서 발생할 수 있는 다양한 문제에 대한 기술적인 대안으로 소개된다. 특히, 조직이 성장함에 따라 소통 경로와 의존 관계의 복잡성이 증가하는데, 마이크로서비스가 이런 문제를 해결할 수 있다는 점이 강조된다.
책에서는 클래스와 의존 관계의 수가 폭발적으로 증가하는 문제를 설명하며, 마이크로서비스가 이를 해결하기 위한 좋은 대안이라고 주장한다. 특히, 서비스의 크기를 작게 유지하여 개발자 한 명의 머리에 담을 수 있을 정도로 작게 유지해야 한다는 주장이 독특하게 다가왔다. 이런 접근은 소프트웨어의 유지보수성과 변화에 대한 대응 능력을 향상시킬 것으로 기대된다.
하지만 마이크로서비스도 단점이 없는 것은 아니다. 특히, 조직 규모를 줄이는 상황에서는 마이크로서비스가 주인을 잃고 고아가 되기 쉽다는 문제가 제기된다. 서비스의 규모와 업무 부하를 관리하는 것이 중요하며, 단순히 마이크로서비스를 도입한다고 해서 모든 문제가 해결되지는 않는다는 경고가 담겨 있다.
책은 이론적인 부분뿐만 아니라 실제 경험과 사례를 통해 내용을 전달하고 있다. 새로운 기술 도입에 대한 견고한 판단이 필요할 때 조언을 구할 수 있는 책이지 않을까 싶다.&lt;/p&gt;

&lt;h3 id=&quot;인사이트-가득한-선배에게-배우는-느낌의-책&quot;&gt;인사이트 가득한 선배에게 배우는 느낌의 책&lt;/h3&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/UoySgKi.png&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/eP8NzrU.png&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/epfvDZb.png&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/9kf1d9L.png&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;이 책은 서비스 운영중 발생할 수 있는 문제를 실제적으로 경험한 개발자라면 공감이 가는 내용으로 가득 차 있었다. 개발 현장에서 이런 상황을 마주하면 신경쓰고 대응해야겠다는 지침을 제시해 준다.&lt;/p&gt;

&lt;p&gt;이 리뷰는 한빛미디어의 나는 리뷰어다 이벤트를 통해 책을 제공받아 작성했습니다.&lt;/p&gt;
</description>
                <link>http://corazzon.github.io/hb-release-it</link>
                <guid>http://corazzon.github.io/hb-release-it</guid>
                <pubDate>2023-12-22T00:00:00+00:00</pubDate>
        </item>

        <item>
                <title>[도서 리뷰] 데이터 드리븐 리포트</title>
                <description>&lt;p&gt;&lt;img src=&quot;https://www.hanbit.co.kr/data/books/B5932813354_l.jpg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;p&gt;📊 데이터 분석은 꼭 분석가 직군 뿐만 아니라 비즈니스나 경영, 학술 등 분야를 막론하고 필요한 스킬이지 않을까 싶다.
평소 데이터 분석에 관심이 많고 다양한 데이터를 다루다 보니 관심있게 보게 된 책이기도 하다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/OWxjeEh.png&quot; width=&quot;600&quot; /&gt;
이미지 출처 : generated by OpenAI’s DALL-E&lt;/p&gt;

&lt;p&gt;📈 의사결정의 정확성, 시장 트렌드 파악, 고객 이해, 효율성 및 생산성, 위험 관리, 혁신 촉진, 규제 준수 등 다양한 비즈니스 환경에서 데이터를 활용한 비즈니스 성장 전략이 공유되고 있고 또 어느 때보다 데이터가 넘쳐나는 시대이지 않을까 싶다.&lt;/p&gt;

&lt;p&gt;📑 이 책은 비즈니스 환경에서 데이터 기반 의사결정의 중요성을 강조하며, 실제 업무에 적용할 수 있는 구체적이고 실용적인 지침을 알려준다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/SwPDkGH.png&quot; width=&quot;600&quot; /&gt;
이미지 출처 : generated by OpenAI’s DALL-E&lt;/p&gt;

&lt;p&gt;🔍 데이터 분석의 기초부터 시작하여, 구글 콜랩, 파이썬, 챗GPT 같은 도구를 활용하는 방법을 쉽게 설명한다. 
다양한 데이터 유형(수치형, 범주형, 텍스트 등)에 대한 분석 방법과 이를 활용한 설득 전략을 제시하여 데이터 분석 초보 뿐만 아니라 현업 전문가에게도 가이드를 제공한다.&lt;/p&gt;

&lt;p&gt;💹 선형회귀분석, 워드 클라우드, 토픽 모델링 등을 포함한 분석 기법이 실제 사례를 통해 설명되어 있어, 어려운 모델링 기법을 이해하고 적용하기 위한 이론과 실제 사이의 간극을 잘 메워주고 있기도 하다.&lt;/p&gt;

&lt;p&gt;📚 이 책은 데이터 기반 보고 방법, 구글 콜랩과 파이썬을 활용한 실제 보고 방법, 그리고 챗GPT를 포함한 다양한 도구들을 실제 보고에 어떻게 활용할지에 대한 내용을 다룬다. ChatGPT를 활용한 프롬프트 작성법을 통해 원하는 결과를 얻기 위해 어떻게 질문하고 활용해야 하는지에 대한 구체적인 접근법을 제시해 주기 때문에 막상 프롬프트와 마주했을 때 어떤 질문을 해야할지 모르겠다면 이 가이드를 참고해 보는 것도 좋겠다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/0Qgr6Nr.png&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;p&gt;🗂️ 데이터 특성에 따른 분석 기법의 선택, 데이터 분석 결과물을 효과적으로 의사소통하는 방법, 선형 회귀분석을 통한 고객 설득 방법, 수치형과 범주형 데이터의 추론과 분류예측 방법, 텍스트 데이터의 워드 클라우드와 토픽 모델링에 대한 내용을 통해 정형 데이터 뿐만 아니라 비정형 텍스트 분석을 파이썬 라이브러를 통해 코드 몇줄로 구현할 수 있는 방법을 제시한다.&lt;/p&gt;

&lt;p&gt;💻 데이터 분석에 대한 전반적인 내용을 비즈니스 사례에 적용가능하도록 작성된 책으로 의사결정에 가이드가 되는 분석을 하는 노하우와 팁을 얻을 수 있는 책이다.&lt;/p&gt;

&lt;p&gt;다음 내용 구성으로 데이터 분석 뿐만 아니라 의사결정과 설득을 위한 데이터 분석 기법에 대해 고민해 보기에 좋은 책이었다.&lt;/p&gt;

&lt;p&gt;1장. 데이터 드리븐 보고&lt;/p&gt;

&lt;p&gt;일상에서 데이터를 기반으로 의사결정하는 사례를 소개하고 데이터 드리븐 의사결정이 비즈니스에 어떻게 적용되는지 알아본다.&lt;/p&gt;

&lt;p&gt;2장. 데이터 드리븐 보고 절차&lt;/p&gt;

&lt;p&gt;성공적인 데이터 드리븐 보고를 위한 ON AIR 분석 절차를 단계별로 설명한다.&lt;/p&gt;

&lt;p&gt;3장. 데이터 드리븐 보고 실전 사례 with 챗GPT&lt;/p&gt;

&lt;p&gt;실제 비즈니스에 활용되는 데이터셋을 통해 데이터 형식과 보고 목적이 각각 다른 여섯 가지 사례를 실습한다.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;행복에 영향을 미치는 변수와 국가별 행복지수 분석하기&lt;/li&gt;
  &lt;li&gt;회사의 중장기 인력구조 예측, 분석, 시각화하기&lt;/li&gt;
  &lt;li&gt;마케팅 효과 분석 및 최적의 광고 플랫폼 찾기&lt;/li&gt;
  &lt;li&gt;유학 컨설팅을 위한 해외 대학 합격률 분석하기&lt;/li&gt;
  &lt;li&gt;당뇨병 예측모델 수립 및 사전 예방 솔루션 제공하기&lt;/li&gt;
  &lt;li&gt;전 직원 대상 설문조사의 서술형 응답 분석하기&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;4장. 데이터 드리븐 커뮤니케이션&lt;/p&gt;

&lt;p&gt;데이터를 기반으로 의사소통할 때 꼭 점검해야 할 체크리스트와 보고 대상자에 따른 맞춤형 커뮤니케이션 방법을 안내한다.&lt;/p&gt;

&lt;p&gt;이 리뷰는 한빛미디어의 나는 리뷰어다 이벤트를 통해 책을 제공받아 작성했습니다.&lt;/p&gt;
</description>
                <link>http://corazzon.github.io/hb-datadriven</link>
                <guid>http://corazzon.github.io/hb-datadriven</guid>
                <pubDate>2023-11-26T00:00:00+00:00</pubDate>
        </item>

        <item>
                <title>[도서 리뷰] 처음부터 제대로 배우는 스프링 부트</title>
                <description>&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/G6bZqCZ.png&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;스프링 부트에 대해 학습하고자 할 때, 필요한 것은 이론이나 개념을 설명하는 것뿐만 아니라 실제 상황에서 어떻게 활용할 수 있는지 알려주는 안내서이다.
스프링 데이터, 스프링 시큐리티, 스프링 웹플럭스와 같은 스프링의 핵심 모듈에 대해 실용적으로 알려준다.
스프링 부트의 철학과 간단한 코드로 어플리케이션을 개발하는 방법을 보여준다.
각 장은 이론적인 부분을 최소화하고, 실제 코드 작성을 통해 학습자가 직접 경험할 수 있도록 설계되어 있어, 개념을 빠르게 이해하는데 도움이 된다.&lt;/p&gt;

&lt;p&gt;단순히 ‘어떻게’ 하는지를 가르쳐주는 것이 아니라 ‘왜’ 그렇게 해야 하는지에 대한 이해를 할 수 있도록 돕는 책으로,
확장 가능한 애플리케이션을 구축하는 방법을 소개하는 부분은 실제 세계의 문제를 해결하는 데 필요한 실용적인 지침을 제공하면서도, 
스프링 부트가 지향하는 ‘관심사의 분리’와 ‘자동 구성’ 같은 원칙을 잘 따르고 있음을 느낄 수 있었다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/fmht5sD.png&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;h3 id=&quot;챕터-1-스프링-부트&quot;&gt;챕터 1 스프링 부트&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;스프링 부트의 핵심을 담당하는 기본 사항에 대한 깊이 있는 이해를 구축할 수 있도록 도와준다.
챕터별로 진행하면서 도구의 선택, REST API의 구성, 데이터베이스 연동 방법 등 기초적인 내용부터 다양한 고급 기술까지 체계적으로 다룬다.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;챕터-3-첫-번째-rest-api&quot;&gt;챕터 3 첫 번째 REST API&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;REST API의 중요성을 설명하면서, 실제로 API를 구축하는 과정을 상세하게 설명한다.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;챕터-6-데이터-파고들기&quot;&gt;챕터 6 데이터 파고들기&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;실제 데이터 작업을 위한 다양한 전략을 선보이면서, 이론적인 부분만이 아닌 실제 애플리케이션에서의 데이터 관리를 위한 구체적인 지침을 제공한다.&lt;/li&gt;
  &lt;li&gt;엔티티 정의: 이 섹션에서는 스프링에서 엔티티를 어떻게 정의하는지, 엔티티와 테이블 간의 매핑, 관계 매핑 등의 내용을 다룬다.&lt;/li&gt;
  &lt;li&gt;템플릿 지원: 스프링은 JDBC, Redis, MongoDB 등과 같은 데이터 액세스 기술에 대한 템플릿을 제공하여, 데이터 액세스 계층을 쉽게 구현할 수 있도록 지원하고 이러한 템플릿의 사용 방법에 대해 설명한다.&lt;/li&gt;
  &lt;li&gt;저장소 지원: 스프링 데이터 저장소 지원은 데이터 액세스를 단순화하며, CrudRepository나 JpaRepository와 같은 저장소 인터페이스로 공통 CRUD 연산을 쉽게 수행할 수 있도록 한다.&lt;/li&gt;
  &lt;li&gt;@Before:
    &lt;ul&gt;
      &lt;li&gt;이 부분은 스프링 테스트에서 사용되는 어노테이션으로, 테스트 메서드를 실행하기 전에 수행해야 할 작업을 정의할 때 사용된다.&lt;/li&gt;
      &lt;li&gt;데이터 액세스 로직을 테스트할 때 필요한 설정을 초기화하는 데 사용될 수 있다.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;레디스로 템플릿 기반 서비스 생성하기:
    &lt;ul&gt;
      &lt;li&gt;레디스를 사용하여 템플릿 기반의 서비스를 어떻게 생성하는지에 대한 예제와 함께 상세한 방법을 제공한다.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;템플릿에서 repository로 변환하기:
    &lt;ul&gt;
      &lt;li&gt;기존에 템플릿을 사용하던 코드를 스프링 데이터 저장소를 사용하는 코드로 리팩터링하는 방법을 소개한다.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;JPA로 repository 기반 서비스 만들기:
    &lt;ul&gt;
      &lt;li&gt;JPA(Java Persistence API)를 사용하여 데이터를 영속화하는 방법과 이를 위한 repository 기반 서비스의 생성 방법을 다룬다.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;NoSQL 도큐먼트 데이터베이스를 사용해 repository 기반 서비스 만들기:
    &lt;ul&gt;
      &lt;li&gt;NoSQL 도큐먼트 데이터베이스를 사용하여, 스프링 데이터와 함께 repository 기반 서비스를 어떻게 만드는지 설명한다.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;NoSQL 그래프 데이터베이스를 사용해 repository 기반 서비스 만들기:
    &lt;ul&gt;
      &lt;li&gt;이 부분은 NoSQL 그래프 데이터베이스를 사용하여 데이터를 처리하고 repository 기반 서비스를 구현하는 방법에 대해 다룬다.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;챕터-8-프로젝트-리액터와-스프링-웹플럭스를-사용한-리액티브-프로그래밍과-12-리액티브로-더-깊이-들어가기&quot;&gt;챕터 8 프로젝트 리액터와 스프링 웹플럭스를 사용한 리액티브 프로그래밍과 12 리액티브로 더 깊이 들어가기&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;리액티브 시스템의 기본 원리부터 시작하여, 프로젝트 리액터와 스프링 웹플럭스를 통한 리액티브 프로그래밍의 실제 적용 사례에 대해 상세히 설명한다.&lt;/li&gt;
  &lt;li&gt;리액티브 프로그래밍: 리액티브 프로그래밍의 기본 개념과 그것이 왜 중요한지, 그리고 리액티브 시스템을 구축할 때 고려해야 할 설계 원칙에 대해 설명한다.&lt;/li&gt;
  &lt;li&gt;프로젝트 리액터:
    &lt;ul&gt;
      &lt;li&gt;프로젝트 리액터는 리액티브 프로그래밍을 위한 스프링의 라이브러리로, 개발자가 비동기 및 논블로킹 애플리케이션을 쉽게 만들 수 있도록 도와주며 라이브러리의 핵심 개념과 사용 방법을 다룬다.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;톰캣 vs. 네티: 이 섹션에서는 서블릿 컨테이너인 톰캣과 비동기 네트워크 애플리케이션 프레임워크인 네티 사이의 차이점을 비교 분석한다.&lt;/li&gt;
  &lt;li&gt;리액티브 데이터 액세스: 여기에서는 데이터베이스와의 비동기 통신을 가능하게 하는 리액티브 데이터 액세스의 개념과 구현 방법에 대해 설명한다.&lt;/li&gt;
  &lt;li&gt;리액티브 Thymeleaf:
    &lt;ul&gt;
      &lt;li&gt;Thymeleaf는 서버 측 Java 템플릿 엔진이다.&lt;/li&gt;
      &lt;li&gt;리액티브 프로그래밍 모델에 Thymeleaf를 어떻게 통합하는지를 설명한다.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;완전한 리액티브 프로세스 간 통신을 위한 RSocket:
    &lt;ul&gt;
      &lt;li&gt;RSocket은 리액티브 애플리케이션에서 사용되는 네트워크 프로토콜로, 양방향 스트리밍 데이터 전송을 지원한다. RSocket을 사용한 리액티브 시스템의 구현 방법을 다룬다.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;챕터-10--애플리케이션-보안&quot;&gt;챕터 10  애플리케이션 보안&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;안전성과 보안에 대한 내용도 눈여겨볼 만한데, 챕터 10에서는 스프링 시큐리티를 활용한 인증 및 인가 메커니즘 구현에 대한 실용적인 접근을 소개한다.&lt;/li&gt;
  &lt;li&gt;인증과 인가의 개념, 스프링 시큐리티의 활용, 그리고 보다 복잡한 보안 프로토콜의 구현에 대해 설명한다.&lt;/li&gt;
  &lt;li&gt;인증 및 인가 부여:
    &lt;ul&gt;
      &lt;li&gt;보안의 두 가지 핵심 요소인 ‘인증(authentication)’과 ‘인가(authorization)’의 개념을 소개한다.&lt;/li&gt;
      &lt;li&gt;인증은 사용자가 자신이 주장하는 사람임을 증명하는 과정이며,&lt;/li&gt;
      &lt;li&gt;인가는 인증된 사용자가 애플리케이션의 특정 자원이나 경로에 접근할 수 있는 권한을 가지고 있는지 결정하는 과정이다.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;스프링 시큐리티 살펴보기:
    &lt;ul&gt;
      &lt;li&gt;스프링 시큐리티는 인증과 인가를 비롯한 여러 보안 기능을 제공하는 강력한 프레임워크입니다.&lt;/li&gt;
      &lt;li&gt;스프링 시큐리티의 주요 구성 요소, 핵심 기능, 그리고 이를 활용하는 방법에 대해 세부적으로 설명한다.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;스프링 시큐리티로 폼 기반 인증 및 인가 구현:
    &lt;ul&gt;
      &lt;li&gt;표준 폼 기반의 인증 방식을 구현하는 방법을 다룬다. 사용자의 자격 증명을 확인한 후 적절한 인가 처리를 수행하는 전체 과정이 담겨 있다.&lt;/li&gt;
      &lt;li&gt;로그인 폼의 제출, 자격 증명의 검증, 그리고 세션 생성과 관리를 포함한다.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;인증 및 인가를 위한 OIDC와 OAuth2 구현:
    &lt;ul&gt;
      &lt;li&gt;OIDC(OpenID Connect)와 OAuth2를 사용한 보안 프로토콜 구현에 초점을 맞춘다.&lt;/li&gt;
      &lt;li&gt;OAuth2는 외부 서비스 제공자를 통한 인증을 처리하는 데 사용되며, OIDC는 OAuth2 기반의 인증 프로토콜로서, 클라이언트가 사용자의 ID 토큰을 받을 수 있게 해준다.&lt;/li&gt;
      &lt;li&gt;여기에서는 이러한 프로토콜을 사용하여 애플리케이션에 더 강력한 보안 계층을 추가하는 방법을 상세히 설명한다.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;챕터-11-애플리케이션-배포&quot;&gt;챕터 11 애플리케이션 배포&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;애플리케이션의 배포와 관련된 실제 조언을 챕터 11에서 제공하며, 실제 작업 환경에서의 스프링 부트 애플리케이션 구축에 필요한 노하우를 알려준다.&lt;/li&gt;
  &lt;li&gt;실행 가능한 JAR(Java Archive):
    &lt;ul&gt;
      &lt;li&gt;전통적인 Java 애플리케이션과 달리, 스프링 부트는 내장된 서버를 포함한 모든 종속성을 하나의 JAR 파일에 패키징하며 복잡한 배포 프로세스 없이도 독립적으로 실행 가능한 애플리케이션을 만들 수 있도록 한다.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;JAR 확장:
    &lt;ul&gt;
      &lt;li&gt;JAR 파일에 추가적인 기능을 제공하거나, 애플리케이션을 더욱 유연하게 구성할 수 있도록 한다.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;컨테이너에 스프링 부트 애플리케이션 배포하기:
    &lt;ul&gt;
      &lt;li&gt;컨테이너는 애플리케이션을 포함하고 실행하는 표준화된 유닛으로, 환경에 구애받지 않고 일관된 방식으로 애플리케이션을 실행할 수 있게 해준다.&lt;/li&gt;
      &lt;li&gt;이미지 생성 및 컨테이너화된 환경에서의 애플리케이션 관리 방법을 설명한다.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/FeDVmpU.png&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;이 리뷰는 한빛미디어의 나는 리뷰어다 이벤트를 통해 책을 제공받아 작성했습니다.&lt;/p&gt;

</description>
                <link>http://corazzon.github.io/hb-springboot</link>
                <guid>http://corazzon.github.io/hb-springboot</guid>
                <pubDate>2023-10-23T00:00:00+00:00</pubDate>
        </item>

        <item>
                <title>[도서 리뷰] 진화적 아키텍처</title>
                <description>&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/RhHcAGo.png&quot; /&gt;&lt;/p&gt;

&lt;p&gt;진화적 아키텍처는 소프트웨어 아키텍처의 진화와 발전에 대한 심도 있는 이해를 제공하는 책이다. 
이 책은 기업들이 변화하는 요구사항과 기술 환경에 적응하며, 지속 가능하고 유연한 아키텍처를 구축하는 방법에 대해 탐구한다. 
다양한 사례 연구와 실제 경험을 기반으로 한 이 책은 아키텍처를 설계하고 유지하는 데 있어 중요한 원칙과 패턴을 제시한다.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;실용적인 접근법: 이 책은 이론적인 내용과 실용적인 지침을 적절하게 조화시켜, 현실 세계의 문제에 대응할 수 있는 방법을 제시한다.&lt;/li&gt;
  &lt;li&gt;다양한 사례 연구: 다양한 산업과 환경에서의 실제 사례 연구는 독자에게 깊은 통찰력과 함께 다양한 상황에서의 적용 방법을 제시한다.&lt;/li&gt;
  &lt;li&gt;진화적인 관점: 소프트웨어 아키텍처의 지속적인 변화와 발전에 대한 중요성을 강조하며, 이를 실현하기 위한 전략과 기술을 소개한다.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;서비스를 출시하고 나면 그때부터가 진짜 시작이라는 얘기를 많이 한다.
서비스가 생명력을 갖고 진화해 나가기 위해 고려하게 되면서 고민하는 지점들이 생기게 되는데 업무를 하며 만나는 용어들에 대한 설명을 친절하게 설명해 주기도 한다.
예를 들면 카오스엔지니어링, 카나리아 배포, 데이터 메시, 데이터 제품 퀀텀, 협력 퀀텀, 마이크로서비스 아키텍처로의 진화, 트리거와 저장 프로시저의 대체 등의 현실에서 마주할 수 있는 이슈들에 대해 언급한다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/zHhT7eq.png&quot; /&gt;&lt;/p&gt;

&lt;p&gt;이 책은 그림 4-1에서 볼 수 있는 피트니스 함수 로드맵을 통해, 애플리케이션의 다양한 측면을 점검하며 발전시켜나갈 수 있는 방법을 제시한다.&lt;/p&gt;

&lt;p&gt;책 내용은 마이크로서비스 아키텍처와 통합에 큰 중점을 둠으로써, 엔터프라이즈 환경에서의 통신과 어플리케이션 간의 의존성 관리에 대한 실용적인 지침을 제공한다.
또한, 코드의 클래스/패키지 구조와 그에 따른 구심/원심 커플링, 임포트 지향성 등을 자세히 다루며, 개발자에게 구조적인 판단 기준을 세워준다.
제로데이 취약점과 같은 보안 이슈에 대한 점검과 부하 테스트를 통한 성능 평가, 그리고 접근성과 가용성에 대한 중요성도 강조된다.
또한, 상속 검사와 어노테이션 검사 등을 통해 코드의 순환 복잡도와 안정성을 평가하는 방법을 배울 수 있다.&lt;/p&gt;

&lt;p&gt;카오스 엔지니어링의 원칙을 통해 시스템의 복잡성과 불확실성을 관리하는 동시에, 오픈소스 라이브러리의 적법성과 사용에 대한 주의점도 소개된다.
선행형 접근과 반응형 접근의 차이를 명확히 구분하며, 추상도와 불안정도, 그리고 주계열과의 거리에 대한 평가 기준을 배울 수 있다.
다양한 종류의 사례 연구를 통해, 실제 엔터프라이즈 환경에서의 애플리케이션 포팅 원칙과 구조 검사 방법 등이 구체적으로 어떻게 적용될 수 있는지에 대한 예시를 제공한다.
이를 통해 독자는 피트니스 함수를 효과적으로 사용하여, 진화하는 아키텍처를 구축하고 유지보수하는 방법을 배울 수 있다.&lt;/p&gt;

&lt;p&gt;다만 이 책은 초보자가 보기에는 책의 내용이 상당히 고급 지식을 요구하기 때문에, 소프트웨어 아키텍처에 대한 기본 지식이 부족하다면 다소 어렵고 추상적일 수 있다.
또 구체적인 해결책이나 답을 제시하지 않고 방법론 위주로만 설명한다.&lt;/p&gt;

&lt;p&gt;현재 개발, 운영하고 있는 서비스의 아키텍트를 어떻게 발전시켜나가야할지 고민이 된다면 그 키워드를 함께 고민해 볼 수 있는 책이지 않을까 싶다.&lt;/p&gt;

&lt;p&gt;이 리뷰는 한빛미디어의 나는 리뷰어다 이벤트를 통해 책을 제공받아 작성했습니다.&lt;/p&gt;
</description>
                <link>http://corazzon.github.io/hb-evolutionary-architectures</link>
                <guid>http://corazzon.github.io/hb-evolutionary-architectures</guid>
                <pubDate>2023-09-24T00:00:00+00:00</pubDate>
        </item>

        <item>
                <title>[도서 리뷰] 견고한 데이터 엔지니어링</title>
                <description>&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/ZoLEth4.png&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;실무에서 일을 하다보면 친절한 사수 없이 스스로 시행착오를 겪으며 성장해야 하는 외로운 순간이 있다.
그 때 이 책이 옆에 있다면 어떨까?
이 책은 데이터 엔지니어링 업무를 하며 궁금한 A-Z까지의 내용을 친절한 사수처럼 설명한다.&lt;/p&gt;

&lt;p&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;견고한 데이터 엔지니어링&lt;/code&gt;은 실제 데이터 엔지니어링 문제 해결을 위한 탄탄한 기반 제공하는 것을 목표로 하는 책이다.
데이터 엔지니어링이란 무엇일까? 데이터를 좀 더 효과적으로 처리하고 활용하기 위한 기술 및 방법론으로 데이터와 관련된 작업을 효율적으로 하기 위한 노하우를 집대성한 책이다.
데이터 과학자, 소프트웨어 엔지니어, 데이터 팀 리더는 물론 다양한 분야의 전문가 쁀먼 아니라 
데이터엔지니어링 관련 업무를 시작하는 사람이거나 혹은 엔지니어링 업무를 하고 있다 하더라도 전반적인 내용을 정리해 볼 수 있는 책이었다.&lt;/p&gt;

&lt;p&gt;이 책에서 다루는 내용으로 이론적인 내용과 실무적인 내용을 모두 다루며 각 단계별 모범 사례를 다루고 있다.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;데이터 과학자, 소프트웨어 엔지니어, 데이터 팀 리더의 역할에서 데이터 엔지니어링의 영향&lt;/li&gt;
  &lt;li&gt;마케팅 과대광고 판별 및 적합한 기술, 데이터 아키텍처, 프로세스 선택 방법&lt;/li&gt;
  &lt;li&gt;데이터 엔지니어링 수명 주기를 활용한 강력한 아키텍처 설계 및 구축 방법&lt;/li&gt;
  &lt;li&gt;데이터 수명 주기 각 단계의 모범 사례&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;또, 다음과 같은 역할을 기대해 볼 수 있는 책이기도 하다.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;현재 데이터 관련 역할에 데이터 엔지니어링 원칙 통합&lt;/li&gt;
  &lt;li&gt;다양한 클라우드 기술 통합하여 다운스트림 데이터 소비자 요구 충족&lt;/li&gt;
  &lt;li&gt;모범 사례 기반의 종단간(end-to-end) 프레임워크로 데이터 엔지니어링 문제 접근&lt;/li&gt;
  &lt;li&gt;데이터 엔지니어링 수명 주기 전반에 걸친 데이터 거버넌스 및 보안 통합&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;데이터-엔지니어링-생명주기&quot;&gt;데이터 엔지니어링 생명주기&lt;/h2&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/lni0mnW.png&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;데이터 엔지니어링 생명주기를 생성=&amp;gt;저장=&amp;gt;수집=&amp;gt;변환=&amp;gt;서빙 으로 단계별로 설명과 데이터 분석가, 엔지니어, 제품관리자, 프로젝트 매니저에 대한 역할 분담에 대한 조직 구성까지 설명하는 부분이 인상적이었다.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;데이터 생성 (Generation): 데이터가 원점에서 처음 만들어지는 과정. 예) 사용자의 웹사이트 방문 기록&lt;/li&gt;
  &lt;li&gt;데이터 저장 (Storage): 생성된 데이터를 안정적으로 보관하는 단계. 예) 데이터베이스에 사용자 정보 저장&lt;/li&gt;
  &lt;li&gt;데이터 수집 (Ingestion): 다양한 출처의 데이터를 중앙 저장소로 옮기는 과정. 예) 로그 데이터 실시간 수집&lt;/li&gt;
  &lt;li&gt;데이터 변환 (Transformation): 데이터를 분석이나 처리에 적합한 형태로 변경하는 단계. 예) 로그 데이터에서 필요 정보만 추출 및 정제&lt;/li&gt;
  &lt;li&gt;데이터 서빙 (Serving): 처리된 데이터를 사용자나 애플리케이션에 제공하는 과정. 예) API를 통해 데이터 제공&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;데이터-과학-욕구-단계&quot;&gt;데이터 과학 욕구 단계&lt;/h2&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/i9hptOl.png&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;많은 데이터 과학자가 ML 모델을 구축하고 튜닝하기를 원하지만, 실제 작업 시간의 70~80%는 계층 구조상 하위 세 부분(데이터 수집, 데이터 정리, 데이터 처리)에 시간을 소비하는 것으로 추정되며, 분석과 ML에 할애하는 시 
간은 극히 일부에 불과하다.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;책에 나와있는 내용을 인용하면 대부분의 시간의 70~80%의 시간을 수집과 전처리에 보낸다는데 공감이 되고 이를 위해 
데이터의 품질, 가용성, 일관성, 안전성 및 효율성을 위한 데이터 거버넌스 특정 데이터에 대한 관리와 품질을 보장하는 개인이나 팀을 운영하는 방안까지 소개하고 있다.
이 책은 단순히 데이터 엔지니어링의 기술적인 측면을 넘어 데이터 엔지니어링 업무의 전체적인 그림을 그리고 각 단계별로 필요한 기술적인 접근 방법까지 자세히 설명한다.&lt;/p&gt;

&lt;p&gt;앞으로 데이터 엔지니어링 업무에 유용한 지침서로 활용해 볼 예정이다.&lt;/p&gt;

&lt;p&gt;이 리뷰는 한빛미디어의 나는 리뷰어다 이벤트를 통해 책을 제공받아 작성했습니다.&lt;/p&gt;
</description>
                <link>http://corazzon.github.io/hb-data-engineering</link>
                <guid>http://corazzon.github.io/hb-data-engineering</guid>
                <pubDate>2023-08-20T00:00:00+00:00</pubDate>
        </item>

        <item>
                <title>[도서 리뷰] MLOps 실전 가이드</title>
                <description>&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/LBb059C.jpg&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;MLOps 에 대한 내용은 주로 DevOps와 관련된 내용을 참고해 오고 있었는데 이렇게 딱 MLOps 만을 한정한 책이 나와 인상깊게 읽게 되었다.&lt;/li&gt;
  &lt;li&gt;머신러닝 모델을 만들었다면 이를 꾸준히 개선하고 운영해야 좀 더 나은 모델로 현실세계 문제를 해결하는데 도움이 되기 때문에 모델을 서빙하고 운영하는 것에 대한 중요성을 실감하고 있던터라 더 인상깊게 읽어볼 수 있었다.&lt;/li&gt;
  &lt;li&gt;또, 기존에는 종이책으로 주로 읽었지만 이번 책은 e-book으로 신청해서 읽었는데 지하철이나 이동중에 핸드폰만 있어도 잠깐씩 볼 수 있다는 점이 좋았다.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;클라우드-제품군별-챕터&quot;&gt;클라우드 제품군별 챕터&lt;/h3&gt;

&lt;p&gt;실용적인 접근 방식을 통해 “Practical MLOps”는 MLOps를 실제로 구현하고 적용하는 방법에 초점을 맞추고 있는 점이 좋았으며, 
데이터 관리, 모델 훈련, 모델 배포, 모델 모니터링 등의 주제를 다루며, 이를 위한 도구와 기술에 대해 자세히 설명하고 AutoML뿐만 아니라 주로 사용되는 클라우드 제품군 별(AWS, Azure, GCP)로 설명을 제공한다는 점도 인상적이었다.&lt;/p&gt;

&lt;p&gt;참고로 이 책에서 챕터별로 소개하는 클라우드 서비스는 아래 3가지다.&lt;/p&gt;
&lt;ol&gt;
  &lt;li&gt;Amazon Web Services (AWS): AWS는 대규모 클라우드 컴퓨팅 서비스를 제공하며 EC2, S3, Lambda, SageMaker 등 다양한 서비스를 제공하고 있다.&lt;/li&gt;
  &lt;li&gt;Microsoft Azure: Azure는 마이크로소프트가 제공하는 클라우드 컴퓨팅 서비스로 Virtual Machines, Blob Storage, Azure Kubernetes Service, Azure Machine Learning 등 다양한 서비스를 제공하고 있다.&lt;/li&gt;
  &lt;li&gt;Google Cloud Platform (GCP): GCP는 구글이 제공하는 클라우드 컴퓨팅 서비스로 Compute Engine, Cloud Storage, Kubernetes Engine, AI Platform 등 다양한 서비스를 제공하고 있다.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/wzDmVW2.png&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;h3 id=&quot;생각해-보기&quot;&gt;생각해 보기&lt;/h3&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/iyIXBc2.png&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;이 책은 MLOps의 다양한 측면을 다루고 있으며, 데이터 관리, 모델 개발과 배포, 모니터링 및 유지보수 등에 대한 상세한 가이드를 제공한다.
또, 가이드 뿐만 아니라 중간중간 연습해 보기와 생각해 보기를 제공하고 있는데 해당 챕터를 통해 아래와 같은 고민해볼만한 질문을 던져주는 점이 좋다.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;blockquote&gt;
    &lt;blockquote&gt;
      &lt;p&gt;2025년이나 2035년에는 머신러닝의 어떤 요소가 완전히 자동화되어 있고, 어떤 요소가 여전히 사람의 도움을 필요로 하고 있을까?&lt;/p&gt;
    &lt;/blockquote&gt;
  &lt;/blockquote&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;
  &lt;blockquote&gt;
    &lt;blockquote&gt;
      &lt;p&gt;하드웨어부터 운영체제 프레임워크까지 모든 기술 스택에 대하여 수직계열화 전략을 펼치는 거대 IT 기업들이 어떤 기업들과 긍정적인 시너지를 낼 수 있을까?&lt;/p&gt;
    &lt;/blockquote&gt;
  &lt;/blockquote&gt;
&lt;/blockquote&gt;

&lt;p&gt;머신러닝의 데이터 전처리 및 피쳐 추출, 하이퍼파라미터 튜닝, 모델 선택 등의 요소를 어떻게 자동화 할지?
머신러닝 모델의 설계 및 개발, 데이터의 품질 관리, 모델의 성능 평가 및 해석 등을 잘하기 위해서는 어떤 고민을 해야할지?
머신러닝 알고리즘 자체의 한계나 예외 상황에 대처하기 위해 어떤 개선을 해야할지 등을 고민하게 해준다.&lt;/p&gt;

&lt;h3 id=&quot;mlops에서의-중요한-과제&quot;&gt;MLOps에서의 중요한 과제&lt;/h3&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/mHtll3c.png&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;MLOps에서 발생하는 어려움에 대한 중요한 과제를 언급하고 있으며 대표적인 도전 과제로 윤리적 문제와 의도치 않은 결과, 운영 능력의 부족, 예측 정확도와 성능 목표 사이의 균형에 대해 제시한다.
머신러닝 시스템의 실제 운영에서 유지보수 비용이 막대하게 발생하는 것이 일반적이며, “Hidden Technical Debt in Machine Learning Systems” 논문을 추가자료로 추천하여 더 고민해 볼 것을 제시한다.&lt;/p&gt;

&lt;h3 id=&quot;mlops-최종-프로젝트-체크리스트&quot;&gt;MLOps 최종 프로젝트 체크리스트&lt;/h3&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/jNtEImo.png&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;최종 프로젝트 체크리스트를 참고하여 MLOps를 운영하고 준비하는데 활용해 볼 수 있도록 예시를 제시해준 점도 좋다.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;최종 프로젝트 체크리스트의 예시
    &lt;ul&gt;
      &lt;li&gt;머신러닝 예측/추론이 수행되는가?&lt;/li&gt;
      &lt;li&gt;별도의 환경이 있는가?&lt;/li&gt;
      &lt;li&gt;포괄적인 모니터링과 경고가 있는가?&lt;/li&gt;
      &lt;li&gt;올바른 데이터스토어가 사용되었는가? (관계형, 그래프, 키/값 등)&lt;/li&gt;
      &lt;li&gt;최소 권한 원칙이 적용되었는가?&lt;/li&gt;
      &lt;li&gt;데이터가 이동 및 저장 중에 암호화되었는가?&lt;/li&gt;
      &lt;li&gt;성능 검증을 위해 응용 프로그램을 테스트했는가?&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;소프트스킬에-대한-조언&quot;&gt;소프트스킬에 대한 조언&lt;/h3&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/bFZci9a.png&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;IT 기술 분야는 하드스킬뿐만 아니라 배우는 소프트스킬도 중요한데 마지막 부분에 있는 조언 또한 인상적이었다.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;소프트웨어 관련 직업은 끊임없이 학습하고 숙련되어야 한다.&lt;/li&gt;
  &lt;li&gt;학습하는 과정은 고통을 받고, 실수를 허용하는 과정이다.&lt;/li&gt;
  &lt;li&gt;회사에서는 모든 사항을 제공하기 어렵기 때문에 개인적으로 학습 방법과 시간을 확보해야 한다.&lt;/li&gt;
  &lt;li&gt;업무 시간 중 20% 정도를 학습에 할애하는 것이 권장된다.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;또 운영과정에서는 실패를 자주 마주할 수 밖에 없는데 학습하는 과정이 고통을 받고 실수를 허용하는 과정이라는 점에서 마음의 위로가 되기도 했다.&lt;/p&gt;

&lt;p&gt;이 리뷰는 한빛미디어의 나는 리뷰어다 이벤트를 통해 도서를 제공받아 작성했습니다.&lt;/p&gt;
</description>
                <link>http://corazzon.github.io/hb-ml-ops</link>
                <guid>http://corazzon.github.io/hb-ml-ops</guid>
                <pubDate>2023-07-23T00:00:00+00:00</pubDate>
        </item>

        <item>
                <title>[도서 리뷰] 행동 데이터 분석</title>
                <description>&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/c8Av2pO.jpg&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;행동 데이터 분석을 알려주는 이 책은 통계적인 기초지식부터 응용까지를 다루며
실제 비즈니스 상황에서 어떻게 활용해야하는지에 대한 구체적인 가이드를 제시한다.&lt;/p&gt;

&lt;p&gt;경험이 풍부한 저자는 R과 Python 을 모두 사용하여 실제 상황에 맞는 코드를 제시하고 있으며
그 결과를 어떻게 해석하고 개선해야하는지
비즈니스의 의사결정을 어떻게 해야하는지
현실 세계에서 고민할 법한 질문을 던져주며 문제를 해결하는 방법을 알려준다.&lt;/p&gt;

&lt;p&gt;보통 이론적인 내용에 치중하다보면 실제 비즈니스 상황을 잘 반영하지 못하기도 하는데 
이 책은 두 마리 토끼를 모두 잡을 수 있는 책이다.&lt;/p&gt;

&lt;p&gt;최근에 봤던 비즈니스 데이터 분석 관련 책 중에서 손에 꼽을 정도로 이론적인 내용과 실무적인 내용을 균형있게 다룬 책이다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/kgTDdYP.jpg&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;책 초반을 보면 이 책은 t-검정이나 ANOVA와 같은 기존의 행동 데이터 분석 방법론을 소개하는 책이 아니며 비즈니스 문제를 풀면서 회귀 분석이 이러한 전통적인 방법보다 효과가 덜하다고 느낀적이 있다고 한다.
그래서 비즈니스 상황별로 적절한 통계적 기법과 분석 방법을 제시하고 있다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/X6LzwTw.jpg&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;파이썬과 R 두 가지로 책의 소스코드를 작성하여 제공하고 있으며 각 언어에 대한 의견도 제시하고 있다.
EDA는 R로 하는 것을 선호하지만 웹 스크래핑은 파이썬이 훨씬 사용하기 쉽다는 의견이다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/h1EF018.jpg&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;인과 관계에 대해 설명하며 다중공선성에 대해서도 자세히 설명하고 있다.
상관 관계와 인과 관계를 설명할 때 자주 등장하는 기온과 아이스크림 판매량에 대한 예시로 설명한다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/GzHd89H.jpg&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;현실 세계의 문제 해결방법에 대한 스토리텔링이 좋다.
각 챕터마다 비즈니스 상황을 제시하고 어떤 변수와 상황에서 어떤 의사결정을 내릴지에 대해 상황과 도표로 함께 설명한 점이 좋다.&lt;/p&gt;

&lt;p&gt;400페이지 분량의 책을 통해 통계적인 지식, 분석결과 해석하기와 비즈니스 실무까지 이어서 다루기 때문에 비즈니스에서 데이터 분석을 하고자할 때의 팁을 다양하게 얻을 수 있었다.&lt;/p&gt;

&lt;p&gt;이 리뷰는 한빛미디어의 나는 리뷰어다 이벤트를 통해 책을 제공받아 작성했습니다.&lt;/p&gt;
</description>
                <link>http://corazzon.github.io/hb-biz-eda</link>
                <guid>http://corazzon.github.io/hb-biz-eda</guid>
                <pubDate>2023-06-25T00:00:00+00:00</pubDate>
        </item>

        <item>
                <title>[도서 리뷰] AWS 기반 데이터 과학</title>
                <description>&lt;p&gt;실무에서 실시간으로 쌓이는 대용량 데이터를 사용해서 실무 프로젝트를 진행한다면 클라우드 환경을 빼놓고 일하기가 어렵다. 이 책은 여러 클라우드 제품군 중 AWS를 기반으로 쓰여졌다.&lt;/p&gt;

&lt;p&gt;데이터과학에 대한 어느정도 기본 이해가 있는 상태에서 AWS제품군을 활용방안을 제시하고 있기 때문에 데이터 과학에 대한 기초 소양이 필요한 책이기도 하다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/kLLNUA5.jpg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;p&gt;현업에서 AWS의 제품군을 활용하여 어떻게 비즈니스를 해야하는지에 대한 구체적인 사례를 함께 제시하고 있다.
단순히 알고리즘 혹은 클라우드 제품에 대한 소개가 아니라 제품군을 활용하여 실제 비즈니스에 어떻게 활용되는지에 대한 사례가 있어야 현업에 어떻게 적용할지 아이디어를 얻을 수 있는데 그런 점에서 이 책이 좋은 가이드 역할을 한다.&lt;/p&gt;

&lt;p&gt;AWS는 제품군이 다양하고 복잡해서 콘솔을 열면 어디부터 작업해야할지 난감한데
이 책을 활용하여 데이터 과학 프로젝트를 어떻게 구축하고 배포해야하는지 상세하게 배울 수 있다.&lt;/p&gt;

&lt;p&gt;실제 사례를 바탕으로 자연어처리, 컴퓨터 비전, 사기 탐지 등 비즈니스에 접목할 수 있는 예시라 아이디어를 얻기 좋다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/ElJYRWm.jpg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/xBqssin.jpg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/z2Hggws.jpg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/xOBssj0.jpg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/l0mpaF9.jpg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/lMAd1n1.jpg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;p&gt;아마존 ML 스택을 통해 세이지메이커 오토파일럿의 AutoML을 사용한 사례를 통해 복잡한 제품군에 대한 활용법을 찾아볼 수 있다. 머신러닝 모델을 반복가능한 MLOps 파이프라인으로 통한합는 방법, 아마존 키네시스와 아파치 카프카용 아마존 관리형 스트리밍을 활용하여 실시간 데이터 스트림에 머신러닝, 이상탐지, 스트리밍 분석을 적용한 사례를 다룬다.&lt;/p&gt;

&lt;p&gt;추천시스템, 컴퓨터비전, 사디탐지, 자연어이해, 대화형 디바이스, 인지검색, 고객지원, 산업예측 유지관리, 홈자동화, 사물인터넷 등 적용해 볼 수 있는 다양한 사례를 제공하고 있기 때문에 데이터 과학 프로젝트를 어떻게 활용해야 하는지에 대한 힌트를 얻을 수 있는 책이기도 하다.&lt;/p&gt;

&lt;p&gt;데이터 수집 및 분석, 피처 선택 및 엔지니어링, 모델 훈련 및 튜닝, 아마존 세이지메이커, 아마존 아데나, 레드시프트, 일레스틱 맵리듀스(EMR), 텐서플로, 파이토치, 서비리스 아파치 스파크 등 다루는 기술이 방대하고 데이터 과학을 위한 AWS의 대부분의 제품군을 다루고 있다.&lt;/p&gt;

&lt;p&gt;AWS 제품군 위주로 다루고 있기는 하지만 비즈니스 사례에 대한 질문을 곳곳에서 적절하게 던져주고 있기 때문에 실제 비즈니스에서 어떤 고민을 하고 활용해야하는지 생각할 지점을 제공해 준다는 점도 좋다.&lt;/p&gt;

&lt;p&gt;예를 들어 2015년에 동일한 상품에 대해 2개 이상의 리뷰를 작성한 고객은 누구인가? 각 상품의 평균 별점은 몇 점인가?와 같은 질문을 통해 현업에서 고민할만한 질문을 어떻게 해결해 나가야할지 현업의 고민을 녹이기 위한 노력이 보이는 책이기도 하다. AWS 제품군 활용 뿐만 아니라 이런 질문을 통해 비즈니스 사례에서 어떻게 활용하면 좋을지 함께 고민해 볼 수 있는 책이다.&lt;/p&gt;

&lt;p&gt;이 리뷰는 한빛미디어의 나는 리뷰어다 이벤트를 통해 책을 제공받아 작성했습니다.&lt;/p&gt;
</description>
                <link>http://corazzon.github.io/aws-ds-hb</link>
                <guid>http://corazzon.github.io/aws-ds-hb</guid>
                <pubDate>2023-05-28T00:00:00+00:00</pubDate>
        </item>

        <item>
                <title>[도서 리뷰] 머신러닝 시스템 설계</title>
                <description>&lt;p&gt;칩후옌의 유명 강의 원서가 번역되어 나온다는 소식을 들었을 때부터 엄청 기대했던 책이 번역이 되었다.
얼마전 칩후옌의 &lt;a href=&quot;https://huyenchip.com/2023/04/11/llm-engineering.html&quot;&gt;Building LLM applications for production&lt;/a&gt;
블로그 포스트도 인상적으로 봤었는데 앞으로 저자의 다른 글도 책으로 나오길 기다려질 만큼 저자분의 노하우가 엄청나다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/FBdjWDe.jpg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;p&gt;그간 주로 봐왔던 머신러닝 책이 보통 알고리즘에 대한 수식과 라이브러리를 활용한 핸즈온 튜토리얼이었다면
이 책은 좀 다른 접근의 책이다.&lt;/p&gt;

&lt;p&gt;일단 코드 없이 머신러닝 모델을 설계하고 배포하는 것까지 전단계에서 고려해야 하는 사항에 대해 꼼꼼하게 정리되어있다.
그래서 이 책을 읽으면 매우 꼼꼼한 실력있는 사수가 하나하나 짚어주는 느낌의 책이기도 하다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/Qm8JVsl.jpg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;p&gt;머신러닝, 딥러닝 아키텍처가 어떻게 나뉘며 이 때 고려해야하는 측정지표나 알아두어야할 통계 개념들에 대해 정리하고 있다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/yEqPnmf.jpg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;p&gt;또 ML 모델은 누구 한 명의 작업으로 이루어지기 보다는 여러 사람의 협업을 통해 이루어지는 오케스트라와 같은데 
이 때 각 직군 별로 고려하는 사랑을 정리해 두었는데 관리자의 의견이 매우 인상적이었다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/5Hczoe3.jpg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;p&gt;머신러닝을 책, 영상, 코드, 경진대회 다양한 경로로 배우게 되는데 
현업에서 직접 업무를 하지 않는 이상 경진대회 등을 주로 활용하게 된다.
경진대회를 통해 모델을 개선하다보면 우승을 위한 알고리즘이나 방법을 찾아 쓰게 되는데 
이런 방법이 실제 현업과는 동떨어진 방법일 때가 종종 있다. 
그래서 리더보드에 대한 비판 등에 대해 언급한 점도 인상적이다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/aeb5RwO.jpg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/FLO2qmi.jpg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;p&gt;특정 작업 태스크에 따라 어떤 방법으로 태스크를 진행해야 하는지
현업에서 통하는 방법에 대한 팁을 최대한 녹여낸점이 좋았다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/bvXTr6R.jpg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/9J3gNfX.jpg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/g3JHzAo.jpg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;p&gt;ML엔지니어가 되기 위해 공부할 때로 돌아간다면 우선적으로 공부할 것들이 인상적이었고 실제로 공감되었다.
깃을 통한 버전관리, SQL, NoSQL, 파이썬/다스크, 데이터 구조, 확률 및 통계, 
ML 알고리즘, 병렬 컴퓨팅, REST API, 쿠버네티스+에어플로, 단위/통합 테스트까지 
현업에서 필요한 것들을 잘 나열해 주었다.&lt;/p&gt;

&lt;p&gt;처음 이 분야를 배우는 사람이라면 이 많은 키워드에 언제 저 키워드를 다 배우나 싶을 수도 있다.
만든 모델의 성능 뿐만 아니라 현실세계에서 해당 모델이 동작하고 동작하는 모델을 통해 더 나은 세상을 만들 수 있는 좋은 팁이 담겨있다.
ML엔지니어를 희망하는 사람들 뿐만 아니라 현업자에게도 전반적인 팁을 정리할 수 있는 주변에 강추하고 싶은 정말 좋은 책이다.&lt;/p&gt;

&lt;p&gt;이 리뷰는 한빛미디어의 나는 리뷰어다 이벤트를 통해 책을 제공받아 작성했습니다&lt;/p&gt;
</description>
                <link>http://corazzon.github.io/ml-system-hb</link>
                <guid>http://corazzon.github.io/ml-system-hb</guid>
                <pubDate>2023-04-23T00:00:00+00:00</pubDate>
        </item>

        <item>
                <title>[도서 리뷰] 데이터 과학을 위한 파이썬과 R</title>
                <description>&lt;p&gt;데이터 과학, 통계 등을 시작하고자 할 때 어떤 언어를 선택할지에 대한 기로에 놓이게 된다.
파이썬과 R은 데이터과학 분야에서 주로 사용되는 언어이기도 하다.&lt;/p&gt;

&lt;p&gt;보통 다양한 생태계를 이야기할 때는 파이썬을 통계 패키지를 좀 더 사용하고자 한다면 R을 추천하는 편이다.
서로 어떤 언어가 좋고 나쁘고를 떠나서 각 장점을 이해하고 사용하면 좋겠다는 생각을 해왔다.
주로 파이썬을 사용하는 입장에서 R관련 패키지에도 관심을 갖고 있으며 판다스의 주요 기능들이 R에서 영향을 받은 것이 많다는 것도 익히 들어왔다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/nJAYpn0.jpg&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;이 책은 데이터 과학을 위한 파이썬과 R을 비교해서 설명하고 있다.
이런 책 꼭 필요하다고 생각하고 있었는데 한빛미디어의 나는 리뷰어다를 통해 읽어보게 되었다.
해들리위컴의 tidy data 등의 여러 저널 자료와 ggplot의 철학을 통해 시각화를 이해하는데도 많은 도움이 되었다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/9EO3bRx.jpg&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;그럼 파이썬 사용자를 위한 R이라면 어떤 내용을 비교하면서 봐야 할까?
이미 파이썬을 통한 데이터과학 패키지 사용경험이 있는 사람이라면 다른 도구를 접했을 때 오히려 혼란스러울 수 있는데 이런 부분을 정리해 주고 있는 점이 좋았다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/dPjpIcl.jpg&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;또, 반대로 R사용자를 위해 파이썬을 사용할 때 어떤 점을 고려해야하는지에 대한 내용을 읽으면서 반대로 R을 이해하는데도 도움이 되었다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/Pi6xoya.jpg&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;파이썬과 R은 데이터과학에 사용되는 대표적인 언어로 이 두 언어가 서로 어떤게 더 좋다 나쁘다를 이야기하기 보다 서로의 장점을 이해하고 시너지를 낼 수 있는 방법에 대한 내용도 좋았다.
각 언어로 만들어진 도구마다 장점을 고려해서 사용할 수 있게 알려주고 있다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/37MhF1o.jpg&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;시대별 마일스톤을 정리해 준 표가 인상적이었는데 중요한 출판자료, 중심언어, 핵심패키지, 재단과 기업 등을 한 눈에 살펴볼 수 있게 정리한 부분으로 시대적 흐름을 볼 수 있다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/2dX6PTG.jpg&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;각 데이터의 특성에 따라 어떤 처리를 해주어야 하는지에 대한 내용도 한눈에 볼 수 있다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/k41VEef.jpg&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;테이블 형식, 이미지, 텍스트, 시계열, 공간 정보에 따라 각 언어별 주요 패키지를 비교하고 있다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/H25ITRP.jpg&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;데이터 멍잉, EDA, 머신러닝, 딥러닝, 데이터 엔지니어링, 보고서 작성에 대해서 비교한 표이다.
각 패키지별 유사한 기능을 하는 도구에 대한 이해를 돕는다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/jsjfEhg.jpg&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;두 언어를 한 번에 같이 사용하기보다는 절차를 통해 데이터 파일을 공유하는 형태로 각 언어의 장점을 활용하는 것을 추천하고 있다.
이 부분을 어떻게 설명할지 책을 읽기 전에 궁금한 부분이었는데 데이터 파일 형태로 파이프라인을 만드는 것이 프로세스상  혼란을 줄일 수 있는 방법일 것이라는 것에 동의한다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/zjXL8Ad.jpg&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;요즘은 ChatGPT를 통해 파이썬 코드를 R로 변경해 달라 혹은 반대로 해달라 해도 척척 알아서 언어를 잘 바꿔준다. 하지만 여전히 오류가 많고 해당 지식을 이해하고 있다면 좀 더 시너지를 낼 것 같다는 생각이 드는데 이 책에 이러한 부분이 잘 정리되어 있다.&lt;/p&gt;

&lt;p&gt;두껍지 않은 분량에 두 언어의 핵심을 비교하는 내용을 잘 담고있다.
두 언어를 모두 깊게 사용해 보지 않으면 쉽게 정리하기 어려운 내용인데 저자의 내공이 느껴지는 책이었다.
주로 파이썬을 사용하지만 나 또한 R과 관련된 저널이나 관련 패키지의 철학에 대해서는 공감하는 부분이 많은데 이 책을 통해 그러한 부분을 좀 더 잘 정리해볼 수 있는 계기가 되었다.&lt;/p&gt;

&lt;p&gt;이 리뷰는 한빛미디어의 나는 리뷰어다 이벤트를 통해 책을 제공받아 작성했습니다.&lt;/p&gt;
</description>
                <link>http://corazzon.github.io/hb-pythonrbook</link>
                <guid>http://corazzon.github.io/hb-pythonrbook</guid>
                <pubDate>2023-03-26T00:00:00+00:00</pubDate>
        </item>

        <item>
                <title>[도서 리뷰] 혼자 공부하는 데이터 분석 with 파이썬</title>
                <description>&lt;p&gt;혼자 공부하는 데이터 분석 with 파이썬
1:1 과외하듯 배우는 데이터 분석 자습서&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;파이썬을 활용한 데이터 분석을 평소에 자주하고 있기 때문에 이 책의 출간이 더 기다려지기도 했는데 한빛미디어 나는 리뷰어다 이벤트를 통해 읽어보게 되었다.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/uD7DcxH.jpg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;이 책의 장점
    &lt;ul&gt;
      &lt;li&gt;워낙 명성이 높으신 저자분이 집필하신 책이라 데이터 분석에 대한 기본적인 내용을 꼼꼼하고 자세한 설명을 통해 읽어볼 수 있다.&lt;/li&gt;
      &lt;li&gt;다른 혼공시리즈처럼 퀴즈, 혼공노트 등 혼자 배우면서 점검해 볼 수 있는 내용도 함께 있어 정말 옆에 두고 참고해 보기에 좋은 책이다.&lt;/li&gt;
      &lt;li&gt;그리고 SQL 관련 내용도 함께 다루고 있어 정형데이터를 다룰 때 꼭 필요한 기본 스킬을 이 책 한권으로 쌓을 수 있다는 점도 좋다.&lt;/li&gt;
      &lt;li&gt;현실세계의 데이터를 활용하며 다양한 공공데이터에 대한 소개도 다루고 있다.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/f06ajhi.jpg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;그리고 엑셀과 비교하며 설명하는 점도 좋다. 업무에 필요한 데이터 분석은 엑셀로도 충분할 수 있다.&lt;/li&gt;
  &lt;li&gt;하지만 엑셀로 다루다보면 속도, 여러 통계 패키지 기능 등이 아쉬운데 이럴 때 파이썬을 활용하면 엑셀의 아쉬운 점을 아주 강력하게 보완해 주게 된다.&lt;/li&gt;
  &lt;li&gt;데이터 분석 관련 도서는 정말 많지만 이 책은 파이썬 데이터 분석 도구에 포함된 메서드의 기능별 설명이나 비교가 매우 자세하게 되어있다.&lt;/li&gt;
  &lt;li&gt;초심자든 데이터분석을 어느정도 해본 사람이든 기본적인 내용을 정리할 수 있도록 매우 알찬 구성으로 되어 있다.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/RvwuaEf.jpg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/VNAGMcj.jpg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;p&gt;확인 문제를 통해 배운 내용을 꼼꼼하게 점검해 볼 수 있으며, 퀴즈의 내용도 데이터 분석에 필요한 핵심적인 내용을 확인할 수 있도록 구성되어 있다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/8hghu8K.jpg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/HH04NpX.jpg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;p&gt;혼공 노트 또한 혼공시리즈의 장점인데 저자분의 “혼자 공부하는 머신러닝 딥러닝”처럼 공부잘하는 친구가 정리한 핵심노트를 보는 기분이다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/tKTAe31.jpg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;p&gt;전체적인 내용을 혼공노트로 다시한번 정리하며 데이터 분석에 필요한 기본적인 내용을 쉽고 재미있게 설명하고 있다.
나 또한 저자분의 다른 역서, 저서를 통해 많은 도움을 받으며 성장해 오고 있는데 이 책 또한 저자분의 친절한 설명으로 내가 알고 있던 내용을 정리할 수 있었다.&lt;/p&gt;

&lt;p&gt;이 리뷰는 한빛미디어의 나는 리뷰어다 이벤트를 통해 책을 제공받아 작성했습니다.&lt;/p&gt;
</description>
                <link>http://corazzon.github.io/hb-hg-python-eda</link>
                <guid>http://corazzon.github.io/hb-hg-python-eda</guid>
                <pubDate>2023-02-26T00:00:00+00:00</pubDate>
        </item>

        <item>
                <title>[도서 리뷰] 트랜스포머를 활용한 자연어 처리</title>
                <description>&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/GkxRq5i.jpg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Attention is all you need 논문으로 큰 주목을 받은 Transformer로 자연어처리에서 좋은 성능을 내며 주목을 받고 있다.
요즘 나오는 초거대모델을 보면 곧 내 일자리를 잃지 않을까 혹은 지금까지 해왔던 자연어 공부가 무용해지는게 아닐까 싶을 정도로 초거대모델의 성능은 눈부시다.
광고문구, 비즈니스메일, 내용 요약 등 나보다도 작문을 잘하고 요약을 잘 하는 모습을 보면 놀라움을 감출 수 없다.
또, 요즘 나오는 모델은 API 사용법도 과거 모델에 비해 추상화가 잘 되어 있어 복잡한 내부를 잘 모르더라도 간단한 API 몇 가지를 읽히면 제법 그럴듯한 모델을 만들 수 있다.&lt;/p&gt;

&lt;p&gt;하지만 그래도 기본을 닦고 관련 내용을 좀 더 알고 있다면 간단한 API라도 해당 모델에 맞게 전처리를 해주거나 튜닝을 해준다면 더 나은 성능을 낼것이다.&lt;/p&gt;

&lt;p&gt;그런면에서 이 책은 트랜스포머에 대한 동작 원리를 이해하고 직접 모델을 사용해보는 예시가 풍부해서 트랜스포머를 익히기에 딱 좋을 뿐만아니라 한줄기 빛과도 같은 책이다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/COpsh5j.jpg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;p&gt;주요 내용으로는 기본적인 텍스트 분류부터, 개체명 인식, 전이학습 활용법, 파인튜닝, 모델 평가하고 성능을 높이는 방법등 실무에 필요한 팁들을 정리하고 있다.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;텍스트 분류, 개체명 인식 등 NLP 작업을 위한 트랜스포머 모델을 빌드 및 디버깅, 최적화하는 방법&lt;/li&gt;
  &lt;li&gt;언어 간 전이 학습에 트랜스포머를 사용하는 방법&lt;/li&gt;
  &lt;li&gt;레이블링된 데이터가 부족한 상황에서 트랜스포머를 적용해 모델 성능을 높이는 방법&lt;/li&gt;
  &lt;li&gt;지식 정제와 양자화, 가지치기 같은 기술을 사용한 트랜스포머 모델 효율화 방법&lt;/li&gt;
  &lt;li&gt;대규모 트랜스포머 모델을 밑바닥부터 훈련하고 여러 GPU 및 분산 환경으로 확장하는 방법&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/XHuPV6K.jpg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/Vqu08wM.jpg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;p&gt;또, 최근 생성모델이 많은 주목을 받고 있는데 텍스트 생성시 고려할 디코딩 방법등에 대해 소개하고 있다.
질문 답변에서의 활용방법이나 효율적인 모델 구축방법을 소개하고 있으며, 
데이터셋 구축이나 레이블 부족문제와 같은 실무에서 고민했던 문제에 대해 다루는 부분도 인상적이다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/mX5uX7V.jpg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/9kmJS1z.jpg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/0DXVycB.jpg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;p&gt;앞으로의 연구방향이나 여러 어텐션 방법 등에 대해 컬러 예제를 통해 이해를 돕는 것도 좋다.
또, 꼼꼼하신 역자분이 번역해주셔서 어려운 내용을 좀 더 쉽게 읽어볼 수 있는 것도 감사한 점이다.
개인적으로 자연어처리에 관심이 많은데 상세한 설명과 함께 컬러 도표와 함께 볼 수 있어서 너무나 좋았던 책이다.&lt;/p&gt;

&lt;p&gt;역자분이 깃헙에 소스코드도 너무 친절하게 정리해 주셔서 이해에 정말 큰 도움이 되었다.&lt;/p&gt;

&lt;p&gt;https://github.com/rickiepark/nlp-with-transformers&lt;/p&gt;

&lt;p&gt;트랜스포머 관련 정리된 책이 많지 않은데 이렇게 한권의 꼼꼼하게 번역된 책으로 배울 수 있다는게 얼마나 행운인지 모른다.&lt;/p&gt;

&lt;p&gt;이 리뷰는 한빛미디어의 나는 리뷰어다 이벤트를 통해 책을 제공받아 작성했습니다.&lt;/p&gt;
</description>
                <link>http://corazzon.github.io/hbtransformer</link>
                <guid>http://corazzon.github.io/hbtransformer</guid>
                <pubDate>2022-12-31T00:00:00+00:00</pubDate>
        </item>

        <item>
                <title>[도서 리뷰] 파이썬 라이브러리를 활용한 텍스트 분석</title>
                <description>&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/2cPhiMi.jpg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;p&gt;비정형 텍스트 데이터는 정형 데이터에 비해 전처리가 어렵기도 하고 
또 여러 전처리 방법을 사용한다 하더라도 막상 시각화를 하거나 분석을 하다보면 제대로 된 인사이트를 얻기 위해
텍스트를 정제하는 과정이 쉽지 않음을 느낀다.&lt;/p&gt;

&lt;p&gt;하지만 텍스트 데이터를 분석할 수 있다면 방대한 논문 속에서 트랜드를 이루는 키워드를 찾아낼 수도 있으며
방대한 텍스트를 시각화해서 인사이트를 얻는데 도움이 될 수도 있다.&lt;/p&gt;

&lt;p&gt;이 책은 이렇게 텍스트를 통해 의미를 찾기 위한 과정을 찾는 방법을 알려준다.&lt;/p&gt;

&lt;h3 id=&quot;이-책의-특징&quot;&gt;이 책의 특징&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;대부분 파이썬 라이브러리를 활용한다.&lt;/li&gt;
  &lt;li&gt;라이브러리를 활용하기 때문에 복잡한 수식, 통계를 직접 계산할 수 없더라도 해당 라이브러리의 활용방법을 익히게 되면 비교적 간단한 API를 통해 의미를 찾아볼 수 있다.&lt;/li&gt;
  &lt;li&gt;그런면에서 파이썬 기초와 라이브러리에 대한 활용법을 알고 있는 대상에게 적합한 책이다.&lt;/li&gt;
  &lt;li&gt;기본적인 라이브러리 활용법을 익히고 텍스트 분석에 대한 이론적인 내용을 어느정도 이해하고 있다면 사이킷런, Gensim, spacy 등의 라이브러리를 활용하여 의미를 찾는 방법을 소개하고 있다.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;책을-읽기-전에-알고-있다면-좋은-점&quot;&gt;책을 읽기 전에 알고 있다면 좋은 점&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;파이썬 기본 문법에 대한 이해와 라이브러리의 개념을 이해하고 있다면 책을 읽는데 도움이 된다.&lt;/li&gt;
  &lt;li&gt;소스코드를 제공하고 있기 때문에 github( https://github.com/hanbit/blueprints-text )을 통해 실습과 책의 내용을 함께 볼 수 있다.&lt;/li&gt;
  &lt;li&gt;의존성 있는 라이브러리 설치가 안 되어 있다면 동작을 하지 않을 수 있기 때문에 책의 내용을 잘 살펴보며 관련 라이브러리를 설치해야 사용할 수 있는 도구들이 있다.&lt;/li&gt;
  &lt;li&gt;이 책을 읽고 어디에 활용할지에 대한 고민을 갖고 시작하는 것도 좋다.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/CM2N5E3.jpg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;h3 id=&quot;사용하는-라이브러리&quot;&gt;사용하는 라이브러리&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;각 장의 개요를 보면 사용하는 라이브러리가 나온다.&lt;/li&gt;
  &lt;li&gt;사이킷런 뿐만 아니라 Gensim, Spacy, NLTK, Transformers 등의 활용방법이 나오며&lt;/li&gt;
  &lt;li&gt;활용사례를 통해 각 라이브러리를 어떤 상황에서 사용하면 좋은지에 대한 감을 잡기 좋다.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/Jp2Ybfn.jpg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;h3 id=&quot;텍스트-데이터를-통한-다양한-시각화-사례&quot;&gt;텍스트 데이터를 통한 다양한 시각화 사례&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;각종 시각화 도구 뿐만 아니라 LIME, ELI5, 그래프 등의 도구를 사용하여 텍스를 분석하고 시각화 하는 다양한 기법을 소개한다.&lt;/li&gt;
  &lt;li&gt;기본적인 워드클라우드에서 시작해서 시각화나 요약, 전처리를 위한 행렬분해 기법을 통한 차원축소 방법을 다루고 있다.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;텍스트 수집, 전처리, 시각화, 토픽모델링 뿐만 아니라 머신러닝, 딥러닝 기법을 활용한 텍스트 분석까지 텍스트 데이터 관련 라이브러리의 모든것을 알아볼 수 있는 책이기도 하다.
한국어 관련 전처리 도구에 대한 설명이 없다는 점이 조금 아쉽기는 하지만 텍스트 분석에 대한 A-Z 을 꼼꼼하게 알려주는 책이다.&lt;/p&gt;

&lt;p&gt;이 리뷰는 한빛미디어의 나는 리뷰어다 이벤트를 통해 책을 제공받아 작성했습니다.&lt;/p&gt;
</description>
                <link>http://corazzon.github.io/hb-blueprints-text</link>
                <guid>http://corazzon.github.io/hb-blueprints-text</guid>
                <pubDate>2022-11-27T00:00:00+00:00</pubDate>
        </item>

        <item>
                <title>[도서 리뷰] 파이썬 기반 금융 인공지능 - 파이썬과 케라스를 활용한 금융 시계열 데이터 기반 알고리즘 트레이딩 전략 </title>
                <description>&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/EleHZJ1.jpg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;파이썬-기반-금융-인공지능&quot;&gt;파이썬 기반 금융 인공지능&lt;/h2&gt;

&lt;p&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;파이썬과 케라스를 활용한 금융 시계열 데이터 기반 알고리즘 트레이딩 전략&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;이 책은 금융전문가인 이브힐피시라는 저자와 데이터 사이언스 스쿨 사이트를 운영하는 김도형 박사님에 의해 번역이 되었다.
올해 초에도 이 두분의 저자, 역자 분의 책인 “파이썬을 활용한 금융 분석 2판”을 통해서도 많은 도움을 받았다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/I1Dt4Qt.jpg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;어떤-사람이-읽으면-좋을까&quot;&gt;어떤 사람이 읽으면 좋을까?&lt;/h2&gt;

&lt;p&gt;이 책은 이전에 리뷰했던 “파이썬을 활용한 금융 분석 2판” 처럼 파이썬, 머신러닝, 딥러닝, 금융이라는 키워드를 통해 실제 금융데이터에 적용해볼 수 있는 다양한 기법을 튜토리얼 형식으로 제공하고 있다.
그래서 파이썬 데이터사이언스 스킬 뿐만 아니라 금융 지식도 함께 얻을 수 있는 책이기도 하다.
아마 이 책을 읽는 독자는 개발이나 데이터 전문가로 파이썬을 활용하여 금융 데이터를 통해 예측 모델을 만들어 보려는 사람도 있을 수 있고 금융전문가로 파이썬을 배워 업무에 활용해 보고자 하는 사람도 있을 것이다.
어느 측면에서 시작했건 특정 전문 도메인에 실제 예측모델을 적용해 보고 배포하는 과정까지를 포함하고 있기 때문에 모델을 만들어서 실제 투자에 활용하고자 할 때 도움을 받을 수 있는 책이다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/Uq73A84.jpg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;이-책에-관심을-갖게-된-계기&quot;&gt;이 책에 관심을 갖게 된 계기&lt;/h2&gt;

&lt;p&gt;실제로 한 때 투자 예측 모델을 만들어 직접 투자에 적용해 볼 만큼 이 분야에 관심이 많았다.
직접 예측 모델을 만들었을 때는 나름대로의 기준을 갖고 볼린저밴드, MACD, RSI 지수 등을 산출하고 재무제표 데이터를 피처로 활용하여 투자 모델을 만들었었는데 모델이 예측하는 것은 대부분 급등주여서 비싼 수업료를 지불하고 투자를 그만두었던 경험이 있기도 하다.
또, 머신러닝, 딥러닝을 활용하여 업무적인 측면 뿐만 아니라 생활 경제와 밀접하게 관련있는 데이터에 적용해 보면 비싼 수업료를 지불하더라도 배우는 게 컸다. 금융적인 지식 뿐만 아니라 머신러닝이나 딥러닝 모델을 어떻게 하면 개선해 볼 것인지 고민할 때 이 책의 사례를 참고해 보고 싶었다.&lt;/p&gt;

&lt;h2 id=&quot;책에서-다루는-인공지능-기술&quot;&gt;책에서 다루는 인공지능 기술&lt;/h2&gt;

&lt;p&gt;금융 전문가를 위해 다루는 AI책인 만큼 통계적 비효율성에 AI를 더해 알고리즘 트레이딩에서 경제적 비효율성을 역이용 하는 방법을 소개하고 있다. 또, 케라스 코드를 통해 설명하고 있는데 텐서플로 2버전부터 케라스를 공식 API로 채택하고 있기 때문에 이 책을 통해 적절하게 추상화된 케라스 알고리즘을 통해 금융데이터에 집중할 수 있도록 해준다.&lt;/p&gt;

&lt;h2 id=&quot;다양한-데이터&quot;&gt;다양한 데이터&lt;/h2&gt;
&lt;p&gt;정형 데이터 뿐만 아니라 금융데이터를 다루다 보면 뉴스, 종목게시판 등의 내용을 보게 되는데 이런 비정형 데이터를 다루는 방법도 소개하고 있다.&lt;/p&gt;

&lt;h2 id=&quot;딥러닝과-강화학습&quot;&gt;딥러닝과 강화학습&lt;/h2&gt;
&lt;p&gt;딥러닝을 활용한 지도학습 방식 뿐만 아니라 강화학습과 관련된 내용까지 소개하고 있다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/FXXlmOY.jpg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;쉽지-않은-난이도&quot;&gt;쉽지 않은 난이도&lt;/h2&gt;
&lt;p&gt;전문적인 파이썬 지식과 금융지식을 다루기 때문에 내용이 쉽지는 않다. 또 아주 기본적인 파이썬 문법, 딥러닝의 학습과정과 이론적인 내용을 어느정도 알고 있지 않으면 쉽게 읽히지 않을 내용이다.
하지만 이 책 한권을 통해 마치 전문 퀀트처럼 흉내를 낼 수 있고 무엇을 더 배워나가야 할지 고민하게 해주는 책이다.&lt;/p&gt;

&lt;p&gt;이전에 출판된 동일 저자와 역자의 책인 “파이썬을 활용한 금융 분석 2판” 과 함께 읽으면서 어려운 금융용어나 분석 내용을 이해하는데 좀 더 도움이 되었다.&lt;/p&gt;

&lt;p&gt;이 리뷰는 한빛미디어의 나는 리뷰어다 이벤트를 통해 책을 제공받아 작성했습니다.&lt;/p&gt;
</description>
                <link>http://corazzon.github.io/hb-ai-in-finance</link>
                <guid>http://corazzon.github.io/hb-ai-in-finance</guid>
                <pubDate>2022-10-30T00:00:00+00:00</pubDate>
        </item>

        <item>
                <title>[도서 리뷰] 소문난 명강의 : 김기현의 딥러닝 부트캠프 with 파이토치</title>
                <description>&lt;h2 id=&quot;소스코드&quot;&gt;소스코드&lt;/h2&gt;

&lt;p&gt;텐서플로를 주로 사용해 왔는데 파이토치에 익숙해 지고자 이 책을 읽게 되었다.
IT전문서를 읽을 때는 일단 코드를 먼저 보고 책을 나중에 보게 되는데 이 책도 깃헙에 챕터별로 예제를 공개해 두고있다.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;책의 소스코드 : https://github.com/kh-kim/deep_learning_book_exercise&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;기본에-충실한-책&quot;&gt;기본에 충실한 책&lt;/h2&gt;

&lt;p&gt;텐서플로를 주로 사용해 왔기 때문에 기본적인 내용은 어느정도 알고 보기 시작했지만 기본적인 내용을 정리할 수 있어서 좋았다.
딥러닝이 처음인 사람에게도 이런 이론적인 기본이 잘 정리되어 기본적인 개념을 이해하기에 좋은 책이다.&lt;/p&gt;

&lt;p&gt;최근에는 생성모델이 좋은 성능을 보여주고 있어서 이미지든 자연어든 결과물이 놀라운데 
이 책은 이런 최신 모델을 다루고 있지는 않지만 입문자를 위한 기본을 익히기 위한 내용들이 잘 구성되어 있다.&lt;/p&gt;

&lt;h2 id=&quot;딥러닝-관련-용어-정리&quot;&gt;딥러닝 관련 용어 정리&lt;/h2&gt;

&lt;p&gt;딥러닝을 배울 때면 어렵고 생소한 단어들이 많이 등장하게 된다.
또 이 단어들이 어떤 연관이 있는지 모델에서 어떻게 사용되는지 이런 설정이 왜 필요한지 꼬리에 꼬리를 무는 궁금증이 생기기 마련이다.
이 책은 이런 기본적인 내용을 충실하게 정리하고 있다.&lt;/p&gt;

&lt;p&gt;그래서 딥러닝이 처음인 사람들은 딥러닝의 기본 용어를 이해하고 
실제로 모델을 구성하거나 학습시킬때 어디에서 어떻게 동작하는지를 실습을 통해 비교해 가며 읽어보기 좋은 책이다.&lt;/p&gt;

&lt;h2 id=&quot;기본적인-사용법&quot;&gt;기본적인 사용법&lt;/h2&gt;

&lt;p&gt;파이토치를 처음 시작하면서 기존 넘파이의 기능과 파이토치의 텐서를 다루는 기능이 미묘하게 다른게 있는데,
예를 들면 view()는 넘파이에서 얕은 복사를 할 때 사용하지만 파이토치에서는 넘파이의 reshape()와 비슷한 기능을 한다.&lt;/p&gt;

&lt;p&gt;이렇게 파이토치에서 텐서를 다루를 기능이나 기초적인 내용을 시작하고자 할 때 읽을만한 책이다.&lt;/p&gt;

&lt;h2 id=&quot;딥러닝-기본-이론&quot;&gt;딥러닝 기본 이론&lt;/h2&gt;

&lt;p&gt;기존에 다른 책으로 딥러닝 이론을 배웠다면 정리해 볼 수 있고 이 책이 처음이라면 기본 이론을 익혀볼 수 있다.
CNN과 RNN에 대한 기초적인 내용을 다루고 있다. 
최신 논문에서 다루는 핫한 키워드보다는 기초에 충실함을 두고 있다.&lt;/p&gt;

&lt;h2 id=&quot;실습&quot;&gt;실습&lt;/h2&gt;

&lt;p&gt;책에서 설명한 내용이 코드에서 어떻게 동작하는지 확인해가며 읽어보며 파이토치로 딥러닝에 입문해 볼 수 있는 책이다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/k1p6HDv.jpg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/TRCqdMj.jpg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/laMnXAO.jpg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;p&gt;이 리뷰는 한빛미디어의 나는 리뷰어다 이벤트를 통해 책을 제공받아 작성했습니다.&lt;/p&gt;
</description>
                <link>http://corazzon.github.io/hb-pytorch-bootcamp</link>
                <guid>http://corazzon.github.io/hb-pytorch-bootcamp</guid>
                <pubDate>2022-10-02T00:00:00+00:00</pubDate>
        </item>

        <item>
                <title>[도서 리뷰] SQL로 시작하는 데이터 분석</title>
                <description>&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/GoICne4.jpg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;sql로-시작하는-데이터-분석&quot;&gt;SQL로 시작하는 데이터 분석&lt;/h2&gt;

&lt;p&gt;SQL 책을 보면 대부분 기능적인 설명위주로 되어 있는데
이 책은 실제와 가까운 비즈니스 데이터 분석예제로 구성되어 있다.
최근 본 SQL 책 중에 가장 실무와 가깝고 재미있는 주제로 쓰여진 책이다.&lt;/p&gt;

&lt;p&gt;다른 SQL책은 SQL문법 위주로 되어 있기 때문에 실무에 적용하거나 통계적인 연산을 고려해서 보려면 SQL과 통계에 대한 책을 따로 보고 또 그렇게 봤다 하더라도 맞게 적용한건지 의문이 들게 마련인데 이 책은 이런 어려움을 해결해 주는 책이다. 실무에서 사용되는 다양한 데이터 분석기법과 SQL 문법을 엮어서 설명한 점이 가장 좋다.&lt;/p&gt;

&lt;h3 id=&quot;시계열-분석&quot;&gt;시계열 분석&lt;/h3&gt;

&lt;p&gt;날짜 및 시간 데이터를 처리하는 방법, 날짜 차원 테이블을 활용한 시간 윈도우 롤링 계산방법, 구간 비교계산과 계절성 패턴을 알아내는 방법을 다루고 있다.
실무에 필요한 비즈니스 예제로 구성되어 DAU, WAU, MAU 에 대한 이론적인 내용을 함께 설명하고 있다.&lt;/p&gt;

&lt;h3 id=&quot;코호트-분석&quot;&gt;코호트 분석&lt;/h3&gt;
&lt;p&gt;각 그룹의 리텐션, 반복 행동, 누적값 등이 시간에 따라 어떻게 변화하는지 이해할 수 있도록 인구통계학적 분석 뿐만 아니라 통계적인 이론도 실무 예제와 함께 설명하는 점이 좋다. 예를 들면 상관 관계와 인과 관계의 다름을 설명하는 것도 좋다.&lt;/p&gt;

&lt;p&gt;데이터 분석을 주로 다루기 때문에 SELECT 구문을 주로 다루며 다양한 함수와 서브쿼리 작성법을 다루고 있다.&lt;/p&gt;

&lt;h3 id=&quot;텍스트-분석&quot;&gt;텍스트 분석&lt;/h3&gt;
&lt;p&gt;like 구문 정규표현식 사용 등을 통해 텍스트 데이터 분석에 대해서도 다룬다. 텍스트에 포함된 내용을 SQL로 분석하는 다양한 예제를 제공하고 있다.&lt;/p&gt;

&lt;h3 id=&quot;이상탐지&quot;&gt;이상탐지&lt;/h3&gt;
&lt;p&gt;이상탐지에서도 SQL문법만을 다루는것이 아니라 이상탐지가 필요한 상황과 박스플롯, 스케일 변환 등의 통계적인 기법까지 다루고 있다.&lt;/p&gt;

&lt;h3 id=&quot;실험분석&quot;&gt;실험분석&lt;/h3&gt;

&lt;p&gt;이상탐지, 코호트분석 등 다양한 유형의 분석을 아우르며 모바일게임 사용자 예제를 통해 카이제곱 검정, t-검정 등의 검정 방법을 다룬다. SQL 문법 뿐만아니라 실무에서 데이터분석을 위한 실험설계 방법까지 엮어 다룬다는 점이 이 책의 최고 강점이다.&lt;/p&gt;

&lt;h3 id=&quot;복잡한-데이터셋-생성&quot;&gt;복잡한 데이터셋 생성&lt;/h3&gt;

&lt;p&gt;분석 뿐만 아니라 좀 더 정교한 분석을 위해 뷰를 생성하는 방법, 복잡도 관리, 쿼리 성능 최적화, 결과 데이터셋에서의 프라이버시 보호 등 여러 SQL 문법을 다룬다.&lt;/p&gt;

&lt;p&gt;기존까지 봤던 데이터 분석 책에 비교해봤을 때 다양한 도메인 데이터와 스토리텔링, 통계적인 내용을 쉽게 풀어 비즈니스 예제에 적용해준 점이 정말 인상적이다. SQL을 처음 다루는 사람에게도 도움이 되겠지만 SQL을 통해 분석을 해온 사람에게도 다양한 방법론과 통계적인 지식을 모두 쌓을 수 있는 책이다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/mwoWIt7.jpg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;p&gt;이 리뷰는 한빛미디어의 나는 리뷰어다 이벤트를 통해 책을 제공받아 작성했습니다.&lt;/p&gt;
</description>
                <link>http://corazzon.github.io/hb-sql-biz</link>
                <guid>http://corazzon.github.io/hb-sql-biz</guid>
                <pubDate>2022-08-28T00:00:00+00:00</pubDate>
        </item>

        <item>
                <title>[도서 리뷰] 파이썬을 활용한 베이지안 통계(2판)</title>
                <description>&lt;h3 id=&quot;파이썬을-활용한-베이지안-통계2판&quot;&gt;파이썬을 활용한 베이지안 통계(2판)&lt;/h3&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/TwmKbqz.jpg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;p&gt;초판은 절판이 되어 2판이 나오기 전에는 도서관에서 겨우 구해 볼 수 있었던 책이다.
그것도 근처 도서관에는 없어서 상호대차를 통해 어렵게 구해봤던 기억이 난다.
그래서 어렵게 초판을 구해보던 기억을 떠올려 이 책의 2판의 출간이 엄청 반가웠다.&lt;/p&gt;

&lt;p&gt;가장 어려우면서도 꼭 필요한 내용이 확률과 통계 그것도 베이지안 통계다.
관련 책을 보고 있으면 수식으로 압도되는데 이 책은 파이썬 코드를 통해 설명하고 있다.&lt;/p&gt;

&lt;p&gt;파이썬의 과학계산 라이브러리는 추상화가 잘 되어 있기 때문에 간단한 코드를 잘 가져다 사용할 수 있게 잘 풀어쓴 설명이 꼭 필요한데 이 책이 그 역할을 하고 있다.&lt;/p&gt;

&lt;p&gt;책의 구성은 다음과 같다.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;확률, 베이즈 정리, 분포, 비율 추정, 수량 추정, 공산과 가산, 최솟값, 최댓값&lt;/li&gt;
  &lt;li&gt;혼합 분포, 포아송 과정, 의사결정분석, 검정, 비교, 분류, 추론, 생존 분석, 표식과 재포획&lt;/li&gt;
  &lt;li&gt;로지스틱 회귀, 회귀&lt;/li&gt;
  &lt;li&gt;켤레사전분포, MCMC, 근사 베이지안&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;머신러닝이나 딥러닝을 다뤄보거나 데이터 분석을 하다보면 등장하는 통계적인 내용을 파이썬 코드 + 시각화와 함께 설명하고 있다.
또, 각 챕터마다 요약과 연습 문제가 있어 읽었던 내용을 다시 점검해 볼 수 있는 점도 좋다.&lt;/p&gt;

&lt;p&gt;단, 이 책을 볼 때 기본적인 파이썬 문법, NumPy, Scipy, statmodels, Matplotlib 등의 파이썬 데이터 과학 도구의 기본 사용법을 이해하고 있다는 전제하에 설명이 되며, 또 scipy 에 구현되어 있는 통계적인 기능들은 대부분 추상화가 되어 있기 때문에 추상화된 깊은 부분의 내용을 이해하기 위한 노력도 필요하다는 점을 알아두어야 한다.&lt;/p&gt;

&lt;p&gt;그렇기 때문에 파이썬 기초 문법을 이해하고 있고 파이썬 데이터 과학 주요 라이브러리에 대한 사용법을 어느정도 알고 있다면 베이지안 통계를 포기했던 사람에게 한 줄기 빛이 되는 책이다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/ZXFmrwe.jpg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;p&gt;책 뒷편에 있는 내용처럼&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;프로그래밍으로 베이지안 통계를 배우고 이해하며&lt;/li&gt;
  &lt;li&gt;추정, 예측, 의사 결정 분석, 증명, 베이지안 가설 검정 등의 문제&lt;/li&gt;
  &lt;li&gt;동전, 주사위, 쿠기 그릇, 월드컵 문제, 신장 종양 문제 등의 예제를 통해 설명하고 있으며&lt;/li&gt;
  &lt;li&gt;실생활에 실생활의 문제를 푸는데 사용하는 계산법을 익히는데 도움이 되는 책이다.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;곁에 두고 보고 또 보고 싶은 책이다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/AfWKvxi.jpg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;p&gt;이 리뷰는 한빛미디어의 나는 리뷰어다 이벤트를 통해 책을 제공받아 작성했습니다.&lt;/p&gt;

</description>
                <link>http://corazzon.github.io/baysian-2nd</link>
                <guid>http://corazzon.github.io/baysian-2nd</guid>
                <pubDate>2022-07-24T00:00:00+00:00</pubDate>
        </item>

        <item>
                <title>[도서 리뷰] 혼자 공부하는파이썬(개정판)</title>
                <description>&lt;h2 id=&quot;혼자-공부하는-파이썬&quot;&gt;혼자 공부하는 파이썬&lt;/h2&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/uZFLPpt.jpg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;p&gt;프로그래밍 책을 처음부터 끝까지 읽고 따라했지만 막상 뒤돌아 서면 어떤 내용을 봤었는지 또 배웠던 기능을 어디에 사용해야 할지 난감할 때가 있다.&lt;/p&gt;

&lt;p&gt;이 책은 혼자 공부한다는 가정하에 쉬운 설명과 요약, 연습문제로 구성되어 있다.
마치 직접 공부하고 실습하며 궁금하거나 체크해야 할 내용이 친절하게 정리되어 있다.&lt;/p&gt;

&lt;p&gt;파이썬은 워낙 인기있는 언어이고 프로그래밍 전문가 뿐만 아니라 프로그래밍과 상관 없는 사람들도 프로그래밍에 입문해야겠다는 생각을 할 때 가장 먼저 떠올리는 언어다.&lt;/p&gt;

&lt;p&gt;배우기 쉽고 직관적이라는 특징을 갖고 있지만 막상 처음 배우는 입장에서는 모든게 처음이기 때문에 낯설고 어려울 수 밖에 없는데 너무 많은 디테일을 알려주기 보다는 핵심적인 내용을 골라 아주 적절한 예제로 이해하기 쉽게 설명해 주고 있다.&lt;/p&gt;

&lt;p&gt;몇 가지 장점을 뽑아보자면&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;편집이 매우 깔끔하고 별도의 용어노트를 제공하고 있다.&lt;/li&gt;
  &lt;li&gt;처음 배울 때 용어가 가장 혼란스러운데 이런 부분을 정리할 수 있게 도와주고 있다.&lt;/li&gt;
  &lt;li&gt;마무리 키워드를 통해 정리해 준다.&lt;/li&gt;
  &lt;li&gt;확인문제, 도전문제를 통해 배운 내용을 다시 되새기고 복습할 수 있도록 해준다.&lt;/li&gt;
  &lt;li&gt;핵심적인 내용 중에서도 핵심만 골라 설명한다. 예를 들어, 문자, 리스트 등에 다양한 함수가 있지만 필수적인 몇 가지 핵심 함수 위주로 설명한다.&lt;/li&gt;
  &lt;li&gt;유튜브 채널을 통해 저자의 강좌를 볼 수 있다.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/sWOi3n9.jpg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/ntNjiYA.jpg&quot; width=&quot;800&quot; /&gt;&lt;/p&gt;

&lt;p&gt;파이썬을 주언어로 사용하는 입장에서도 이 책의 깔끔한 내용이 그동안 알고 있었던 내용을 정리하는데 도움이 되었다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/2JfhKYV.jpg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;p&gt;프로그래밍 언어를 배울 때 처음 등장하는 용어는 자주 보고 익혀도 이게 배운내용인가? 싶을 때가 있는데 핵심만 정리한 혼공노트, 키워드, 핵심포인트 등을 통해 앞으로 파이썬으로 무언가 만들어 봐야겠다. 해볼 수 있을것 같다는 자신감을 주는 책이다.&lt;/p&gt;

&lt;p&gt;“한빛미디어 &lt;나는 리뷰어다=&quot;&quot;&gt; 활동을 위해서 책을 제공받아 작성된 서평입니다.&quot;&lt;/나는&gt;&lt;/p&gt;

</description>
                <link>http://corazzon.github.io/hg-python</link>
                <guid>http://corazzon.github.io/hg-python</guid>
                <pubDate>2022-06-25T00:00:00+00:00</pubDate>
        </item>

        <item>
                <title>[도서 리뷰] XGBoost와 사이킷런을 활용한 그레이디언트 부스팅</title>
                <description>&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/RzKBwdl.jpg&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;머신러닝 알고리즘을 사용하다보면 보통 성능이 잘 나오는 트리계열의 알고리즘 위주로 사용하게 되는데 캐글이나 데이콘 대회를 볼 때도 트리 계열의 알고리즘들이 대체적으로 많이 사용되고 좋은 성능을 내는 편이다.
부스팅 계열 알고리즘은 여러 머신러닝 책에서도 다루기도 하지만 부스팅 계열의 알고리즘만을 다룬 책이라 부스팅 알고리즘을 제대로 배우고 싶다면 읽어보면 좋을 책이다.&lt;/p&gt;

&lt;h2 id=&quot;책을-읽기-위해-필요한-기술&quot;&gt;책을 읽기 위해 필요한 기술&lt;/h2&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/4IJbB6R.jpg&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;이 책을 읽기 위한 선수지식은 파이썬의 기본 문법과 행과 열에 대한 개념, 인덱싱 슬라이싱에 대한 이해인데 물론 다른 내용도 이해하고 있다면 더 좋겠지만
이 정도의 내용을 이해하고 있다면 만들어 보면서 필요한 내용들을 배울 수 있는 형태로 구성되어 있다.
그래서 가장 기본이 되는 결정트리 알고리즘부터 앙상블, 배깅에서 부스팅으로 이어지는 과정으로 설명하고 있다.
캐글에서 getting-started 대회 정도를 해봤다면 무리 없이 읽어볼 수 있지 않을까 싶다.&lt;/p&gt;

&lt;h2 id=&quot;옮긴이의-말&quot;&gt;옮긴이의 말&lt;/h2&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/7L4ZjeS.jpg&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;옮긴이의 말이 부스팅 알고리즘을 너무 잘 설명하고 있어서 그간 배워왔던 방법의 오차를 잠시 되돌아 보기도 했는데 이 책의 역자 분은 번역 뿐만 아니라 책의 말미에 역자 부록을 대부분 추가해서 원서 그 이상의 책으로 번역을 해주신다.
이 역자분의 책을 읽을 때마다 배우고 싶은 모습이 많다.&lt;/p&gt;

&lt;h2 id=&quot;데이터-과학-전문가를-위한-xgboost와-사이킷런-활용법&quot;&gt;데이터 과학 전문가를 위한 XGBoost와 사이킷런 활용법&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/rryRI1f.jpg&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;이 책을 읽기 위한 최소한의 기술은 행과 열에 대한 개념, 슬라이싱, 함수작성, 메서드 호출 방법 정도라도 다루고 있는 내용은 실무를 위한 기본과 그 이상이다.
부록에서 다른 부스팅 계열의 알고리즘을 사용하며 스태킹 등의 기술을 소개하는 것도 인상적이다.
캐글이나 실무에서 좋은 스코어를 얻고자 한다면 이 책이 좋은 선택이 될 것이다.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;사례를 통한 사이킷런 API와 원본 파이썬 API 방식으로 XGBoost의 분류 모델과 회귀모델을 만드는 방법을 연습&lt;/li&gt;
  &lt;li&gt;XGBoost 하이퍼파라미터를 활용하여 성능개선, 누락된 값 수정 및 불균형 데이터 세트 적용&lt;/li&gt;
  &lt;li&gt;기본 학습기 튜닝&lt;/li&gt;
  &lt;li&gt;상관관계가 낮은 앙상블과 스태킹 모델 만들기&lt;/li&gt;
  &lt;li&gt;모델 배포를 위해 희소행렬과 사용자 정의 변환기, 파이프라인 기술&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;목차&quot;&gt;목차&lt;/h2&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/AJ16XtM.jpg&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;기본 결정트리를 이해하고 단계별로 앙상블과 배깅, 부스팅에 대한 개념을 이해하며, XGBoost의 수학적 이론, 모델 튜닝과 성능개선, 부록의 다른 부스팅 알고리즘까지 트리계열 알고리즘을 이해할 수 있는 체계적인 구성으로 되어 있다.&lt;/p&gt;

&lt;h2 id=&quot;한국어판-부록-다른-그레디언트-부스팅-라이브러리&quot;&gt;한국어판 부록 다른 그레디언트 부스팅 라이브러리&lt;/h2&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/0JfHWjc.jpg&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;역자분이 번역한 책들의 대부분이 번역도 친절하지만 역자 분만의 한국어판 부록까지 있는데 XGBoost 외에도 다양한 경진대회에서 사용되고 있는 알고리즘을 소개하고 있다는 점이다.
XGBoost와 함께 많이 사용되는 주요 부스팅 알고리즘과 사용법, 부록코드까지 제공하고 있다.&lt;/p&gt;

&lt;h3 id=&quot;lightgbm&quot;&gt;LightGBM&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/AyvN23x.jpg&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;LightGBM 에 대한 소개와 함께 실습 예제도 함께 실려있다. 설명가능한인공지능(XAI)처럼 LightGBM의 리프노드에 대한 트리 시각화 예제가 있어서 인상적이었다.&lt;/p&gt;

&lt;h3 id=&quot;사이킷런의-히스토그램-기반-그레디언트-부스팅&quot;&gt;사이킷런의 히스토그램 기반 그레디언트 부스팅&lt;/h3&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/Ou705Oj.jpg&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;LightGBM에서 영향을 받은 히스토그램 기반 그레디언트 부스팅 구현에 대한 소개가 있고 누락된 값(결측치)를 따로 전처리 하지 않아도 된다는 특징이 있다. 
자체적으로 특성 중요도를 제공하고 있지 않지만 permutation_importance 를 통해 실습 예제를 구성하여 어떤 피처가 중요한 역할을 하는지 시각화 해볼 수 있는 팁도 좋았다.&lt;/p&gt;

&lt;h3 id=&quot;catboost&quot;&gt;CatBoost&lt;/h3&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/18oWyws.jpg&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;범주형 특성을 원-핫 형태로 변경하지 않아도 되는 범주형 데이터 처리가 편리한 Catboost 는 누락된 값을 처리하지 못하는 차이점 등을 설명하고 있으며 XGBoost와 비교하여 깊이별 성장 방식을 사용하지만 대칭적인 구조를 가지는 점, 
깊이가 같은 노드는 모두 동일한 특성을 사용하여 분할하고 이를 통해 속도를 높이고 과대적합을 방지하는 설명이 있다.
또, 자체적으로 그리드서치와 랜덤서치를 제공하며, 부스팅 라운드에 따라 RMSE값을 비교해 볼 수 있는 예제를 제공하고 있다.&lt;/p&gt;

&lt;p&gt;트리계열 알고리즘을 단계별로 이해하고 체계적으로 사용하기 위해 이 만한 책이 또 있을까 싶다.
역자 분의 노고가 깃든 역서를 볼 때마다 배우고 싶은 점이 많다.&lt;/p&gt;

&lt;p&gt;이 리뷰는 한빛미디어의 나는 리뷰어다 이벤트를 통해 책을 제공받아 작성했습니다.&lt;/p&gt;
</description>
                <link>http://corazzon.github.io/sklearn-xgboost-book</link>
                <guid>http://corazzon.github.io/sklearn-xgboost-book</guid>
                <pubDate>2022-05-29T00:00:00+00:00</pubDate>
        </item>

        <item>
                <title>[도서 리뷰] 파이썬을 활용한 금융 분석(2판)</title>
                <description>&lt;ul&gt;
  &lt;li&gt;찐 전문가가 쓰고&lt;/li&gt;
  &lt;li&gt;찐 전문가가 번역한&lt;/li&gt;
  &lt;li&gt;찐 파이썬 금융 분석 책&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/ht45gGv.jpg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;h3 id=&quot;파이썬-기본부터-다질-수-있는-책&quot;&gt;파이썬 기본부터 다질 수 있는 책&lt;/h3&gt;

&lt;p&gt;금융 데이터 분석을 다루면 파이썬 데이터 분석 도구인 판다스를 제대로 배울 수 있다.
지난 해 파이썬 증권 데이터 분석 강의를 만들면서 시중에 나와있는 파이썬 금융 분석 책들을 여러 권 봤는데 그 중에서도 손꼽을 만큼 잘 정리된 책이었다.&lt;/p&gt;

&lt;p&gt;출판된지 시간이 제법 지났음에도 기본적인 내용을 담고 있어서 기초를 쌓는데 도움이 되었다.
또, 파이썬 기초부터 넘파이, 판다스, 맷플롯립과 같은 라이브러리의 기초 사용법부터 다루기 때문에 데이터 분석 입문자도 볼 수 있는 책이다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/W4LYO6T.jpg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;h3 id=&quot;확률-통계는-금융-실무-예제를-통해&quot;&gt;확률, 통계는 금융 실무 예제를 통해&lt;/h3&gt;

&lt;p&gt;그리고 확률, 통계도 직접 금융데이터에 적용해 보면서 배우기 때문에 이론적인 내용뿐만 아니라 현실세계에 어떻게 적용되지는 실전 예제를 통해서 익혀볼 수 있었다.&lt;/p&gt;

&lt;p&gt;분량도 제법 많고 뒷부분으로 갈 수록 난이도가 올라가지만 파이썬 데이터 분석을 학습하며 사전처럼 두고 찾아보기에 적당한 책이다. 두께도 사전처럼 제법 된다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/EkktZ9W.jpg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;h3 id=&quot;찐-전문가가-쓰고-찐-전문가가-번역한-책&quot;&gt;찐 전문가가 쓰고 찐 전문가가 번역한 책&lt;/h3&gt;

&lt;p&gt;데이터 분석을 배우는 사람이라면 한 번쯤은 이 책을 번역한 분의 데이터사이언스스쿨 사이트를 통해 도움을 받았을 것이다. 나 또한 데이터사이언스스쿨 페이지를 통해 도움을 많이 받을 수 있고 실제 현역으로 금융시스템을 개발하고 있는 분이기도 하다. 이 책을 쓴 저자 이브힐피시 또한 이 책 외에도 다양한 금융 서적을 집필하였으며 실제 금융전문가로 일하고 있다.&lt;/p&gt;

&lt;h3 id=&quot;얼마-전까지만-해도-전문-금융-분석가나-했던-일&quot;&gt;얼마 전까지만 해도 전문 금융 분석가나 했던 일&lt;/h3&gt;

&lt;p&gt;얼마 전까지만 해도 전문 금융 분석가나 했던 일을 파이썬의 풍부한 생태계를 통해 지수 데이터를 구해 다양한 벡테스팅까지 구현할 수 있다. 나 또한 금융 전문가가 아니지만 머신러닝 라이브러를 활용해 나만의 포트폴리오를 구성하거나 자동매매에 활용해 본 경험이 있다.&lt;/p&gt;

&lt;p&gt;금융 전문가가 아닌 입장에서 이 책은 파이썬의 데이터 과학 생태계를 통해  파이썬, 금융 분석, 데이터 분석, 알고리즘 트레이딩, 금융공학, 머신러닝, 퀀트 분석, 매매 시스템, 데이터 시각화, 금융 시계열, 백테스팅, 파생상품을 익혀 볼 수 있으며 금융지식도 덤으로 얻을 수 있는 책이다.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/cKiP6ZHzNvY&quot; title=&quot;YouTube video player&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;이 리뷰는 한빛미디어의 나는 리뷰어다 이벤트를 통해 책을 제공받아 작성했습니다.&lt;/p&gt;
</description>
                <link>http://corazzon.github.io/python-fin-eda-ml-book</link>
                <guid>http://corazzon.github.io/python-fin-eda-ml-book</guid>
                <pubDate>2022-04-24T00:00:00+00:00</pubDate>
        </item>

        <item>
                <title>[도서 리뷰] 파이썬 라이브러리를 활용한 머신러닝(번역개정2판)</title>
                <description>&lt;p&gt;파이썬 라이브러리를 활용한 머신러닝(번역개정2판) 사이킷런 핵심 개발자가 쓴 머신러닝과 데이터 과학 실무서&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/GpKeRrl.png&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;p&gt;사이킷런 핵심개발자가 썼다는 것 하나만으로도 이 책을 설명할 수 있다.
1판으로도 사이킷런 공식문서를 보다가 이해되지 않는 부분이 있을 때 이 책을 찾아보면서 놓치고 있던 것들을 찾고 배울 수 있어서 1판이 출판된지 시간이 제법 지났어도 두고두고 봤다.
사이킷런은 버전1.0으로 넘어오면서 API에 여러 변화가 있었고 또 과거의 API로는 동작하지 않는 코드들도 일부 있다.
사이킷런을 사용하면서 점점 문서화나 시각화도 코드 밑바닥부터 구현해야 했던 디시전트리의 plot_tree 와 같은 모델을 설명하는 코드가 사용자 친화적으로 바뀌어 가고 있음을 느낀다.&lt;/p&gt;

&lt;p&gt;개정2판을 통해 역자분의 부록도 늘어났다. 
1판에서도 한국어 자연어처리 예제가 있었는데 한국어 자연어처리 예제와 함께
앙상블 모델에서는 에이다부스트, 엑스트라 트리, 히스토그램 가발 그레디언트 부스팅도 따로 설명하고 있다.
QuantileTransformer 과 PowerTransformer, 반복 교차 검증에 대한 내용도 따로 집필이 되어 있다.&lt;/p&gt;

&lt;p&gt;또, 1판 이후에도 여러 머신러닝, 딥러닝 책을 번역하고 집필하신 역자 분의 책이라 믿고 읽을 수 있는 책이다.
이 분의 역서나 집필서를 보면 이 분의 팬이 되지 않을 수 없다.
이 책의 1판을 통해 정말 많은 걸 배웠는데 업데이트 된 내용까지 읽어 볼 수 있게 되어 감사할 따름이다.&lt;/p&gt;

&lt;p&gt;1판에서와 마찬가지로 사이킷런 핵심개발자인 안드레아스뮐러의 인터뷰도 있는데 이 부분이 가장 재미있었다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/7DAo5iG.png&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;이 책을 쓴 이유&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;복잡한 수학을 동원하지 않고 실용적으로 머신러닝을 구축하는데 중점을 두고 있는 책이며, 수식보다는 scikit-learn API 를 통해 설명하기 때문에 추상화된 API에 대한 몇 가지 사용법만 알고 있다면 알고리즘을 깊숙하게 이해하고 있지 않더라도 머신러닝 모델을 활용한 어플리케이션을 개발 할 수 있도록 해준다.
미적분, 선형대수, 확률, 통계에 대한 수식을 모르더라도 사이킷런이 제공해 주는 API 를 통해 모델을 개발하고 성능을 개선해 볼 수 있기 때문에 수학에 대한 부담감은 내려 놓고 읽을 수 있는 책이고 또 사이킷런 라이브러리가 그렇다.&lt;/p&gt;

&lt;p&gt;어렵고 복잡한 수식보다는 사이킷런 API를 통해 주로 설명하고 또 핵심개발자에 의해 쓰여졌기 때문에 필수 알고리즘 위주로 설명하고 있다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/FG2wBb5.png&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;딥러닝이 큰 붐을 일으키고 있다.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;딥러닝의 발전을 보면 꼭 딥러닝을 해야될 것 같지만 머신러닝으로 풀 수 있는 문제도 많다.
딥러닝은 의미를 찾기 어려운 데이터에서 특징을 추출하는데 뛰어나지만 정형 데이터에서는 여전히 머신러닝이 좋은 성능을 내며 딥러닝이 잘 맞지 않기도 하며 비정형 데이터를 딥러닝으로 훈련하기 위해서는 데이터와 자원이 많이 필요한데 소수의 연구자들만이 모델을 훈련시킬 자원을 갖고 있다는 내용도 공감이 된다.&lt;/p&gt;

&lt;p&gt;최근에는 colab, kaggle notebook 등을 통해서 GPU를 직접 구매하지 않고 사용할 수도 있지만 
비정형 데이터를 다루다보면 여전히 속도가 오래걸려 원하는 결과를 얻기까지 시간이 오래 걸릴 때가 많다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/QgVnJPd.png&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;가장 간단한 것부터 시작하자.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;오픈소스에 기여할 때는 가장 간단한 것부터 시작하라는 조언도 마음에 든다. 무슨 일이든 가장 쉽고 간단한 것을 먼저 해야 성취감을 얻으면서 앞으로 나아갈 수 있다. 1판에서도 사이킷런에 공헌하기 보다는 다른 작은 프로젝트에 먼저 공헌해 	보라는 인터뷰 내용이 있었는데 작은 것부터 시작해서 조금씩 성장해 가는 좋은 자세에 대한 조언도 마음에 든다.&lt;/p&gt;

&lt;p&gt;1판에서도 인터뷰 내용을 재미있게 읽었었는데 2판에서도 인터뷰 내용이 인상적이었다.
사이킷런 버전1.0에서 변경된 부분이 많아서 워닝 메시지가 나올 때마다 비교해 보면서 개선된 점을 찾을 수 있었는데 개정2판을 통해 사이킷런을 좀 더 잘 익혀볼 수 있길 기대해 본다.&lt;/p&gt;

&lt;p&gt;이 책은 가장 자주 보고 많은 걸 배울 수 있던 책이었는데 2판도 앞으로 자주 열어보면서 사이킷런을 사용해 보려고 한다.&lt;/p&gt;

&lt;p&gt;이 리뷰는 한빛미디어의 나는 리뷰어다 이벤트를 통해 책을 제공받아 작성했습니다.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/DyldYDj3v1s&quot; title=&quot;YouTube video player&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;
</description>
                <link>http://corazzon.github.io/scikit-learn-ml-2nd-book</link>
                <guid>http://corazzon.github.io/scikit-learn-ml-2nd-book</guid>
                <pubDate>2022-03-28T00:00:00+00:00</pubDate>
        </item>

        <item>
                <title>[도서 리뷰] 혼자 공부하는 R 데이터 분석</title>
                <description>&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/oQe7rA3.jpg&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;한빛미디어의 “혼공”시리즈인 혼자공부하는 시리즈 중 하나 답게
프로그래밍이나 데이터 분석이 초보를 대상으로 쓰여진 책이다.&lt;/p&gt;

&lt;p&gt;원래 파이썬을 주로 사용하지만 R책도 종종 참고를 하는 편인데
아무래도 주 사용언어가 R이 아니다 보니 R에 좀 더 익숙해지고자 베타리딩에 참여했던 책이다.&lt;/p&gt;

&lt;p&gt;파이썬의 판다스는 R에서 많은 영향을 받았다. 
데이터프레임이라는 용어라든지 데이터의 요약 통계 등의 기능을 보면 R과 닮은 점을 많이 볼 수 있다.&lt;/p&gt;

&lt;p&gt;테이블 형태의 데이터를 자주 다룬다면 엑셀로는 속도, 용량, 자유도면에서 아쉬움을 느낄 수가 있는데
이때 R이나 파이썬과 같은 언어를 사용하면 날개를 달 수 있다.&lt;/p&gt;

&lt;p&gt;처음시작하는 입장에서 R이냐 파이썬이냐로 갑론을박이 이루어지기도 하는데 
파이썬은 주로 사용하는 사람이지만 어떤 언어든 상관 없다고 생각한다.&lt;/p&gt;

&lt;p&gt;R의 tidy data 라든지 grammar of graphics 는 어떤 언어를 사용하든 
이런 철학은 데이터 분석과 시각화를 이해하기에 좋다.&lt;/p&gt;

&lt;p&gt;그래서 내가 파이썬을 주로 다루고 있음에도 기회가 있으면 R과 관련된 이론이나 예제를 접해보려고 한다.
이 책의 베타리딩도 그러한 의미로 읽어보게 되었다.&lt;/p&gt;

&lt;p&gt;R에 대한 기본적인 사용법과 함께 현실 데이터에 어떻게 이런 개념들을 적용하면 좋을지 예제를 통해 설명하고 있다.&lt;/p&gt;

&lt;p&gt;이 책에 기대하면 좋은 내용은!&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;통계가 처음인데 그 동안 배웠던 통계는 너무 복잡하고 어려웠다.&lt;/li&gt;
  &lt;li&gt;예시데이터를 통해 통계를 쉽게 이해하고 R도 덤으로 익히고 싶다.&lt;/li&gt;
  &lt;li&gt;데이터 시각화를 통해 데이터를 통해 인사이트를 얻고 싶다.&lt;/li&gt;
  &lt;li&gt;실제 데이터를 통해 프로젝트처럼 데이터를 분석해 보고 싶다.&lt;/li&gt;
  &lt;li&gt;R의 명령어나 사용법을 좀 더 쉽고 친절한 언어로 익혀보고 싶다.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;시중에 나와있는 데이터분석책은 많고도 많다. 
데이터분석이 처음이고 통계, 시각화도 처음일 때 쉽게 풀어쓴 책으로 익혀보고자 할 때 좋은 책이다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/xuF5OGY.jpg&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;내용의 정리나 혼공노트처럼 곁에두고 참고해 볼 수 있는 요약노트를 제공해 주고 있어서 R의 입문자 혹은 데이터분석 입문자에게도 좋고 나처럼 파이썬을 주로 사용하지만 R도 배우고 싶은 사람에게도 친절한 안내를 해주는 책이다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/DTFZ6C6.jpg&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;이 리뷰는 한빛미디어에서 베타리딩을 통해 도서를 제공받아 작성했습니다.&lt;/p&gt;

</description>
                <link>http://corazzon.github.io/hb-r-data-book</link>
                <guid>http://corazzon.github.io/hb-r-data-book</guid>
                <pubDate>2022-02-18T00:00:00+00:00</pubDate>
        </item>

        <item>
                <title>[도서 리뷰] 파이토치로 배우는 자연어 처리</title>
                <description>&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/y6wGz5r.jpg&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;교보문고 2021 올해의 책 IT 전문서로 &amp;lt;혼자 공부하는 머신러닝+딥러닝&amp;gt;과 &lt;파이토치로 배우는=&quot;&quot; 자연어=&quot;&quot; 처리=&quot;&quot;&gt;가 각각 AI/ML 분야와 자연어 처리 분야에서 1등을 했다고 한다!
올해 이 두 권의 책을 모두 읽어볼 수 있어 행운이었다.&lt;/파이토치로&gt;&lt;/p&gt;

&lt;p&gt;두 책 모두 한빛미디어의 “나는 리뷰어다”를 통해 읽어보게 되었는데, &amp;lt;혼자 공부하는 머신러닝+딥러닝&amp;gt;은 머신러닝 입문자 분들에게 가장 처음으로 추천하는 책이다. 이 책과 부록의 그림을 보면서 저자분의 세심함을 다시 엿볼 수 있었다. 
그리고 연말에 자연어처리 프로젝트를 진행했는데 &lt;파이토치로 배우는=&quot;&quot; 자연어=&quot;&quot; 처리=&quot;&quot;&gt; 를 읽으며 그동안 알고 있었던 내용을 아주 깔끔하게 정리할 수 있었다.&lt;/파이토치로&gt;&lt;/p&gt;

&lt;p&gt;하고 있는 프로젝트는 텐서플로로 진행했지만 요즘 파이토치를 주변에서 많이 쓰고 있기 때문에 내년에는 본격적으로 파이토치를 해봐야겠다는 시점에서 아주 적절하게 내게 온 책이 아닐까 싶다.&lt;/p&gt;

&lt;p&gt;💻 자연어처리든, 머신러닝, 딥러닝이 처음일지라도 텍스트를 기계가 이해할 수 있는 형태로 만들고 좋은 성능을 낼 수 있는 다양한 팁들이 가득하다. 텐서플로를 주로 사용하고 있었지만 자연어처리에 필요한 핵심 용어들이 쉽게 정리 되어 있어서 읽으면서 알고 있던 내용을 정리해 볼 수 있는 책이었다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/ReOXOlb.jpg&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;📝 원핫벡터부터 n-gram, 표제어와 어간, 단어주머니, TF-IDF, 시퀀스 표현에 대한 개념까지 역자 분의 다른 책들과 마찬가지로 자연어 처리에 대한 기초 텍스트 처리에 대한 내용이 친절하게 정리가 되어 있었다.&lt;/p&gt;

&lt;p&gt;⚡️ 딥러닝이 처음이라도 기초개념부터 설명하기 때문에 이 책을 통해 입문해 볼 수 있다.
퍼셉트론, 활성화 함수, 손실함수, 평가지표, 데이터분할, 하이퍼파라미터, 규제와 같은 기본 개념을 설명하고 있다.&lt;/p&gt;

&lt;p&gt;🔥 파이토치 초보자에게도 너무 좋았다. 파이토치를 정말 본격적으로 써봐야겠다는 생각이 들게 한 책이었다. 
MLP, CNN 을 통해 성씨를 분류하는 예제를 통해 배울 수 있으며, 사전 훈련된 임베딩을 사용하는 방법과 CBOW를 통해 임베딩을 하는 방법, 전이학습까지 코드를 돌려보며 이해해 볼 수 있다.&lt;/p&gt;

&lt;p&gt;또 시퀀스 모델링을 통해 새로운 성씨를 생성해 볼 수 있으며, 어텐션, 기계번역 그리고 pororo를 통한 한글 자연어처리까지 소개하고 있다. 원서에는 없는 최신 한글 모델을 배워볼 수 있는 점도 좋았다.&lt;/p&gt;

&lt;p&gt;두께도 두껍지 않아서 부담없이 읽을 수 있는 300페이지 내외의 분량이었다. 내년에는 텐서플로보다 파이토치를 더 많이 사용해 보는게 목표인데 이 책을 통해 도움을 많이 받았다. 역자 분의 책 모두 올 한 해 정말 많은 도움을 받아서 감사한 마음을 전하고 싶다.&lt;/p&gt;

&lt;p&gt;이 리뷰는 한빛미디어의 나는 리뷰어다 이벤트를 통해 책을 제공받아 작성했습니다.&lt;/p&gt;
</description>
                <link>http://corazzon.github.io/nlp-with-pytorch</link>
                <guid>http://corazzon.github.io/nlp-with-pytorch</guid>
                <pubDate>2021-12-26T00:00:00+00:00</pubDate>
        </item>

        <item>
                <title>[도서 리뷰] 구글 BERT의 정석</title>
                <description>&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/Smeu0GO.jpg&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;요즘 자연어처리에서 압도적인 인기를 끌고 있는 BERT 만을 다룬 책이 나왔다고 해서 관심이 갔는데 한빛미디어의 “나는 리뷰어다”를 통해 운 좋게 읽어보게 되었다.&lt;/p&gt;

&lt;p&gt;자연어처리 관련된 경진대회를 보면 BERT를 사용한 모델이 종종 등장하는데 이 책은 트랜스포머 모델을 설명하며 BERT의 작동 원리 부터 BERT 모델이 사전학습 되는 방법과 BERT를 파인튜닝해 다운스트림 태스크에 활용하는 방법 등을 다루고 있다.&lt;/p&gt;

&lt;p&gt;딥러닝, 텍스트 임베딩 등에 대한 사전 지식이 있는 상태에서 봐야하는 책이며, 초보적인 내용은 설명하고 있지 않기 때문에 자연어처리에 대한 기본 지식을 습득한 상태에서 읽어보는 것을 추천한다.&lt;/p&gt;

&lt;p&gt;하지만 어느 책이든 요즘은 깃헙 소스코드를 친절하게 제공하고 있기 때문에 소스코드를 통해 이 책이 어떤 책인지 먼저 감을 잡을 수 있을것이다.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/PacktPublishing/Getting-Started-with-Google-BERT&quot;&gt;PacktPublishing/Getting-Started-with-Google-BERT: Getting Started with Google BERT, published by Packt&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;BERT만을 다룬 책도 없었고 BERT를 이렇게까지 자세하게 다룬 책도 없는데 KoBERT, KoGPT2, KoBART 모델을 개발한 역자분이 번역한 책이라 더 신뢰가 가는 책이다. 그래서 원서에는 없는 KoBERT, KoGPT2, KoBART 모델까지 다루고 있다는게 이 책의 큰 장점이기도 하다.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;BERT는 다른 임베딩 모델과 어떻게 다른가?&lt;/li&gt;
  &lt;li&gt;BERT-base 모델과 BERT-large 모델의 차이점은 무엇인가?&lt;/li&gt;
  &lt;li&gt;세그먼트 임베딩은 무엇인가?&lt;/li&gt;
  &lt;li&gt;BERT는 어떻게 사전 학습되는가?&lt;/li&gt;
  &lt;li&gt;MLM 태스크는 어떻게 동작하는가?&lt;/li&gt;
  &lt;li&gt;NSP 태스크는 어떻게 동작하는가?&lt;/li&gt;
  &lt;li&gt;마스크 언어 모델과 다음 문장 예측 태스크를 활용한 사전 학습&lt;/li&gt;
  &lt;li&gt;BERT를 활용해 상황에 맞는 단어 및 문장 임베딩 생성&lt;/li&gt;
  &lt;li&gt;다운스트림 태스크를 위한 BERT 파인 튜닝&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;BERT를 다루며 알아야할 기본적인 내용부터 다양한 모델을 다루고 있다.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;ALBERT, RoBERTa, ELECTRA, SpanBERT 모델&lt;/li&gt;
  &lt;li&gt;지식 증류 기반 BERT 모델&lt;/li&gt;
  &lt;li&gt;XLM 및 XLM-R 언어 모델&lt;/li&gt;
  &lt;li&gt;sentence-BERT. VideoBERT, BART 모델&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;그리고 마지막으로 KoBERT, KoGPT2, KoBART 모델을 다룬다.&lt;/p&gt;

&lt;p&gt;koBART에 대한 문서 요약과 관련된 소스코드와 예시를 아래 깃헙 링크에서 볼 수 있는데 사람보다도 문서요약을 더 잘 한다는 느낌이 들 정도로 엄청난 성능을 보여준다.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/SKT-AI/KoBART&quot;&gt;SKT-AI/KoBART: Korean BART&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;이 책은 자연어처리에 대한 기초가 없다면 읽기에 어려움이 있을지도 모른다.
하지만 이런 내용의 책을 이렇게 잘 번역된 한국어 예제로 만날 수 있어서 많은 도움이 되었다.&lt;/p&gt;

</description>
                <link>http://corazzon.github.io/google-bert-ai</link>
                <guid>http://corazzon.github.io/google-bert-ai</guid>
                <pubDate>2021-11-21T00:00:00+00:00</pubDate>
        </item>

        <item>
                <title>[도서 리뷰] 미국 주식으로 시작하는 슬기로운 퀀트투자</title>
                <description>&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/Z6YU5yV.jpg&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;이 책을 처음 봤을 때 저자명을 보고 예전에 봤던 “금융공학 레시피”책이 떠올랐다.
“금융공학 레시피”는 금융에 대한 전문적인 지식 뿐만 아니라 파이썬을 활용하여 금융공학을 꼼꼼하게 구현하고 있어서 무척이나 인상깊게 봤던 책이다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/DL4U2Qn.png&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;그래서 “미국 주식으로 시작하는 슬기로운 퀀트투자”가 나왔을 때 꼭 읽어보고 싶다는 생각이 들었는데, 한빛미디어의 “나는 리뷰어다”를 통해 읽어볼 수 있게 되었다.&lt;/p&gt;

&lt;p&gt;“금융공학 레시피”책은 파이썬의 다양한 라이브러를 통해 직접 데이터를 수집하고 구현한다면
“미국 주식으로 시작하는 슬기로운 퀀트투자”는 저자가 직접 만든 오픈소스인 핀터스텔라를 활용하여 파이썬 초보자도 쉽게 데이터를 불러오고 시각화를 할 수 있도록 구성되어 있다.&lt;/p&gt;

&lt;p&gt;미국주식이든 한국주식이든 시계열 데이터를 가져와서 전처리하고 여러 금융기법을 적용하는 것은 비슷하기 때문에 두 책 모두 많은 도움을 받을 수 있었다.&lt;/p&gt;

&lt;p&gt;기존 HTS나 MTS를 통해 주가정보를 보는 것에서 벗어나 다양한 주가 데이터를 수집하고 나만의 투자전략을 만들어 분석하고자 하는 사람들이 보면 좋겠다는 생각이 드는 책이다.&lt;/p&gt;

&lt;p&gt;저자의 책 두 권 모두 편집과 코드가 모두 충실하게 쓰여져 있어서 그간 봤던 파이썬 금융 도서 중에 손꼽을 정도로 내용과 구성이 알차다.&lt;/p&gt;

&lt;p&gt;이 책에서 다루는 내용은 주로 다음의 내용이다.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;퀀트머신을 사용하는 방법&lt;/li&gt;
  &lt;li&gt;단기투자 기술&lt;/li&gt;
  &lt;li&gt;재무제표 읽는법/가치주와 우량주를 찾는 기술&lt;/li&gt;
  &lt;li&gt;다양한 전략 백테스트를 통한 투자 성과분석&lt;/li&gt;
  &lt;li&gt;전략 합성을 통한 나만의 투자 전략 만들기&lt;/li&gt;
  &lt;li&gt;파이썬 기본문법과 저자가 직접 만든 파이썬 라이브러리 핀터스텔라 가이드&lt;/li&gt;
  &lt;li&gt;WeBull 어플리케이션 가이드&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;소스코드를 깃헙에서 다운로드 받아 보고 책 내용을 읽는 편인데 핀터스텔라를 사용하기 때문에 복잡한 파이썬 문법이나 수식의 내부를 몰라도 코드를 실행해 볼 수 있다는 게 장점이고 이 정도를 기본으로 알았다면 저자의 이전 출판책인 “금융공학 레시피”를 통해 좀 더 커스텀하게 나만의 코드를 만들어 볼 수 있을 것이다.&lt;/p&gt;

&lt;p&gt;물론 핀터스텔라에 있는 기능들을 조합해서도 충분히 커스텀하게 만들어 볼 수도 있다.
미국 주식을 주제로 쓰여졌지만 한국주식에도 똑같이 적용해 볼 수 있으며,
수집이 가능한 주가 데이터라면 ETF 등에도 같은 방법을 적용해 볼 수 있다.&lt;/p&gt;

&lt;p&gt;저자 분이 쓴 두 책 모두 금융 데이터를 분석하고 이해하는데 도움이 많이 되었다.
앞으로 꾸준하게 투자를 설계하고 파이썬을 사용해서 다양한 분석을 하고자 하는데 인사이트를 얻을 수 있는 책이었다.&lt;/p&gt;

&lt;p&gt;이 리뷰는 한빛미디어의 나는 리뷰어다 이벤트를 통해 책을 제공받아 작성했습니다.&lt;/p&gt;
</description>
                <link>http://corazzon.github.io/finterstellar</link>
                <guid>http://corazzon.github.io/finterstellar</guid>
                <pubDate>2021-10-24T00:00:00+00:00</pubDate>
        </item>

        <item>
                <title>[도서 리뷰] 데이터 과학자의 일</title>
                <description>&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/HybBOr1.jpg&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;페이스북의 “오하이오의 낚시꾼”( https://www.facebook.com/buckeyestatfisher/ )은 데이터 분석에 관심있는 사람들이 많이 구독하는 페이지 중에 하나다.
“오하이오의 낚시꾼”에 올라오는 게시물을 볼 때면 페이지 운영자의 내공이 엄청나게 느껴지는데 이 페이지를 운영하는 분이 책을 엮었다 해서 서평단 이벤트를 신청했는데 이벤트 운이 없는 내가 당첨되고야 말았다!
게다가 평소 알고 지내던 페친 분 중 한 분도 이 책의 저자로 참여해서 구매해서라도 보려던 책이었다.&lt;/p&gt;

&lt;p&gt;책이 배송되고 순식간에 읽어버릴 정도로 페이스북 페이지 만큼이나 내공이 엄청난 얘기들로 가득하다.
또 원티드랩에 인수된 크레딧잡이라는 서비스의 창업자 분의 이야기도 있었다.
크레딧잡이라는 서비스는 국민연금 데이터로 특정 회사의 연봉과 입사자와 퇴사자의 수를 알려주는 서비스인데 너무 정확해서 특정 기업의 경우 크레딧잡의 데이터 공개를 막아 놓은 곳도 있을 정도다.
이렇게 데이터를 통해 일하는 11분의 생생한 이야기를 볼 수 있다.&lt;/p&gt;

&lt;p&gt;목차는 아래와 같은 구성으로 11명의 공저자가 하나의 챕터를 맡고 있다.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;1장 통계학, 가장 오래된 데이터 과학
2장 인공지능, 머신러닝, 딥러닝의 차이는 무엇일까?
3장 핀테크와 테크핀이 경쟁하는 시대의 금융
4장 게임, 가장 풍부한 데이터가 뛰노는 세상
5장 야구에서 출루율이 중요해진 데이터 과학적 이유
6장 데이터 과학으로 서비스를 보호하는 방법
7장 병원, 의학 정보를 다루는 데이터 센터가 되다
8장 사람을 더 똑똑하게 만드는 인공지능 교육
9장 예비 데이터 과학자를 위한 취업 분투기
10장 머신러닝 서비스에 엔지니어가 필요한 이유
11장 공백 속에 숨은 놀라운 이야기, 결측데이터
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;목차만 봐도 기본적인 통계학과 인공지능, 머신러닝, 딥러닝의 개념부터&lt;/p&gt;

&lt;p&gt;핀테크, 게임, 스포츠, 보안, 의학, 교육, 취업, 머신러닝 엔지니어, 결측데이터까지 데이터 교육만 들어서는 알기 어려운 실무와 관련된 이야기들이 잘 녹아 있다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/B3zrTkC.jpg&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;나 또한 게임회사에서 오래 근무했던 경험이 있기 때문에 게임 회사에서 유저의 이탈이나 이상치, 서비스 개선을 위한 내용 등이 인상적이었다.&lt;/p&gt;

&lt;p&gt;교육 분야에 있어서도 머신러닝과 딥러닝을 통해 1:1 맞춤형 교육을 만들어 나가는 부분도 인상적이고 특히 산타토익이라는 서비스는 평소 관심갖고 있던 서비스라 책장이 쉽게 넘어갔다. 데이터를 통해 서비스를 개선하고 유저에게 더 나은 가치를 주기 위해 데이터가 활용되는 예시가 궁금한 사람들에게 매우매우 추천하고 싶은 내용들이다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/1j8S1nI.jpg&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;예비 데이터 과학자의 취업 분투기도 막상 회사에 가면 데이터 추출하는 일이나 전처리 등으로 많은 시간을 보내게 되고 또 막상 현장에 가게 되면 팀이나 도메인에 따라 하는 일이 조금씩 달라지는 부분에 대한 이야기도 인상적이었다.&lt;/p&gt;

&lt;p&gt;데이터 과학자, 분석가, 머신러닝/딥러닝 엔지니어를 희망하는 사람들에게 꼭 추천하고 선물하고 싶은 책이다.
곁에 두고 전문가의 생생한 목소리를 들어볼 수 있을 것이다 :)&lt;/p&gt;

&lt;p&gt;“이 리뷰는 출판사로부터 도서를 제공받아 작성하였습니다.”&lt;/p&gt;
</description>
                <link>http://corazzon.github.io/data-scientist-humanist</link>
                <guid>http://corazzon.github.io/data-scientist-humanist</guid>
                <pubDate>2021-10-17T00:00:00+00:00</pubDate>
        </item>

        <item>
                <title>[도서 리뷰] fastai와 파이토치가 만나 꽃피운 딥러닝</title>
                <description>&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/DvTzUfP.jpg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;p&gt;어떤 머신러닝 전문가가 기본적인 수학, 프로그래밍에 대한 내용이 어렵다면 머신러닝과 딥러닝을 하겠다고 하면 안 된다는 얘기를 해서 적잖아 놀랐던 적이 있다.&lt;/p&gt;

&lt;p&gt;딥러닝을 익히고 다양한 분야에 적용하면서 사용하는 라이브러리는 점점 더 추상화 되어 기본적인 철학을 이해하고 있다면 수백, 수천줄로 구성된 딥러닝 알고리즘을 추상화된 코드 몇줄로 좋은 성능을 내는 모델을 만들 수가 있게 되었다.&lt;/p&gt;

&lt;p&gt;코딩 경험이 없어도 고등 수학을 이해하고 있지 못하더라도 딥러닝을 시작할 수 있게 용기를 준다.
그리고 딥러닝의 핵심적인 내용을 대부분 다루면서도 Fast.ai 라는 추상화된 도구를 통해 직접 모델을 구현할 수 있게 해준다.&lt;/p&gt;

&lt;p&gt;대부분의 딥러닝 책은 딥러닝을 구성하는 신경망의 기초부터 시작하는데 이 책은 탑다운방식으로 구성되어 있다.
딥러닝의 개요와 윤리를 가장 먼저 설명하고 바로 CNN으로 넘어간다.
데이터 윤리를 초반에 강조해서 설명하는 것도 인상적이다.&lt;/p&gt;

&lt;p&gt;이 책은 초반에 다음의 원칙을 제시한다.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;게임 전체를 가르친다.&lt;/li&gt;
  &lt;li&gt;항상 예시를 사용한다.&lt;/li&gt;
  &lt;li&gt;최대한 쉽게 설명한다.&lt;/li&gt;
  &lt;li&gt;경계를 허문다.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;기술을 배울 때 지금 배우는 내용이 전체의 어느 부분인지 어떻게 응용될 수 있는지 자세하고 친절하게 설명하고 있다.
그래서 꼭 파이토치, Fast.ai 사용자가 아니더라도 데이터 윤리를 이해하고 적정기술로 활용하고자 하는데 도움이 된다.
이 책을 통해 기술을 다루고 그 기술을 다른 사람에게 알려주는 태도에 대해 배울 수 있었다.
게다가 fast.ai는 다양한 커뮤니티를 포용하고 있다.&lt;/p&gt;

&lt;p&gt;국내에서도 fast.ai 커뮤니티를 이끌고 있는 역자 두 분이 번역해 준 책이라 더 신뢰가 가는 책이다.&lt;/p&gt;

&lt;p&gt;모든 실습 코드를 colab 으로 바로 연결할 수 있는 링크를 제공하고 있어서 전체적인 소스코드를 실행해 볼 수 있다.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://course.fast.ai/start_colab&quot;&gt;Using Colab - Practical Deep Learning for Coders&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;이 리뷰는 한빛미디어의 나는 리뷰어다 이벤트를 통해 책을 제공받아 작성했습니다.&lt;/p&gt;
</description>
                <link>http://corazzon.github.io/fast-ai-book</link>
                <guid>http://corazzon.github.io/fast-ai-book</guid>
                <pubDate>2021-09-22T00:00:00+00:00</pubDate>
        </item>

        <item>
                <title>[도서 리뷰] 텐서플로 2.x와 케라스로 구축하는 생성적 적대 신경망 GAN 인 액션</title>
                <description>&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/yJ7yBpY.jpg&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;얼마 전에 작년의 엔비디아 발표에서 젠슨황의 키노트 발표가 인공지능에 의해 만들어진 영상이라는 뉴스가 화제가 되었었다.
지난 해 키노트를 보면서 만들어진 영상이라는 의심은 전혀 할 수 없을 정도로 젠슨황의 키노트는 거의 완벽에 가까웠다.
닮은 꼴 연예인을 찾는다든지 신생아의 초음파 사진으로 출생했을 때의 이미지를 유추해 낸다든지 인공지능을 통한 이미지 구현을 볼 때마다 GAN을 제대로 익혀보고 싶다는 생각이 들었는데 한빛미디어의 “나는 리뷰어다”를 통해 이 책을 읽어보게 되었다.&lt;/p&gt;

&lt;p&gt;일단 GAN 이 무엇인지 알아보자.
위키백과에 의하면 GAN은 다음과 같이 정의하고 있다.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;생성적 적대 신경망(生成的敵對神經網, 영어: Generative Adversarial Network; GAN)은 비지도 학습에 사용되는 인공지능 알고리즘으로, 제로섬 게임 틀 안에서 서로 경쟁하는 두 개의 신경 네트워크 시스템에 의해 구현된다. 이 개념은 2014년에 이안 굿펠로우(Ian. j. Goodfellow)에 의해 발표되었다.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2 id=&quot;선수-지식&quot;&gt;선수 지식&lt;/h2&gt;

&lt;p&gt;기본적인 모델의 학습과 예측 과정을 이해하고 있어야 한다.
책 초반부에도 나와 있지만 파이썬, 머신러닝, 딥러닝에 대한 기초 지식을 필요로 한다.
이에 대한 기초 지식이 없다면 파이썬으로 기본적인 인공신경망 모델을 학습하고 읽는 것을 추천한다.
머신러닝 모델에서 훈련/예측 데이터셋을 나누고 모델을 생성하여 학습, 평가, 과소/과대적합, 하이퍼파라미터 튜닝 등을 이해할 수 있어야 책에 등장하는 딥러닝 용어에 당황하지 않을 수 있다.
기본적인 머신러닝과 딥러닝, 텐서플로에 대한 지식 없이 접근 하면 읽기 어려운 책이다.&lt;/p&gt;

&lt;h2 id=&quot;텐서플로와-케라스&quot;&gt;텐서플로와 케라스&lt;/h2&gt;

&lt;p&gt;텐서플로2에서 케라스 API를 사용하는 방법으로 구현이 되어 있다. 그래서 텐서플로의 시퀀셜 레이어로 모델을 만드는 방법을 이해하고 있는 상태에서 다양한 GAN 모델을 응용해 보고자 하는 독자에게 적합한 책이다.&lt;/p&gt;

&lt;h2 id=&quot;gan-기본-이해&quot;&gt;GAN 기본 이해&lt;/h2&gt;
&lt;ul&gt;
  &lt;li&gt;MNIST를 통한 기본적인 손글씨 생성&lt;/li&gt;
  &lt;li&gt;GAN과 오토인코더를 통한 데이터 생성&lt;/li&gt;
  &lt;li&gt;합성곱 신경망(CNN)과 DCGAN&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;최신-gan-모델&quot;&gt;최신 GAN 모델&lt;/h2&gt;
&lt;ul&gt;
  &lt;li&gt;GAN훈련의 어려움과 노하우를 알아보고&lt;/li&gt;
  &lt;li&gt;ProGAN, SGAN, CGAN, CycleGAN 을 소개하고 있다.&lt;/li&gt;
  &lt;li&gt;그리고 윤리를 비롯한 향후 전망까지 제시한다.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;AI 윤리를 다뤄준 것도 인상적이었다. 실제 사진과 같은 합성 이미지를 만드는 GAN이 악용 될 수도 있기 때문에 구글 AI원칙 등을 소개 하고 있다.&lt;/p&gt;

&lt;p&gt;얼마 전의 엔비디아 젠슨황 키노트 사례에서와 같이 실존하는 인물을 정말 실제처럼 만들 수 있기 때문에 기술을 다룰 때 꼭 고려해야할 문제가 아닐까 싶다.&lt;/p&gt;

&lt;p&gt;300쪽이 조금 안 되는 분량과 적당한 두께로 GAN의 핵심을 익혀볼 수 있는 책이었다.
그리고 역자분이 코드마다 주석을 워낙 꼼꼼하게 달아주셔서 소스코드도 편하게 읽을 수 있었다.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;깃허브 저장소 : https://bit.ly/gan-git&lt;/li&gt;
  &lt;li&gt;정오표 블로그 : https://bit.ly/gan-in-action&lt;/li&gt;
&lt;/ul&gt;

</description>
                <link>http://corazzon.github.io/gan-in-action</link>
                <guid>http://corazzon.github.io/gan-in-action</guid>
                <pubDate>2021-08-21T00:00:00+00:00</pubDate>
        </item>

        <item>
                <title>[도서 리뷰] 머신러닝을 활용한 웹 최적화</title>
                <description>&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/CkUSJ2k.jpg&quot; height=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;머신러닝을 활용한 웹 최적화&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/vmV6Pmj.jpg&quot; height=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;머신러닝이나 통계 이론만을 익히다 보면 실제 내 서비스에 어떻게 적용해야 할지 난감해진다.
책도 읽고 여러 모델도 돌려봤지만 실제 서비스에 적용해 보는 건 또 다른 얘기가 된다.
그리고 타이타닉 예제를 돌려보더라도 다른 분류 예제에 적용해 볼 수 있다는 건 알지만 실제 내 예제에 적용하기까지의 과정이 쉽지 않다.
이 책을 선택해서 읽게 된 계기도 구체적인 상황에 머신러닝이나 통계적인 이론을 적용하기 때문이다.
그래서 머신러닝이나 통계적 이론이 없으면 책 내용이 어렵게 느껴질 수도 있다.&lt;/p&gt;

&lt;p&gt;머신러닝과 통계적인 기본적인 내용을 학습한 사람이 웹 혹은 모바일 서비스 등을 개발하며 응응 사례를 참고해 보기에 적당한 책이다. 
이 책은 머신러닝이나 통계의 전반적인 내용에 대한 학습보다는 웹 최적화라는 주제를 통해 실제 서비스 개선을 위해 해볼 수 있는 여러 사례를 알려준다.&lt;/p&gt;

&lt;p&gt;Learning By Doing 방식으로 쓰여진 책을 좋아하는데 이 책이 그런 책 중 하나다.
얼마전에 리뷰했던 비즈니스 머신러닝도 비슷한 종류의 책이라 볼 수 있을거 같다.&lt;/p&gt;

&lt;p&gt;책 제목만 봤을 때는 웹 최적화라고 되어 있어서 웹 트래픽을 최적화 한다는 걸까라는 생각이 들었다.
그런데 막상 목차를 보고나니 웹 개발자 혹은 마케터, 기획자가 함께 보면 좋은 내용일거라는 생각이 든다.
물론 난이도가 있기 때문에 소스코드를 이해하고 적용해 보는 건 다른 얘기지만 다양한 통계적 기법을 통해 서비스를 개선해 볼 수 있다는 방법을 알아볼 수 있다는 점이 장점이다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/MFXjqi1.jpg&quot; height=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/r0MklNg.jpg&quot; height=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/wNhmM35.jpg&quot; height=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;통계적 검정이나 머신러닝을 적용한다면 무언가 개선을 하고 또 다른 실험 계획을 세우고 개선하는 과정의 반복이 될것 같다. 서비스 개선을 위해 머신러닝을 적용할 수 있는 예제를 통해 개발자는 구체적인 적용 사례를 알아볼 수 있고 마케터나 기획자는 어떤 시도를 해볼 수 있을지에 대한 아이디어를 얻을 수 있는 책일 것 같다.&lt;/p&gt;

&lt;p&gt;머신러닝이나 딥러닝을 서비스 개선에 활용하는 사례에 관심이 많은데 이 책은 A/B Testing, 슬롯머신, 베이즈 최적화 등을 활용하여 어려운 통계적 개념을 서비스에 적용하는 사례를 알려준다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/lAy8pLh.jpg&quot; height=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;행렬 연산의 기초가 책의 가장 뒷 부분에 나오는데 이런 배치 구성도 좋다고 생각한다.
아마 처음부터 행렬 연산의 기초, 파이썬 기초가 나왔더라면 지루했을 것이고 또 이 책을 구매해서 보는 사람은 어느정도 파이썬이나 머신러닝, 통계에 대한 기초 지식이 있는 사람들이지 않을까 싶은 생각이 든다.&lt;/p&gt;

&lt;p&gt;그래서 파이썬으로 머신러닝 예제 코드를 돌려봤고 통계적인 지식도 어느정도 있는데 웹 서비스를 통해 사용자 행동 개선에 관심있는 사람들이 보면 적합한 책이지 않을까 싶다.&lt;/p&gt;

&lt;p&gt;이 리뷰는 한빛미디어의 나는 리뷰어다 이벤트를 통해 책을 제공받아 작성했습니다.&lt;/p&gt;

</description>
                <link>http://corazzon.github.io/ml-with-web-optimization</link>
                <guid>http://corazzon.github.io/ml-with-web-optimization</guid>
                <pubDate>2021-07-18T00:00:00+00:00</pubDate>
        </item>

        <item>
                <title>[도서 리뷰] 일잘러의 비밀, 구글 스프레드시트 제대로 파헤치기</title>
                <description>&lt;p&gt;MS오피스 도구를 사용하지 않기 때문에 주로 구글 드라이브를 사용하는데 오피스 도구들에 비해 문서나 잘 정리된 책이 없는게 아쉬었는데 구글 스프레드시트 책이 나왔다는 것만으로도 이 책에 관심이 갔다.&lt;/p&gt;

&lt;p&gt;그런데 저자분의 성함을 보니 예전 파이콘에서 뵈었던 분 같아서 저자분 소개를 읽어보니 파이콘에서 발표했던 그 분이 맞았다.
파이콘에서도 개발 직군이 아님에도 파이썬을 활용해서 사내 냉장고를 관리하고 있는 사례를 발표해주신 점이 인상적이었다.
그런데 그 분이 쓰신 책이라니 이 책에 더 관심이 갔다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/UbyAKkL.jpg&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;일단 개인 PC에 오피스가 설치되어있지 않기 때문에 대부분의 문서작업은 구글 드라이브를 통해 하게되는데 공유와 협업이 편하기 때문에 구글 드라이브 초기부터 오피스를 대신하여 구글 드라이브를 계속 사용해 왔다.
요즘은 MS오피스도 공유와 협업 등의 기능이 잘 되어 있다고는 하지만 누구나 구글 G메일 계정만 있으면 사용할 수 있는 도구이기 때문에 구글 드라이브를 사용하는 걸 선호한다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/hDTAEP8.jpg&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;그간 구글 스프레드시트를 사용하면서 문서를 찾아보며 그때그때 필요한 내용들을 익혀왔는데
잘 정리된 책으로 전체 내용을 볼 수 있어서 너무 좋았던 책이다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/9W5sKJC.jpg&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;게다가 올 컬러와 자세한 이미지가 친절하게 잘 배열되어 있어서 직관적으로 이해할 수 있었다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/K8WHyfl.jpg&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;연산, 문자열, 함수 등의 기본적인 내용도 꼼꼼하게 정리가 잘 되어 있다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/Af8YIwu.jpg&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/Qfnlmo4.jpg&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;이 책을 통해 가장 궁금했던 부분이 QUERY 사용 부분이었는데 QUERY를 사용하다보면 사용하는 기능위주로 사용하게 되어 정리된 내용을 보고 싶었는데 이 책을 통해 QUERY 부분을 좀 더 자세히 이해할 수 있게 되었다.
여러 시트나 다른 문서의 시트를 불러와서 정산 작업을 한다든지 보고서를 작성한다든지 QUERY 기능을 사용할 일이 종종 있는데 이 책을 통해 이런 부분을 정리할 수 있어 좋았다.&lt;/p&gt;

&lt;p&gt;사실 평소 복잡한 작업을 해야할 때는 파이썬 판다스를 스프레드시트 보다 자주 사용하기는 하지만 실시간으로 업데이트 되는 폼의 정보를 받아 처리한다든지 간단한 대시보드 등을 구현할 때는 스프레드시트의 도움을 많이 받는 편이다.&lt;/p&gt;

&lt;p&gt;어떻게 보면 용량이 작은 데이터베이스 대신 구글 스프레드시트를 사용하고 있는 셈인데 앱스 스크립트 등에 대한 사용 방법 등이 좋았다.&lt;/p&gt;

&lt;p&gt;구글 폼으로 받았던 정보를 통해 대량의 메일발송을 앱스 스크립트를 통해 했던 적도 있었는데 이 모든 내용들이 다 클라우드에 저장되어 있어서 다른 환경에서도 로그인만 하면 기존에 작업했던 내용들을 쉽게 불러올 수 있다는게 구글 스프레드 시트의 가장 큰 장점이 아닐까 싶다.&lt;/p&gt;

&lt;p&gt;저자 분의 중년코딩이라는 유튜브 채널을 통해서도 스프레드시트의 튜토리얼 영상을 볼 수 있다.&lt;/p&gt;

&lt;p&gt;https://www.youtube.com/c/legacycoder/&lt;/p&gt;

&lt;p&gt;구글 스프레드 관련 잘 정리된 자료가 많지 않았는데 이 책을 통해 정리해 볼 수 있었다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/i37vP9T.jpg&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;“한빛미디어 &lt;나는 리뷰어다=&quot;&quot;&gt; 활동을 위해서 책을 제공받아 작성된 서평입니다.&quot;&lt;/나는&gt;&lt;/p&gt;

</description>
                <link>http://corazzon.github.io/google-spreadsheet</link>
                <guid>http://corazzon.github.io/google-spreadsheet</guid>
                <pubDate>2021-06-20T00:00:00+00:00</pubDate>
        </item>

        <item>
                <title>[도서 리뷰] 실전 시계열 분석 - 통계와 머신러닝을 활용한 예측 기법</title>
                <description>&lt;p&gt;파이썬 시계열 데이터 관련 한국어 서적이 많지 않은 상황에서 이 책이 출판되었다고 해서 많이 궁금했는데 &lt;한빛미디어의 나는=&quot;&quot; 리뷰어다=&quot;&quot;&gt;를 통해 읽어보게 되었다.&lt;/한빛미디어의&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/FWzKLWo.jpg&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;지금도 흘러가는 시간속에서 많은 데이터가 쌓이고 있고 우리는 이렇게 쌓인 데이터를 통해 무언가 인사이트를 얻고자 한다.
매출액, 재고량, 판매량, 주가의 가격, 비트코인의 가격, 서버의 트래픽량 등 시계열은 업무 뿐만 아니라 실생활과도 밀접한 관련이 많다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/TXN7Htc.jpg&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;시간축을 기반으로 쌓여진 수 많은 데이터를 가져와서 탐색적 자료분석을 하고 시뮬레이션을 해본다든지 지난 간 데이터를 통해 얼마나 이 모델이 미래를 잘 예측할지 백테스팅 등을 수행해 볼 수도 있을 것이다.
이 책은 이러한 과정을 R, Python 두 가지 코드를 통해 설명하고 있다.
어떤 기능은 R을 통해 원하는 데이터를 해석하거나 인사이트를 얻어볼 수 있을것이고 
또 어떤 기능은 Python이 더 적합하기도 할텐데 이 책은 R, Python 두 가지 언어를 넘나들며 시계열 데이터를 분해하고 설명하고 모델을 만들어 예측을 하는 과정으로 구성되어 있다.&lt;/p&gt;

&lt;p&gt;여러 시계열 모델을 사용하다보면 그럴듯한 그래프와 리포트를 뽑아주지만 막상 데이터를 해석하고 적용하는 건 다른 문제였다. 대부분의 데이터 분석 책에서는 시계열 모델을 다루더라도 일부분만을 다루고 있기 때문에 시계열을 좀 더 자세히 잘 정리된 책으로 보고자 하는 사람들을 위한 책이다.&lt;/p&gt;

&lt;p&gt;또, 데이터를 분석하고 예측하는 것 뿐만 아니라 시계열 데이터를 저장하고자 할 때 어떤 방법으로 저장을 하는게 더 나은지, 관계형 DB를 사용할지, NoSQL을 사용할지, 파일로 다루는게 나을지에 대한 내용도 있다.&lt;/p&gt;

&lt;p&gt;모델을 통한 예측에서는 전통적인 통계모델 부터 머신러닝, 딥러닝을 다루며 이렇게 만든 모델의 성능을 어떻게 측정하면 좋을지에 대한 내용을 담고 있다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/GRqoTaq.jpg&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/z6rC7cd.jpg&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;이렇게 전반적인 시계열 데이터를 다룰 때 필요한 내용을 익히고 이를 기반으로 헬스케어, 금융, 정부를 위한 시계열 데이터를 다루는 예제로 구성되어 있다.&lt;/p&gt;

&lt;p&gt;전체 568쪽으로 구성되어 있어서 적지 않은 분량이고 쉬운 내용은 아니지만 시계열데이터를 다룰때 필요한 내용들을 정리하고 활용하는데 도움이 되지 않을까 싶다.&lt;/p&gt;

&lt;p&gt;그리고 중요한 소스코드는 여기에서 볼 수 있다. : https://deep-diver.github.io/practical-time-series-analysis-korean/&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;이 리뷰는 한빛미디어의 나는 리뷰어다 이벤트를 통해 책을 제공받아 작성했습니다.&lt;/li&gt;
&lt;/ul&gt;
</description>
                <link>http://corazzon.github.io/hb-time-series</link>
                <guid>http://corazzon.github.io/hb-time-series</guid>
                <pubDate>2021-05-23T00:00:00+00:00</pubDate>
        </item>

        <item>
                <title>[도서 리뷰] 몽고DB 완벽 가이드 실전 예제로 배우는 NoSQL 데이터베이스 기초부터 활용까지(3판)</title>
                <description>&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/oe8hKAS.jpg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;p&gt;RDBMS를 주로 다루다가 NoSQL을 사용하고자 하면 가장 먼저 고려하게 되는게 몽고DB일것이다.
이미 현업에서도 많이 사용되고 있고 key-value 형태의 동적 스키마형 도큐먼트를 다루기에 적합하다.&lt;/p&gt;

&lt;p&gt;NoSQL은 RDBMS에 비해 확장성과 유연성을 가지며 대용량 데이터를 다루기에도 적합하다.&lt;/p&gt;

&lt;p&gt;몽고DB책이 많이 않은 상황에서 이 책은 3판이라는 점에서도 몽고DB를 익히고자 할 때 가장 추천할만한 책이 아닐까 싶다.
3판에서는 최신 트랜드를 반영한 예제와 함께 복제와 샤딩을 더 깊이 다루며 애플리케이션 개발 뿐만 아니라 관리 노하우까지도 다루고 있다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/YBnkNBE.jpg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;p&gt;몽고DB의 기초부터 활용, 관리까지 한권으로 몽고DB에 필요한 거의 모든 필요한 내용을 익힐 수 있도록 구성되어 있다.&lt;/p&gt;

&lt;p&gt;데이터를 주로 다루다 보면 스키마가 변경되거나 데이터 타입이 변경될 때가 많은데 그 때마다 스키마 관리 등이 이슈가 되곤 하는데 몽고DB를 사용하며 이런 부분에 대해 좀 더 유연하고 확장성 있게 사용할 수 있다.&lt;/p&gt;

&lt;p&gt;스키마 설계에 대한 고려사항, 최적화를 위한 팁, 스키마 마이그레이션 방법, 스키마 관리 방법에 대해서도 잘 설명이 되어 있으며 몽고DB를 사용하지 않고 RDBMS를 사용해야 하는 상황에 대해서도 설명하고 있다.&lt;/p&gt;

&lt;p&gt;또, 대용량 데이터를 다루다보면 부딪치게 되는 느린 작업을 찾아서 강제 종료하는 방법이나 컬렉션과 데이터 베스에 대한 통계를 가져오고 해석하는 방법, 명령행 도구를 사용해서 몽고DB가 실행중인 작업을 알아내는 방법도 잘 정리가 되어 있다.&lt;/p&gt;

&lt;p&gt;너무 큰 JSON 파일이나 CSV파일 등을 다루다보면 몽고DB로 다뤄야겠다고 생각될 때가 종종 있다.
몽고DB를 사용하는게 적합한 경우도 있고 그렇지 않을 때도 있는데 이 책을 통해 몽고DB 실용가이드를 얻는데 도움이 될것 같다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/SsIi3dh.jpg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;p&gt;교재의 예제소스는 여기에서 볼 수 있다 =&amp;gt; &lt;a href=&quot;https://github.com/mongodb-the-definitive-guide-3e/mongodb-the-definitive-guide-3e&quot;&gt;mongodb-the-definitive-guide-3e/mongodb-the-definitive-guide-3e: MongoDB: The Definitive Guide 3rd Edition&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;이 리뷰는 한빛미디어의 나는 리뷰어다 이벤트를 통해 책을 제공받아 작성했습니다.&lt;/p&gt;
</description>
                <link>http://corazzon.github.io/mongodb</link>
                <guid>http://corazzon.github.io/mongodb</guid>
                <pubDate>2021-04-18T00:00:00+00:00</pubDate>
        </item>

        <item>
                <title>[도서 리뷰] 사토시의 서 - 비트코인 창시자 사토시 나카모토의 철학을 보다</title>
                <description>&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/AX6eDX4.jpg&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;몇년전 장고걸스라는 파이썬의 장고프레임 워크를 통해 웹사이트를 만드는 튜토리얼을 처음 시작할 때 이태원의 비트코인 카페에서 모임을 했던 기억이 난다.
그 당시 현실세계에서 비트코인으로 카페의 음료 가격을 결제할 수 있다는게 놀라웠다.&lt;/p&gt;

&lt;p&gt;그 후로 비트코인의 가격은 상상할 수 없을 만큼 올랐는데 물론 나는 하나도 갖고있지 않다.
세상의 화제를 모으는 비트코인이 어떤 방식으로 개발이 되었고 어떤 원리로 동작하는지에 대해서는 늘 궁금함이 있었다.
비트코인의 창시자가 사토시 나카모토가 개발 초기에 포럼에서 주고 받은 서신이 잘 정리된 책이라는 점에서 호기심에 이 책을 읽어보게 되었다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/csd2OzF.jpg&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;왜 비트코인이 세상의 주목을 받고 기존 화폐의 문제점을 어떻게 보완할 수 있을지에 대한 내용이 정리되어 있다.
코로나로 인해 여행을 취소하게 되었는데 예약했던 온라인 사이트에서 카드번호를 메일로 회신해 달라고 했었다. 카드 정보를 해외의 누군가에게 메일로 보내면서도 뭔가 시원치 못한 기분이 들었는데 아마도 비트코인을 사용하게 된다면 이런 문제들을 보완할 수 있지 않을까 싶은 생각이 들기도 했다.&lt;/p&gt;

&lt;p&gt;나 같이 이런 고민에 대한 Q&amp;amp;A내용이 포럼에도 있었다.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;비트코인이 익명성이 있는지?&lt;/li&gt;
  &lt;li&gt;거래는 안전한지? 보안이 유지되는지?&lt;/li&gt;
  &lt;li&gt;돈을 잃지 않으려면 어떤 파일을 백업해야 하는지?&lt;/li&gt;
  &lt;li&gt;지갑을 복제해서 다른 컴퓨터에서 사용하게 된다면 보안조치가 필요한지?&lt;/li&gt;
  &lt;li&gt;지갑을 잃어버린다면 비트코인 네트워크에서 이 지갑은 영원히 찾을 수 없게 되는것인지?&lt;/li&gt;
  &lt;li&gt;비트코인의 코드는 오픈소스인데 그럼 보안상 엄청난 허점이 되지는 않는지?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;요즘 화폐 유동성에 대한 이슈도 많은데 비트코인 발행 숫자가 정해져있기 때문에 지갑을 잃어버리면 영원히 찾을 수 없어 기존의 비트코인의 가치가 올라갈 수 있다는 점도 이 책을 통해 알게된 사실이다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/BfMFMvh.jpg&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/j3kxU3P.jpg&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;비트코인의 여러가지 궁금증에 대해 이미 질문한 누군가가 있고 그런 질문들에 대한 답변이 잘 되어 있는 책이다.&lt;/p&gt;

&lt;p&gt;암호화 등에 대한 이론도 다루고 있기 때문에 어렵게 느껴지기도 했는데 어떤 방법으로 비트코인이 화폐를 대신해 나갈지 암호화폐가 어떤식으로 기존의 트랜잭션을 대신해 나갈지에 대한 아이디어를 알아볼 수 있는 책이었다.&lt;/p&gt;
</description>
                <link>http://corazzon.github.io/BTC-Book</link>
                <guid>http://corazzon.github.io/BTC-Book</guid>
                <pubDate>2021-03-20T00:00:00+00:00</pubDate>
        </item>

        <item>
                <title>[도서 리뷰] 비즈니스 머신러닝</title>
                <description>&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/wwRMMtg.jpg&quot; height=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;p&gt;머신러닝 이론에 치우치다 보면 결국 그래서 이걸 어떻게 써먹어야 될지 난감할 때가 종종 있다.
그래서 현실과 가까운 데이터를 다루다 보면 내 업무에도 이렇게 적용하면 되겠다는 아이디어가 떠오르기도 한다.&lt;/p&gt;

&lt;p&gt;이 책은 실무에 최대한 촛점을 맞춰 제작되어 있다.
SageMaker를 예전부터 사용해 보고 싶었는데 해당 도서가 출간되어서 읽어보게 되었다.&lt;/p&gt;

&lt;p&gt;머신러닝 모델을 만들고 비즈니스에 적용하려면 이 모델을 어떻게 실 서비스에 적용하고 배포해야하는지에 대한 이해가 필요한데 요즘 대부분 클라우드 환경을 사용하다보니 SageMaker에 관심을 갖게 되었다.&lt;/p&gt;

&lt;p&gt;이미 주피터 노트북을 통해 머신러닝이나 딥러닝 모델을 만들어 본 사람들이라면 이 책의 SageMaker 사용법은 쉽게 느껴질 수 있다.
내 컴퓨터가 아닌 클라우드 환경에서 주피터 노트북을 사용해 실제 머신러닝 모델을 만드는 과정을 소개하고 있다.&lt;/p&gt;

&lt;p&gt;로컬 컴퓨터 환경에서 주피터 노트북을 사용해보지 않았다면 로컬 컴퓨터 환경에서 우선 아나콘다 등의 툴을 사용해 주피터 노트북으로 같은 과정을 진행해 보는 것이 왜 SageMaker를 사용해야 하는지에 대한 이해를 도울 수 있을 것 같다.&lt;/p&gt;

&lt;p&gt;실제 비즈니스 환경에서 머신러닝을 응용할만한 일들은 정말 무궁무진하다.
이 책의 초반부에 나와있는 설명처럼 우리의 의사결정을 앞으로는 머신러닝이 대신해줄 일들이 많다.&lt;/p&gt;

&lt;p&gt;다음의 내용은 책에 나온 예시다.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;주문을 승인하는 사람이 승일할 권한이 있는지?&lt;/li&gt;
  &lt;li&gt;품절된 품목에 대해 다른 제품으로 대체해도 괜찮은지?&lt;/li&gt;
  &lt;li&gt;공급업체가 제품을 다른 제품으로 대체했을 때 고객이 이를 수용할지?&lt;/li&gt;
  &lt;li&gt;청구서를 그대로 지불 승인해야 할지? 추가적인 질의를 해야할지?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;비즈니스 환경에 대한 시나리오를 작성하고 해당 시나리오에 맞는 머신러닝 모델을 만들어 봄으로 우리가 왜 비즈니스에 머신러닝을 도입해야 하는지에 대한 설명을 담고 있다.&lt;/p&gt;

&lt;p&gt;이 책은 SageMaker라는 특정 제품군을 설명하고 있지만 SageMaker를 제외하고 봤을 때도 실제 비즈니스에 적용할만한 시나리오를 제시하고 있다는 점이 마음에 든다.&lt;/p&gt;

&lt;p&gt;GitHub 에 소스코드가 있으니 다운로드 받아서 열어보면 목차와 함께 어떤 내용으로 구성되어 있는지 볼 수 있을것 같다.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/K9Ns/ml4biz&quot;&gt;K9Ns/ml4biz: 비즈니스를 위한 머신러닝 예제&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;클라우드를 사용해 머신러닝 모델을 프로덕트에 적용해 보고자 하는 분들에게 추천한다.
또 주피터 노트북이나 파이썬 머신러닝에 대한 기본 이해가 없다면 조금 어려울 수도 있으니 주피터 노트북에서 머신러닝 예제를 몇 개 돌려봤다면 이 책을 읽는데 도움이 될 것이다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/NPkCMiV.jpg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;p&gt;sagemaker가 무엇인지 궁금하다면 여기에서 확인해 볼 수 있다 =&amp;gt; &lt;a href=&quot;https://aws.amazon.com/ko/sagemaker/&quot;&gt;https://aws.amazon.com/ko/sagemaker/&lt;/a&gt;&lt;/p&gt;
</description>
                <link>http://corazzon.github.io/business-ml-sagemaker</link>
                <guid>http://corazzon.github.io/business-ml-sagemaker</guid>
                <pubDate>2021-02-22T00:00:00+00:00</pubDate>
        </item>

        <item>
                <title>[파이썬 데이터 분석] 깊은 복사와 얕은 복사에 대해</title>
                <description>&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/Bjsv-ip4Ruk&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;h2 id=&quot;copy에-대해&quot;&gt;copy에 대해&lt;/h2&gt;
&lt;ul&gt;
  &lt;li&gt;참고 : &lt;a href=&quot;https://docs.python.org/ko/3/library/copy.html&quot;&gt;copy — 얕은 복사와 깊은 복사 연산 — Python 3.9.1 문서&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;pandas&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;as&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;pd&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;c1&quot;&gt;# 데이터프레임에 a 라는 컬럼을 생성합니다.
&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;df&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;pd&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;DataFrame&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;({&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;a&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;range&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)})&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div&gt;
&lt;table border=&quot;1&quot; class=&quot;dataframe&quot;&gt;
  &lt;thead&gt;
    &lt;tr style=&quot;text-align: right;&quot;&gt;
      &lt;th&gt;&lt;/th&gt;
      &lt;th&gt;a&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;th&gt;0&lt;/th&gt;
      &lt;td&gt;0&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;1&lt;/th&gt;
      &lt;td&gt;1&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;2&lt;/th&gt;
      &lt;td&gt;2&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;3&lt;/th&gt;
      &lt;td&gt;3&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;4&lt;/th&gt;
      &lt;td&gt;4&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;c1&quot;&gt;# 0, 1번 인덱스값만 추출해서 df2 에 사본을 만듭니다.
&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;df2&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;loc&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;df2&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div&gt;
&lt;table border=&quot;1&quot; class=&quot;dataframe&quot;&gt;
  &lt;thead&gt;
    &lt;tr style=&quot;text-align: right;&quot;&gt;
      &lt;th&gt;&lt;/th&gt;
      &lt;th&gt;a&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;th&gt;0&lt;/th&gt;
      &lt;td&gt;0&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;1&lt;/th&gt;
      &lt;td&gt;1&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;c1&quot;&gt;# df, df2는 다른 id값을 갖고 있습니다.
&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;id&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;))&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;id&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;df2&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;))&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;140586104665360
140586087374288
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;df2&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div&gt;
&lt;table border=&quot;1&quot; class=&quot;dataframe&quot;&gt;
  &lt;thead&gt;
    &lt;tr style=&quot;text-align: right;&quot;&gt;
      &lt;th&gt;&lt;/th&gt;
      &lt;th&gt;a&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;th&gt;0&lt;/th&gt;
      &lt;td&gt;0&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;1&lt;/th&gt;
      &lt;td&gt;1&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;c1&quot;&gt;# df2의 a컬럼의 값을 [4, 5] 로 변경합니다.
# 데이터 프레임의 일부의 사본을 생성해 올 때 copy()를 사용하지 않고 
# 사본을 생성하게 되면 아래와 같은 경고메시지가 발생합니다.
&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;df2&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;a&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;df2&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;/Users//opt/anaconda3/lib/python3.7/site-packages/ipykernel_launcher.py:4: SettingWithCopyWarning: 
A value is trying to be set on a copy of a slice from a DataFrame.
Try using .loc[row_indexer,col_indexer] = value instead

See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy
  after removing the cwd from sys.path.
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div&gt;
&lt;table border=&quot;1&quot; class=&quot;dataframe&quot;&gt;
  &lt;thead&gt;
    &lt;tr style=&quot;text-align: right;&quot;&gt;
      &lt;th&gt;&lt;/th&gt;
      &lt;th&gt;a&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;th&gt;0&lt;/th&gt;
      &lt;td&gt;4&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;1&lt;/th&gt;
      &lt;td&gt;5&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;c1&quot;&gt;# 0 번 인덱스의 a 컬럼에 다른 값을 넣으려고 할때도 아래의 경고 메시지가 출력됩니다.
&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;df2&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;loc&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&quot;a&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;7&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;df2&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;/Users//opt/anaconda3/lib/python3.7/site-packages/pandas/core/indexing.py:671: SettingWithCopyWarning: 
A value is trying to be set on a copy of a slice from a DataFrame

See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy
  self._setitem_with_indexer(indexer, value)
/Users//opt/anaconda3/lib/python3.7/site-packages/ipykernel_launcher.py:2: SettingWithCopyWarning: 
A value is trying to be set on a copy of a slice from a DataFrame

See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div&gt;
&lt;table border=&quot;1&quot; class=&quot;dataframe&quot;&gt;
  &lt;thead&gt;
    &lt;tr style=&quot;text-align: right;&quot;&gt;
      &lt;th&gt;&lt;/th&gt;
      &lt;th&gt;a&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;th&gt;0&lt;/th&gt;
      &lt;td&gt;7&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;1&lt;/th&gt;
      &lt;td&gt;5&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;c1&quot;&gt;# 그리고 df2의 값을 변경해 주었는데 df의 0,1 번 인덱스 값이 변경된 것을 확인할 수 있습니다.
&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div&gt;
&lt;table border=&quot;1&quot; class=&quot;dataframe&quot;&gt;
  &lt;thead&gt;
    &lt;tr style=&quot;text-align: right;&quot;&gt;
      &lt;th&gt;&lt;/th&gt;
      &lt;th&gt;a&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;th&gt;0&lt;/th&gt;
      &lt;td&gt;7&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;1&lt;/th&gt;
      &lt;td&gt;5&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;2&lt;/th&gt;
      &lt;td&gt;2&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;3&lt;/th&gt;
      &lt;td&gt;3&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;4&lt;/th&gt;
      &lt;td&gt;4&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;c1&quot;&gt;# 그럼 이번에는 copy()를 통해 df2를 df3에 사본을 생성합니다.
# pandas copy의 기본값은 df.copy(deep: bool = True) 깊은복사 입니다.
&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;df3&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[:&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;copy&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;df3&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div&gt;
&lt;table border=&quot;1&quot; class=&quot;dataframe&quot;&gt;
  &lt;thead&gt;
    &lt;tr style=&quot;text-align: right;&quot;&gt;
      &lt;th&gt;&lt;/th&gt;
      &lt;th&gt;a&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;th&gt;0&lt;/th&gt;
      &lt;td&gt;7&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;1&lt;/th&gt;
      &lt;td&gt;5&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;2&lt;/th&gt;
      &lt;td&gt;2&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;c1&quot;&gt;# df, df2, df3는 모두 다른 id값을 가집니다.
&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;id&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;))&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;id&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;df2&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;))&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;id&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;df3&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;))&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;140586104665360
140586087374288
140586104960528
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;c1&quot;&gt;# df3의 a컬럼의 값을 변경합니다.
&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;df3&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;a&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;df3&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div&gt;
&lt;table border=&quot;1&quot; class=&quot;dataframe&quot;&gt;
  &lt;thead&gt;
    &lt;tr style=&quot;text-align: right;&quot;&gt;
      &lt;th&gt;&lt;/th&gt;
      &lt;th&gt;a&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;th&gt;0&lt;/th&gt;
      &lt;td&gt;-2&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;1&lt;/th&gt;
      &lt;td&gt;-3&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;2&lt;/th&gt;
      &lt;td&gt;-4&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;c1&quot;&gt;# df3의 값을 변경해도 원본 df의 값은 마지막 상태를 유지하고 있습니다.
# df3의 변경값이 df에 반영되지 않았습니다.
&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div&gt;
&lt;table border=&quot;1&quot; class=&quot;dataframe&quot;&gt;
  &lt;thead&gt;
    &lt;tr style=&quot;text-align: right;&quot;&gt;
      &lt;th&gt;&lt;/th&gt;
      &lt;th&gt;a&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;th&gt;0&lt;/th&gt;
      &lt;td&gt;7&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;1&lt;/th&gt;
      &lt;td&gt;5&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;2&lt;/th&gt;
      &lt;td&gt;2&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;3&lt;/th&gt;
      &lt;td&gt;3&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;4&lt;/th&gt;
      &lt;td&gt;4&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;c1&quot;&gt;# .copy()를 통해 깊은 복사를 해주게 되면 사본이 원본을 바라보지 않습니다.
# 따라서 사본을 생성할 때 .copy()를 사용하면 원본값에 영향을 주지 않게 되고 
# 값을 변경할 때도 경고메시지가 출력되지 않습니다.
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
</description>
                <link>http://corazzon.github.io/pandas-deep-copy</link>
                <guid>http://corazzon.github.io/pandas-deep-copy</guid>
                <pubDate>2021-01-05T00:00:00+00:00</pubDate>
        </item>

        <item>
                <title>[도서 리뷰] 혼자 공부하는 머신러닝+딥러닝</title>
                <description>&lt;p&gt;머신러닝이나 딥러닝을 보통 배우거나 이해하기 어려운 분야이다.
하지만 이렇게 배우기 어려운 분야도 어떤 예제와 설명이냐에 따라 내용이 쉽게 와 닿기도 한다.
그동안 봤던 책이 너무 어려웠다면 이 책으로 그간의 어려움을 해소할 수 있지 않을까 싶다.&lt;/p&gt;

&lt;p&gt;게다가 저자 분은 유명 머신러닝, 딥러닝 책을 여러 권 번역과 출판하신 분이다.
우리집에도 저자 분의 머신러닝, 딥러닝 책이 몇 권이 있을 정도로 이 분야에서 연구나 일을하는 사람이라면 저자 분의 책이 몇 권씩 있을거 같다.
그만큼 믿고 볼 수 있는 저자 분의 책이기도 하다.&lt;/p&gt;

&lt;p&gt;그래서 이 책은 초보자를 위한 책이기도 하지만 이미 머신러닝이나 딥러닝 코드를 돌려봤지만 아직도 뭔가 부족하다고 느껴지는 사람들에게 전체적인 내용을 정리해 볼 수 있는 책이기도 하다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/dDCC5eT.jpg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;p&gt;한빛의 믿고 보는 “혼공” 시리즈 중에 하나기도 하다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/qX8lhvs.jpg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;p&gt;책 두께는 600 페이지가 조금 안 되는 정도고 두께도 어느정도 있다.
전면 컬러이고 그래프 이미지가 컬러라 좀 더 보기에 좋다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/HcWuab1.jpg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;p&gt;또, 핵심만 뽑아서 정리한 용어노트는 가볍게 들고 다닐 수 있을 정도의 분량으로 전체적인 내용을 정리하기에 좋다.
완전 핵심만 골라서 잘 정리가 되어 있어서 한눈에 들어온다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/pgpvwAK.jpg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;p&gt;또 적절한 비유와 설명도 너무나도 알찬 책이다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/CtyDUS5.jpg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/Tlib5vE.jpg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;p&gt;핸즈온머신러닝과 이 책은 함께 봐도 너무 좋을것 같은데
이 책은 적절한 비유와 자세한 설명을 통해 머신러닝을 쉽게 이해하는데 도움이 되고
핸즈온머신러닝을 통해 좀 더 깊게 머신러닝과 딥러닝을 학습해 볼 수 있을거 같다.&lt;/p&gt;

&lt;p&gt;그동안 텐서플로를 사용하면서 궁금했던 내용들에 대한 궁금증이 많이 해소되었다.
또 이 책을 보고 핸즈온머신러닝을 읽으니 이해가 되지 않았던 부분에 대한 블랙박스를 열게 된 느낌이다.&lt;/p&gt;

&lt;p&gt;아무튼 강추에 강추를 해도 모자랄 훌륭한 책이다 👍👍👍👍👍&lt;/p&gt;
</description>
                <link>http://corazzon.github.io/self-study-ml-dl</link>
                <guid>http://corazzon.github.io/self-study-ml-dl</guid>
                <pubDate>2020-12-20T00:00:00+00:00</pubDate>
        </item>

        <item>
                <title>[도서 리뷰] 우아한 사이파이</title>
                <description>&lt;p&gt;파이썬으로 데이터 분석, 시각화, 머신러닝을 다루면서 scipy 를 종종 사용해 오면서 scipy를 사용하는 코드를 볼 때마다 scipy에 대해 좀 더 알고 싶다는 생각을 해오던 중에 이 책을 읽게 되었다.&lt;/p&gt;

&lt;p&gt;책 제목 그대로 “우아한 사이파이”는 멋지고 우아하다.
코드 한 두 줄로 그럴 듯한 결과물을 만들어 내기 때문이다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/VGvfusz.jpg&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;파이썬의 이런 우아한 환경은 넘파이와, 팻플롯립, 판다스, 사이킷런 등과 함께 잘 어울려 있는데
가끔 코드 내부를 보면 scipy 를 종종 볼 수 있었다.
하지만 복잡한 통계 계산을 코드 몇 줄로 멋지게 계산해 주는 걸 볼 때마다 그 내부가 복잡하지 않을까 짐작하곤 했다.
마치 호수를 우아하게 헤엄치는 호수의 발 처럼 말이다.
그래서 scipy가 궁금하면서도 익혀보는 걸 두려워 했었는데 마침 이 책을 통해 그 두려움을 조금이나마 해소해 보고자 했다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/jcIKPih.jpg&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;이 책에서는 유전자 분석과 이미지, 신호처리 등을 통해 예제를 설명하고 있다.
쉬운 주제는 아니지만 복잡한 계산을 우아하게 만들어 주는 것은 틀림없다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/Fz6WNpF.jpg&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;책 초반부에 나오는 것처럼 넘파이와 사이파이는 파이썬 과학 생태계의 핵심이다.
복잡한 통계, 신호 처리, 이미지 처리 등 복잡한 계산이 들어가는 곳이면 넘파이와 함께 등장하곤 한다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/7UEiF3A.jpg&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;이 책을 통해 그동안 사이파이 내부에서 어떤 철학으로 어떤 연산이 이루어지는지 조금이나마 이해하는데 도움이 되었다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/nn5SryU.png&quot; /&gt;&lt;/p&gt;

&lt;p&gt;깃헙페이지에 가면 책의 소스코드와 설명을 함께 보면서 코드를 실행해 볼 수 있다.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/elegant-scipy/elegant-scipy&quot;&gt;elegant-scipy/elegant-scipy: 1st Edition of Elegant SciPy (O’Reilly Publishers)&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;링크 클릭만으로 책에 쓰인 이미지와 원서의 설명을 볼 수 있으니 책과 함께 볼 수 있다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/QtHPfmD.png&quot; /&gt;&lt;/p&gt;

&lt;p&gt;넘파이와 함께 빠른 연산을 위해 꼭 쓰이는 사이파이만을 다룬책이 많지 않은데 이 책으로 사이파이를 정리해 볼 수 있었다.&lt;/p&gt;
</description>
                <link>http://corazzon.github.io/python-scipy</link>
                <guid>http://corazzon.github.io/python-scipy</guid>
                <pubDate>2020-11-22T00:00:00+00:00</pubDate>
        </item>

        <item>
                <title>[도서 리뷰] 파이썬과 대스크를 활용한 고성능 데이터 분석 대규모 데이터셋 분석, 시각화, 모델링부터 분산 앱 패키징과 배포까지</title>
                <description>&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/BdmAy4n.jpg&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;16G의 메모리가 있는 장비를 주로 사용하며 판다스로 10G정도의 파일을 불러온 사람들이면 판다스의 굼뜬 반응에 답답함을 느꼈을 사람들이 많을 것이다.
그나마 16G의 메모리를 사용하고 있어 10G정도까지라도 로드를 할 수 있지만 8G나 4G의 메모리를 사용하고 있다면 1G의 파일만 로드해도 작업을 할 수 없을 정도로 느려지는 것을 느낄 수 있었을 것이다.&lt;/p&gt;

&lt;p&gt;최근 10G이상의 파일을 로드할 때 모든 데이터가 필요하지 않기 때문에 판다스로 필요한 데이터만 불러와서 파일사이즈를 최대한 줄여서 사용하는 방법으로 로컬장비를 활용해 왔다.
이렇게 큰 파일을 다룰 때마다 dask를 써야겠다고 마음만 먹고 실행해 옮기지 못 했는데 드디어 dask 책이 나와서 실행에 옮겨보기로 했다!&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/HDUzseE.jpg&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;이 책에서는 4G정도의 데이터셋은 작은 데이터로 다루기는 하지만 이 또한 판다스로 작은 메모리를 사용해서 로드하기에는 부담이 된다. Dask는 CPU의 단일코어를 사용하는 문제를 모든 CPU코어를 사용하게 함으로써 병렬처리를 해준다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/T76b5y0.jpg&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;그리고 dask 는 pandas 와 호환이 아주 잘 되는 인터페이스를 가지고 있으며 사용법도 판다스와 매우 유사하다.
그래서 pandas 에 익숙한 사람이라면 dask에 적응하는게 크게 어렵지 않을것이다.&lt;/p&gt;

&lt;p&gt;서울지하철데이터를 통해 dask를 사용해 봤다.
pandas 에서 사용했던 API가 대부분 그대로 동작하며 .compute()를 통해 연산이 가능함을 확인할 수 있었다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/AuiVVlR.png&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;dask를 소개하는 번역서가 있었으면 좋겠다고 생각했는데 내가 알기로는 국내 첫 번역서로 알고 있다.
앞으로 곁에 두고 dask에 익숙해 질때까지 닳도록 보려고 한다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/k3CKS3C.png&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/Zad886E.jpg&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;깃헙저장소는 여기에 있다. 
이 책 덕분에 앞으로 판다스와 함께 자주 사용하게 될것 같다 :)&lt;/p&gt;

&lt;p&gt;https://github.com/coldfire79/data-science-with-python-and-dask&lt;/p&gt;
</description>
                <link>http://corazzon.github.io/python-dask</link>
                <guid>http://corazzon.github.io/python-dask</guid>
                <pubDate>2020-10-18T00:00:00+00:00</pubDate>
        </item>

        <item>
                <title>[도서 리뷰] 처음 시작하는 딥러닝 Deep Learning from Scatch</title>
                <description>&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/QPn1MnP.jpg&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;scratch 로 들어가는 책들은 대부분 밑바닥부터 코드를 작성해서 설명하고 두껍지도 않아서 읽기에 부담도 적은 편이다.
이 책의 제목에 “밑바닥부터~”가 들어갈 것 같았지만 이 책의 제목은 “처음 시작하는 딥러닝”이다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/kDdV2kf.jpg&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;천리길도 한 걸음부터 시작하듯이 이 책은 딥러닝을 시작하는 초심자를 위해 파이썬의 간단한 코드를 통해 딥러닝 알고리즘과 원리를 설명하고 있다. 
기본적인 파이썬 지식을 익히고 있고 넘파이의 행렬연산을 이해하고 있다는 가정하에 비교적 간단하게 코드를 구현해 가며 딥러닝 알고리즘을 이해할 수 있게 설계되어 있다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/SNIvgp7.jpg&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/vCJXLpj.jpg&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;그리고 대부분의 설명을 수식 &amp;gt; 그림 &amp;gt; 코드의 순으로 설명하고 있다.
그래서 수식이 어렵더라도 그림을 보고 이해하고 코드를 보고 활용할 수 있도록 되어있다.&lt;/p&gt;

&lt;p&gt;추상화가 잘 된 딥러닝 모델을 가져다 사용하다보면 사용하기는 편리하지만 내부 원리가 잘 이해되지 않았던 적이 있는데 그런면에서 이 책은 딥러닝을 처음 시작하는 사람에게도 이미 추상화가 된 모델을 가져다 잘 사용하는 사람들에게도 도움이 될거 같다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/MfwUXtU.png&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;주석도 친절하게 번역이 되었고 이렇게 번역된 github 저장소도 제공하고 있다.&lt;/p&gt;

&lt;p&gt;https://github.com/flourscent/DLFS_code&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/WANBrTw.jpg&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;여전히 딥러닝 수학공식은 어렵지만 코드에 적혀있는 주석의 도움을 받아 하나씩 실행해 볼 수 있었다.
또, 마지막 부분에서는 파이토치를 활용해서 주택가격, mnist 등의 데이터를 통해 신경망을 설명하고 있다.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://colab.research.google.com/github/flourscent/DLFS_code/blob/master/07_PyTorch/Code.ipynb&quot;&gt;Code.ipynb - Colaboratory&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;딥러닝에 필요한 핵심내용을 이 책을 통해 다시 정리해 볼 수 있었다.&lt;/p&gt;
</description>
                <link>http://corazzon.github.io/dl-scratch</link>
                <guid>http://corazzon.github.io/dl-scratch</guid>
                <pubDate>2020-09-27T00:00:00+00:00</pubDate>
        </item>

        <item>
                <title>[도서 리뷰] 파이썬으로 배우는 통계학 교과서</title>
                <description>&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/BNdGVsR.jpg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;p&gt;이 책을 읽기 전까지 통계와 관련된 여러 책들을 봤었다.
지금까지 봤던 책들은 대부분 너무 어렵거나 파이썬이 아닌 R로 설명이 되어 있어서
적당한 수준의 파이썬 통계책이 있었으면 좋겠다고 생각했을 시점에 이 책을 보게 되었다.&lt;/p&gt;

&lt;p&gt;너무 어려운 수준의 통계용어와 수식은 읽고나서도 무슨 내용인지 어떻게 적용해야 될지 감이 잘 오지 않았는데 이 책은 파이썬의 고수준 라이브러리인 seaborn, scipy 등을 사용해서 설명하기 때문에 어려운 통계 지식을 추상화해서 익혀볼 수 있다는 장점이 있다.&lt;/p&gt;

&lt;p&gt;추상화해서 익혀보고 더 궁금하면 여기에서 좀 더 깊게 들어가는 책을 보면 좋을거 같다.&lt;/p&gt;

&lt;p&gt;분량도 너무 두껍지 않고 들고다니기 적당한 두께라 읽을때도 부담없이 읽을 수 있었다.
물론 이 책은 내가 주로 사용하는 시각화 도구가 seaborn 이라 더 쉽게 느껴졌을 수도 있을거 같다.&lt;/p&gt;

&lt;p&gt;seaborn은 matplotlib을 고수준으로 추상화해서 복잡한 통계연산에 대한 이해가 없더라도 데이터를 넣어주면 짠! 하고 다양한 통계적 연산을 통한 그래프를 그려볼 수 있다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/A8hHTPx.jpg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;p&gt;여기에서는 물고기 낚시를 통해 설명을 하는데 적절한 비유를 통한 설명도 이 책의 장점이다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/uNtktTi.jpg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;p&gt;이 책의 목차를 보게 되면 기본적인 기술통계값에 대한 이해를 도울 수 있는 설명부터 데이터분석, 머신러닝, 딥러닝에 필요한 확률과 회귀에 대한 개념을 적절하게 추상화해서 설명해 준다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/52maJum.jpg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;p&gt;이렇게 추상화를 통해 설명할 수 있는건 matplotlib을 사용하기 쉽게 만들어 놓은 seaborn 덕도 클것이라는 생각이 든다. seaborn은 파이썬 시각화 도구 중에 가장 자주 사용하는 도구인데 기본적인 통계적인 지식을 이해하고 있다면 쉽게 활용해 볼 수 있다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/CNgs8BV.jpg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;p&gt;그리고 책 후반부에는 통계학과 머신러닝, 딥러닝까지 연결해서 설명을 해준다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/4g5xtJK.jpg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;p&gt;코드 예제는 파이썬, 주피터 노트북이 있다면 대부분 간단한 코드로 되어 있기 때문에 바로 따라해 볼 수 있을 정도다. 
요즘 생활코딩의 머신러닝 야학을 듣고 있는데 ‘적게 배워서 최대한 많이 써먹을 수 있는 전략’이 나오는데 이 책이 그런 역할을 해주고 있지 않나 싶다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/8TnpDiX.jpg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;p&gt;[평균과 분산과 데이터의 범위에 대한 그림]
중학교 때 배웠던 평균, 분산, 표준편차도 막상 업무에 적용하려면 어려울 때도 있다. 
그림으로 이해하기 쉽게 설명을 해주고 있다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/Mbwi6X0.jpg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;p&gt;[구간추정 결과의 해석]
뉴스나 신문기사에서 신뢰구간에 대한 용어를 가끔씩 듣게 되는데 이 신뢰구간도 간략하게 잘 설명이 되어 있다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/k0fDVri.jpg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;p&gt;[신뢰구간의 계산]&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/Hd2psNE.jpg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;p&gt;[다중공선성]&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/Ahk5DpY.jpg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;p&gt;[선형모델과 비선형모델의 차이]&lt;/p&gt;

&lt;p&gt;파이썬으로 된 “쉬운” 통계책이 있었으면 좋겠다고 생각해 왔었는데 이 책이 그 답이 아닐까 싶다.
또, 코드 몇 줄로 다양한 통계연산을 구현할 수 있는 파이썬의 여러 라이브러리 덕도 클것 같다.
이 책은 “나는 리뷰어다” 이벤트 전에도 도서관에서 빌려와서 읽었던 책인데 코로나19로 도서관이 휴관을 하게 되어 장기간 대출해서 읽어봤던 책이기도 하다.
이번 이벤트를 통해 자주 꺼내 읽고 싶다는 생각이 들어 다시 읽어보게 되었다.&lt;/p&gt;

</description>
                <link>http://corazzon.github.io/python-stat</link>
                <guid>http://corazzon.github.io/python-stat</guid>
                <pubDate>2020-08-23T00:00:00+00:00</pubDate>
        </item>

        <item>
                <title>[도서 리뷰] 핸즈온 머신러닝 2판</title>
                <description>&lt;p&gt;&lt;a href=&quot;https://www.hanbit.co.kr/store/books/look.php?p_code=B7033438574&quot;&gt;핸즈온 머신러닝(2판)&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;최근 몇 년간 머신러닝을 공부했던 사람이라면 이 책 한권쯤 있는 사람이 많을거 같다.
워낙 베스트셀러이고 머신러닝과 딥러닝 전반을 자세히 다루고 있고 온라인상에서 볼 수 있는 다양한 예제에 대한 자세한 설명을 보며 머신러닝을 익혀볼 수 있는 책이다.&lt;/p&gt;

&lt;p&gt;원서의 2판이 공개되었을때도 관심이 많았는데 번역서가 나온다고 해서 기다려졌던 책이다.&lt;/p&gt;

&lt;p&gt;1판을 이미 읽어봤다면 무슨 설명이 더 필요할까 싶을 정도로 너무 좋은 책이다.
누군가가 머신러닝 책을 한권만 추천해 달라고 하면 아마도 이 책을 얘기할것 같다.
또, 머신러닝을 처음 시작하는 사람이라도 머신러닝과 딥러닝의 전반을 이해하는데 가장 좋은 책이지 않을까 싶다.&lt;/p&gt;

&lt;p&gt;진짜, 정말, 강추한다!&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/o6oKATM.jpg&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;1판과 비교해서 두께가 두꺼워졌고 추가된 내용도 그만큼 많다.
머신러닝 부분에서 군집화 부분이 추가되었고 딥러닝 부분도 텐서플로우2.0 코드가 반영되었다.
또, 베타리더 후기에 1판이 있어도 2판을 사는게 좋다는 의견이 있는데 내가 생각하기에도 그렇다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/uqW5IA2.jpg&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;신경망과 딥러닝 부분이 많이 변경되었는데
텐서플로2.0으로 변경되면서 케라스 API를 사용하게 되었는데 이 부분에 대해 반영이 되었다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/5BNmB0u.jpg&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/TPZQyqs.jpg&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;흑백 목차가 1판이고 컬러목차가 2판인데 딥러닝 부분의 텐서플로2.0 과 관련된 내용이 반영된게 가장 큰 차이점으로 볼 수 있을거 같다.
케라스API를 사용하면서 좀 더 추상화가 되었기 때문에 개인적으로 내부를 이해하는건 여전히 어렵지만 업데이트 된 코드들이 좀 더 사용하기 쉽게 느껴진다.&lt;/p&gt;

&lt;p&gt;현업에서 프로젝트를 진행하면서 옆에 두고 궁금한 내용이 있을때마다 꺼내보면서 익혀보기에 좋은 책이라 나도 곁에 두고 자주 열어보게 되는 책이다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/NKvv3NF.jpg&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;1판과 2판의 강화학습 부분을 비교해 보기 위해 같이 찍어봤다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/DMQuFki.jpg&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;2판에서는 컬러로 변경된것도 큰 차이점이다. 
시각화가 보기 좋아졌다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/cIx0qxz.jpg&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/YsJhkXs.jpg&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/rYn2FUN.jpg&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/ZpsDnD2.jpg&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/acNaHm7.jpg&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/HWQdGKl.jpg&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;2판에 추가된 군집화 부분도 컬러로된 시각화를 통해 이해하기 쉽게 쓰여졌다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/Gz3EybE.jpg&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/vIB2gdc.jpg&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;부록에 연습문제의 정답도 잘 정리가 되어 있어서
챕터마다의 내용을 정리해 보는데 도움이 된다.&lt;/p&gt;

&lt;p&gt;두께도 두껍고 내용도 방대해서 우선 코드를 전체적으로 실행해 보고 설명을 읽어보는 것을 권장한다.
이 책은 원서의 깃헙저장소 외에도 역자분이 꼼꼼하게 정리한 깃헙 저장소를 따로 제공하고 있다.&lt;/p&gt;

&lt;p&gt;머신러닝 초보자라면 이 책이 많이 어려울 수도 있다.
또, 파이썬 코드에 대한 기본 지식이라든지 라이브러리나 패키지의 개념을 이해하고 가져다 쓰는 방법이 무엇인지도 알고 있어야 한다.
하지만 이런 내용을 모른다고 아예 볼 수 없는 책은 아니다.&lt;/p&gt;

&lt;p&gt;책의 예제를 하나씩 따라해 보면서 파이썬의 기본적인 개념들을 하나씩 찾아보는걸 권장한다.
그래서 나는 책을 먼저 읽는 것도 좋지만 공개된 깃헙의 소스코드를 먼저 실행해 보고 코드의 결과를 눈으로 직접 확인해 가면서 설명을 읽어내려가면 좀 더 도움이 될 거 같다.&lt;/p&gt;

&lt;p&gt;영어로 된 예제를 보고 이해하기 어려워 친절한 설명이 필요할 때 인터넷에 있는 자료가 너무 방대해서 잘 정리된 책하나가 있어야 되겠다라고 생각될 때 이 책이 옆에 있으면 적당할거 같다.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/rickiepark/handson-ml2&quot;&gt;rickiepark/handson-ml2: 핸즈온 머신러닝 2/E의 주피터 노트북&lt;/a&gt;&lt;/p&gt;

</description>
                <link>http://corazzon.github.io/handson-ml</link>
                <guid>http://corazzon.github.io/handson-ml</guid>
                <pubDate>2020-07-06T00:00:00+00:00</pubDate>
        </item>

        <item>
                <title>[도서 리뷰] 학교에서 알려주지 않는 17가지 실무 개발 기술</title>
                <description>&lt;p&gt;&lt;a href=&quot;https://www.hanbit.co.kr/store/books/look.php?p_code=B9288599157&quot;&gt;학교에서 알려주지 않는 17가지 실무 개발 기술&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/9soFLFC.jpg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;p&gt;파일을 읽었는데 갑자기 인코딩이 깨져서 당황스러울 때가 있었을거다. 분명히 읽혔던 파일인데 다른 장비에서 읽거나 백업해서 읽었더니 한글이 다 깨져보인다든지 코드의 주석이 다 깨져보인다든지 하는 경험을 해본 적이 있을거다.&lt;/p&gt;

&lt;p&gt;그래서 여러가지 방법으로 찾아보다가 그게 인코딩 문제라는 것을 깨닫게 된다. 또 세부적인 인코딩의 차이점이 무엇인지 인코딩을 설정해서 파일을 읽어오긴 했는데 다른 사람에게 전송했더니 인코딩이 깨진다는 얘길 듣기도 했을거다.&lt;/p&gt;

&lt;p&gt;책의 제목대로 학교에서 알려주지 않는 실무 개발기술에 대해 잘 정리가 되어 있다.&lt;/p&gt;

&lt;p&gt;이 책의 코드는 파이썬으로 되어 있지만 어떤 언어를 사용하든 공통적으로 마주칠 수 있는 문제라 다른 언어를 사용하고 있더라도 무리 없이 읽을 수 있는 책이다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/NnULrbV.jpg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;p&gt;코드도 깃헙에 공개가 되어 있다.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/sorrowhill/17techs&quot;&gt;https://github.com/sorrowhill/17techs&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/m5epz2c.jpg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;p&gt;코드나 파일은 거의 UTF-8을 사용하지만 다른 경로로 받은 파일은 인코딩 때문에 열리지 않는 경우가 종종 있다. 
또 DB에 저장된 인코딩과 코드에서 불러오는 인코딩이 다 달라서 이런 설정을 맞춰야지 어렵게 인코딩 문제를 해결한적도 있는데 인코딩에 대한 기본지식이 없다면 인코딩을 맞추는데 애를 먹을 수 있을거다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/j2GItYo.jpg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;p&gt;이 책은 내가 업무에서 만났던 어려웠던 점들을 잘 집어 설명하고 있다.
다국어 처리 같은 경우에도 해당 업무를 해보고 이해할 수 있었다.
업무에서 마주쳐서 직접 구글링을 하며 어려움을 겪었던 기억이 떠올랐다.
이런 꿀팁들이 이 책에는 잘 정리가 되어 있다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/GIyYtXJ.jpg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;p&gt;타임스탬프로 시간을 처리하는 문제라든지 왜 시간을 불러왔는데 1970년 1월 1일 인지
그리고 원하는 패턴을 찾기 위해 정규표현식을 활용한다든지 
여러 파일의 포맷이라든지 JSON, XML, YAML 의 차이점은 무엇이고 장단점은 무엇인지 이 책에서 친절하게 정리해서 설명해 주고 있다.&lt;/p&gt;

&lt;p&gt;대부분 현업에서 꼭 필요한 내용인데 학교에서 가르쳐주지 않아 현업에서 삽질과 구글링으로 많은 시간을 보내게 되는 문제들을 너무 잘 정리해 놓았다.&lt;/p&gt;

&lt;p&gt;출간 전부터 읽어보고 싶었는데 기회가 되어 처음부터 끝까지 너무 재미있게 읽었다.
이제 막 개발을 시작한 사람이라면 고민하지 않고 사용했던 실무 팁을 익힐 수 있고 또 경험이 많은 개발자는 친절한 언어로 정리할 수 있는 책일거 같다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/EGAmOur.jpg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

</description>
                <link>http://corazzon.github.io/tech-tips</link>
                <guid>http://corazzon.github.io/tech-tips</guid>
                <pubDate>2020-05-31T00:00:00+00:00</pubDate>
        </item>

        <item>
                <title>[도서 리뷰] 파이썬으로 배우는 딥러닝 교과서</title>
                <description>&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/jnKTuKZ.jpg&quot; width=&quot;300&quot; /&gt;&lt;/p&gt;

&lt;p&gt;한빛미디어에서 나온 교과서 시리즈는 대부분 챙겨서 보는 편인데 이 책도 “교과서”시리즈 중의 하나로 나왔다.
“교과서” 시리즈 중에는 “파이썬으로 배우는 통계학 교과서”가 특히나 도움이 많이 되어 이 책도 기대하고 보게 된 책이다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/sI4D14H.jpg&quot; width=&quot;300&quot; /&gt;&lt;/p&gt;

&lt;p&gt;목차를 보게 되면 “교과서”답게 파이썬이 처음인 사람들을 위해 파이썬 기초부터 다루고 있다.
파이썬이 처음이든 프로그래밍이 처음이든 이 책을 읽고 시작할 수 있도록 아나콘다 기초부터 머신러닝과 딥러닝에 필요한 파이썬 기초지식을 익힐 수 있도록 구성되어 있다.
그래서 초반에는 난이도가 쉬울 수 있지만 뒤로 갈수록 난이도가 점점 어려워진다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/cHQ8mXG.jpg&quot; width=&quot;300&quot; /&gt;&lt;/p&gt;

&lt;p&gt;이 책은 딥러닝 책이지만 딥러닝의 학습과 예측 프로세스를 익히려면 머신러닝의 기본적인 흐름을 이해할 수 있어야 하기 때문에 
데이터분석, 시각화, 머신러닝의 기본적인 내용에 대해서도 다루고 있다.&lt;/p&gt;

&lt;p&gt;그래서 딥러닝과 관련된 내용을 보려면 챕터15쯤 가야지 본격적인 딥러닝을 다뤄볼 수 있다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/2RjTk6G.jpg&quot; width=&quot;300&quot; /&gt;&lt;/p&gt;

&lt;p&gt;aixs는 데이터분석, 시각화, 전처리 등에 꼭 필요한 내용인데 의외로 이 부분을 어려워 하는 분들을 많이 봐왔는데 이해하기 쉽게 잘 설명이 되었다고 느꼈다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/R0z1s8E.jpg&quot; width=&quot;300&quot; /&gt;&lt;/p&gt;

&lt;p&gt;그리고 이 책의 장점 중 하나는 바로 코드를 보여주지 않고 중간에 비어있는 부분에 어떤 코드가 들어갈지 문제를 주고 고민을 하게 한다는 점이다.
문제와 정답이 따로 있어서 복습 하기 좋게 구성된 점도 좋다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/yRG0Fmz.jpg&quot; width=&quot;300&quot; /&gt;&lt;/p&gt;

&lt;p&gt;사실 딥러닝에 관련된 내용은 뒷부분에 1/3 정도로 구성이 되어 있는데 파이썬이나 머신러닝에 익숙한 사람들이 보면 딥러닝과 관련된 내용이 부족하게 느껴질 수도 있다.
그리고 이미지 데이터를 위주로 다루고 있기 때문에, 딥러닝으로 정형데이터, 자연어 등을 다루고자 한다면 이 부분을 고려해야 될거 같다.&lt;/p&gt;

&lt;p&gt;하지만 머신러닝에 대한 학습과 예측과정, 피처엔지니어링 등의 기본적인 지식이 있어야 딥러닝 과정을 이해하는데 도움이 되기 때문에 머신러닝이 익숙하지 않다면 머신러닝과 딥러닝을 함께 익혀볼 수 있는 책이다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/QO1KfYT.jpg&quot; width=&quot;300&quot; /&gt;&lt;/p&gt;

&lt;p&gt;파이썬 기초문법부터 데이터 전처리, EDA, 머신러닝, 딥러닝까지 전반적인 부분을 많이 학습할 수 있도록 구성된 책이다.&lt;/p&gt;

&lt;p&gt;그리고 딥러닝 코드는 Keras로 구성되어 있는데 텐서플로2.0 에서 keras를 사용하고 있기 때문에 대부분의 코드가 텐서플로2.0에서 호환이 된다.
방대한 꼼꼼하게 정리가 되어 있어서 딥러닝에 입문하고자 하는 사람이거나 이미 딥러닝으로 모델을 만들어 봤다 하더라도 문제와 정답 질문이 있기 때문에 알고 있는 내용을 정리하기에 좋은 책인거 같다.&lt;/p&gt;

&lt;p&gt;요즘 여러 딥러닝 책을 여러 권 봤는데 비교적 쉽고 친절하게 정리된 책이었다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/D6MzohD.jpg&quot; width=&quot;300&quot; /&gt;&lt;/p&gt;

</description>
                <link>http://corazzon.github.io/python-deep-learning</link>
                <guid>http://corazzon.github.io/python-deep-learning</guid>
                <pubDate>2020-04-30T00:00:00+00:00</pubDate>
        </item>

        <item>
                <title>[도서 리뷰] 알기쉬운 비유와 기초수학으로 시작하는 그로킹 딥러닝</title>
                <description>&lt;h3 id=&quot;알기쉬운-비유와-기초수학으로-시작하는-그로킹-딥러닝&quot;&gt;알기쉬운 비유와 기초수학으로 시작하는 그로킹 딥러닝&lt;/h3&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/pVs6xwa.jpg&quot; width=&quot;450&quot; /&gt;&lt;/p&gt;

&lt;p&gt;책 시작부에 쓰인 책의 의도를 보면 이 책은 내부 동작 과정을 알 수 없는 고수준 라이브러리에 의존하지 않고 간단한 계산을 넘어서는 수학지식이 없는 독자가 책을 소화할 수 있어야 한다고 나와있다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/wvfN1JZ.jpg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;p&gt;이 책은 의도대로 수학공식보다는 그림이나 도식을 통해 설명을 하려고 노력하고 있고 또 그림과 도식 옆에 코드를 배치해서 의도를 이해할 수 있도록 구성되어 있다.&lt;/p&gt;

&lt;p&gt;기존 딥러닝 책은 고수준 라이브러리의 사용법을 통해 원하는 목적에 달성할 수 있도록 레시피를 제공하는 형태와 그 내부의 동작원리를 깊게 설명하는 책으로 나뉘는데 이 책은 고급 수학 지식 없이 코드와 비유 혹은 그림으로 이해할 수 있도록 구성되어 있다.&lt;/p&gt;

&lt;p&gt;고수준 라이브러리를 사용하다보면 그냥 구현해서 사용하는게 간단할 때도 있는데,
추상화되어 있는 API를 가져다 사용하다보면 API에는 익숙해지지만 내부 이해를 위해서는 다시 내부 코드를 봐야할 때가 종종 있다.&lt;/p&gt;

&lt;p&gt;반대로 복잡한 코드들을 간단한 API 한줄로 불러 사용하는게 훨씬 편할때가 많지만 원리를 이해하지 못 하고 사용할 때면 뭔가 빚을 지는 기분이 들때가 있는데 이런 기분을 조금이나마 해소할 수 있는 책이었다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/GFHL400.jpg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/hwZ1a6O.jpg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/3UYpcXO.jpg&quot; width=&quot;450&quot; /&gt;&lt;/p&gt;

&lt;p&gt;자연어처리 쪽 내용도 단어 벡터화나 ngram 기법을 라이브러리를 가져다 사용할 수도 있지만 직접 코드로 구현하고 있다.&lt;/p&gt;

&lt;p&gt;이 책에서 사용하는 라이브러는 numpy 와 keras 정도이고 대부분의 코드를 직접 구현해서 사용하고 있다.&lt;/p&gt;

&lt;p&gt;초보자도 볼 수 있는 책이라고 되어있긴 한데 파이썬 문법에 대한 이해가 부족하다면 조금 어려운 책이지 않을까 싶다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/9E48ChH.jpg&quot; width=&quot;450&quot; /&gt;&lt;/p&gt;

&lt;p&gt;그래서 이 책에서 대상으로 한 초보자를 떠올려보자면 파이썬 기초 문법을 어느정도 이해하고 있고 머신러닝과 딥러닝의 어느정도 기초 지식이 있는 사람이라면 이 책이 더 도움이 될거 같다는 생각이 든다.&lt;/p&gt;

&lt;p&gt;공짜점심은 없듯이 어느정도 기본적인 지식이 있는 상태에서 이 책을 보면 딥러닝 라이브러리의 API를 호출해 사용했던 내부가 어떻게 구현되었는지 이해하기에 적당하지 않을까 싶다.&lt;/p&gt;

&lt;p&gt;아예 딥러닝이 처음인 사람이 읽으면 조금 어려울 거 같다는 생각이 들고 텐서플로우나 케라스 예제를 몇 번 돌려본 사람이 보면 그 내부 원리를 이해하는데 더 도움이 되겠다는 생각이 든다.&lt;/p&gt;

&lt;p&gt;GitHub : &lt;a href=&quot;https://github.com/iamtrask/Grokking-Deep-Learning&quot;&gt;iamtrask/Grokking-Deep-Learning: this repository accompanies the book “Grokking Deep Learning”&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;언제나 프로그래밍 책을 볼 때는 소스코드를 먼저 보는데 이 책도 소스코드가 잘 정리되어 있고 바로 클론 받거나 colab을 통해 실행해 볼 수 있는 형태로 되어 있어서 코드를 실행해 보면서 읽어볼 수 있었다.&lt;/p&gt;

&lt;p&gt;코드를 직접 구현한 책들은 보통 두껍거나 너무 어려울 때도 있는데 비교적 적당한 난이도로 되어있고 도식이나 비유가 쉽게 설명하려고 노력한 흔적을 느낄 수 있는 책이었다.&lt;/p&gt;
</description>
                <link>http://corazzon.github.io/grokking-deep-learning</link>
                <guid>http://corazzon.github.io/grokking-deep-learning</guid>
                <pubDate>2020-03-27T00:00:00+00:00</pubDate>
        </item>

        <item>
                <title>[도서 리뷰] 소문난 명강의 김도형의 데이터 사이언스 스쿨 수학 편 파이썬 라이브러리로 배우는 데이터 과학 필수 수학</title>
                <description>&lt;h3 id=&quot;소문난-명강의-김도형의-데이터-사이언스-스쿨-수학-편-파이썬-라이브러리로-배우는-데이터-과학-필수-수학&quot;&gt;소문난 명강의 김도형의 데이터 사이언스 스쿨 수학 편 파이썬 라이브러리로 배우는 데이터 과학 필수 수학&lt;/h3&gt;

&lt;p&gt;데이터를 공부하는 사람이라면 한번쯤은 들어가 봤을법한 사이트인 데이터사이언스스쿨 사이트를 운영하는 김도형 박사님이 쓰신 책이다.
궁금한게 있어서 검색을 하다보면 자주 들어가서 보게 되는 사이트이고 볼 때마다 정리가 꼼꼼해서 도움을 많이 받은 사이트이다.&lt;/p&gt;

&lt;p&gt;이 사이트 내용 그대로 책으로 나와도 되겠다는 생각을 자주 해왔는데 이 사이트의 내용이 정말 책으로 출판되었다.
사이트를 통해 봤던 내용을 정리된 책으로 보니 사이트 만큼이나 친절한 느낌을 받았다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/3BL355s.png&quot; width=&quot;500&quot; /&gt;
&lt;a href=&quot;https://datascienceschool.net/&quot;&gt;데이터 사이언스 스쿨&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/lHDuaWX.jpg&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;데이터 분야의 일을 하면서 늘 수학은 어렵고 힘든점이었고 개발자라서 그런지 수학공식보다는 코드로 이해를 하는게 편했었다.
이과생이기는 했지만 수포자였기 때문에 통계, 머신러닝, 딥러닝에서 등장하는 수학공식은 늘 동공지진을 유발했다.&lt;/p&gt;

&lt;p&gt;또, 언제 배웠는지 기억도 나지 않는 로그, 미분, 적분을 마주해야 할 때는 공식보다는 코드를 먼저 봤는데 수학에 뭔가 빚을 진 기분이었다.
이런 기분을 조금이라도 덜어보고자 이 책의 출간을 기다렸는데 마침 기회가 되어 한빛미디어의 &lt;나는 리뷰어다=&quot;&quot;&gt; 이벤트로 이 책을 읽게 되었다.&lt;/나는&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/9S6XrUw.jpg&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;초반부에 이 책은 도구를 어떻게 만들지가 아니라 어떻게 사용할지를 초점을 두고 만들어졌다고 한다.
나 또한 도구를 만드는 것보다는 수학공식을 사용해서 어떻게 분석이나 머신러닝에 활용할지에 대해 목적을 두고 읽었는데 내 목적에 딱 부합하는 책이었다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/067HQZR.jpg&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;책의 두께가 상당하기는 하지만 분석에 자주 쓰이는 내용들을 최대한 알려주고자 하는 저자 분의 의도가 느껴지는 책이었다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/hbspCrf.jpg&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;파이썬의 대표적인 라이브러리를 활용해서 설명하고 있으며 수학공식과 함께 어떻게 활용해야 하는지 친절하게 설명이 되어있다.
또 수학적 특징에 따라 어떤 라이브러리를 사용하면 좋을지에 대한 내용을 함께 담고 있어서 활용하고자 하는 의도에 따라 라이브러리를 선택할 수 있도록 도움을 준다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/uQpdwwo.jpg&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/ItUKcp2.jpg&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/FoZDTfi.jpg&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;이 책에서 가장 인상적이었던 부분이 바로 컴퓨터 사용자에 대한 부분이었다.
가끔 라이브러리 설치로 고생하시는 분들을 도와드리다 보면 컴퓨터의 이름이 한글로 된 분들을 종종 봐 왔다.
사소할 수 있는 부분이지만 컴퓨터 사용자의 한글 이름 때문에 설치와 설정 지옥으로 며칠을 고생하시는 분들을 많이 봐 왔기 때문에 꼭 필요한 내용이 잘 소개가 되어있다는 생각이 들었다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/jqZmUUb.jpg&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;주요 라이브러리의 역할을 소개하고 있고 어떻게 사용하면 좋을지에 대한 내용이 적절하게 들어가 있다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/Mun6xlN.jpg&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;함수와 역함수도 자주 그리게 되는 그래프 중 하나인데 공식과 함께 잘 설명이 되어있다.
요즘 수학을 사용하며 느끼는 건 중고등학교 때 이렇게 수학을 배웠다면 훨씬 잘 이해할 수 있지 않았을까라는 아쉬움이 든다.
공식만으로는 이해하기 힘든 부분을 시각화를 하게 되면 왜 이런 공식을 써야 하는지 훨씬 잘 와닿게 되는거 같다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/Cm3tzx0.jpg&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;많이 활용되는 로지스틱 함수도 공식과 그래프를 함께 보면 더 잘 이해할 수 있는거 같다. 
회귀 뿐만 아니라 분류에도 잘 쓰이며 머신러닝, 딥러닝 고루 사용되는데 이 책을 통해 그간 그림처럼 봐 왔던 공식을 이해하는데 도움이 되었다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/wnT0zK7.jpg&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;해설지도 따로 제공이 되어서 책과 분철할 수 있게 되어 있다.
책 두께가 상당한 편인데 들고 다니면서 볼때 분철하면 좋을 것 같다.
&lt;a href=&quot;https://datascienceschool.net/&quot;&gt;데이터 사이언스 스쿨&lt;/a&gt; 사이트의 내용이 상당히 방대한 편인데 제목에 “수학편”이라고 되어 있으니 다른편도 나오지 않을까 기대가 된다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/G2IuLVe.jpg&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;이 책의 코드는 아래 깃헙에서 받을 수 있다.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/datascienceschool/math&quot;&gt;datascienceschool/math: 데이터 사이언스 스쿨 : 수학편 코드 주피터노트북&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;전체적으로 난이도가 좀 있는 책으로 파이썬 코드를 통해 수학 공식을 이해하고자 하거나
머신러닝, 딥러닝 알고리즘을 자주 사용해 왔지만 수학에 빚을 지고 있는 듯한 느낌을 받는 사람이 보면 좋을거 같다.&lt;/p&gt;
</description>
                <link>http://corazzon.github.io/python-math-book</link>
                <guid>http://corazzon.github.io/python-math-book</guid>
                <pubDate>2019-12-15T00:00:00+00:00</pubDate>
        </item>

        <item>
                <title>[도서 리뷰] 회사에서 바로 통하는 엑셀 실무 데이터 활용 + 분석</title>
                <description>&lt;p&gt;어떤 도메인이든 전공이든 엑셀은 거의 모든 분야에서 활용이 될거 같다.&lt;/p&gt;

&lt;p&gt;주로 파이썬을 통해 데이터 분석을 하고 있지만 엑셀도 빼놓고 쓸 수 없는 필수 툴임에 틀림이 없다. 
늘 쓰는 기능만 쓰게 되는데 이런 습관에서 벗어나고 싶은 마음에 이 책을 읽게 되었다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/n1t00Zx.jpg&quot; width=&quot;300&quot; /&gt;&lt;/p&gt;

&lt;p&gt;다양한 함수에 대한 사용법을 통해 데이터를 색인하거나 검색해서 전처리 할 수도 있고 집계를 한 결과를 시각화하는 방법에 대해서 자세하게 소개되어 있다.
대부분 실제 현업에서 자주 사용될법한 예제로 구성되어 있어 업무에 바로 쓸 수 있을 것 같다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/CtifxNh.jpg&quot; width=&quot;300&quot; /&gt;&lt;/p&gt;

&lt;p&gt;막대그래프나 시계열데이터의 추세를 나타내는 꺽은선 차트 등 다양한 시각화 예제도 있다.
또, 단축키에 대한 설명이 자세하게 나와있어서 단축키로 업무시간을 단축할 수 있는 팁들도 많이 있다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/V7gkgsL.jpg&quot; width=&quot;300&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/OoycStU.jpg&quot; width=&quot;300&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/VmcePGK.jpg&quot; width=&quot;300&quot; /&gt;&lt;/p&gt;

&lt;p&gt;행에 입력된 고객 명단을 두 행으로 만들기
보고서나 문서를 만들때 다양한 포맷으로 만들 수 있는 프로젝트 형식의 구체적인 예제가 도움이 되었다.
보통 프로그래밍으로는 이런 것들을 어떻게 해야될지 감이 오는데 오히려 엑셀에 덜 익숙한 나는 이런 기능들이 엑셀로 복잡한 매크로 등을 사용하지 않고도 구현 가능한 점이 인상적이었다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/gRfSufI.jpg&quot; width=&quot;300&quot; /&gt;&lt;/p&gt;

&lt;p&gt;나이팅게일의 로즈다이어그램을 떠올리게 하는 이 표는 선버스트 차트다.
피벗 테이블을 작성하고 그 결과를 시각적으로 표현할 수 있다. 
도수가 표현된 표와 함께 보면 데이터의 크고 작음을 이해하는 데 좀 더 도움이 될거 같다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/vUWgVxe.jpg&quot; width=&quot;300&quot; /&gt;&lt;/p&gt;

&lt;p&gt;항상 쓰는 기능들 위주로 사용하다보니 엑셀의 좀 더 다양한 기능들을 알고 싶었는데 실제 프로젝트와 유사한 예제로 구성되어 있는 점들이 좋았다.
새로 알게된 기능이나 단축키로 내 시간도 절약되길 기대해 본다.&lt;/p&gt;
</description>
                <link>http://corazzon.github.io/excel-book-review</link>
                <guid>http://corazzon.github.io/excel-book-review</guid>
                <pubDate>2019-11-12T00:00:00+00:00</pubDate>
        </item>

        <item>
                <title>[도서 리뷰] 파이썬을 활용한 머신러닝 쿡북</title>
                <description>&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/UOKjbLfx4L0&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;이 책의 대상 독자는 초보자는 아니라고 한다.
2주간 이 책을 옆에 두고 시간이 날 때마다 봤는데 파이썬에 대한 기초 소양이 있고 데이터분석과 시각화에 대한 어느정도 소양이 있다면 더 보기 좋을거 같지만 설명이 자세하게 적혀져 있어서 입문자라도 기계학습에 대한 기초지식만 있다면 읽는데 큰 무리는 없을 거 같다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/gjlN559.jpg&quot; width=&quot;400&quot; /&gt;&lt;/p&gt;

&lt;p&gt;책의 표지 윗부분의 문구에서도 볼 수 있는 것처럼 이 책은 판다스와 싸이킷런을 활용한 실전 중심의 문제해결 방법을 제시하고 있다.&lt;/p&gt;

&lt;p&gt;또, 대부분의 코드가 싸이킷런에서 제공하고 있는 기본 데이터셋을 통해 구성되어 있기 때문에 싸이킷런 공식 문서를 봐도 이해가 되지 않는 부분이 많았다면 이 책을 함께 보면 이런 부분들을 해소하는데 도움이 될 것 같다.&lt;/p&gt;

&lt;p&gt;이 책의 역자는 [파이썬 라이브러리를 활용한 머신러닝] 외에도 다양한 기계학습과 관련된 책을 번역하고 집필한 분이다. 
이 분의 책이 우리집에도 몇 권이 있고 이 분의 책을 통해 싸이킷런이나 파이썬을 통한 머신러닝의 개념을 이해하는 데 도움이 되었다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/MgC9gGv.jpg&quot; width=&quot;400&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/co9RAva.jpg&quot; width=&quot;300&quot; /&gt;&lt;/p&gt;

&lt;p&gt;프로그래밍 관련 서적을 볼 때 가장 먼저 보는 게 소스코드를 제공하고 있는지 여부인데,
이 책은 소스코드도 잘 공개되어 있을 뿐만 아니라 코드에 주석도 친절하게 있어서 
코드만 봐도 어느정도 내용을 이해할 수 있도록 구성되어 있다.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/rickiepark/machine-learning-with-python-cookbook&quot;&gt;rickiepark/machine-learning-with-python-cookbook: 파이썬을 활용한 머신러닝 쿡북 소스코드 : &lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/sL87kEX.png&quot; width=&quot;400&quot; /&gt;&lt;/p&gt;

&lt;p&gt;또, colab 링크가 같이 있어서 링크를 클릭해서 직접 실습을 해볼 수 있는 점도 좋다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/WYh1jL7.jpg&quot; width=&quot;400&quot; /&gt;&lt;/p&gt;

&lt;p&gt;기본적인 벡터, 행렬, 배열의 개념이 초반부에 설명되어 있다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/gDTgOBA.jpg&quot; width=&quot;400&quot; /&gt;&lt;/p&gt;

&lt;p&gt;수치형, 범주형, 텍스트 데이터에 따라 데이터를 전처리 하는 방법이 나뉘어 설명되어 있다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/36kuFH7.jpg&quot; width=&quot;400&quot; /&gt;&lt;/p&gt;

&lt;p&gt;머신러닝 뿐만 아니라 신경망에 대한 기본적인 내용을 소개하고 있고 또 케라스를 통해 전반적인 내용을 실습할 수 있는 예제로 구성되어 있다.
분류, 회귀, 자연어처리 등 다양한 주제를 통해 실습을 해볼 수 있다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/duLw4XL.jpg&quot; width=&quot;400&quot; /&gt;&lt;/p&gt;

&lt;p&gt;책의 인쇄도 컬러로 되어 있어서 코드 가독성이 좋다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/prs1lS0.jpg&quot; width=&quot;400&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/DFxMUW3.jpg&quot; width=&quot;400&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/vlk7jVv.jpg&quot; width=&quot;400&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/T13FTn8.jpg&quot; width=&quot;400&quot; /&gt;&lt;/p&gt;

&lt;p&gt;신경망 부분에는 케라스의 기본 예제를 통해 설명하고 있는데 
케라스 공식 사이트의 예제를 봤을 때 어떤 내용인지 이해가 되지 않았다면 이 책을 통해 도움을 받을 수 있지 않을까 싶다.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://www.hanbit.co.kr/media/books/book_view.html?p_code=B1652696754&quot;&gt;파이썬을 활용한 머신러닝 쿡북&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/rickiepark/machine-learning-with-python-cookbook&quot;&gt;rickiepark/machine-learning-with-python-cookbook: 파이썬을 활용한 머신러닝 쿡북&lt;/a&gt;&lt;/p&gt;
</description>
                <link>http://corazzon.github.io/python-ml-cookbook</link>
                <guid>http://corazzon.github.io/python-ml-cookbook</guid>
                <pubDate>2019-10-13T00:00:00+00:00</pubDate>
        </item>

        <item>
                <title>[도서 리뷰] 파이썬 날코딩으로 알고 짜는 딥러닝</title>
                <description>
&lt;p&gt;머신러닝, 딥러닝 알고리즘을 사용하다보면 내부를 이해하지 못한채 사용할 때가 종종있다.
일단 사용하고는 보지만 내부 알고리즘을 이해하고 사용하면 각각의 파라메터 옵션이 어떤 것을 의미하고 좀 더 좋은 성능을 낼 수 있도록 작성할 수 있을 것이다.&lt;/p&gt;

&lt;p&gt;이미 잘 만들어진 알고리즘을 사용하더라도 파이썬의 자기호출 기능 등을 사용하면 소스코드를 볼 수도 있지만 라이브러리에 따라 소스코드 보기가 제공되지 않을 때도 있다.&lt;/p&gt;

&lt;p&gt;또, 딥러닝을 이론적으로 학습하고 라이브러리를 통해 배우다보면 원리를 이해하기 어렵기도 한데 이 책은 한줄한줄 작성하며 코드를 이해할 수 있도록 되어 있다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/fxsZnEw.jpg&quot; width=&quot;300&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/pngQFox.jpg&quot; width=&quot;400&quot; /&gt;&lt;/p&gt;

&lt;p&gt;또, 가장 중요한 부분이 소스코드가 잘 공개되어 있는지에 대한 것이 중요한데, 
아래의 URL에서 이 책의 소스코드를 확인할 수 있다.
&lt;a href=&quot;https://github.com/konantechnology/academy.alzza&quot;&gt;KONANtechnology/Academy.ALZZA: 교재 연습을 위한 자료를 다운받으실 수 있습니다.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/2M67vqj.png&quot; width=&quot;400&quot; /&gt;&lt;/p&gt;

&lt;p&gt;전복 데이터를 불러와 학습, 데이터세트를 나누고
순전파, 역전파 함수를 정의한 후 
정확도를 계산해 보는 코드다.&lt;/p&gt;

&lt;p&gt;프로그래밍 책은 코드를 돌려보면서 읽는게 가장 좋다고 생각하는데 바로 돌려볼 수 있도록 실습 코드가 잘 작성되어 있다.
수치계산은 대부분 NumPy를 사용하는데 이 책을 읽을 때 NumPy에 대한 기본적인 이해를 필요로 한다.
이런 수치계산에 대한 설명은 책에서 자세한 수식과 함께 친절하게 설명을 해주고 있으나 어느정도 난이도는 있는 편이다.
처음부터 딥러닝을 이 책으로 공부하는 것도 좋겠지만 나 처럼 라이브러리를 사용하다가 이 책을 보면 그동안 궁금했던 내용들을 해소할 수 있기도 했다.
어떤 방식이든 딥러닝을 밑바닥부터 이해하고 학습해 볼 수 있는 좋은 책이다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/36QEPV9.jpg&quot; width=&quot;400&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/aSiLq6o.jpg&quot; width=&quot;300&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/UHWbfbE.jpg&quot; width=&quot;400&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/HQiSL8u.jpg&quot; width=&quot;400&quot; /&gt;&lt;/p&gt;

&lt;p&gt;그리고 중요한 이론들에 대해 짤막한 삽화를 통해 이해할 수 있도록 구성되어 있으며 다양한 예제와 데이터셋도 이 책의 장점 중 하나다.
데이터셋도 각각의 폴더에 다운로드 받을 수 있는 경로가 data폴더의 readme.md 파일에 자세하게 안내되어 있다.
또, 이미지, 소리 등 다양한 종류의 데이터셋을 활용한 점도 이 책의 장점중 하나다.&lt;/p&gt;

&lt;p&gt;방대한 양을 다루고 있고 또 친절한 설명까지 저자의 엄청난 내공을 느낄 수 있는 책이었다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/KKFEwth.jpg&quot; width=&quot;300&quot; /&gt;&lt;/p&gt;

&lt;p&gt;딥러닝의 기초이론부터 내부 수학적 표현까지 이해할 수 있도록 친절하게 구성되어 있는 점이 인상적이고 
딥러닝에 입문하는 사람이든 이미 다른 라이브러리나 패키지를 사용했던 사람이든 원리를 이해하고 활용할 수 있는 점이 좋았고 
최근 2주동안 열심히 봤는데 앞으로도 자주 보며 참고할 것 같다.&lt;/p&gt;
</description>
                <link>http://corazzon.github.io/alzza-deep</link>
                <guid>http://corazzon.github.io/alzza-deep</guid>
                <pubDate>2019-09-15T00:00:00+00:00</pubDate>
        </item>

        <item>
                <title>[도서 리뷰] 파이썬 자료구조와 알고리즘</title>
                <description>
&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/IUZ505e.jpg&quot; width=&quot;375&quot; height=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;알고리즘은 어렵고 복잡하다는 느낌을 받고 있고 프로그래밍을 해온지 생각보다 오래 되었음에도 알고리즘은 어려운 분야 중 하나다.
그래서 이번에도 조금이라도 익숙해 지고자 이 책을 읽게 되었다.
일단 알고리즘같이 어려운 내용은 너무 두꺼우면 지치기 쉬운데 다른 책에 비해 가볍고 얇은 점이 마음에 들었다.&lt;/p&gt;

&lt;p&gt;요즘 외출 할 때 이 책을 자주 들고 나갔었는데 들고 다니기에 부담스럽지 않은 크기와 무게다.
또 책이 두껍지 않다보니 언제 이 어려운 알고리즘을 언제 다 읽나? 하는 생각에서도 벗어날 수가 있다.&lt;/p&gt;

&lt;p&gt;그리고 알고리즘 뿐만 아니라 파이써닉한 코드, 효율적인 코드를 작성하기 위한 팁들이 도움이 되었다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/fcKMJwg.jpg&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;그리고 프로그래밍 서적을 읽을 때 가장 먼저 하는 건 소스코드가 온라인에 공개되어 있나를 보는데
이 책의 소스코드도 다음의 URL에 공개가 되어 있다.&lt;/p&gt;

&lt;p&gt;아래 저장소에 &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Cracking the Code Interview&lt;/code&gt;(코딩 인터뷰 완전분석) 라는 유명한 책의 코드를 Python 으로 썼다는 내용이 있다. 기존 코딩 인터뷰 완전분석 책에 비해 가볍게 읽을 수 있지만 핵심적인 내용들 위주로 정리되어 있다는 점이 좋다. 이 책과 함께 아래 저장소에서 소개하는 코딩 인터뷰 완전분석이라는 책도 너무 유명한 책이라 코딩인터뷰를 준비하고 있다면 함께 보면 좋을 것 같다.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/AstinCHOI/Python-and-Algorithms-and-Data-Structures&quot;&gt;AstinCHOI/Python-and-Algorithms-and-Data-Structures: ✨Algorithms &amp;amp; Data Structure in Python book (published by Hanbit Media, Inc.) - Python solutions for every exercises from “Cracking the Code Interview”✨&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;https://github.com/AstinCHOI/Python-and-Algorithms-and-Data-Structures&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/8Dy8iFf.jpg&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;이 책의 목차를 보면 기본적인 자료구조를 알고리즘과 함께 풀어볼 수 있도록 구성되어 있다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/dALR4tz.jpg&quot; width=&quot;375&quot; height=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;그리고 이 책의 좋은 점 중 하나는 테스트코드가 함께 있다는 것이다.
그래서 테스트코드를 작성하는 습관까지 함께 익힐 수 있게 되어 있다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/R3NL5E5.jpg&quot; width=&quot;375&quot; height=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;읽으면서 가장 마음에 들었던 부분은 &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;6.2 좋은 습관&lt;/code&gt; 과 &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;6.3 단위 테스트&lt;/code&gt;부분이었다.
여기에는 가상환경, 디버깅, 프로파일링, 단위 테스트 내용이 나오는데
프로그래머로 성장하는데 있어 챕터 이름 그대로 좋은 습관이라 생각된다.&lt;/p&gt;

&lt;p&gt;또, 위에서 소개했던 코딩 인터뷰 완전분석 이라는 책의 소스코드 위치도 함께 소개한다.
코딩 인터뷰 완전분석이라는 책도 코딩테스트를 공부하는 사람들에게 필독서인데 이 책을 통해 파이썬으로 가볍게 읽어보고 코딩 인터뷰 완전분석을 읽으면 좋을 거 같다는 생각이 든다.&lt;/p&gt;

&lt;p&gt;아래 책은  &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Cracking the Code Interview&lt;/code&gt;의 Python 버전 저장소이고 이 책보다 조금 난이도가 있다. 
그래서 입문자라면 이 책을 먼저보고 아래 저장소를 보고 따라해 보는 걸 추천한다.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/careercup/CtCI-6th-Edition-Python&quot;&gt;careercup/CtCI-6th-Edition-Python: Cracking the Coding Interview 6th Ed. Python Solutions&lt;/a&gt;
https://github.com/careercup/CtCI-6th-Edition-Python&lt;/li&gt;
&lt;/ul&gt;

</description>
                <link>http://corazzon.github.io/python-algorithm-book</link>
                <guid>http://corazzon.github.io/python-algorithm-book</guid>
                <pubDate>2019-08-06T00:00:00+00:00</pubDate>
        </item>

        <item>
                <title>[도서 리뷰] 파이썬 코딩 도장</title>
                <description>
&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/RmQCOLogQxQ&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/FzCcFDYeJDk&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;코딩은 공부하는게 아니라 연습한다는 얘기에 강하게 동의한다.
다른 사람들이 수영하는 모습을 아무리 많이 본다해도 내가 직접 물에 들어가보지 않으면 수영을 배우기 힘들다. 또 다른 사람들이 자전거를 타는 모습을 아무리 많이 본다해도 내가 직접 자전거를 타보고 넘어지지 않으면 자전거를 배우기 어려울 것이다. 
그래서 프로그래밍을 배운다면 실제로 코드를 직접 타이핑해보고 오류가 나고 그 오류를 해결하는 과정에서 프로그래밍을 가장 잘 배울 수 있다고 생각한다.
백문이불여일타라는 말도 있듯이 직접 타이핑해보고 오류가 나는 경험을 겪는게 프로그래밍을 배우는 가장 좋은 방법이라는 생각이 든다.&lt;/p&gt;

&lt;p&gt;이 책은 이러한 철학을 잘 실천할 수 있도록 책 뿐만 아니라 온라인상으로도 강의를 제공하고 있다.
그래서 무거운 책을 직접 들고다니지 않더라도 지하철에서 핸드폰으로 책의 내용을 읽어볼 수도 있고 또 동영상 강의를 직접 보면서 반복해서 이론을 학습할 수 있도록 구성되어 있다.&lt;/p&gt;

&lt;p&gt;또, github에 소스코드를 다 공개해 두고 있기 때문에 온라인 상에 공개된 소스코드를 학습하는 것만으로도 파이썬을 학습하는데 도움이 된다.&lt;/p&gt;

&lt;p&gt;프로그래밍 책을 읽을 때 항상 소스코드가 존재하는지를 보고 소스코드를 구해서 직접 실행해 보며 책의 내용을 읽어본다.
왜냐하면 프로그래밍책은 읽는 것만으로는 코드가 어떻게 동작하는지 체감해 보기가 어렵기 때문에 꼭 어떤 프로그래밍 책이든 이렇게 직접 타이핑해보고 실행해 보는게 좋다고 생각한다.&lt;/p&gt;

&lt;p&gt;또, 예제를 실행하다보면 나와 버전이 맞지 않아서 아니면 환경적인 이유 때문에 오류가 발생하게 되는데 이런 부분을 직접 고쳐본다면 프로그래밍을 배우고 어떻게 에러를 핸들링해야 하는지에 대해 익숙해 지는데 도움이 된다.&lt;/p&gt;

&lt;p&gt;이 책은 점프투파이썬과 마찬가지로 책의 모든 내용이 온라인으로 공개되어 있다.&lt;/p&gt;

&lt;p&gt;파이썬 코딩 도장 URL : &lt;a href=&quot;https://dojang.io/course/view.php?id=7&quot;&gt;https://dojang.io/course/view.php?id=7&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;가끔 온라인을 공개된 책을 왜 굳이 종이책으로 읽냐고 의문을 제기하는 분들도 있는데
온라인에서 봤던 내용을 종이책으로 다시 보면 내용이 잘 정리되곤 한다.
또, 반대로 종이책을 펼쳐놓고 에디터를 열어 코딩을 하는 것도 프로그래밍에 익숙해 지는데도 도움이 된다.&lt;/p&gt;

&lt;p&gt;기본적인 파이썬 문법 뿐만 아니라 재미있는 예제를 통해 학습할 수도 있으며, 각 챕터에 대한 설명이 동영상으로 제공이 되어 있어서 온라인 영상과 종이책을 반복해서 학습할 수 있도록 되어 있다.&lt;/p&gt;

&lt;p&gt;또, unit 46에는 기상청의 기온과 습도정보를 크롤링 해오는 예제가 제공되어 있다.
학습한 파이썬 기초를 통해 데이터를 크롤링해서 분석해 보는 예제를 함께 실습해 볼 수 있어서 영상으로도 실습하는 것을 남겨봤다.&lt;/p&gt;

&lt;p&gt;아래에 소스코드와 온라인 강좌를 링크했다.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;GitHub 링크 : &lt;a href=&quot;https://github.com/gilbutITbook/006936&quot;&gt;https://github.com/gilbutITbook/006936&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://dojang.io/course/view.php?id=7&quot;&gt;강좌: 파이썬 코딩 도장&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;google colaboratory : &lt;a href=&quot;https://colab.research.google.com/github/gilbutITbook/006936/blob/master/Unit%2046/weather.ipynb&quot;&gt;https://colab.research.google.com/github/gilbutITbook/006936/blob/master/Unit%2046/weather.ipynb&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;colab 한글폰트 사용방법 : &lt;a href=&quot;https://goo.gl/HKdc2S&quot;&gt;https://goo.gl/HKdc2S&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;
</description>
                <link>http://corazzon.github.io/python-coding-dojang</link>
                <guid>http://corazzon.github.io/python-coding-dojang</guid>
                <pubDate>2019-07-18T00:00:00+00:00</pubDate>
        </item>

        <item>
                <title>[도서 리뷰] 파이썬 라이브러리를 활용한 데이터 분석(2판)</title>
                <description>
&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/c0s_QYrsXZs&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;&lt;a href=&quot;http://www.hanbit.co.kr/store/books/look.php?p_code=B6417848794&quot;&gt;파이썬 라이브러리를 활용한 데이터 분석(2판)&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;주변에서 판다스 책을 추천해 달라는 얘기를 들으면 이 책을 가장 우선으로 추천하곤 했다.
제목은 &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;파이썬 라이브러리를 활용한 데이터 분석&lt;/code&gt;이지만 이 책 만큼 판다스를 잘 다루고 있는 책은 드물 것이다. 왜냐면 이 책은 판다스 라이브러리를 개발한 웨스매키니가 직접 쓴 책이기 때문이다.&lt;/p&gt;

&lt;p&gt;수학을 전공한 웨스매키니는 R에서 영향을 받아 판다스 라이브러리를 만들었다고 한다.
또, 증권사에서 퀀트로 일했던 개발자가 만든 라이브러리라서 행과열로 된 데이터 뿐만 아니라 시계열 데이터를 다루기도 좋다.
그리고 내부적으로 Numpy 라이브러리를 수치계산 라이브러리로 사용하고 있기 때문에 계산도 빠른 편이다.
데이터분석, 전처리, 피처엔지니어링, 시각화, 시계열 분석, 업무 자동화 등 판다스는 다양한 분야에서 활용되고 있다.&lt;/p&gt;

&lt;p&gt;또, 비전공자나 비개발자들이 프로그래밍을 배우고 싶다고 뭐부터 배우면 좋을지 물어보면 판다스 라이브러리를 가장 많이 추천한다.&lt;/p&gt;

&lt;p&gt;엑셀은 전공이나 도메인에 무관하게 사용되고 있다. 그런데 엑셀의 치명적인 단점이 대용량 데이터를 다루기에 적합하지 않다는 것이다. 100만줄 이상의 엑셀파일을 불러온 경험이 있는 사람이라면 그 데이터를 로드하는 것도 힘들지만 컬럼하나를 추가하거나 간단한 수식을 추가하기 위해서도 우리의 많은 인내심을 요구하게 된다.&lt;/p&gt;

&lt;p&gt;그런데 같은 파일을 판다스로 읽어온다면 내 컴퓨터의 메모리가 허락하는 한도내에서 데이터를 로드해서 전처리를 자유롭게 할 수 있고 파이썬 스크립트를 작성해 놓으면 매달 혹은 매주, 매일, 반복되는 업무에서 파일위치만 변경해 주면 반복된 작업을 엑셀만을 사용하는 것보다 간편하게 처리할 수 있다.&lt;/p&gt;

&lt;p&gt;이 책의 초판이 출판된지 시간이 많이 지나서 2판이 나왔으면 좋겠다는 생각을 종종 해왔는데 이렇게 2판이 출판되었을 때 반가운 마음이 들었다.&lt;/p&gt;

&lt;p&gt;또, 이 책은 판다스 뿐만 아니라 책의 초반부를 파이썬 기초 문법에 할애하고 있다. 이 책을 통해 파이썬을 처음 배우는 초심자라면 꼭 필요한 파이썬 기초도 함께 배울 수 있다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/J4Klqpl.jpg&quot; height=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;p&gt;책 표지 - 만약 판다곰이 판다스와 관계가 있다면 표지가 판다곰이지 않았을까 싶지만,
판다곰과 Pandas는 아무런 상관이 없기 때문에 표지에도 판다곰이 등장하지 않는다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/8bxlTkP.jpg&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;p&gt;2판이 나오며 개선된 내용이 정리되어 있다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/TBF8lcJ.jpg&quot; height=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;p&gt;목차 - bit.ly의 usa.gov 데이터로 실사례를 분석해 볼 수 있다.
타임존, 운영체제별 데이터를 집계해보는 예제가 있다.&lt;/p&gt;

&lt;p&gt;MovieLens의 데이터는 영화 평점 데이터를 텍스트와 함께 분석해 본다.&lt;/p&gt;

&lt;p&gt;신생아 이름은 1800년대부터 태어난 신생아의 이름을 분석해 보며, 특정 이름이 특정 시기에 유행을 하고 있다는 것을 볼 수 있다.&lt;/p&gt;

&lt;p&gt;이 외에도 미국 농무부의 영양소 정보라든지, 연방선거관리 위원회 데이터베이스를 볼 수 있다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/GiAIK2H.jpg&quot; height=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;p&gt;matplotlib을 pandas 를 통해 더 간단하게 사용할 수 있는 코드를 안내한다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/0FdebCl.jpg&quot; height=&quot;600&quot; /&gt;&lt;/p&gt;

&lt;p&gt;유행하는 이름의 트랜드를 시각화로 확인해 볼 수 있다.&lt;/p&gt;

&lt;p&gt;그리고 아래의 URL에 소스코드도 모두 공개가 되어 있다.&lt;/p&gt;

&lt;p&gt;2판이 업데이트 되며, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;2nd-edition&lt;/code&gt; 이라는 브랜치가 추가되었다.&lt;/p&gt;

&lt;p&gt;아래의 링크에서 colab으로 직접 실습이 가능하다.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://colab.research.google.com/github/wesm/pydata-book/blob/2nd-edition/ch02.ipynb&quot;&gt;https://colab.research.google.com/github/wesm/pydata-book/blob/2nd-edition/ch02.ipynb&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;github 소스코드는 아래 링크에서 확인해 볼 수 있다.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/wesm/pydata-book&quot;&gt;wesm/pydata-book: Materials and IPython notebooks for “Python for Data Analysis” by Wes McKinney, published by O’Reilly Media&lt;/a&gt;&lt;/p&gt;
</description>
                <link>http://corazzon.github.io/pydata-pandas-book</link>
                <guid>http://corazzon.github.io/pydata-pandas-book</guid>
                <pubDate>2019-07-14T00:00:00+00:00</pubDate>
        </item>

        <item>
                <title>[도서 리뷰] 파이썬으로 웹 크롤러 만들기(2판) : 초간단 나만의 웹 크롤러로 원하는 데이터를 가져오는 방법</title>
                <description>
&lt;p&gt;파이썬으로 웹 크롤러 만들기(2판)&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/ex9JP1iFcnY&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; encrypted-media; gyroscope; picture-in-picture&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/Z5xRVQH.jpg&quot; /&gt;&lt;/p&gt;

&lt;p&gt;이 책의 초판도 인상적으로 읽었는데, 2판이 나와서 다시 읽어보게 되었다.
기존 초판에서 4, 5, 16장이 추가되었다고 한다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/dEOJYQN.png&quot; /&gt;&lt;/p&gt;

&lt;p&gt;프로그래밍 책을 읽을 때 가장 먼저 하는 일은 github 저장소가 있는지 찾는다.
이 책의 저자도 github 페이지에 책의 소스코드를 공개하고 있고 주피터 노트북을 통해 바로 실습할 수 있도록 .ipynb 확장자로 파일을 제공하고 있다.
또, 초판에서는 소스코드를 .py 형태로 제공했는데 2판이 나오며 .ipynb 형태로 제공하고 있기 때문에 주피터노트북과 google colabortory를 통해 코드를 바로 실행해 볼 수있게 되었다.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/REMitchell/python-scraping&quot;&gt;https://github.com/REMitchell/python-scraping&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/67FA4sY.png&quot; /&gt;&lt;/p&gt;

&lt;p&gt;소스코드를 열어볼 때는 로컬장비에 클론을 받아 주피터노트북으로 열어보는 방법도 있지만, 아래의 링크처럼 바로 Colaboratory로 열어 소스코드를 실행해 볼 수 있다.
&lt;a href=&quot;https://colab.research.google.com/github/REMitchell/python-scraping/&quot;&gt;https://colab.research.google.com/github/REMitchell/python-scraping/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;위에 있는 colab URL을 실행하면 바로 소스코드를 실행해 볼 수 있다.
또, 개발서적을 볼 때 텍스트 보다 소스코드를 먼저보고 이 소스코드가 뭘 의미할지 먼저 고민해 보고 텍스트를 보는데 이렇게 프로그래밍 관련 책을 읽을 때는 소스코드를 먼저 실행해 보면 텍스트를 봤을 때 더 도움이 되는 것 같다.&lt;/p&gt;

&lt;p&gt;크롤링을 할 때 보통 유명사이트를 크롤링하는 예제로 만들어질 때가 많은데 이 책은 크롤링을 위해 사이트를 임의로 만들었다. 이렇게 별도의 사이트를 만드는데는 실습하고자 하는 의도를 잘 표현할 수 있다는 점과 사이트의 레이아웃이 변경되거나 했을 때 책의 소스코드가 돌아가지 않는 점을 방지할 수 있을거 같다.
크롤링을 위한 사이트를 만들어 놓았기 때문에 사이트의 내용이 변경되어 책의 소스코드를 사용할 수 없게 되는 일을 방지할 수 있다는 점이 좋았다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/MoqqMYg.png&quot; /&gt;&lt;/p&gt;

&lt;p&gt;또, 이렇게 실습 사이트를 만들었을 때 실습용으로 만든 사이트이기 때문에 서비스에 부담을 주지 않는 것도 장점일 것 같다. 사이트를 크롤링하면 트래픽이 몰릴 수 밖에 없기 때문에 서비스에 부담을 주게 되는데 실습용으로 제작된 사이트에서 여러 배려를 느낄 수 있었다.&lt;/p&gt;

&lt;p&gt;웹 크롤링 혹은 스크래핑은 책에서 얘기하는 것 처럼 프로그래밍을 전문적으로 다루는 사람이든 아니든 누구든 흥미로워 하는 분야 중에 하나인것 같다.
또, 웹 크롤링을 위해서는 웹에 대한 전반적인 지식을 필요로 한다.
그래서 크롤링으로 프로그래밍을 배우게 된다면 웹에 대한 전반적인 내용을 배울 수 있는 주제라는 생각이 든다.&lt;/p&gt;

&lt;p&gt;그래서 웹 스크래핑을 이해하기 위해서는 프로그래밍 기초지식도 필요하지만 html 이라든지 css, 자바스크립트 등에 대한 이해도 필요로 한다.&lt;/p&gt;

&lt;h2 id=&quot;다양한-형식으로-저장하기&quot;&gt;다양한 형식으로 저장하기&lt;/h2&gt;

&lt;p&gt;데이터를 수집해서 어떻게 저장해서 처리해야 하는지도 중요한데, 이 책은 csv형태의 파일로 저장하는 코드 뿐만 아니라 데이터베이스를 활용해서 저장하는 방법까지 다루고 있다.&lt;/p&gt;

&lt;h2 id=&quot;텍스트-마이닝-기법ngram-마르코프-모델&quot;&gt;텍스트 마이닝 기법(ngram, 마르코프 모델)&lt;/h2&gt;

&lt;p&gt;이 책에서 가장 인상적이었던 부분은 텍스트데이터를 전처리 하고 다루는 방법에 대한 내용이다.
크롤링과는 조금 거리가 있는 내용일 수도 있지만 수집한 비정형 데이터를 분석하기 위해서는 텍스트 마이닝 기술을 가지고 있으면 좀 더 다양한 분석을 해볼 수 있다. 또, 웹상에서 수집한 데이터는 텍스트 데이터가 많은데 아무리 수집을 많이 한다고 해도 의미를 찾을 수 없다면 무용한 일이 될 수도 있을 것이다.
초판에서도 이 책에서 인상적이었던 부분은 이런 텍스트마이닝 기법이었다.
게다가 머신러닝이나 딥러닝에서 활용되고 있는 마르코프 모델에 대한 내용까지 다루고 있다.&lt;/p&gt;

&lt;h2 id=&quot;이미지-처리와-텍스트-인식&quot;&gt;이미지 처리와 텍스트 인식&lt;/h2&gt;
&lt;p&gt;웹 상에서 가져온 이미지에 있는 텍스트를 다룰 수 있도록 OCR 라이브러리도 다루고 있다. 그리고 수집된 이미지를 학습해서 이미지의 문자를 인식할 수 있는 머신러닝 기술에 대한 설명도 함께 하고 있다.&lt;/p&gt;

&lt;h2 id=&quot;테스트&quot;&gt;테스트&lt;/h2&gt;

&lt;p&gt;웹사이트를 주기적으로 크롤링하다보면 어느 날 사이트가 변경이 되어 작성했던 크롤링 스크립트가 동작하지 않는 경험을 하기도 한다. 또 테스트코드를 작성하는 것은 좋은 습관 중에 하나이기도 하다.
이 책은 이런 코드들을 모두 주피터 노트북에서 실행할 수 있는 소스코드로 제공하고 있다.&lt;/p&gt;

&lt;h2 id=&quot;저작권&quot;&gt;저작권&lt;/h2&gt;
&lt;p&gt;크롤링을 통해 데이터를 수집할 때 가끔 저작권을 간과해서 이슈가 되는 사례를 종종 봐왔다.
크롤링을 하기 전에 수집을 해도 되는 데이터인지 저작권에는 문제가 없는지 합법성과 윤리에 대해서도 구체적인 사례를 통해 설명하고 있다.&lt;/p&gt;

&lt;p&gt;초판의 내용도 좋았기 때문에 어떤 내용이 추가되었을 지 궁금했는데 크롤링을 하면 대량의 페이지를 가져올 때 좀 더 빠르게 혹은 효율적으로 작업하기 위한 병렬처리 내용이 추가된 것도 인상적이다.&lt;/p&gt;

&lt;p&gt;책의 소스코드도 잘 정리되어 있어서 실습과 함께 볼 수 있는 점이 좋았다.&lt;/p&gt;
</description>
                <link>http://corazzon.github.io/python-scraping</link>
                <guid>http://corazzon.github.io/python-scraping</guid>
                <pubDate>2019-06-08T00:00:00+00:00</pubDate>
        </item>

        <item>
                <title>[도서 리뷰] 엑셀만 알아도 할 수 있는 데이터 과학</title>
                <description>
&lt;p&gt;엑셀만 알아도 할 수 있는 데이터 과학&lt;/p&gt;

&lt;p&gt;책 제목에서부터 쉽게 풀어썼을 것 같은 느낌에 이 책에 관심이 갔다. 
막상 실무에서 데이터 과학을 한다 하더라도 엑셀을 많이 사용하는 편이고 꼭 복잡한 기술을 써야하는게 아니기 때문에 책 제목이 마음에 들었다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/SRn8giY.jpg&quot; width=&quot;400&quot; /&gt;&lt;/p&gt;

&lt;p&gt;이 책 앞 부분에 있는 옮긴이의 말 처럼 데이터 과학은 꼭 대용량 컴퓨터가 필요하고 복잡한 기술이 없어도 가능한게 데이터과학이라 생각한다.
이 책의 초반에 나오는 이 얘기를 통해 이 책이 쉽게 쓰여졌음을 그리고 기본적인 통계기능과 엑셀의 몇 가지 수식만으로도 데이터과학을 할 수 있음을 얘기해 준다.&lt;/p&gt;

&lt;p&gt;또, 이 책은 일본어로 된 책을 번역한 책이라 공공데이터를 사용했다 하더라도 일본의 데이터를 그대로 사용했겠다 생각했는데 일본 공공 데이터와 함께 국내 공공데이터를 활용하는 사례도 함께 나와있다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/7VEAoFm.jpg&quot; width=&quot;400&quot; /&gt;&lt;/p&gt;

&lt;p&gt;데이터의 척도와 종류에 따라 분석하는 방법이 달라지는데 질적자료, 양적자료에 대해 자세하게 설명이 되어 있다.
데이터를 바라볼 때 질적자료인지 양적자료인지 수치형인지 범주형인지 연속적인지 비연속적인지에 따라 분석과 시각화가 달라지는데 이런 부분도 예제와 실습을 적절하게 구성되어 있다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/liwbtrk.jpg&quot; width=&quot;400&quot; /&gt;&lt;/p&gt;

&lt;p&gt;데이터 클리닝, 새로운 변수의 작성 등 데이터를 전처리 하거나 분석을 해서 새로운 변수를 추가해주는 이유에 대해 설명하고 그 방법을 구체적으로 설명하고 있다.
이 책에서는 인구데이터를 주로 예제로 사용하는데
연령을 20대, 30대, 40대 처럼 숫자의 특성의 데이터를 범주화 하는 기법에 대해서도 설명과 함께 시각화가 되어 있어 이해하기 쉽게 되어 있다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/lXFK2JG.jpg&quot; width=&quot;400&quot; /&gt;&lt;/p&gt;

&lt;p&gt;연령의 binning 혹은 bucketing 예제&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/GUwzL6W.jpg&quot; width=&quot;400&quot; /&gt;&lt;/p&gt;

&lt;p&gt;막대그래프의 종류&lt;/p&gt;

&lt;p&gt;막대그래프를 그릴 때 다양한 종류로 그릴 수 있는 예제와 쌓아올린 막대그래프와 쌓아올리지 않은 막대그래프의 차이를 시각화 하여 잘 설명하고 있다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/AXqiPZ6.jpg&quot; width=&quot;400&quot; /&gt;&lt;/p&gt;

&lt;p&gt;표준오차, 첨도, 왜도
데이터 과학을 다루며 기본적으로 배우게 되는 이론적인 내용에 대해서 수학공식과 함께 이해할 수 있도록 되어있다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/stc6CA6.jpg&quot; width=&quot;400&quot; /&gt;&lt;/p&gt;

&lt;p&gt;국내통계
일본 서적이라 일본의 공공데이터만 다루지 않을까 했는데 역자가 국내데이터로 이 부분을 따로 만든것 같다. 국내에서 사용할 수 있는 인구데이터를 가져와 우리나라에 맞게 실습할 수 있도록 가이드를 주고 있다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/TnfkGIc.jpg&quot; width=&quot;400&quot; /&gt;&lt;/p&gt;

&lt;p&gt;전체적으로 쉽게 설명하려고 노력한 흔적이 많이 보이는 책이다. 통계학에 대한 기초적인 지식을 이해할 수 있고, 데이터 요약과 시각화를 인구데이터를 통해 실질적인 예제로 이해할 수 있도록 구성되어 있다. 통계는 수식이 많고 복잡해서 실제 데이터로 이해해보고 공식을 적용해 보지 않으면 개념을 이해하기가 쉽지 않은데 이런부분을 최대한 쉽게 설명하려고 노력한 책인 것 같다.&lt;/p&gt;
</description>
                <link>http://corazzon.github.io/excel-data-science</link>
                <guid>http://corazzon.github.io/excel-data-science</guid>
                <pubDate>2019-04-12T00:00:00+00:00</pubDate>
        </item>

        <item>
                <title>Mac OSX python ssl.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed</title>
                <description>
&lt;p&gt;Mac OSX python ssl.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:749)&lt;/p&gt;

&lt;p&gt;NLTK data를 다운로드 할 때 SSL 오류메시지가 나와서 nltk data downloader 에 문제가 있는건가 생각했었다.
결국 nltk 데이터를 깃헙에서 다운로드 받아 썼는데&lt;/p&gt;

&lt;p&gt;파이썬으로 크롤링을 하다보니 https 프로토콜로 통신을 하려고 하면 같은 오류가 발생해서 무슨 문제일까 고민했었다.
구글링을 해보니 https를 사용하지 않는 방법으로 해결했다는 답변들이 대부분이라 http 통신으로 우회하는 방법을 사용했다.&lt;/p&gt;

&lt;p&gt;그런데 알고보니 너무나 간단한 방법으로 이 이슈를 해결할 수 있었다.
아래의 글을 보고 Finder로 Applications/Python 3.6 폴더를 열었다.
그리고 아래 파일을 더블클릭해서 설치했다.&lt;/p&gt;

&lt;p&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Install Certificates.command&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/9YSiPiq.png&quot; alt=&quot;9YSiPiq.png (1764×1096)&quot; /&gt;&lt;/p&gt;

&lt;p&gt;그리고 파이썬에서 SSL 오류는 더 이상 발생하지 않았다.
이 문제를 해결하기 위해 셀프 인증서를 발급받는 방법 이라든지 여러 삽질을 했다.&lt;/p&gt;

&lt;p&gt;간단한 문제였는데 너무 허무하게 해결되었다.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://stackoverflow.com/questions/42098126/mac-osx-python-ssl-sslerror-ssl-certificate-verify-failed-certificate-verify&quot;&gt;macos - Mac OSX python ssl.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:749) - Stack Overflow&lt;/a&gt;&lt;/p&gt;

</description>
                <link>http://corazzon.github.io/python_ssl_error</link>
                <guid>http://corazzon.github.io/python_ssl_error</guid>
                <pubDate>2018-07-07T00:00:00+00:00</pubDate>
        </item>

        <item>
                <title>[NDC후기] 소프트웨어 2.0을 활용한 게임 어뷰징 검출</title>
                <description>
&lt;p&gt;소프트웨어 2.0 소개&lt;/p&gt;

&lt;iframe src=&quot;//www.slideshare.net/slideshow/embed_code/key/Ag4ySi7GGiuKbk&quot; width=&quot;595&quot; height=&quot;485&quot; frameborder=&quot;0&quot; marginwidth=&quot;0&quot; marginheight=&quot;0&quot; scrolling=&quot;no&quot; style=&quot;border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;&quot; allowfullscreen=&quot;&quot;&gt; &lt;/iframe&gt;
&lt;div style=&quot;margin-bottom:5px&quot;&gt; &lt;strong&gt; 
&lt;a href=&quot;//www.slideshare.net/ssuser163469/20-95081863&quot; title=&quot;소프트웨어 2.0을 활용한 게임 어뷰징 검출&quot; target=&quot;_blank&quot;&gt;소프트웨어 2.0을 활용한 게임 어뷰징 검출&lt;/a&gt; &lt;/strong&gt; 
&lt;/div&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;그간 NDC에 가고 싶었지만 매번 늦게 신청해서 못 갔는데, 
이번에는 첫 날 신청을 해서! 드디어 처음으로 NDC에 가보게 되었다.
NDC에서 가장 듣고 싶었던 세션인 소프트웨어 2.0에 대한 발표를 듣고 정리한 내용이다.
발표자 분은 예전에 같은 회사에서 일했던 롤모델같은 분이기도 하다.
NDC뿐만 아니라 파이콘에서도 좋은 발표를 많이 해주셨었다.
이번에도 역시나 너무 좋은 발표로 자연어 처리에 관심이 많은 내게 도움이 되는 발표였다.
발표를 들으며 빠르게 타이핑한 내용을 남겨본다.
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h3 id=&quot;발표를-듣기-전에-미리-읽어-볼-것&quot;&gt;발표를 듣기 전에 미리 읽어 볼 것&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://gist.github.com/haje01/d2518ea998ab2de102b072fed600c0a4&quot;&gt;소프트웨어 2.0.md&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;마르코프-연쇄로-랜덤-이름-찾기&quot;&gt;마르코프 연쇄로 랜덤 이름 찾기&lt;/h3&gt;

&lt;blockquote&gt;
  &lt;p&gt;게임을 만들다가 좋은 성과를 거두지 못해 이유를 생각해 봤다.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3 id=&quot;운영의-중요성&quot;&gt;운영의 중요성&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;운영은 유저와의 소통이 중요하다. 유저는 디데일하게 친절하게 왜 접었는지 재미없는지 얘기해 주지 않는다.&lt;/li&gt;
  &lt;li&gt;이걸 보는 방법은 데이터를 보는 것이다.&lt;/li&gt;
  &lt;li&gt;그래서 데이터 엔지니어링부터 시작했다.&lt;/li&gt;
  &lt;li&gt;로그를 중앙으로 모으고 기계학습으로 어뷰징 검출을 시도해 보고 제작년 NDC에서 발표를 한 적이 있다.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;로그-수집&quot;&gt;로그 수집&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;수집 된 로그를 하둡을 통해 정제&lt;/li&gt;
  &lt;li&gt;수작업으로 개발한 특성(Feature)을 이용해&lt;/li&gt;
  &lt;li&gt;스패머 검출하는 로직에 대한 소개&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;2016년-발표에서-몇-가지-달라진-것&quot;&gt;2016년 발표에서 몇 가지 달라진 것&lt;/h3&gt;

&lt;ol&gt;
  &lt;li&gt;하둡에서 스파크를 사용하는 것으로 바뀌었다.
    &lt;ul&gt;
      &lt;li&gt;무엇보다 빠르고 사용하기 편하다.&lt;/li&gt;
      &lt;li&gt;하둡보다 월등하게 좋아진 플랫폼이다.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;수작업된 특성에서 데이터에서 학습된 특성으로
    &lt;ul&gt;
      &lt;li&gt;데이터에서 컴퓨터가 스스로 학습을 해서 스스로 어뷰저를 찾도록 하고 있다.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;수동 제재에서 자동 제재로
    &lt;ul&gt;
      &lt;li&gt;제재를 하기 전에 GM과 협의를 해서 제재를 했지만 이제 어느정도 안정화 단계에 이르러서 사람을 거치지 않고 로그를 중앙에 모으고 기계학습을 하고 사람의 손을 거치지 않고 자동으로 제재한다.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;h3 id=&quot;기존에도-여러-방법을-통해-게임어뷰저를-제재하고-있을텐데&quot;&gt;기존에도 여러 방법을 통해 게임어뷰저를 제재하고 있을텐데&lt;/h3&gt;

&lt;ol&gt;
  &lt;li&gt;이걸 기계학습으로 하는 이유는 게임 본래 데이터의 특성 때문이다.
    &lt;ul&gt;
      &lt;li&gt;내용이 굉장이 많다. 아이템, 강화, 퀘스트 등 하나의 이벤트로 보고 관련 정보를 쓰다보면 종류와 용량이 많아지고 기획 내용에 따라 포맷이 달라진다.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;다양한 특성을 동시에 고려해야
    &lt;ul&gt;
      &lt;li&gt;여러 특성을 같이 봐야 한다. 아이피 대역이 중국인가? 플레이 한지 며칠이 되었나? 플레이 시간은 얼마고&lt;/li&gt;
      &lt;li&gt;사람은 동시에 몇 개의 특성이 늘어나면 판단하기가 점점 힘들어 진다.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;24시간 모니터링 &amp;amp; 자동 제재
    &lt;ul&gt;
      &lt;li&gt;기계학습을 통해 어뷰징 제재를 하고 있다.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;h3 id=&quot;사용중인-어뷰징-검출-특성들일부&quot;&gt;사용중인 어뷰징 검출 특성들(일부)&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;플레이시간, 스킬사용, 던전 클리어 유료결제 한 적이 있는가 여러 가지 특성을 종합적으로 살펴보고 있다.&lt;/li&gt;
  &lt;li&gt;피처엔지니어링을 통해 뽑아낸 특성들을 포함해서 모든 특성들을 종합적으로 판단하고 있다.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;소프트웨어-20-소개&quot;&gt;소프트웨어 2.0 소개&lt;/h2&gt;
&lt;ul&gt;
  &lt;li&gt;최근 인공지능이나 기계학습이 화두가 되고 있다. 여러 학문 분야 중에 자기의 입장에 따라 기계학습을 다양하게 이해하고 학습하고 있다.&lt;/li&gt;
  &lt;li&gt;연결주의자는 기계학습은 사람의 뇌를 모사함 그래서 뉴럴넷으로 구현&lt;/li&gt;
  &lt;li&gt;베이즈 주의자는 베이즈 정리로 설명&lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;논리학 쪽에서는 심볼릭 로직인 기호주의자는 기호로 사회현상을 귀납적으로 추론한다.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;진화주의자나 유추주의자도 기계학습을 바라보고 해석하고 있다.&lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;마스터 알고리즘이라는 책에서 이미지를 가져와서 몇 가지를 추가함&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;개발자의 관점에서는 데이터에서 학습되는 코드로 볼 수 있지 않나? 생각됨&lt;/li&gt;
  &lt;li&gt;코드 베이스로 서비스까지 이루어지니까 기존의 소프트웨어와 다른 것일까? 혼자만의 생각을 하게 되었다.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;소프트웨어-20-andrej-karpathy라는-딥러닝계의-연구자&quot;&gt;소프트웨어 2.0 &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Andrej Karpathy&lt;/code&gt;라는 딥러닝계의 연구자&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://cs.stanford.edu/people/karpathy/&quot;&gt;Andrej Karpathy Academic Website&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;뉴럴넷은 또 다른 분류기가 아니라 근본적인 변화다. 그것은 소프트웨어 2.0이다. 메니페스토처럼 선언했다.&lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;실세계의 문제들중 많은 것이 프로그래머가 프로그램을 짜기 보다 모으는 것이 훨씬 더 쉬운 속성을 가지고 있다.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;미래의 프로그래머 중 많은 이들은 뉴럴넷에 공급할 데이터를 수집, 정리, 조작, 라벨링하고 분석 및 시각화 하는 일을 할 것이다.&lt;/li&gt;
  &lt;li&gt;넓게 보면 뉴럴넷만이 SW2.0을 뜻하지는 않으며, 조심스럽지만 개발자의 관점에서 기계학습대신 소프트웨어2.0으로 발표제목을 걸었다.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;소프트웨어-10과-20의-흐름&quot;&gt;소프트웨어 1.0과 2.0의 흐름&lt;/h2&gt;

&lt;h3 id=&quot;10&quot;&gt;1.0&lt;/h3&gt;
&lt;p&gt;구현된 서비스가 동작하고 데이터가 나온다.
서버가 다루는 다량의 로그&lt;/p&gt;

&lt;h3 id=&quot;20&quot;&gt;2.0&lt;/h3&gt;
&lt;p&gt;이미 구현이 되어있고 그 구현에서 동작을 하고 있다. 그 동작에서 데이터가 뽑아짐
우리가 원하는 기능을 구현하게 진행된다.&lt;/p&gt;

&lt;h3 id=&quot;sw20에-필요한-스킬들&quot;&gt;SW2.0에 필요한 스킬들&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;데이터 특성 파악 - 탐색적 데이터 분석(EDA)&lt;/li&gt;
  &lt;li&gt;대용량 데이터 다루기 - 빅데이터 처리&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;sw-20을-위한-도구&quot;&gt;SW 2.0을 위한 도구&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;프로그래밍 언어(전처리 분야에는 이 부분이 꼭 필요)&lt;/li&gt;
  &lt;li&gt;시각화 도구&lt;/li&gt;
  &lt;li&gt;기계학습 라이브러리&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;spark&quot;&gt;Spark&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;꼭 빅데이터가 아니어도 가능하지만…&lt;/li&gt;
  &lt;li&gt;규모 가변성&lt;/li&gt;
  &lt;li&gt;많은 데이터가 영리한 알고리즘을 이긴다.&lt;/li&gt;
  &lt;li&gt;최고의 빅데이터 플랫폼&lt;/li&gt;
  &lt;li&gt;또한, 범용 분산 처리 플랫폼&lt;/li&gt;
  &lt;li&gt;머신하나에 의존하는 플랫폼을 쓰면 빅데이터에 적용이 어렵다. 스파크를 쓰면 클러스터를 키우면 되기 때문에 규모 가변성이 가장 큰 장점이다.&lt;/li&gt;
  &lt;li&gt;범용 분산처리 플랫폼 게임을 만들면서도 분산처리에 응용할 수도 있음&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;spark-분산처리의-예&quot;&gt;Spark 분산처리의 예&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;사례1) 대용량 텍스트 로그 정리&lt;/li&gt;
  &lt;li&gt;중복 및 오류가 있는 원천 로그 파일의 정리 과제&lt;/li&gt;
  &lt;li&gt;한 달 에상 -&amp;gt; 30대 클러스터 분산으로 하루에 완료&lt;/li&gt;
  &lt;li&gt;아마존 EMR로 분산처리, 로컬에서 코드 최적화도 하고 팁을 만들어낼 수도 있었겠지만 비용을 써서 빨리 해결할 수 있었음&lt;/li&gt;
  &lt;li&gt;사례2) 기계학습된 모델로 대량 검출&lt;/li&gt;
  &lt;li&gt;학습된 랜덤포레스트 모델을 분산해 검출&lt;/li&gt;
  &lt;li&gt;10배 이상의 속도 향상&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;분산-검출의-예&quot;&gt;분산 검출의 예&lt;/h4&gt;

&lt;h4 id=&quot;spark-환경-추천&quot;&gt;Spark 환경 추천&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;아마존 같은 온디맨드 서비스를 사용&lt;/li&gt;
  &lt;li&gt;높은 가성비, 설치, 유지보수 등의 비용을 생각한다면 추천함&lt;/li&gt;
  &lt;li&gt;일반적으로 CSV, JSON 사용하는데 Parque, ORC 포맷을 이용하면 10배의 속도가 나온다.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;딥러닝-라이브러리&quot;&gt;딥러닝 라이브러리&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;소프트웨어 2.0의 핵심&lt;/li&gt;
  &lt;li&gt;텐서플로우 : 넓은 레퍼런스 + 빠른 속도 -&amp;gt; 실제 서비스에 적합&lt;/li&gt;
  &lt;li&gt;PyTorch : 간결함 + 디버깅 용이 -&amp;gt; 연구에 적합&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;자동-미분--임의의-연산이-미분-가능&quot;&gt;자동 미분 : 임의의 연산이 미분 가능&lt;/h4&gt;
&lt;p&gt;방정식 풀이, 파라메터 처리 등 다양한 용도로 사용할 수 있다.&lt;/p&gt;

&lt;h3 id=&quot;참고--사용-중인-분석-시스템-구조&quot;&gt;참고 : 사용 중인 분석 시스템 구조&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;리얼타임 모니터링을 엘라스틱서치&lt;/li&gt;
  &lt;li&gt;사이킷런과 파이토치를 사용해서 분산 검출하고 있다.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;사례&quot;&gt;사례&lt;/h2&gt;

&lt;h3 id=&quot;마르코프-이론&quot;&gt;마르코프 이론&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;어뷰징 캐릭터(계정)는 소모품이다.&lt;/li&gt;
  &lt;li&gt;이름을 대충 랜덤하게 짓습니다.&lt;/li&gt;
  &lt;li&gt;이것을 정량화 할 수 있다면? 어뷰징 검출에 도움이 되지 않을까?&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;기존-랜덤-이름-검출-방식&quot;&gt;기존 랜덤 이름 검출 방식&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;자/모음의 패턴&lt;/li&gt;
  &lt;li&gt;수작업된 코드&lt;/li&gt;
  &lt;li&gt;데이터로 학습할 수 없을까?&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;마르코프-연쇄&quot;&gt;마르코프 연쇄&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;마르코프 성질 - 과거는 현재, 현재는 미래에 영향을 줌&lt;/li&gt;
  &lt;li&gt;날씨의 예 - SSSCRS 맑다가 흐리다 비가오는 일, 비가 오면 날씨가 갠다. 갠 날씨에서 갑자기 비가오는 확률은 적다.&lt;/li&gt;
  &lt;li&gt;일종의 전이확률로 파악할 수 있다.&lt;/li&gt;
  &lt;li&gt;영어 단어의 마르코프 연쇄&lt;/li&gt;
  &lt;li&gt;확률을 학습하기 위해 큰 코퍼스&lt;/li&gt;
  &lt;li&gt;문자를 2개씩 추출해서 어떤 문자 다음에 어떤 문자가 오더라는 것을 확률로 평균을 구함&lt;/li&gt;
  &lt;li&gt;문자간 전이 확률&lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;d 다음에 스페이스가 많이 나오는 것은 과거형이 많아서 일듯&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;이 확률을 계산해 랜덤한 확률을 구함&lt;/li&gt;
  &lt;li&gt;산출된 랜덤 점수의 예 : 이것을 분류기의 특성 중 하나로 하여 어뷰저 검출에 참고하여 정확도가 향상 됨&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;text-cnn으로-스팸-검출&quot;&gt;Text CNN으로 스팸 검출&lt;/h2&gt;
&lt;ul&gt;
  &lt;li&gt;예전 정규식으로 스팸을 검출하면 창과 방패의 싸움이 이어짐&lt;/li&gt;
  &lt;li&gt;2016년 발표자료에서 통계적 스팸 검출방식은 임계치를 파악하여 어뷰저가 우회하기도 함&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;cnn&quot;&gt;CNN&lt;/h2&gt;
&lt;ul&gt;
  &lt;li&gt;이미지를 분류하기 위해 특징을 추출하는 방식&lt;/li&gt;
  &lt;li&gt;이미지 분류를 위해 만들어지기는 했지만 소리나 텍스트에도 많이 사용됨&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;목표&quot;&gt;목표&lt;/h3&gt;
&lt;ol&gt;
  &lt;li&gt;기본 스팸 메시지에서 학습&lt;/li&gt;
  &lt;li&gt;빈번한 모델 갱신이 필요 없게 - 잦은 유지보수 힘듦&lt;/li&gt;
  &lt;li&gt;빠른 검출 시간&lt;/li&gt;
&lt;/ol&gt;

&lt;h3 id=&quot;학습-준비&quot;&gt;학습 준비&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;눈으로 직접 확인하며 학습 데이터를 수집했다.&lt;/li&gt;
  &lt;li&gt;스팸메시지는 빈도가 높으나 다양하지 않음&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;메시지를-임베딩&quot;&gt;메시지를 임베딩&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;뉴럴넷는 숫자만 다룰 수 있기 때문에 적절하게 벡터화&lt;/li&gt;
  &lt;li&gt;대표적으로 원핫인코딩&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;단어-레벨-vs-캐릭터-레벨&quot;&gt;단어 레벨 vs 캐릭터 레벨&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;일반적으로는 단어(Word) 레벨 임베딩이 많이 쓰임&lt;/li&gt;
  &lt;li&gt;채팅은 변칙적인 단어가 많아 임베딩이 곤란&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;다양한-크기의-커널-이용&quot;&gt;다양한 크기의 커널 이용&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;다른 크기의 커널&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;합친-결과를-역전파로-학습&quot;&gt;합친 결과를 역전파로 학습&lt;/h3&gt;

&lt;h3 id=&quot;문제점&quot;&gt;문제점&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;기본 스팸 메시지수는 극히 적음&lt;/li&gt;
  &lt;li&gt;일반 메시지 수는 아주 많음&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;변종-스팸-대응-문제&quot;&gt;변종 스팸 대응 문제&lt;/h3&gt;

&lt;h3 id=&quot;데이터-증강--드랍아웃으로-해결&quot;&gt;데이터 증강 + 드랍아웃으로 해결&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;데이터 증강 : 스팸 문자열 내 임의로 기호/공백 문자 섞기&lt;/li&gt;
  &lt;li&gt;드랍아웃 : 학습된 뉴런을 임의 삭제&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;기본-스팸-메시지들&quot;&gt;기본 스팸 메시지들&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;영문자 대소문자는 구분하지 않는 것&lt;/li&gt;
  &lt;li&gt;대상 문자와 원핫인코딩 캐릭터 단위로&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;textcnn-모듈-정의&quot;&gt;TextCNN 모듈 정의&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;커널을 3, 4, 5, 6 다양하게 사용&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;학습-후-적용-결과&quot;&gt;학습 후 적용 결과&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;변형을 가한 문자에 대해서도 스팸을 판단한다.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;주의점&quot;&gt;주의점&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;일반 메시지라도 주요 단어가 들어가면 스팸 점수 상승&lt;/li&gt;
  &lt;li&gt;적절한 임계값과 빈도로 스패머 여부 판다&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;향상된-점&quot;&gt;향상된 점&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;잦은 모델 업데이트 없이 변형 스팸 대응&lt;/li&gt;
  &lt;li&gt;일단위가 아닌 메시지 당 검출 가능&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;이동-변위-cnn으로-오토-검출&quot;&gt;이동 변위 CNN으로 오토 검출&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;파밍 어뷰저의 가장 큰 특성?&lt;/li&gt;
  &lt;li&gt;반복적인 행동(오토)&lt;/li&gt;
  &lt;li&gt;이것이 어뷰징의 시작&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;기존-반복적-행동-검출-방법&quot;&gt;기존 반복적 행동 검출 방법&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;몇 가지 통계적 수치를 조합해 판단&lt;/li&gt;
  &lt;li&gt;임계치에 민감&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;선례--자기-유사도를-이용한-탐지&quot;&gt;선례 : 자기 유사도를 이용한 탐지&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;이동 위치는 너무 엄밀, 우회가 용이&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;이동-경로가-아닌-이동-변위로-동작의-반복성을-살펴보면&quot;&gt;이동 경로가 아닌 이동 변위로 동작의 반복성을 살펴보면?&lt;/h3&gt;

&lt;h3 id=&quot;어뷰저의-변이-그래프-vs-정상-유저의-변이-그래프&quot;&gt;어뷰저의 변이 그래프 vs 정상 유저의 변이 그래프&lt;/h3&gt;

&lt;h3 id=&quot;왜-이런-패턴을-보일까-학습-및-검출&quot;&gt;왜 이런 패턴을 보일까? 학습 및 검출&lt;/h3&gt;
&lt;ol&gt;
  &lt;li&gt;어뷰저 데이터 수작업 선별(150개) 정상 샘플은 전체에서 임의 추출&lt;/li&gt;
  &lt;li&gt;고정 윈도우(1000개 변위)로 미니매치&lt;/li&gt;
  &lt;li&gt;학습 시작 위치를 다양하게 해 클래스 불균형 완화
하나의 변위 데이터도 시작 위치에 따라 다름&lt;/li&gt;
  &lt;li&gt;조기종료(오버피팅 방지)&lt;/li&gt;
  &lt;li&gt;검출시는 윈도우 단위 판정값을 평균내어 판정(시계열)&lt;/li&gt;
&lt;/ol&gt;

&lt;h3 id=&quot;초기-문제점&quot;&gt;초기 문제점&lt;/h3&gt;
&lt;ol&gt;
  &lt;li&gt;정확도가 향상되지 않음
    &lt;ul&gt;
      &lt;li&gt;이동 병위값이 너무 크다. 정규화(Normalization) 적용&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;가끔 손실 값이 튀는 현상
    &lt;ul&gt;
      &lt;li&gt;배치 Normalization 사용 후 완화&lt;/li&gt;
      &lt;li&gt;레이어와 레이어 사이의 값을 정규화 하는 방식&lt;/li&gt;
      &lt;li&gt;BN적용 후 개선된 손실&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;h3 id=&quot;초기-학습시-오탐한-데이터는-수작업-분류-후-학습&quot;&gt;초기 학습시 오탐한 데이터는 수작업 분류 후 학습&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;어뷰저로 오탐된 변이의 예&lt;/li&gt;
  &lt;li&gt;쉬는 시간이 있음, 어뷰저는 이것을 파악하기 어려움&lt;/li&gt;
  &lt;li&gt;오탐 대응, 이동 변위 + 시간 변위 사용&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;미니-배치-순회&quot;&gt;미니 배치 순회&lt;/h3&gt;

&lt;h3 id=&quot;테스트셋으로-검증결과-정확도-97-최종-제재는-다른-특성도-함께-고려&quot;&gt;테스트셋으로 검증결과 정확도 97% 최종 제재는 다른 특성도 함께 고려&lt;/h3&gt;

&lt;h3 id=&quot;검출-결과&quot;&gt;검출 결과&lt;/h3&gt;

&lt;h3 id=&quot;향상된-점-1&quot;&gt;향상된 점&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;수작업 없는 빠른 검출&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;살펴본점&quot;&gt;살펴본점&lt;/h3&gt;

&lt;h3 id=&quot;서비스-적용-현황&quot;&gt;서비스 적용 현황&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;자동 제재 이후 지역별 검출 어뷰저 수 추세&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;앞으로의-과제&quot;&gt;앞으로의 과제&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;영어 외의 이름 스팸 검출은 까다로움&lt;/li&gt;
  &lt;li&gt;모바일 게임으로의 오토 검출&lt;/li&gt;
  &lt;li&gt;게임 데이터 라벨링 수단 - 전용 툴, &lt;a href=&quot;https://www.mturk.com/&quot;&gt;Amazon Mechanical Turk&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;GAN 사용&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;sw-20을-시도하려면&quot;&gt;SW 2.0을 시도하려면&lt;/h3&gt;
&lt;ol&gt;
  &lt;li&gt;이론 공부와 다양한 실험&lt;/li&gt;
  &lt;li&gt;도메인 전문가와 이야기&lt;/li&gt;
  &lt;li&gt;인프라 구축은 필요한 만큼만&lt;/li&gt;
  &lt;li&gt;반복 학습 전에 데이터 확인과 코드리뷰 먼저&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;소프트웨어 1.0과 2.0의 미래&lt;/p&gt;

&lt;h3 id=&quot;참고-fizzbuzz-문제&quot;&gt;참고 FizzBuzz 문제&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;딥러닝 공부를 너무 많이 하다가 텐서플로우로 구현&lt;/li&gt;
  &lt;li&gt;그러나 불합격되었다는 짤방&lt;/li&gt;
  &lt;li&gt;모든 문제가 2.0 대상은 아니다.&lt;/li&gt;
  &lt;li&gt;1.0과 2.0의 앙상블로 문제를 해결&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;참고-링크&quot;&gt;참고 링크&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://machinelearningmastery.com/hands-on-big-data-by-peter-norvig/&quot;&gt;Hands on Big Data by Peter Norvig&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://pytorch.org/tutorials/beginner/blitz/autograd_tutorial.html#sphx-glr-beginner-blitz-autograd-tutorial-py&quot;&gt;Autograd: automatic differentiation — PyTorch Tutorials 0.4.0 documentation&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ridibooks.com/v2/Detail?id=1780000048&quot;&gt;마스터 알고리즘 (머신러닝은 우리의 미래를 어떻게 바꾸는가) - 리디북스&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/rrenaud/Gibberish-Detector&quot;&gt;rrenaud/Gibberish-Detector: A small program to detect gibberish using a Markov Chain&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.dbpia.co.kr/Journal/ArticleDetail/NODE06617217&quot;&gt;자기 유사도를 이용한 MMORPG 게임봇 탐지 시스템 - 정보보호학회논문지 - 한국정보보호학회 : 전자저널 논문 - DBpia&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
                <link>http://corazzon.github.io/software-20</link>
                <guid>http://corazzon.github.io/software-20</guid>
                <pubDate>2018-04-26T00:00:00+00:00</pubDate>
        </item>

        <item>
                <title>[도서 리뷰] 처음 배우는 딥러닝 수학</title>
                <description>
&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/VXsaLtK.jpg&quot; /&gt;&lt;/p&gt;

&lt;p&gt;이 책은 제목에서 &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;처음 배우는&lt;/code&gt;이라는 문구에서 알 수 있듯이 딥러닝 입문자를 위한 수학책이다.
딥러닝 책이지만 이 책은 수학책이기 때문에 코드가 나오지 않고 수학 공식, 도표 그리고 엑셀로 수학을 설명하고 있다.&lt;/p&gt;

&lt;p&gt;딥러닝 책 중에는 수학 공식을 거의 다루지 않은 책도 있고, 나 또한 딥러닝을 공부하며 수학에 대한 이해는 뒤로 미루고 코드로 이해하려고 애를 썼다.&lt;/p&gt;

&lt;p&gt;수포자이기도 하고 수많은 수학 공식과 낯선 수학 용어와 확률 통계를 이해하는데 많은 어려움이 있었다.
그래서 그간 봐왔던 머신러닝과 딥러닝에 등장하는 수학 공식은 낯선 수학기호로 되어있고 기본적인 대학수학을 이해하고 있다는 전제하에 쓰여 있기 때문에 설명도 자세하지 않아 그림을 보듯 지나치기를 반복해 왔다. 이렇게 여러 알고리즘에 등장하는 수학을 제대로 이해하지 못하고 넘어가는 것이 늘 마음에 부담으로 남곤했다.
그래서 수학을 공부해 봐야겠다는 생각으로 여러 수학책이나 위키피디아의 수학 공식들을 찾아보기도 했지만 정리되지 않은 수학 기호와 공식들이 머릿속에 떠다니는 느낌이었다.&lt;/p&gt;

&lt;p&gt;늘 쉽게 수학을 공부할 수 있는 책을 찾았는데 기초부터 차근차근 설명하는 책이 많지 않았다.&lt;/p&gt;

&lt;p&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;처음 배우는 딥러닝 수학&lt;/code&gt;은 이런 어려움을 겪던 내게 그나마 지금까지 봐온 데이터 사이언스와 관련된 수학책 중 가장 부담이 적었다. 
이 책에 나오는 수학 공식 또한 수포자로서 이해하기 쉬운 건 아니다.
하지만 되도록이면 고등학교 수학 수준의 기호를 사용하였고 복잡한 코드 대신 엑셀을 통해 설명하고 있다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/ro5rxbV.jpg&quot; /&gt;&lt;/p&gt;

&lt;p&gt;딥러닝 책이지만 코드가 나오지 않는다는 것도 이 책의 큰 특징일 것이다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/fSEvl2E.jpg&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/rNtgmub.jpg&quot; /&gt;
가장 단순한 뉴런의 모습을 수학적으로 구현한 것부터 시작해서 악마라는 캐릭터를 도입해서 신경망을 이해할 수 있도록 하고 있다.&lt;/p&gt;

&lt;p&gt;엑셀도 책 후반부에서 오차역전파법을 설명하며 나오고 그 전에는 대부분 기초 수학을 그림을 통해 쉽게 설명하려고 노력하고 있다.
딥러닝 책이기 때문에 당연히 코드를 통해 설명하리라 생각했던 예측이 완전히 빗나갔다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/QUUD6nW.jpg&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/hcFLneX.jpg&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/oF66Oqq.jpg&quot; /&gt;&lt;/p&gt;

&lt;p&gt;경사하강법의 편미분에 들어가기 전까지는 벡터, 행렬, 내적, 시그마 등 딥러닝뿐만 아니라 머신러닝에도 꼭 필요한 기초수학을 설명하고 있다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/1UuGgHE.jpg&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/7HOb8i4.jpg&quot; /&gt;
그래서 중학교 이후의 수학이 잘 기억나지 않더라도 이 책의 친절한 행렬과 미분에 대한 설명을 통해 기억을 더듬어 볼 수 있었다.&lt;/p&gt;

&lt;p&gt;머신러닝에 입문하며 Numpy를 통해 행렬의 기초 연산을 이해하고 수학을 넘파이로 다시 배웠다는 생각이 들었다.
스칼라, 벡터, 행렬, 텐서 등 여러 용어들이 난무해서 이 용어들에 익숙해지는데도 시간이 걸렸는데 이 책을 보며 중학교때 모눈지에 1,2차 방정식을 그려 이해하던 기억이 떠올랐다.&lt;/p&gt;

&lt;p&gt;좀 더 쉬운내용이나 확률 통계와 관련된 기초 수학 내용도 좀 더 있었으면 아쉬움도 있지만
그래도 근래에 봤던 수학책 중에는 가장 이해가 잘되는 책이었다.&lt;/p&gt;

</description>
                <link>http://corazzon.github.io/deep-learning-math</link>
                <guid>http://corazzon.github.io/deep-learning-math</guid>
                <pubDate>2018-04-15T00:00:00+00:00</pubDate>
        </item>

        <item>
                <title>Google Colaboratory의 무료 GPU로 Keras 사용해 보기</title>
                <description>
&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/UKujX90xLHo&quot; frameborder=&quot;0&quot; allow=&quot;autoplay; encrypted-media&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;h2 id=&quot;colab의-gpu로-keras-사용해-보기&quot;&gt;Colab의 GPU로 Keras 사용해 보기&lt;/h2&gt;
&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;참고 : 케라스 공식문서에서 멀티GPU 사용하기 예제를 Colab에서 돌아가도록 수정 https://keras.io/utils/#multi_gpu_model&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;Colab 의 성능은 나쁘지 않은 편이다. 현재 메모리 13기가와 CPU는 Intel(R) Xeon(R) CPU @ 2.30GHz을 사용할 수 있다.&lt;/li&gt;
  &lt;li&gt;GPU는 Tesla K80 으로 멀티GPU는 지원하지 않는다.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;colaboratory의-메모리-정보보기&quot;&gt;Colaboratory의 메모리 정보보기&lt;/h3&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;!cat /proc/meminfo
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;MemTotal:       13341960 kB
MemFree:         8533256 kB
MemAvailable:   12413480 kB
Buffers:          592664 kB
Cached:          3106704 kB
SwapCached:            0 kB
Active:          2154112 kB
Inactive:        1833004 kB
Active(anon):     457024 kB
Inactive(anon):   114432 kB
Active(file):    1697088 kB
Inactive(file):  1718572 kB
Unevictable:           0 kB
Mlocked:               0 kB
SwapTotal:             0 kB
SwapFree:              0 kB
Dirty:               380 kB
Writeback:             0 kB
AnonPages:        287764 kB
Mapped:           164784 kB
Shmem:            283716 kB
Slab:             746368 kB
SReclaimable:     717980 kB
SUnreclaim:        28388 kB
KernelStack:        3184 kB
PageTables:         4448 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:     6670980 kB
Committed_AS:    1548724 kB
VmallocTotal:   34359738367 kB
VmallocUsed:           0 kB
VmallocChunk:          0 kB
AnonHugePages:         0 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
DirectMap4k:      384972 kB
DirectMap2M:    10100736 kB
DirectMap1G:     5242880 kB
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h3 id=&quot;colaboratory의-cpu-정보보기&quot;&gt;Colaboratory의 CPU 정보보기&lt;/h3&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;!cat /proc/cpuinfo
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;processor	: 0
vendor_id	: GenuineIntel
cpu family	: 6
model		: 63
model name	: Intel(R) Xeon(R) CPU @ 2.30GHz
stepping	: 0
microcode	: 0x1
cpu MHz		: 2300.000
cache size	: 46080 KB
physical id	: 0
siblings	: 2
core id		: 0
cpu cores	: 1
apicid		: 0
initial apicid	: 0
fpu		: yes
fpu_exception	: yes
cpuid level	: 13
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc rep_good nopl xtopology nonstop_tsc eagerfpu pni pclmulqdq ssse3 fma cx16 sse4_1 sse4_2 x2apic movbe popcnt aes xsave avx f16c rdrand hypervisor lahf_lm abm fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms xsaveopt
bugs		:
bogomips	: 4600.00
clflush size	: 64
cache_alignment	: 64
address sizes	: 46 bits physical, 48 bits virtual
power management:

processor	: 1
vendor_id	: GenuineIntel
cpu family	: 6
model		: 63
model name	: Intel(R) Xeon(R) CPU @ 2.30GHz
stepping	: 0
microcode	: 0x1
cpu MHz		: 2300.000
cache size	: 46080 KB
physical id	: 0
siblings	: 2
core id		: 0
cpu cores	: 1
apicid		: 1
initial apicid	: 1
fpu		: yes
fpu_exception	: yes
cpuid level	: 13
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc rep_good nopl xtopology nonstop_tsc eagerfpu pni pclmulqdq ssse3 fma cx16 sse4_1 sse4_2 x2apic movbe popcnt aes xsave avx f16c rdrand hypervisor lahf_lm abm fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms xsaveopt
bugs		:
bogomips	: 4600.00
clflush size	: 64
cache_alignment	: 64
address sizes	: 46 bits physical, 48 bits virtual
power management:
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h3 id=&quot;케라스-설치하고-불러오기&quot;&gt;케라스 설치하고 불러오기&lt;/h3&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;# https://keras.io/
!pip install -q keras
import keras
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h3 id=&quot;케라스는-tensorflow나-theano를-백엔드로-사용한다&quot;&gt;케라스는 TensorFlow나 Theano를 백엔드로 사용한다.&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;Colaboratory는 구글 제품이기 때문에 텐서플로우를 사용하는 듯 하다.
    &lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;  Using TensorFlow backend.
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;    &lt;/div&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;케라스의-예제코드-실행&quot;&gt;케라스의 예제코드 실행&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;Colaboratory 2018년 3월 5일 현재 멀티 GPU를 지원하지 않는다. 그렇기 때문에 케라스의 multi_gpu_model은 사용할 수 없다.&lt;/li&gt;
  &lt;li&gt;그럼 어떻게 GPU를 사용해야 될까?&lt;/li&gt;
&lt;/ul&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;import tensorflow as tf
from keras.applications import Xception
from keras.utils import multi_gpu_model
import numpy as np

# 원래 예제는 샘플이 1000개 이지만 빨리 돌려보기 위해 100개로 줄였다.
# 가로세로도 224에서 최소 사이즈인 71로 줄였다.
# 원래 예제로 돌리면 메모리와 CPU가 지쳐버려서 끝까지 실행되지 않는다.
num_samples = 100
height = 71
width = 71
num_classes = 100
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;# Instantiate the base model (or &quot;template&quot; model).
# We recommend doing this with under a CPU device scope,
# so that the model&apos;s weights are hosted on CPU memory.
# Otherwise they may end up hosted on a GPU, which would
# complicate weight sharing.
with tf.device(&apos;/cpu:0&apos;):
    model = Xception(weights=None,
                     input_shape=(height, width, 3),
                     classes=num_classes)

# Replicates the model on 8 GPUs.
# This assumes that your machine has 8 available GPUs.
parallel_model = multi_gpu_model(model, gpus=1)
parallel_model.compile(loss=&apos;categorical_crossentropy&apos;,
                       optimizer=&apos;rmsprop&apos;)

# Generate dummy data.
x = np.random.random((num_samples, height, width, 3))
y = np.random.random((num_samples, num_classes))

# This `fit` call will be distributed on 8 GPUs.
# Since the batch size is 256, each GPU will process 32 samples.
parallel_model.fit(x, y, epochs=20, batch_size=256)

# Save model via the template model (which shares the same weights):
model.save(&apos;my_model.h5&apos;)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;---------------------------------------------------------------------------

ValueError                                Traceback (most recent call last)

&amp;lt;ipython-input-6-4353c6d558e3&amp;gt; in &amp;lt;module&amp;gt;()
      6 # Replicates the model on 8 GPUs.
      7 # This assumes that your machine has 8 available GPUs.
----&amp;gt; 8 parallel_model = multi_gpu_model(model, gpus=1)
      9 parallel_model.compile(loss=&apos;categorical_crossentropy&apos;,
     10                        optimizer=&apos;rmsprop&apos;)


/usr/local/lib/python3.6/dist-packages/keras/utils/training_utils.py in multi_gpu_model(model, gpus)
    121             raise ValueError(&apos;For multi-gpu usage to be effective, &apos;
    122                              &apos;call `multi_gpu_model` with `gpus &amp;gt;= 2`. &apos;
--&amp;gt; 123                              &apos;Received: `gpus=%d`&apos; % gpus)
    124         num_gpus = gpus
    125         target_gpu_ids = range(num_gpus)


ValueError: For multi-gpu usage to be effective, call `multi_gpu_model` with `gpus &amp;gt;= 2`. Received: `gpus=1`
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h3 id=&quot;텐서플로우로-해당-장비의-cpu와-gpu정보를-가져온다&quot;&gt;텐서플로우로 해당 장비의 CPU와 GPU정보를 가져온다.&lt;/h3&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;from tensorflow.python.client import device_lib

print(device_lib.list_local_devices())
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;[name: &quot;/device:CPU:0&quot;
device_type: &quot;CPU&quot;
memory_limit: 268435456
locality {
}
incarnation: 4221312434634366830
, name: &quot;/device:GPU:0&quot;
device_type: &quot;GPU&quot;
memory_limit: 356515840
locality {
  bus_id: 1
}
incarnation: 11454811533186484289
physical_device_desc: &quot;device: 0, name: Tesla K80, pci bus id: 0000:00:04.0, compute capability: 3.7&quot;
]
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;# Instantiate the base model (or &quot;template&quot; model).
# We recommend doing this with under a CPU device scope,
# so that the model&apos;s weights are hosted on CPU memory.
# Otherwise they may end up hosted on a GPU, which would
# complicate weight sharing.
import datetime

start = datetime.datetime.now()
with tf.device(&apos;/gpu:0&apos;):
  model = Xception(weights=None,
                   input_shape=(height, width, 3),
                   classes=num_classes)
  model.compile(loss=&apos;categorical_crossentropy&apos;,
                     optimizer=&apos;rmsprop&apos;)

  # Generate dummy data.
  x = np.random.random((num_samples, height, width, 3))
  y = np.random.random((num_samples, num_classes))

  # This `fit` call will be distributed on 8 GPUs.
  # Since the batch size is 256, each GPU will process 32 samples.
  # model.fit(x, y, epochs=10, batch_size=256)
  model.fit(x, y, epochs=3, batch_size=16)

  # Save model via the template model (which shares the same weights):
  model.save(&apos;my_model.h5&apos;)
  
  
end = datetime.datetime.now()
time_delta = end - start
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;Epoch 1/3
100/100 [==============================] - 7s 66ms/step - loss: 235.2676
Epoch 2/3
100/100 [==============================] - 1s 11ms/step - loss: 231.3431
Epoch 3/3
100/100 [==============================] - 1s 11ms/step - loss: 228.3584
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;print(&apos;GPU 걸린시간: {}초&apos;.format(time_delta.seconds))
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;GPU 걸린시간: 29초
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;start = datetime.datetime.now()
with tf.device(&apos;/cpu:0&apos;):
  model = Xception(weights=None,
                   input_shape=(height, width, 3),
                   classes=num_classes)
  model.compile(loss=&apos;categorical_crossentropy&apos;,
                     optimizer=&apos;rmsprop&apos;)

  # Generate dummy data.
  x = np.random.random((num_samples, height, width, 3))
  y = np.random.random((num_samples, num_classes))

  # This `fit` call will be distributed on 8 GPUs.
  # Since the batch size is 256, each GPU will process 32 samples.
  # model.fit(x, y, epochs=10, batch_size=256)
  model.fit(x, y, epochs=3, batch_size=16)

  # Save model via the template model (which shares the same weights):
  model.save(&apos;my_model.h5&apos;)
  
  
end = datetime.datetime.now()
time_delta = end - start
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;Epoch 1/3
100/100 [==============================] - 25s 248ms/step - loss: 271.1356
Epoch 2/3
100/100 [==============================] - 19s 187ms/step - loss: 258.8897
Epoch 3/3
100/100 [==============================] - 19s 186ms/step - loss: 247.9633
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;print(&apos;CPU 걸린시간: {}초&apos;.format(time_delta.seconds))
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;CPU 걸린시간: 88초
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;ul&gt;
  &lt;li&gt;결론: 싱글 CPU와 GPU 환경에서 GPU를 사용했을 때 훨씬 빠르게 실행 되는 것을 확인할 수 있다.&lt;/li&gt;
&lt;/ul&gt;
</description>
                <link>http://corazzon.github.io/keras-gpu</link>
                <guid>http://corazzon.github.io/keras-gpu</guid>
                <pubDate>2018-03-05T00:00:00+00:00</pubDate>
        </item>

        <item>
                <title>Mac OSX에서 XGBoost 설치하기</title>
                <description>
&lt;ul&gt;
  &lt;li&gt;2016년 논문에서 소개 됨 : &lt;a href=&quot;http://dmlc.cs.washington.edu/data/pdf/XGBoostArxiv.pdf&quot;&gt;XGBoostArxiv.pdf&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;분산형 그래디언트 부스팅 알고리즘&lt;/li&gt;
  &lt;li&gt;결정트리(Decision Tree) 알고리즘의 연장선에 있음&lt;/li&gt;
  &lt;li&gt;여러 개의 결정트리를 묶어 강력한 모델을 만드는 앙상블 방법&lt;/li&gt;
  &lt;li&gt;분류와 회귀에 사용할 수 있음&lt;/li&gt;
  &lt;li&gt;랜덤포레스트와는 다르게 이전 트리의 오차를 보완하는 방식으로 순차적으로 트리를 만듦&lt;/li&gt;
  &lt;li&gt;무작위성이 없으며 강력한 사전 가지치기를 사용&lt;/li&gt;
  &lt;li&gt;캐글 상위 랭커들이 많이 사용하고 있음&lt;/li&gt;
  &lt;li&gt;타이타닉 경진대회에 사용 예제가 있음 : &lt;a href=&quot;https://www.kaggle.com/datacanary/xgboost-example-python/&quot;&gt;XGBoost example (Python) Kaggle&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;공식문서대로-설치하기&quot;&gt;공식문서대로 설치하기&lt;/h2&gt;

&lt;p&gt;`
pip로는 잘 설치되지 않을 수 있다.
`&lt;/p&gt;

&lt;p&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;일단 github에서 해당 프로젝트를 다운로드 혹은 클론 받아 놓는다.&lt;/code&gt;&lt;/p&gt;

&lt;pre&gt;
git clone --recursive https://github.com/dmlc/xgboost.git  
&lt;/pre&gt;

&lt;ol&gt;
  &lt;li&gt;일단 설치하려고 보니 clang, make가 필요했다. 이건 xcode설치로 대체했다.&lt;/li&gt;
  &lt;li&gt;그리고 다시 공식문서로 돌아갔다. =&amp;gt; &lt;a href=&quot;https://xgboost.readthedocs.io/en/latest/build.html&quot;&gt;Installation Guide — xgboost 0.6 documentation&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;brew install gcc –without-multilib 을 설치했다.&lt;/li&gt;
  &lt;li&gt;cd xgboost; cp make/minimum.mk ./config.mk; make -j4 &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;이 방법으로 설치하게 되면 멀티스레드를 지원하지 않는다.&lt;/code&gt; 시행착오로 겪은 것을 적은 것이기 때문에 이 글을 보고 설치하는 분은 6번을 참고해 주시면 된다.&lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;이렇게 해주었는데도 아래의 오류가 발생했다.&lt;/p&gt;

    &lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt; XGBoostLibraryNotFound: Cannot find XGBoost Library in the candidate path, did you install compilers and run build.sh in root path?
 List of candidates:
 mypath/xgboost/python-package/xgboost/libxgboost.dylib
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;    &lt;/div&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;그래서 공식 문서로 다시 돌아가서 보니 최신버전의 gcc를 사용하고 있다면 make 파일을 변경해 주어야 한단다.
&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;아래 방법으로 설치해야 멀티스레드를 지원한다. GPU Support는 공식 문서의 하단을 참고한다.&lt;/code&gt;&lt;/p&gt;

    &lt;p&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;cd xgboost; cp make/config.mk ./config.mk; make -j4&lt;/code&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;그리고 다시 빌드 했더니 성공했다.
    &lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;./build.sh
Makefile:31: MAKE [/Applications/Xcode.app/Contents/Developer/usr/bin/make] - checked OK
make: Nothing to be done for `all&apos;.
Successfully build multi-thread xgboost
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;    &lt;/div&gt;
  &lt;/li&gt;
  &lt;li&gt;마지막으로 &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;pip3 install -e python-package&lt;/code&gt;로 설치했다.
    &lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;Obtaining file:///Users/corazzon/codes/xgboost/python-package
Requirement already satisfied: numpy in /my_venv_path/lib/python3.6/site-packages (from xgboost==0.6)
Requirement already satisfied: scipy in /my_venv_path/lib/python3.6/site-packages (from xgboost==0.6)
Installing collected packages: xgboost
  Running setup.py develop for xgboost
Successfully installed xgboost
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;    &lt;/div&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id=&quot;pip로-겪은-시행착오&quot;&gt;pip로 겪은 시행착오&lt;/h2&gt;
&lt;ul&gt;
  &lt;li&gt;pip로 설치가 되지 않아 다음의 방법으로 설치했다.&lt;/li&gt;
  &lt;li&gt;하지만 아래 방법으로도 설치가 안 될때가 있으니 공식 문서를 참고하는것을 추천한다.&lt;/li&gt;
  &lt;li&gt;장비를 바꾸고 이 방법대로 되지 않아 이 블로그글 앞의 공식문서대로 설치하기로 설치했다.&lt;/li&gt;
  &lt;li&gt;아래 내용은 설치하며 겪은 시행착오로 참고삼아 적어둔다.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/dmlc/xgboost/issues/463&quot;&gt;pip install failure · Issue #463 · dmlc/xgboost&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;pre&gt;
git clone --recursive https://github.com/dmlc/xgboost.git  
cd xgboost  
./build.sh
pip3 install -e python-package  
&lt;/pre&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;err&quot;&gt;!&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;pip3&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;show&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;xgboost&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;Name: xgboost
Version: 0.6
Summary: XGBoost Python Package
Home-page: https://github.com/dmlc/xgboost
Author: Hongliang Liu
Author-email: phunter.lau@gmail.com
License: Apache-2.0
Location: /data/xgboost/python-package
Requires: numpy, scipy
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;설치는 되었지만 Jupyter Notebook에서 실행되지 않는 문제가 있었다.&lt;/p&gt;

&lt;p&gt;다음 글을 참고하여 노트북에서 불러오기에 성공했다.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://stackoverflow.com/questions/44856105/jupyter-notebook-xgboost-import&quot;&gt;python - Jupyter notebook xgboost import - Stack Overflow&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;설치-및-동작확인&quot;&gt;설치 및 동작확인&lt;/h2&gt;

&lt;p&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;jupyter notebook에서 제대로 설치되었는지 확인해 본다.&lt;/code&gt;&lt;/p&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;pip&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;pip&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;main&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;([&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;install&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&apos;xgboost&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;])&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;Requirement already satisfied: xgboost in /data/xgboost/python-package
Requirement already satisfied: numpy in /Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages (from xgboost)
Requirement already satisfied: scipy in /Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages (from xgboost)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;jupyter notebook에서 xgboost를 실행해 본다.&lt;/code&gt;&lt;/p&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;xgboost&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;as&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;xgb&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;model&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;xgb&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;XGBClassifier&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;n_estimators&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;15&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;nthread&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=-&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;seed&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1111&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;model&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;    XGBClassifier(base_score=0.5, booster=&apos;gbtree&apos;, colsample_bylevel=1,
           colsample_bytree=1, gamma=0, learning_rate=0.1, max_delta_step=0,
           max_depth=3, min_child_weight=1, missing=None, n_estimators=15,
           n_jobs=1, nthread=-1, objective=&apos;binary:logistic&apos;, random_state=0,
           reg_alpha=0, reg_lambda=1, scale_pos_weight=1, seed=1111,
           silent=True, subsample=1)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
</description>
                <link>http://corazzon.github.io/xgboost-install-mac-osx</link>
                <guid>http://corazzon.github.io/xgboost-install-mac-osx</guid>
                <pubDate>2018-01-30T00:00:00+00:00</pubDate>
        </item>

        <item>
                <title>[도서 리뷰]딥러닝 부트캠프 with 케라스</title>
                <description>
&lt;p&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;길벗출판사의 개발자 리뷰어 이벤트를 통해 작성된 리뷰입니다.&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/3kKkqab.jpg&quot; alt=&quot;index_image&quot; width=&quot;400px&quot; /&gt;
&lt;img src=&quot;https://i.imgur.com/QPEJdJR.jpg&quot; alt=&quot;index_image&quot; width=&quot;400px&quot; /&gt;&lt;/p&gt;

&lt;p&gt;최근 케라스에 관심을 갖게 된건 캐글 경진대회에서 상위권에 든 사람들이 케라스를 사용한 것을 보고 부터다. 하지만 케라스로 출판된 책이 많지 않아 책으로 정리 된 내용을 학습하고 싶었는데 최근 케라스 책이 몇 권 출판 되었다. 이 책도 그 중 하나로 딥러닝에 대한 이론 소개와 함께 칼텍의 데이터셋을 통해 사물인식을 해볼 수 있는 예제와 삼목게임을 통한 강화학습으로 이루어져 있다. 케라스는 공식문서의 튜토리얼에서 30초만에 시작할 수 있다고 소개하는 만큼 쉽게 시작할 수 있다고 한다. 이 책은 케라스를 통해 딥러닝을 실험해 볼 수 있도록 어려운 수식보다는 코드를 통해 이해할 수 있도록 구성되어 있다. 4장은 이 책에서 가장 많은 비중을 차지하고 있으며 공통 데이터를 구축하고 9층, 16층, 152층의 네트워크로 학습과 예측을 하여 예측 정확도를 비교한다. 2단계 일반화와 자기 학습을  실행해서 모델 평균의 정답률을 올려본다.
그리고 6장에서는 딥러닝을 이용한 강화학습도 다루고 있다. 딥러닝을 시작한지 얼마 되지 않은 초보자로서 딥러닝 내부의 이론과 논문 자료들은 아직도 이해하기 어렵고 복잡하다. 방대한 딥러닝 이론을 깊이있게 알지는 못하더라도 코드를 통해 직접 딥러닝으로 이미지를 판별하고 예측해 볼 수 있다. 모델의 층을 늘려가면서 정답률을 올려볼 수 있는 예제를 돌려보면 케라스의 활용방법에 대해서는 어느정도 이해할 수 있는 책이다.
예제의 소스코드는 파이썬2로 작성되어 있으며 백엔드로는 Theano를 사용한다. 또 GPU를 통해 학습한다는 것을 전제로 하고 있기 때문에 CPU환경에서 돌리려면 성능을 비롯한 제약이 있다. 케라스를 학습하는 것 뿐만 아니라 케라스를 통해 무언가를 구현하고 직접 실험해 보고자 하는 목적에 충실한 책이다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/dP3iaKer.jpg&quot; alt=&quot;index_image&quot; width=&quot;500px&quot; /&gt;
&lt;img src=&quot;https://i.imgur.com/sUi9mRar.jpg&quot; alt=&quot;index_image&quot; width=&quot;500px&quot; /&gt;&lt;/p&gt;

&lt;p&gt;그리고 아래는 책을 읽으며 정리한 내용이다.&lt;/p&gt;

&lt;h3 id=&quot;1장&quot;&gt;1장&lt;/h3&gt;

&lt;p&gt;1장에서는 딥러닝의 성과로 시작한다. 음성인식의 경우 딥러닝을 사용함으로 과거에 비해 오답률이 20~30% 낮아졌다고 한다. 
이 책에서는 이미지의 클래스 분류, 물체 검출, 강화학습을 다룬다. 이미지처리에서는 사진 속에 있는 사물을 검출하는 물체 검출을 다루며 엑스레이에서 암세포의 위치와 형태를 예측하는 것도 할 수 있다.
데이터를 다룰 때 예측의 정확도를 높이는 데이터의 확장, 전처리에 대한 사전처리 기법을 다룬다.
그리고 이 책에서 다루는 데이터셋은 칼텍에서 제공하는 머신러닝 이미지 Caltech 101을 사용한다.
그리고 이 이미지들은 101개의 카테고리로 분류하여 각각의 레이블을 붙여놓았다.&lt;/p&gt;

&lt;p&gt;케라스는 Theano, 텐서플로우용 라이브러리로 간단하게 딥러닝을 실행할 수 있다.&lt;/p&gt;

&lt;p&gt;그리고 GPU를 활용할 수 있는 방법에 대한 안내도 있다. GPU는 3차원 그래픽 계산을 처리하는 프로세서이지만 딥러닝의 방대한 행렬연산을 수행할 때 학습과 예측에 걸리는 시간을 10배 이상 줄여줄 수 있다. 여기에서는 게임용PC를 딥러닝용으로 셋팅하는 방법에 대해서도 소개하는데 우분투설치와 셋팅 방법까지 소개하고 있다.&lt;/p&gt;

&lt;h3 id=&quot;2장-네트워크의-구성&quot;&gt;2장 네트워크의 구성&lt;/h3&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/3dUUTcL.jpg&quot; alt=&quot;chapter02&quot; width=&quot;500px&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/wE3zOQZ.jpg&quot; alt=&quot;chapter02&quot; width=&quot;500px&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/yme2EBc.jpg&quot; alt=&quot;chapter02&quot; width=&quot;500px&quot; /&gt;&lt;/p&gt;

&lt;p&gt;2장은 네트워크 구성으로 이미지 인식 분야에서 이용되는 네트워크와 층의 기본 구조를 설명한다.
FFNN, FNN, CNN을 합성곱 이미지와 함께 설명해 준다.&lt;/p&gt;

&lt;h3 id=&quot;3장&quot;&gt;3장&lt;/h3&gt;
&lt;p&gt;3장은 기본 용어로 과학습을 제어하여 예측정확도를 높이는 방법을 설명한다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/UsgvWFO.jpg&quot; alt=&quot;chapter03&quot; width=&quot;500px&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/FIXnUEz.jpg&quot; alt=&quot;chapter03&quot; width=&quot;500px&quot; /&gt;&lt;/p&gt;

&lt;p&gt;1) 딥러닝에는 입력데이터와 그 입력데이터의 지도학습 데이터가 있으며 예측 된 출력 데이터와 지도 학습 데이터의 오차를 이용하여 각 층의 가중치를 업데이트 해서 최적의 가중치를 구한다.&lt;/p&gt;

&lt;p&gt;2) 활성화 함수는 뇌의 시냅스가 어떤 임계값을 초과하면 활성화하는 것처럼 움직임을 모방하기 때문에 활성화 함수(전달 함수 또는 출력 함수)라고도 한다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/OKMlKG1.jpg&quot; alt=&quot;chapter03&quot; width=&quot;500px&quot; /&gt;&lt;/p&gt;

&lt;p&gt;3) 손실문제는 예측한 출력 데이터와 지도 학습 데이터를 비교하여 오차를 계산하는 함수다. 여기에서는 평균 제곱 오차(mean squared error), 크로스 엔트로피(cross-entropy)는 클래스를 분류하는 오차함수를 소개한다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/T6gQvjG.jpg&quot; alt=&quot;chapter03&quot; width=&quot;500px&quot; /&gt;&lt;/p&gt;

&lt;p&gt;4) 확률적 경사 하강법(Stochastic Gradient Descent, SGD)은 가중치w에 대한 오차 E의 경사를 구해 경사가 양의 부호이면 w를 음의 방향으로 업데이트 하고 반대로 경사가 음의 부호면 w를 양의 방향으로 업데이트 한다. 모멘텀은 가중치의 업데이트양(벡터)이 이전 가중치의 업데이트양(벡터)과 방향이 크게 변하지 않게 하는 기능이다. 예를 들어 자동차의 핸들을 급하게 크게 틀어도 타이어의 각도는 서서히 변하는 것과 같은 이치다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/C8qQPlj.jpg&quot; alt=&quot;chapter03&quot; width=&quot;500px&quot; /&gt;&lt;/p&gt;

&lt;p&gt;5) 오차역전파법(back propagation) 출력층에서 역방향으로 진행해서 오차 신호를 입력층 쪽으로 점차 전파하여 가는 산출방법이다.&lt;/p&gt;

&lt;p&gt;6) 트레이닝 데이터셋에 특화 된 파라미터가 나오는 것을 과잉 적합 또는 과학습이라 한다.
이를 통제하기 위해 K분할 교차 검증, 홀드아웃 검증을 사용한다.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;정규화 :  딥러닝 네트워크에는 많은 가중치(파라미터)가 있다. 학습할 때 이 파라미터 값에 제약을 주어서 과학습을 억제하는 방법을 정규화라고 한다.
정규화 중 하나로 가중치 감쇠 방법이 있는데 기존 손실 함수에 가중치의 제곱합을 더한 것을 새로운 손실 함으로 한다. 손실 함수의 값이 작을 수록 가중치를 업데이트하는데 가중치를 업데이트 할 때 각 가중치의 값이 극단적으로 큰 값 또는 작은 값을 갖지 않도록 파라미터에 제약을 가하는 방법이다.&lt;/li&gt;
  &lt;li&gt;드롭아웃 : 층의 유닛을 드롭아웃하면서 학습하는 것으로 과학습을 억제하는 방법이다.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;7) 데이터 확장과 전처리 
데이터 확장은 트레이닝 데이터셋을 기초로 변형된 데이터셋을 만들어 데이터의 양을 증가시키다.
트레이닝 데이터셋과 테스트 데이터셋이 한쪽으로 치우쳐져 있다면 전처리를 해서 보정할 수 있다. 트레이닝 데이터셋에서 하는 전처리는 테스트 데이터셋에서도 해야 한다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/X1qG3qI.jpg&quot; alt=&quot;chapter03&quot; width=&quot;500px&quot; /&gt;&lt;/p&gt;

&lt;p&gt;8) 사전 학습된 모델
사전 학습된 모델을 이용하는 바법을 전이 학습이라고 한다.
파인튜닝은 사전 학습된 모델의 가중치를 신경망 가중치의 초깃값으로 설정하고, 새로운 트레이닝 데이터셋을 사용하여 재학습하는 방법이다. 파인튜닝을 하면 작은 에폭 수로도 높은 성능을 얻을 수 있다.&lt;/p&gt;

&lt;p&gt;9) 학습 계수 조정&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;AdaGrad&lt;/li&gt;
  &lt;li&gt;RMSProp&lt;/li&gt;
  &lt;li&gt;Adam&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;4장-이미지-클래스의-분류&quot;&gt;4장 이미지 클래스의 분류&lt;/h3&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/obJBpX4.jpg&quot; alt=&quot;chapter04&quot; width=&quot;500px&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/S3MDcFf.jpg&quot; alt=&quot;chapter04&quot; width=&quot;500px&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/aoVGfvj.jpg&quot; alt=&quot;chapter04&quot; width=&quot;500px&quot; /&gt;&lt;/p&gt;

&lt;p&gt;이 책에서 가장 많은 비중을 차지하고 있는 챕터로 실제 딥러닝PC를 사용해 학습과 예측을 하는 것을 설명한다. 공통 데이터를 구축한 후 9층, 16층, 152층의 네트워크로 학습과 예측을 실행하여 예측의 정확도를 비교한다. CUDA환경에서 실행해 보는 것을 가정하고 있기 때문에 환경이 다르면 성능에 제약이 있고 사소하지만 가상환경 설정 내용이 pip freeze 되어 있으면 구성이 좀 더 편할 거 같다. 그리고 imagemagicK 같은 일부 라이브러리에 대한 설치 안내가 좀 부족한 편이다. 백엔드로 돌아가는 텐서플로우와 Theano에 대한 버전도 맞춰주어야 하는 데 환경설정에 관련 된 부분이 좀 더 친절했으면 하는 아쉬움이 있다.&lt;/p&gt;

&lt;h3 id=&quot;5장-물체-검출--26층의-네트워크&quot;&gt;5장 물체 검출 : 26층의 네트워크&lt;/h3&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/ZMvlSJj.jpg&quot; alt=&quot;chapter05&quot; width=&quot;500px&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/kvFEivW.jpg&quot; alt=&quot;chapter06&quot; width=&quot;500px&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Yolo(You only look once) : 물체의 의치, 크기, 종류 예측에 사용되며 동영상에서 실시간으로 물체를 검출하는 기능도 있지만 이 책에서는 정지 이미지에 물체를 검출하는 기능을 사용한다. 신경망을 이용하는 물체 검출에는 R-CNN과 Fast R-CNN이 있다. Yolo처럼 물체 검출 성능이 있고 R-CNN의 1000배, Fast R-CNN의 100배 정도 고속으로 처리할 수 있다고 알려져 있다.&lt;/p&gt;

&lt;h3 id=&quot;6장-강화-학습--삼목-게임에-강한-컴퓨터-키우기&quot;&gt;6장 강화 학습 : 삼목 게임에 강한 컴퓨터 키우기&lt;/h3&gt;

&lt;p&gt;강화 학습은 이세돌과 알파고의 바둑대결에서 영국의 구글 딥마인드가 개발한 컴퓨터 바둑 프로그램으로 강화 학습 방법으로 만들었다.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;Q러닝 : 강화학습에는 각 행동에 지도 학습 데이터가 붙어있지 않다. 지도 학습 데이터 대신에 각 행동에 Q값의 지표를 예측하여 부여한다. 바둑과 장기에서 도중에 한 수는 좋은지 나쁜지 알 수 없지만, 최후에 승리하면 그때까지 둔 일련의 수가 좋다고 생각하게 되는게 강화 학습의 특성이며 지도 학습 데이터를 단순하게 구현할 수 없는 복잡한 행동에서도 학습이 가능하다.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;DQN : Q러닝에서 모든 상태, 행동을 망라할 수는 없지만 딥러닝을 이용하여 근사적인 Q값을 구한 것으로 보상받을 가능성이 높은 다음 한 수를 예상하는 것은 가능하다. Q러닝과 딥러닝을 이용한 모델을 DQN이라 한다.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;정리&quot;&gt;정리&lt;/h2&gt;

&lt;p&gt;케라스에 대한 책이 많지 않아 정리 된 내용을 보고 싶었는데 최근에 출간 된 책으로 케라스를 학습할 수 있었다. 아직 케라스를 많이 사용해 보지는 않았지만 백엔드를 Theano나 텐서플로우를 사용하고 다른 딥러닝 알고리즘에 비해쉽게 사용할 수 있기 때문에 앞으로도 케라스를 계속 사용해 볼 예정이다. 이 책을 통해 케라스의 기본 개념과 딥러닝 이론에 대해 정리할 수 있었다.&lt;/p&gt;

</description>
                <link>http://corazzon.github.io/review_keras_book</link>
                <guid>http://corazzon.github.io/review_keras_book</guid>
                <pubDate>2018-01-14T00:00:00+00:00</pubDate>
        </item>

        <item>
                <title>Mac OSX에서 NLTK Data 설치하기</title>
                <description>
&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/kjInASI9GGE&quot; frameborder=&quot;0&quot; gesture=&quot;media&quot; allow=&quot;encrypted-media&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;h1 id=&quot;mac-osx에서-nltk-data-설치하기&quot;&gt;Mac OSX에서 &lt;a href=&quot;http://www.nltk.org/nltk_data/&quot;&gt;NLTK Data&lt;/a&gt; 설치하기&lt;/h1&gt;

&lt;ul&gt;
  &lt;li&gt;파이썬을 이용한 자연어 처리 툴깃&lt;/li&gt;
  &lt;li&gt;분류, 토큰 화, 형태소 분석, 태깅, 구문 분석 및 의미 추론을 위한 텍스트 처리 라이브러리, WordNet을 제공&lt;/li&gt;
  &lt;li&gt;아나콘다를 사용하면 한 번에 다운로드를 받을 수 있으나, 아나콘다 환경이 아닐 때 직접 설치하려고 하면 CERTIFICATE_VERIFY_FAILED 로 설치가 되지 않는다.&lt;/li&gt;
  &lt;li&gt;nltk.download() 에서 SSL오류가 발생해 설치를 못하고 고생하다 결국 nltk_data 를 일일이 내려받았다.&lt;/li&gt;
  &lt;li&gt;한 번에 받는 방법도 있다. 하지만 그 방법도 SSL 오류가 발생한다.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/nltk/nltk_data&quot;&gt;nltk/nltk_data: NLTK Data&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;일일이 다운받는 게 귀찮다면 위의 깃헙 패키지 폴더를 nltk_data에 한번에 옮겨놓고 필요한 패키지들의 압축을 해당 위치에서 풀어 사용해도 된다.&lt;/li&gt;
  &lt;li&gt;일단 nltk부터 설치한다.&lt;/li&gt;
&lt;/ul&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;nltk&lt;/span&gt;
&lt;span class=&quot;err&quot;&gt;!&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;pip3&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;show&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;nltk&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;Name: nltk
Version: 3.2.5
Summary: Natural Language Toolkit
Home-page: http://nltk.org/
Author: Steven Bird
Author-email: stevenbird1@gmail.com
License: Apache License, Version 2.0
Location: /Users/corazzon/codes/jupyter/lib/python3.6/site-packages
Requires: six
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;sentence&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&quot;&quot;&quot;At eight o&apos;clock on Thursday morning Arthur didn&apos;t feel very good.&quot;&quot;&quot;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;tokens&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;nltk&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;word_tokenize&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;sentence&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;tokens&lt;/span&gt; 
&lt;span class=&quot;c1&quot;&gt;# nltk.download(&apos;punkt&apos;)
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;[&apos;At&apos;,
 &apos;eight&apos;,
 &quot;o&apos;clock&quot;,
 &apos;on&apos;,
 &apos;Thursday&apos;,
 &apos;morning&apos;,
 &apos;Arthur&apos;,
 &apos;did&apos;,
 &quot;n&apos;t&quot;,
 &apos;feel&apos;,
 &apos;very&apos;,
 &apos;good&apos;,
 &apos;.&apos;]
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;tagged&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;nltk&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;pos_tag&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;tokens&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;tagged&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;[(&apos;At&apos;, &apos;IN&apos;),
 (&apos;eight&apos;, &apos;CD&apos;),
 (&quot;o&apos;clock&quot;, &apos;NN&apos;),
 (&apos;on&apos;, &apos;IN&apos;),
 (&apos;Thursday&apos;, &apos;NNP&apos;),
 (&apos;morning&apos;, &apos;NN&apos;),
 (&apos;Arthur&apos;, &apos;NNP&apos;),
 (&apos;did&apos;, &apos;VBD&apos;),
 (&quot;n&apos;t&quot;, &apos;RB&apos;),
 (&apos;feel&apos;, &apos;VB&apos;),
 (&apos;very&apos;, &apos;RB&apos;),
 (&apos;good&apos;, &apos;JJ&apos;),
 (&apos;.&apos;, &apos;.&apos;)]
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;c1&quot;&gt;# nltk.download(&apos;averaged_perceptron_tagger&apos;)
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;c1&quot;&gt;# [nltk_data] Error loading wordnet: &amp;lt;urlopen error [SSL:
# [nltk_data]     CERTIFICATE_VERIFY_FAILED] certificate verify failed
# [nltk_data]     (_ssl.c:749)&amp;gt;
# 위와 같은 오류가 나서 스택오버플로우를 검색해 봤더니 SSL 링크가 깨져서 직접 다운로드 받아야 한다고 한다.
# 다음의 폴더에 넣어주면 작동을 한다. 첫줄에 있는 Resource에 있는 하위 경로도 같이 맞춰주어야 한다.
# **********************************************************************
#   Resource &apos;corpora/wordnet.zip/wordnet/&apos; not found.  Please use
#   the NLTK Downloader to obtain the resource:  &amp;gt;&amp;gt;&amp;gt; nltk.download()
#   Searched in:
#     - &apos;/usr/share/nltk_data&apos;
#     - &apos;/usr/local/share/nltk_data&apos;
#     - &apos;/usr/lib/nltk_data&apos;
#     - &apos;/usr/local/lib/nltk_data&apos;
# **********************************************************************
#   &amp;gt;&amp;gt;&amp;gt; import nltk
#   &amp;gt;&amp;gt;&amp;gt; nltk.download(&apos;averaged_perceptron_tagger&apos;)
# 오류 내용을 보니 다음의 경로에서 파일을 찾을 수 없는 것으로 보인다.
# 위의 nltk_data폴더에 아래 경로의 폴더를 만들어 넣어주어야지 읽어올 수 있다.
# 오류 로그에 나오는 아래의 경로를 확인해서 다운로드 받은 averaged_perceptron_tagger를 nltk_data/taggers 경로에 넣어준다.
#  AP_MODEL_LOC = &apos;file:&apos;+str(find(&apos;taggers/averaged_perceptron_tagger/&apos;+PICKLE))
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;c1&quot;&gt;# 다음의 항목을 추가로 설치해야 했으나 링크가 깨져 직접 다운로드 받음
# from nltk.corpus import brown
# brown.words()
# nltk.download(&apos;punkt&apos;)
# nltk.download(&apos;averaged_perceptron_tagger&apos;)
&lt;/span&gt;
&lt;span class=&quot;c1&quot;&gt;# nltk.download(&apos;treebank&apos;)
# nltk.download(&apos;wordnet&apos;)
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;nltk.download()를 하면 다음과 같은 창과 함께 오류메시지가 출력되고 다운로드가 되지 않는다.
&lt;img src=&quot;nltk_download.png&quot; alt=&quot;&apos;image&apos;&quot; /&gt;
터미널로 다운로드를 시도해도 같은 오류가 발생한다.&lt;/p&gt;

&lt;p&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;$ sudo python -m nltk.downloader -d /usr/local/share/nltk_data all&lt;/code&gt;&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/runpy.py:125: RuntimeWarning: &apos;nltk.downloader&apos; found in sys.modules after import of package &apos;nltk&apos;, but prior to execution of &apos;nltk.downloader&apos;; this may result in unpredictable behaviour
  warn(RuntimeWarning(msg))
[nltk_data] Error loading all: &amp;lt;urlopen error [SSL:
[nltk_data]     CERTIFICATE_VERIFY_FAILED] certificate verify failed
[nltk_data]     (_ssl.c:749)&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;ul&gt;
  &lt;li&gt;링크가 깨져서 http://www.nltk.org/nltk_data/ 에서 직접 다운로드 후 다음의 링크에 넣어 둠&lt;/li&gt;
  &lt;li&gt;nltk_data 경로에 punkt 폴더를 추가해도 읽어오지 못해서 무슨 문제인지 찾아보았더니 tokenizers 폴더를 생성하고 그 안에 punkt를 넣어주어야 로드해 올 수 있다.&lt;/li&gt;
  &lt;li&gt;/usr/local/share/nltk_data/tokenizers/punkt
&lt;a href=&quot;https://stackoverflow.com/questions/38916452/nltk-download-ssl-certificate-verify-failed&quot;&gt;NLTK download SSL: Certificate verify failed - Stack Overflow&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;c1&quot;&gt;# nltk.download()
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h2 id=&quot;결론&quot;&gt;결론&lt;/h2&gt;
&lt;ol&gt;
  &lt;li&gt;다음의 경로에 nltk_data 폴더를 만든다. &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/usr/local/share/nltk_data/&lt;/code&gt;
    &lt;ul&gt;
      &lt;li&gt;필요한 패키지를 nltk_data에 직접 다운로드 받아 옮겨놔도 동작하는 패키지도 있지만, 위치정보에 맞게 새로운 폴더를 생성하고 다운로드 받은 패키지를 옮겨야 하기도 한다.&lt;/li&gt;
      &lt;li&gt;nltk_data에 패키지를 옮겨도 동작하지 않으면 다음의 github 경로를 참고하여 폴더를 만들어 준다. https://github.com/nltk/nltk_data/tree/gh-pages/packages&lt;/li&gt;
      &lt;li&gt;아니면 위의 깃헙 패키지 폴더를 nltk_data에 한번에 옮겨놓고 필요한 패키지들의 압축을 해당 위치에서 풀어 사용해도 된다.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ol&gt;
</description>
                <link>http://corazzon.github.io/nltk_data_install</link>
                <guid>http://corazzon.github.io/nltk_data_install</guid>
                <pubDate>2017-12-11T00:00:00+00:00</pubDate>
        </item>

        <item>
                <title>scikit-learn 핵심개발자 안드레아 뮐러가 쓴 머신러닝 책 - 파이썬 라이브러리를 활용한 머신러닝</title>
                <description>
&lt;h1 id=&quot;파이썬-라이브러리를-활용한-머신러닝&quot;&gt;파이썬 라이브러리를 활용한 머신러닝&lt;/h1&gt;

&lt;p&gt;이 리뷰는 한빛미디어의 “나는 리뷰어다” 이벤트를 통해 책을 제공받아 작성했습니다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/jEd50yE.jpg&quot; alt=&quot;표지&quot; width=&quot;500px&quot; /&gt;&lt;/p&gt;

&lt;p&gt;이 책은 싸이킷런의 핵심 개발자가 참여해 집필했다는 것만으로도 매력적으로 다가왔다. 파이썬 머신러닝을 얘기할 때 사이킷런이 핵심을 차지하고 있기 때문에 출간 때부터 눈여겨 왔는데, 한빛미디어의 &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;나는 리뷰어다&lt;/code&gt;를 통해 읽을 수 있게 되어 행운이었다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/yttwK1W.jpg&quot; alt=&quot;저자역자소개&quot; width=&quot;500px&quot; /&gt;&lt;/p&gt;

&lt;p&gt;이 책은 그간 여러 경로로 머신러닝을 배워 온 내게 머신러닝의 개념을 머릿속에 정리할 수 있도록 도움을 주었다.&lt;/p&gt;

&lt;p&gt;또 그동안 읽었던 머신러닝 관련 책들에 있는 수식들은 수포자인 내게 자연스럽게 위축되고 갑자기 머릿속이 하얗게 타버리는 경험을 주었다. 하지만 이 책은 어려운 수식 대신 친절한 코드로 그 설명을 대신하고 있다. 
어려운 수식을 이해하고 있지 못하더라도 싸이킷런에 구현 된 코드 몇 줄이면 머신러닝을 그럴듯 하게 구현하고 비교/실험해 볼 수 있다.&lt;/p&gt;

&lt;p&gt;게다가 소스코드는 깃헙 저장소에 친절하게 한글로 번역되어 공개되어 있다. 그리고 역자의 블로그를 통해서 2장까지 무료로 읽어볼 수 있도록 공개 되어 있기도 하다.&lt;/p&gt;

&lt;p&gt;이 책의 저자는 mglearn이라는 이 책을 위한 라이브러리를 만들어 그래프나 데이터 적재와 관련한 세세한 코드를 일일이 쓰지 않아도 되게끔 유틸리티 함수를 만들기 까지 했다. 이 라이브러리와 함께 친절한 설명은 싸이킷런을 처음 시작하는 초보자들에게 진입장벽을 낮춰주려는 노력이 보이는 책이다.&lt;/p&gt;

&lt;p&gt;그리고 대부분의 데이터는 싸이킷런에 내장된 데이터셋을 사용했다. 그래서 대부분 import만으로 데이터를 로드해서 사용할 수 있도록 구성되어 있다.&lt;/p&gt;

&lt;p&gt;기술서적을 읽을 때 코드를 실행해 보지 않고 눈으로만 읽으면 잘 이해가 되지 않는 편인데 이 책은 친절하게 소스코드 주석도 번역이 되어 있어 소스코드를 실행해 보는 것만으로도 쉽게 이해할 수 있도록 구성되어있다. 그래서 책을 읽기 전에 소스코드를 먼저 실행해 보는 것만으로도 책의 흐름을 잡는데 도움이 되었다. 또, 다양한 머신러닝의 여러 알고리즘을 비교해볼 수 있다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/IB20XjE.jpg&quot; alt=&quot;텍스트다루기목차&quot; width=&quot;500px&quot; /&gt;&lt;/p&gt;

&lt;p&gt;그리고 7장의 텍스트데이터 다루기에서는 KoNLPy를 사용한 영화분석을 별도로 추가해서 한국어 텍스트를 다루는 방법까지 친절하게 안내되어 있다.&lt;/p&gt;

&lt;h3 id=&quot;지도-학습&quot;&gt;지도 학습&lt;/h3&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/FUAJ8xs.jpg&quot; alt=&quot;지도 학습요약&quot; width=&quot;500px&quot; /&gt;&lt;/p&gt;

&lt;p&gt;이 책을 구매하지 않더라도 지도 학습까지는 역자의 블로그에 공개가 되어 있어 무료로 볼 수 있다. 2장은 지도 학습과 관련 된 모델의 장단점을 자세한 코드와 결과로 비교해 볼 수가 있다. 또 싸이킷런에 내장되어 있는 데이터셋을 통해 다양한 모델을 실험해 볼 수 있어 분류 데이터인지 회귀 데이터인지에 따라 어떤 모델을 사용해야 할지 비교해 볼 수가 있다.&lt;/p&gt;

&lt;h3 id=&quot;비지도-학습&quot;&gt;비지도 학습&lt;/h3&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/ZnBl8PP.jpg&quot; alt=&quot;PCA&quot; height=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;p&gt;비지도 학습에서는 PCA와 t-SNE를 사용한 결과비교를 얼굴데이터셋을 통해 비교해 볼 수 있도록 설명하고 있다. 그리고 이미지 데이터셋을 다루는 방법과   다양한 알고리즘에 대한 비교를 해준다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/p0kVzzX.jpg&quot; alt=&quot;비지도 학습요약&quot; width=&quot;500px&quot; /&gt;&lt;/p&gt;

&lt;p&gt;레이블이 없는 데이터를 다루는 비지도 학습에서는 분해, 매니폴드, 군집을 통해 데이터의 이해도를 높일 수 있는 방법을 제시해 준다.&lt;/p&gt;

&lt;h3 id=&quot;범주형-변수-다루기-one-hot-encoding&quot;&gt;범주형 변수 다루기 One-hot-Encoding&lt;/h3&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/PH2JTXY.jpg&quot; alt=&quot;범주형변수&quot; width=&quot;500px&quot; /&gt;&lt;/p&gt;

&lt;p&gt;머신러닝에서 피처엔지니어링을 할 때 범주형 변수를 다루는 원핫인코딩을 이해하기 쉽게 자세히 설명하고 있다. 처음 캐글에서 타이타닉 예제를 다루며 원핫인코딩을 알게 되었는데 get_dummies와 OneHotEncoder를 통해 원핫인코딩을 하는 방법 또한 소개하고 있다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/kO996Yb.jpg&quot; alt=&quot;원핫인코딩&quot; width=&quot;500px&quot; /&gt;&lt;/p&gt;

&lt;p&gt;원핫인코딩을 자전거 대여 데이터셋의 시간-요일에 적용한 예&lt;/p&gt;

&lt;h3 id=&quot;한국어-자연어처리-konlpy&quot;&gt;한국어 자연어처리 KoNLPy&lt;/h3&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/X4PfPqp.jpg&quot; alt=&quot;KoNLPy&quot; width=&quot;500px&quot; /&gt;&lt;/p&gt;

&lt;p&gt;NLTK만으로는 한국어 데이터를 다루기 어려운데 부록으로 한국어 자연어처리 패키지인 KoNLPy부분까지 다루고 있다. 그리고 네이버 영화리뷰 20만개를 묶은 말뭉치 데이터를 활용하여 학습시키는 것도 알려주고 있다.&lt;/p&gt;

&lt;p&gt;이 책은 머신러닝(기계학습)을 처음 시작하는 사람들에게 머신러닝이 어떤 것이고 지도 학습과 비지도 학습의 차이, 레이블이란 무엇이고 레이블이 있고 없고의 차이를 알게 해준다. 그리고 데이터셋에 따라 어떤 모델을 사용하고 평가하는 방법, 그리고 성능향상을 위한 방법도 제시하고 있다. 또 파이프라인을 통해 교차검증을 사용하여 모델을 평가하고 그리드서치를 사용해서 매개변수를 엮는 과정에서 발생할 수 있는 실수를 줄여줄 수 있도록 안내하고 있다.&lt;/p&gt;

&lt;p&gt;다만, 이 책은 입문서이고 제목에서 라이브러리를 활용한 머신러닝이기 때문에 책 소개에서처럼 밑바닥부터 다루고 있지 않다. 그래서 각 알고리즘의 구현철학이나 내부 동작에 대해서는 좀 더 깊게 볼 필요가 있다.&lt;/p&gt;

&lt;p&gt;이 책은 머신러닝이라는 큰 그림을 이해하고 문제를 풀기위한 큰 맥락을 제공한다. 그간 여러 경로로 학습하고 이해했던 머신러닝에 대해 정리하고 놓치고 있었던 부분들을 챙겨서 앞으로 학습할 방향을 잡는데 도움이 되었다.&lt;/p&gt;

&lt;h3 id=&quot;관련-링크&quot;&gt;관련 링크&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.hanbit.co.kr/store/books/look.php?p_code=B6119391002&quot;&gt;파이썬 라이브러리를 활용한 머신러닝 - 한빛출판네트워크&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://tensorflow.blog/%ED%8C%8C%EC%9D%B4%EC%8D%AC-%EB%9D%BC%EC%9D%B4%EB%B8%8C%EB%9F%AC%EB%A6%AC%EB%A5%BC-%ED%99%9C%EC%9A%A9%ED%95%9C-%EB%A8%B8%EC%8B%A0%EB%9F%AC%EB%8B%9D/&quot;&gt;역자 블로그&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/rickiepark/introduction_to_ml_with_python&quot;&gt;역자 github 주피터 노트북과 코드&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
                <link>http://corazzon.github.io/review_ml_with_python_by_andreas</link>
                <guid>http://corazzon.github.io/review_ml_with_python_by_andreas</guid>
                <pubDate>2017-11-26T00:00:00+00:00</pubDate>
        </item>

        <item>
                <title>MAC OSX에서 konlpy 설치 시 ImportError: No module named 'jpype' 오류 해결</title>
                <description>
&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/yUImPXmYO7M&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;http://konlpy.org/ko/v0.4.3/install/&quot;&gt;설치하기 — KoNLPy 0.4.3 documentation&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;c1&quot;&gt;# 일단, 내 MAC OSX 버전은 다음과 같다.
&lt;/span&gt;&lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;platform&lt;/span&gt;
&lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;sys&lt;/span&gt;

&lt;span class=&quot;k&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;&quot;&quot;
system: %s
mac_ver: %s
&quot;&quot;&quot;&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;%&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;platform&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;system&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(),&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;platform&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;mac_ver&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(),&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;))&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;system: Darwin
mac_ver: (&apos;10.13.1&apos;, (&apos;&apos;, &apos;&apos;, &apos;&apos;), &apos;x86_64&apos;)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;konlpy를 &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;pip install konlpy&lt;/code&gt;로 설치하고 노트북에서 import 했더니 다음과 같은 오류가 나서 몇 시간을 헤멨다.&lt;/p&gt;

&lt;h2 id=&quot;jpype&quot;&gt;JPype&lt;/h2&gt;
&lt;p&gt;JPype는 Python 프로그램이 Java 클래스 라이브러리에 접근하고자 할 때 필요하다고 한다.&lt;/p&gt;

&lt;h2 id=&quot;1-pip-install-konlpy-로-깔끔하게-설치가-완료된-듯-하여-노트북에서-konlpy-를-불러왔다&quot;&gt;1. pip install konlpy 로 깔끔하게 설치가 완료된 듯 하여, 노트북에서 konlpy 를 불러왔다.&lt;/h2&gt;

&lt;p&gt;import konlpy&lt;/p&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;nb&quot;&gt;ImportError&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;No&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;module&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;named&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&apos;jpype&apos;&lt;/span&gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h2 id=&quot;2-jpype-가-필요한-듯-하여-이-때부터-설치-삽질이-시작-되었다&quot;&gt;2. jpype 가 필요한 듯 하여, 이 때부터 설치 삽질이 시작 되었다.&lt;/h2&gt;

&lt;p&gt;pip install jpype를 하니 오류가 나서 찾아보니 공식문서에 소스코드를 받아 직접 설치하는 방법이 나와서 깃헙에서 해당 소스를 다운로드 받았다.&lt;br /&gt;
처음에는 깃헙에 있는 소스코드를 다운로드 받아 설치했는데, 설치가 잘 되지 않아 최신소스 보다는 배포판이 좀 더 안정적이지 않을까 하여, 배포판을 다시 다운로드 받았다.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://pypi.python.org/pypi/JPype1&quot;&gt;JPype1 0.6.2 : Python Package Index&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;github : &lt;a href=&quot;https://github.com/originell/jpype&quot;&gt;originell/jpype: Friendly jpype fork with focus on easy installation.&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;공식 문서 : &lt;a href=&quot;http://jpype.readthedocs.io/en/latest/index.html&quot;&gt;JPype documentation — JPype 0.6.2 documentation&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;3-자바-설치-및-환경변수-설정&quot;&gt;3. 자바 설치 및 환경변수 설정&lt;/h2&gt;
&lt;p&gt;여러 문서를 뒤적거리다가 자바 jdk 버전문제인가 생각이 되어 설치 된 버전을 삭제하고 예전 버전을 설치해 주고 환경변수까지 설정해 주었다.&lt;br /&gt;
그리고 맥에서 레거시용 자바를 다운로드 받을 수 있는 페이지가 있어서 해당 페이지에 가서 해당 자바를 다운로드 받아 설치했다.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://support.apple.com/kb/dl1572?locale=ko_KR&quot;&gt;다운로드 - OS X용 Java 2015-001&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;터미널에서 java -version 으로 설치 정보를 봤다.
    &lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;java version &quot;1.8.0_151&quot;
Java(TM) SE Runtime Environment (build 1.8.0_151-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.151-b12, mixed mode)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;    &lt;/div&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;4-그런데도-python-setuppy-build를-해주었더니-다음과-같은-오류가-나왔다&quot;&gt;4. 그런데도 &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;python setup.py build&lt;/code&gt;를 해주었더니 다음과 같은 오류가 나왔다.&lt;/h2&gt;

&lt;div class=&quot;language-c highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;nl&quot;&gt;cc1plus:&lt;/span&gt; &lt;span class=&quot;nl&quot;&gt;warning:&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;command&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;line&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;option&lt;/span&gt; &lt;span class=&quot;err&quot;&gt;&apos;&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;Wstrict&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;prototypes&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;&apos;&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;is&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;valid&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;C&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;ObjC&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;but&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;not&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;C&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;++&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;In&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;file&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;included&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;src&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;native&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;common&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;include&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;jpype&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;h&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;45&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
                 &lt;span class=&quot;n&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;src&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;native&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;common&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;jp_method&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;cpp&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;17&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;:&lt;/span&gt;
&lt;span class=&quot;o&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;Library&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;Java&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;JavaVirtualMachines&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;jdk1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;_151&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;jdk&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;Contents&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;Home&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;include&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;jni&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;h&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;39&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;fatal&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;error&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;stdio&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;h&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;No&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;such&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;file&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;or&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;directory&lt;/span&gt;
 &lt;span class=&quot;cp&quot;&gt;#include&lt;/span&gt; &lt;span class=&quot;cpf&quot;&gt;&amp;lt;stdio.h&amp;gt;&lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;
&lt;/span&gt;          &lt;span class=&quot;o&quot;&gt;^~~~~~~~~&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h2 id=&quot;5-c나-c과-관련-된-문제는-xcode-관련-문제일거-같아-다음의-명령어로-다시-설치를-해주었다&quot;&gt;5. c나 c++과 관련 된 문제는 Xcode 관련 문제일거 같아 다음의 명령어로 다시 설치를 해주었다.&lt;/h2&gt;
&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;$ xcode-select --install
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;다시 다운로드 받은 프로젝트 폴더로 갔다.&lt;/p&gt;
&lt;div class=&quot;language-sh highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;python setup.py build
&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;python setup.py &lt;span class=&quot;nb&quot;&gt;install&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;h2 id=&quot;설치-성공&quot;&gt;설치 성공!&lt;/h2&gt;

&lt;p&gt;pip install JPype1-py3 로 설치해도 잘 된다.&lt;/p&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;kn&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;konlpy.tag&lt;/span&gt; &lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;Kkma&lt;/span&gt;
&lt;span class=&quot;kn&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;konlpy.utils&lt;/span&gt; &lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;pprint&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;kkma&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;Kkma&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;kkma&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;sentences&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;sa&quot;&gt;u&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;JPype 설치 너무 까다롭습니다. 몇 시간을 날렸어요.&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;))&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;[&apos;JPype 설치 너무 까다롭습니다.&apos;, &apos;몇 시간을 날렸어요.&apos;]
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;k&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;kkma&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;nouns&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;sa&quot;&gt;u&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;JPype 설치 너무 까다롭습니다. 몇 시간을 날렸어요.&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;))&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;[&apos;설치&apos;, &apos;시간&apos;]
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;k&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;kkma&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;pos&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;sa&quot;&gt;u&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;JPype 설치 너무 까다롭습니다. 몇 시간을 날렸어요.&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;))&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;[(&apos;JPype&apos;, &apos;OL&apos;), (&apos;설치&apos;, &apos;NNG&apos;), (&apos;너무&apos;, &apos;MAG&apos;), (&apos;까다롭&apos;, &apos;VA&apos;), (&apos;습니다&apos;, &apos;EFN&apos;), (&apos;.&apos;, &apos;SF&apos;), (&apos;몇&apos;, &apos;MDT&apos;), (&apos;시간&apos;, &apos;NNG&apos;), (&apos;을&apos;, &apos;JKO&apos;), (&apos;날리&apos;, &apos;VV&apos;), (&apos;었&apos;, &apos;EPT&apos;), (&apos;어요&apos;, &apos;EFN&apos;), (&apos;.&apos;, &apos;SF&apos;)]
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h2 id=&quot;colab에서-설치&quot;&gt;Colab에서 설치&lt;/h2&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;# colab에서 konlpy 설치
!apt-get update
!apt-get install g++ openjdk-8-jdk 
!pip install konlpy
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h2 id=&quot;colab-에서-mecab-설치&quot;&gt;Colab 에서 Mecab 설치&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/SOMJANG/Mecab-ko-for-Google-Colab&quot;&gt;SOMJANG/Mecab-ko-for-Google-Colab: Use Mecab Library(NLP Library) in Google Colab&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;! git clone https://github.com/SOMJANG/Mecab-ko-for-Google-Colab.git 
cd Mecab-ko-for-Google-Colab 하여 Mecab-ko-for-Google-Colab directory
! bash install_mecab-ko_on_colab190912.sh
https://github.com/SOMJANG/Mecab-ko-for-Google-Colab
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
</description>
                <link>http://corazzon.github.io/Konlpy_JPype_install_struggle</link>
                <guid>http://corazzon.github.io/Konlpy_JPype_install_struggle</guid>
                <pubDate>2017-11-22T00:00:00+00:00</pubDate>
        </item>

        <item>
                <title>캐글러 설문조사의 응답을 파이썬 데이터 시각화 툴로 살펴보기</title>
                <description>
&lt;ul&gt;
  &lt;li&gt;캐글을 시작한지 두 달정도 된 초보자로, 이 설문조사의 결과를 바탕으로 데이터사이언스와 머신러닝과 관련 된 인사이트를 얻어볼 수 있지 않을까 가설을 세워본다.&lt;/li&gt;
&lt;/ul&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/5hzB54yFvnw&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;참고 URL :&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.kaggle.com/rounakbanik/data-science-faq&quot;&gt;Data Science FAQ  Kaggle&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.kaggle.com/ash316/novice-to-grandmaster&quot;&gt;Novice to Grandmaster Kaggle&lt;/a&gt;&lt;/p&gt;

&lt;h1 id=&quot;캐글러를-대상으로-한-설문조사&quot;&gt;캐글러를 대상으로 한 설문조사&lt;/h1&gt;
&lt;ul&gt;
  &lt;li&gt;설문기간 : 2017년 8월 7일부터 8월 25일까지&lt;/li&gt;
  &lt;li&gt;평균 응답 시간은 16.4 분&lt;/li&gt;
  &lt;li&gt;171 개 국가 및 지역에서 16,716 명의 응답자&lt;/li&gt;
  &lt;li&gt;특정 국가 또는 지역에서 응답자가 50 명 미만인 경우 익명을 위해 그룹을 ‘기타’그룹으로 그룹화&lt;/li&gt;
  &lt;li&gt;설문 조사 시스템에 신고 된 응답자를 스팸으로 분류하거나 취업 상태에 관한 질문에 답변하지 않은 응답자는 제외(이 질문은 첫 번째 필수 질문이기에 응답하지 않으면 응답자가 다섯 번째 질문 이후 진행되지 않음)&lt;/li&gt;
  &lt;li&gt;대부분의 응답자는 이메일 목록, 토론 포럼 및 소셜 미디어 Kaggle 채널을 통해 설문을 알게 됨&lt;/li&gt;
  &lt;li&gt;급여데이터는 일부 통화에 대해서만 받고 해당 되는 통화에 기준하여 작성하도록 함&lt;/li&gt;
  &lt;li&gt;미국 달러로 급여를 계산할 수 있도록 USD로 환산 한 csv를 제공&lt;/li&gt;
  &lt;li&gt;질문은 선택적&lt;/li&gt;
  &lt;li&gt;모든 질문이 모든 응답자에게 보여지는 것은 아님&lt;/li&gt;
  &lt;li&gt;취업을 한 사람과 학생을 나누어 다른 질문을 함&lt;/li&gt;
  &lt;li&gt;응답자의 신원을 보호하기 위해 주관식과 객관식 파일로 분리&lt;/li&gt;
  &lt;li&gt;객관식과 자유 형식 응답을 맞추기 위한 키를 제공하지 않음&lt;/li&gt;
  &lt;li&gt;주관식 응답은 같은 행에 나타나는 응답이 반드시 동일한 설문 조사자가 제공하지 않도록 열 단위로 무작위 지정&lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;데이터-파일&quot;&gt;데이터 파일&lt;/h1&gt;
&lt;p&gt;5 개의 데이터 파일을 제공&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;schema.csv : 설문 스키마가있는 CSV 파일입니다. 이 스키마에는 multipleChoiceResponses.csv 및 freeformResponses.csv의 각 열 이름에 해당하는 질문이 포함되어 있습니다.&lt;/li&gt;
  &lt;li&gt;multipleChoiceResponses.csv : 객관식 및 순위 질문에 대한 응답자의 답변, 각 행이 한 응답자의 응답&lt;/li&gt;
  &lt;li&gt;freeformResponses.csv : Kaggle의 설문 조사 질문에 대한 응답자의 주관식 답변입니다. 임의로 지정되어 각 행이 같은 응답자를 나타내지 않음&lt;/li&gt;
  &lt;li&gt;conversionRates.csv : R 패키지 “quantmod”에서 2017 년 9 월 14 일에 액세스 한 통화 변환율 (USD)&lt;/li&gt;
  &lt;li&gt;RespondentTypeREADME.txt : schema.csv 파일의 “Asked”열에 응답을 디코딩하는 스키마입니다.&lt;/li&gt;
&lt;/ul&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;c1&quot;&gt;# 노트북 안에서 그래프를 그리기 위해
&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;%&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;matplotlib&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;inline&lt;/span&gt;

&lt;span class=&quot;c1&quot;&gt;# Import the standard Python Scientific Libraries
&lt;/span&gt;&lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;pandas&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;as&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;pd&lt;/span&gt;
&lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;numpy&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;as&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;np&lt;/span&gt;
&lt;span class=&quot;kn&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;scipy&lt;/span&gt; &lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;stats&lt;/span&gt;
&lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;matplotlib.pyplot&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;as&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;plt&lt;/span&gt;
&lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;seaborn&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;as&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;sns&lt;/span&gt;

&lt;span class=&quot;c1&quot;&gt;# Suppress Deprecation and Incorrect Usage Warnings 
&lt;/span&gt;&lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;warnings&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;warnings&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;filterwarnings&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;ignore&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;question&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;pd&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;read_csv&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;data/schema.csv&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;question&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;shape&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;(290, 3)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;question&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;tail&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div&gt;
&lt;style scoped=&quot;&quot;&gt;
    .dataframe tbody tr th:only-of-type {
        vertical-align: middle;
    }

    .dataframe tbody tr th {
        vertical-align: top;
    }

    .dataframe thead th {
        text-align: right;
    }
&lt;/style&gt;
&lt;table border=&quot;1&quot; class=&quot;dataframe&quot;&gt;
  &lt;thead&gt;
    &lt;tr style=&quot;text-align: right;&quot;&gt;
      &lt;th&gt;&lt;/th&gt;
      &lt;th&gt;Column&lt;/th&gt;
      &lt;th&gt;Question&lt;/th&gt;
      &lt;th&gt;Asked&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;th&gt;285&lt;/th&gt;
      &lt;td&gt;JobFactorRemote&lt;/td&gt;
      &lt;td&gt;How are you assessing potential job opportunit...&lt;/td&gt;
      &lt;td&gt;Learners&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;286&lt;/th&gt;
      &lt;td&gt;JobFactorIndustry&lt;/td&gt;
      &lt;td&gt;How are you assessing potential job opportunit...&lt;/td&gt;
      &lt;td&gt;Learners&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;287&lt;/th&gt;
      &lt;td&gt;JobFactorLeaderReputation&lt;/td&gt;
      &lt;td&gt;How are you assessing potential job opportunit...&lt;/td&gt;
      &lt;td&gt;Learners&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;288&lt;/th&gt;
      &lt;td&gt;JobFactorDiversity&lt;/td&gt;
      &lt;td&gt;How are you assessing potential job opportunit...&lt;/td&gt;
      &lt;td&gt;Learners&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;289&lt;/th&gt;
      &lt;td&gt;JobFactorPublishingOpportunity&lt;/td&gt;
      &lt;td&gt;How are you assessing potential job opportunit...&lt;/td&gt;
      &lt;td&gt;Learners&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;c1&quot;&gt;# 판다스로 선다형 객관식 문제에 대한 응답을 가져 옴
&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;mcq&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;pd&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;read_csv&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;data/multipleChoiceResponses.csv&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; 
                  &lt;span class=&quot;n&quot;&gt;encoding&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;ISO-8859-1&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;low_memory&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;bp&quot;&gt;False&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;mcq&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;shape&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;(16716, 228)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;mcq&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;columns&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;Index([&apos;GenderSelect&apos;, &apos;Country&apos;, &apos;Age&apos;, &apos;EmploymentStatus&apos;, &apos;StudentStatus&apos;,
       &apos;LearningDataScience&apos;, &apos;CodeWriter&apos;, &apos;CareerSwitcher&apos;,
       &apos;CurrentJobTitleSelect&apos;, &apos;TitleFit&apos;,
       ...
       &apos;JobFactorExperienceLevel&apos;, &apos;JobFactorDepartment&apos;, &apos;JobFactorTitle&apos;,
       &apos;JobFactorCompanyFunding&apos;, &apos;JobFactorImpact&apos;, &apos;JobFactorRemote&apos;,
       &apos;JobFactorIndustry&apos;, &apos;JobFactorLeaderReputation&apos;, &apos;JobFactorDiversity&apos;,
       &apos;JobFactorPublishingOpportunity&apos;],
      dtype=&apos;object&apos;, length=228)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;mcq&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;head&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div&gt;
&lt;style scoped=&quot;&quot;&gt;
    .dataframe tbody tr th:only-of-type {
        vertical-align: middle;
    }

    .dataframe tbody tr th {
        vertical-align: top;
    }

    .dataframe thead th {
        text-align: right;
    }
&lt;/style&gt;
&lt;table border=&quot;1&quot; class=&quot;dataframe&quot;&gt;
  &lt;thead&gt;
    &lt;tr style=&quot;text-align: right;&quot;&gt;
      &lt;th&gt;&lt;/th&gt;
      &lt;th&gt;GenderSelect&lt;/th&gt;
      &lt;th&gt;Country&lt;/th&gt;
      &lt;th&gt;Age&lt;/th&gt;
      &lt;th&gt;EmploymentStatus&lt;/th&gt;
      &lt;th&gt;StudentStatus&lt;/th&gt;
      &lt;th&gt;LearningDataScience&lt;/th&gt;
      &lt;th&gt;CodeWriter&lt;/th&gt;
      &lt;th&gt;CareerSwitcher&lt;/th&gt;
      &lt;th&gt;CurrentJobTitleSelect&lt;/th&gt;
      &lt;th&gt;TitleFit&lt;/th&gt;
      &lt;th&gt;...&lt;/th&gt;
      &lt;th&gt;JobFactorExperienceLevel&lt;/th&gt;
      &lt;th&gt;JobFactorDepartment&lt;/th&gt;
      &lt;th&gt;JobFactorTitle&lt;/th&gt;
      &lt;th&gt;JobFactorCompanyFunding&lt;/th&gt;
      &lt;th&gt;JobFactorImpact&lt;/th&gt;
      &lt;th&gt;JobFactorRemote&lt;/th&gt;
      &lt;th&gt;JobFactorIndustry&lt;/th&gt;
      &lt;th&gt;JobFactorLeaderReputation&lt;/th&gt;
      &lt;th&gt;JobFactorDiversity&lt;/th&gt;
      &lt;th&gt;JobFactorPublishingOpportunity&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;th&gt;0&lt;/th&gt;
      &lt;td&gt;Non-binary, genderqueer, or gender non-conforming&lt;/td&gt;
      &lt;td&gt;NaN&lt;/td&gt;
      &lt;td&gt;NaN&lt;/td&gt;
      &lt;td&gt;Employed full-time&lt;/td&gt;
      &lt;td&gt;NaN&lt;/td&gt;
      &lt;td&gt;NaN&lt;/td&gt;
      &lt;td&gt;Yes&lt;/td&gt;
      &lt;td&gt;NaN&lt;/td&gt;
      &lt;td&gt;DBA/Database Engineer&lt;/td&gt;
      &lt;td&gt;Fine&lt;/td&gt;
      &lt;td&gt;...&lt;/td&gt;
      &lt;td&gt;NaN&lt;/td&gt;
      &lt;td&gt;NaN&lt;/td&gt;
      &lt;td&gt;NaN&lt;/td&gt;
      &lt;td&gt;NaN&lt;/td&gt;
      &lt;td&gt;NaN&lt;/td&gt;
      &lt;td&gt;NaN&lt;/td&gt;
      &lt;td&gt;NaN&lt;/td&gt;
      &lt;td&gt;NaN&lt;/td&gt;
      &lt;td&gt;NaN&lt;/td&gt;
      &lt;td&gt;NaN&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;1&lt;/th&gt;
      &lt;td&gt;Female&lt;/td&gt;
      &lt;td&gt;United States&lt;/td&gt;
      &lt;td&gt;30.0&lt;/td&gt;
      &lt;td&gt;Not employed, but looking for work&lt;/td&gt;
      &lt;td&gt;NaN&lt;/td&gt;
      &lt;td&gt;NaN&lt;/td&gt;
      &lt;td&gt;NaN&lt;/td&gt;
      &lt;td&gt;NaN&lt;/td&gt;
      &lt;td&gt;NaN&lt;/td&gt;
      &lt;td&gt;NaN&lt;/td&gt;
      &lt;td&gt;...&lt;/td&gt;
      &lt;td&gt;NaN&lt;/td&gt;
      &lt;td&gt;NaN&lt;/td&gt;
      &lt;td&gt;NaN&lt;/td&gt;
      &lt;td&gt;NaN&lt;/td&gt;
      &lt;td&gt;NaN&lt;/td&gt;
      &lt;td&gt;NaN&lt;/td&gt;
      &lt;td&gt;NaN&lt;/td&gt;
      &lt;td&gt;Somewhat important&lt;/td&gt;
      &lt;td&gt;NaN&lt;/td&gt;
      &lt;td&gt;NaN&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;2&lt;/th&gt;
      &lt;td&gt;Male&lt;/td&gt;
      &lt;td&gt;Canada&lt;/td&gt;
      &lt;td&gt;28.0&lt;/td&gt;
      &lt;td&gt;Not employed, but looking for work&lt;/td&gt;
      &lt;td&gt;NaN&lt;/td&gt;
      &lt;td&gt;NaN&lt;/td&gt;
      &lt;td&gt;NaN&lt;/td&gt;
      &lt;td&gt;NaN&lt;/td&gt;
      &lt;td&gt;NaN&lt;/td&gt;
      &lt;td&gt;NaN&lt;/td&gt;
      &lt;td&gt;...&lt;/td&gt;
      &lt;td&gt;Very Important&lt;/td&gt;
      &lt;td&gt;Very Important&lt;/td&gt;
      &lt;td&gt;Very Important&lt;/td&gt;
      &lt;td&gt;Very Important&lt;/td&gt;
      &lt;td&gt;Very Important&lt;/td&gt;
      &lt;td&gt;Very Important&lt;/td&gt;
      &lt;td&gt;Very Important&lt;/td&gt;
      &lt;td&gt;Very Important&lt;/td&gt;
      &lt;td&gt;Very Important&lt;/td&gt;
      &lt;td&gt;Very Important&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;3&lt;/th&gt;
      &lt;td&gt;Male&lt;/td&gt;
      &lt;td&gt;United States&lt;/td&gt;
      &lt;td&gt;56.0&lt;/td&gt;
      &lt;td&gt;Independent contractor, freelancer, or self-em...&lt;/td&gt;
      &lt;td&gt;NaN&lt;/td&gt;
      &lt;td&gt;NaN&lt;/td&gt;
      &lt;td&gt;Yes&lt;/td&gt;
      &lt;td&gt;NaN&lt;/td&gt;
      &lt;td&gt;Operations Research Practitioner&lt;/td&gt;
      &lt;td&gt;Poorly&lt;/td&gt;
      &lt;td&gt;...&lt;/td&gt;
      &lt;td&gt;NaN&lt;/td&gt;
      &lt;td&gt;NaN&lt;/td&gt;
      &lt;td&gt;NaN&lt;/td&gt;
      &lt;td&gt;NaN&lt;/td&gt;
      &lt;td&gt;NaN&lt;/td&gt;
      &lt;td&gt;NaN&lt;/td&gt;
      &lt;td&gt;NaN&lt;/td&gt;
      &lt;td&gt;NaN&lt;/td&gt;
      &lt;td&gt;NaN&lt;/td&gt;
      &lt;td&gt;NaN&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;4&lt;/th&gt;
      &lt;td&gt;Male&lt;/td&gt;
      &lt;td&gt;Taiwan&lt;/td&gt;
      &lt;td&gt;38.0&lt;/td&gt;
      &lt;td&gt;Employed full-time&lt;/td&gt;
      &lt;td&gt;NaN&lt;/td&gt;
      &lt;td&gt;NaN&lt;/td&gt;
      &lt;td&gt;Yes&lt;/td&gt;
      &lt;td&gt;NaN&lt;/td&gt;
      &lt;td&gt;Computer Scientist&lt;/td&gt;
      &lt;td&gt;Fine&lt;/td&gt;
      &lt;td&gt;...&lt;/td&gt;
      &lt;td&gt;NaN&lt;/td&gt;
      &lt;td&gt;NaN&lt;/td&gt;
      &lt;td&gt;NaN&lt;/td&gt;
      &lt;td&gt;NaN&lt;/td&gt;
      &lt;td&gt;NaN&lt;/td&gt;
      &lt;td&gt;NaN&lt;/td&gt;
      &lt;td&gt;NaN&lt;/td&gt;
      &lt;td&gt;NaN&lt;/td&gt;
      &lt;td&gt;NaN&lt;/td&gt;
      &lt;td&gt;NaN&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;5&lt;/th&gt;
      &lt;td&gt;Male&lt;/td&gt;
      &lt;td&gt;Brazil&lt;/td&gt;
      &lt;td&gt;46.0&lt;/td&gt;
      &lt;td&gt;Employed full-time&lt;/td&gt;
      &lt;td&gt;NaN&lt;/td&gt;
      &lt;td&gt;NaN&lt;/td&gt;
      &lt;td&gt;Yes&lt;/td&gt;
      &lt;td&gt;NaN&lt;/td&gt;
      &lt;td&gt;Data Scientist&lt;/td&gt;
      &lt;td&gt;Fine&lt;/td&gt;
      &lt;td&gt;...&lt;/td&gt;
      &lt;td&gt;NaN&lt;/td&gt;
      &lt;td&gt;NaN&lt;/td&gt;
      &lt;td&gt;NaN&lt;/td&gt;
      &lt;td&gt;NaN&lt;/td&gt;
      &lt;td&gt;NaN&lt;/td&gt;
      &lt;td&gt;NaN&lt;/td&gt;
      &lt;td&gt;NaN&lt;/td&gt;
      &lt;td&gt;NaN&lt;/td&gt;
      &lt;td&gt;NaN&lt;/td&gt;
      &lt;td&gt;NaN&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;6&lt;/th&gt;
      &lt;td&gt;Male&lt;/td&gt;
      &lt;td&gt;United States&lt;/td&gt;
      &lt;td&gt;35.0&lt;/td&gt;
      &lt;td&gt;Employed full-time&lt;/td&gt;
      &lt;td&gt;NaN&lt;/td&gt;
      &lt;td&gt;NaN&lt;/td&gt;
      &lt;td&gt;Yes&lt;/td&gt;
      &lt;td&gt;NaN&lt;/td&gt;
      &lt;td&gt;Computer Scientist&lt;/td&gt;
      &lt;td&gt;Fine&lt;/td&gt;
      &lt;td&gt;...&lt;/td&gt;
      &lt;td&gt;NaN&lt;/td&gt;
      &lt;td&gt;NaN&lt;/td&gt;
      &lt;td&gt;NaN&lt;/td&gt;
      &lt;td&gt;NaN&lt;/td&gt;
      &lt;td&gt;NaN&lt;/td&gt;
      &lt;td&gt;NaN&lt;/td&gt;
      &lt;td&gt;NaN&lt;/td&gt;
      &lt;td&gt;NaN&lt;/td&gt;
      &lt;td&gt;NaN&lt;/td&gt;
      &lt;td&gt;NaN&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;7&lt;/th&gt;
      &lt;td&gt;Female&lt;/td&gt;
      &lt;td&gt;India&lt;/td&gt;
      &lt;td&gt;22.0&lt;/td&gt;
      &lt;td&gt;Employed full-time&lt;/td&gt;
      &lt;td&gt;NaN&lt;/td&gt;
      &lt;td&gt;NaN&lt;/td&gt;
      &lt;td&gt;No&lt;/td&gt;
      &lt;td&gt;Yes&lt;/td&gt;
      &lt;td&gt;Software Developer/Software Engineer&lt;/td&gt;
      &lt;td&gt;Fine&lt;/td&gt;
      &lt;td&gt;...&lt;/td&gt;
      &lt;td&gt;Very Important&lt;/td&gt;
      &lt;td&gt;Somewhat important&lt;/td&gt;
      &lt;td&gt;Very Important&lt;/td&gt;
      &lt;td&gt;Somewhat important&lt;/td&gt;
      &lt;td&gt;Somewhat important&lt;/td&gt;
      &lt;td&gt;Not important&lt;/td&gt;
      &lt;td&gt;Very Important&lt;/td&gt;
      &lt;td&gt;Very Important&lt;/td&gt;
      &lt;td&gt;Somewhat important&lt;/td&gt;
      &lt;td&gt;Somewhat important&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;8&lt;/th&gt;
      &lt;td&gt;Female&lt;/td&gt;
      &lt;td&gt;Australia&lt;/td&gt;
      &lt;td&gt;43.0&lt;/td&gt;
      &lt;td&gt;Employed full-time&lt;/td&gt;
      &lt;td&gt;NaN&lt;/td&gt;
      &lt;td&gt;NaN&lt;/td&gt;
      &lt;td&gt;Yes&lt;/td&gt;
      &lt;td&gt;NaN&lt;/td&gt;
      &lt;td&gt;Business Analyst&lt;/td&gt;
      &lt;td&gt;Fine&lt;/td&gt;
      &lt;td&gt;...&lt;/td&gt;
      &lt;td&gt;NaN&lt;/td&gt;
      &lt;td&gt;NaN&lt;/td&gt;
      &lt;td&gt;NaN&lt;/td&gt;
      &lt;td&gt;NaN&lt;/td&gt;
      &lt;td&gt;NaN&lt;/td&gt;
      &lt;td&gt;NaN&lt;/td&gt;
      &lt;td&gt;NaN&lt;/td&gt;
      &lt;td&gt;NaN&lt;/td&gt;
      &lt;td&gt;NaN&lt;/td&gt;
      &lt;td&gt;NaN&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;9&lt;/th&gt;
      &lt;td&gt;Male&lt;/td&gt;
      &lt;td&gt;Russia&lt;/td&gt;
      &lt;td&gt;33.0&lt;/td&gt;
      &lt;td&gt;Employed full-time&lt;/td&gt;
      &lt;td&gt;NaN&lt;/td&gt;
      &lt;td&gt;NaN&lt;/td&gt;
      &lt;td&gt;Yes&lt;/td&gt;
      &lt;td&gt;NaN&lt;/td&gt;
      &lt;td&gt;Software Developer/Software Engineer&lt;/td&gt;
      &lt;td&gt;Fine&lt;/td&gt;
      &lt;td&gt;...&lt;/td&gt;
      &lt;td&gt;NaN&lt;/td&gt;
      &lt;td&gt;NaN&lt;/td&gt;
      &lt;td&gt;NaN&lt;/td&gt;
      &lt;td&gt;NaN&lt;/td&gt;
      &lt;td&gt;NaN&lt;/td&gt;
      &lt;td&gt;NaN&lt;/td&gt;
      &lt;td&gt;NaN&lt;/td&gt;
      &lt;td&gt;NaN&lt;/td&gt;
      &lt;td&gt;NaN&lt;/td&gt;
      &lt;td&gt;NaN&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;10 rows × 228 columns&lt;/p&gt;
&lt;/div&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;c1&quot;&gt;# missingno는 NaN 데이터들에 대해 시각화를 해준다.
# NaN 데이터의 컬럼이 많아 아래 그래프만으로는 내용을 파악하기 어렵다.
&lt;/span&gt;&lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;missingno&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;as&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;msno&lt;/span&gt;

&lt;span class=&quot;n&quot;&gt;msno&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;matrix&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;mcq&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;figsize&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;12&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;))&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;img src=&quot;images/2017/Kaggle-ML-DS-survey-2017-EDA-FAQ_files/Kaggle-ML-DS-survey-2017-EDA-FAQ_7_0.png&quot; alt=&quot;png&quot; /&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;16,716 명의 데이터와 228개의 선다형 객관식문제와 62개의 주관식 질문에 대한 응답이다. (총 290개의 질문) 응답하지 않은 질문이 많음&lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;설문통계&quot;&gt;설문통계&lt;/h1&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;c1&quot;&gt;# 성별
&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;sns&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;countplot&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;y&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;GenderSelect&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;mcq&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&amp;lt;matplotlib.axes._subplots.AxesSubplot at 0x113bfa5f8&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;img src=&quot;images/2017/Kaggle-ML-DS-survey-2017-EDA-FAQ_files/Kaggle-ML-DS-survey-2017-EDA-FAQ_9_1.png&quot; alt=&quot;png&quot; /&gt;&lt;/p&gt;

&lt;p&gt;여성보다는 남성의 비율이 훨씬 높은 편이다.&lt;/p&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;c1&quot;&gt;# 국가별 응답수
&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;con_df&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;pd&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;DataFrame&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;mcq&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;Country&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;value_counts&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;())&lt;/span&gt;
&lt;span class=&quot;c1&quot;&gt;# print(con_df)
# &apos;country&apos; 컬럼을 인덱스로 지정해 주고
&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;con_df&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;국가&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;con_df&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;index&lt;/span&gt;
&lt;span class=&quot;c1&quot;&gt;# 컬럼의 순서대로 응답 수, 국가로 컬럼명을 지정해 줌
&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;con_df&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;columns&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;응답 수&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&apos;국가&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
&lt;span class=&quot;c1&quot;&gt;# index 컬럼을 삭제하고 순위를 알기위해 reset_index()를 해준다.
# 우리 나라는 18위이고 전체 52개국에서 참여했지만 20위까지만 본다. 
&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;con_df&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;con_df&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;reset_index&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;().&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;drop&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;index&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;axis&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;con_df&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;head&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;20&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div&gt;
&lt;style scoped=&quot;&quot;&gt;
    .dataframe tbody tr th:only-of-type {
        vertical-align: middle;
    }

    .dataframe tbody tr th {
        vertical-align: top;
    }

    .dataframe thead th {
        text-align: right;
    }
&lt;/style&gt;
&lt;table border=&quot;1&quot; class=&quot;dataframe&quot;&gt;
  &lt;thead&gt;
    &lt;tr style=&quot;text-align: right;&quot;&gt;
      &lt;th&gt;&lt;/th&gt;
      &lt;th&gt;응답 수&lt;/th&gt;
      &lt;th&gt;국가&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;th&gt;0&lt;/th&gt;
      &lt;td&gt;4197&lt;/td&gt;
      &lt;td&gt;United States&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;1&lt;/th&gt;
      &lt;td&gt;2704&lt;/td&gt;
      &lt;td&gt;India&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;2&lt;/th&gt;
      &lt;td&gt;1023&lt;/td&gt;
      &lt;td&gt;Other&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;3&lt;/th&gt;
      &lt;td&gt;578&lt;/td&gt;
      &lt;td&gt;Russia&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;4&lt;/th&gt;
      &lt;td&gt;535&lt;/td&gt;
      &lt;td&gt;United Kingdom&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;5&lt;/th&gt;
      &lt;td&gt;471&lt;/td&gt;
      &lt;td&gt;People &apos;s Republic of China&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;6&lt;/th&gt;
      &lt;td&gt;465&lt;/td&gt;
      &lt;td&gt;Brazil&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;7&lt;/th&gt;
      &lt;td&gt;460&lt;/td&gt;
      &lt;td&gt;Germany&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;8&lt;/th&gt;
      &lt;td&gt;442&lt;/td&gt;
      &lt;td&gt;France&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;9&lt;/th&gt;
      &lt;td&gt;440&lt;/td&gt;
      &lt;td&gt;Canada&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;10&lt;/th&gt;
      &lt;td&gt;421&lt;/td&gt;
      &lt;td&gt;Australia&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;11&lt;/th&gt;
      &lt;td&gt;320&lt;/td&gt;
      &lt;td&gt;Spain&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;12&lt;/th&gt;
      &lt;td&gt;277&lt;/td&gt;
      &lt;td&gt;Japan&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;13&lt;/th&gt;
      &lt;td&gt;254&lt;/td&gt;
      &lt;td&gt;Taiwan&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;14&lt;/th&gt;
      &lt;td&gt;238&lt;/td&gt;
      &lt;td&gt;Italy&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;15&lt;/th&gt;
      &lt;td&gt;205&lt;/td&gt;
      &lt;td&gt;Netherlands&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;16&lt;/th&gt;
      &lt;td&gt;196&lt;/td&gt;
      &lt;td&gt;Ukraine&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;17&lt;/th&gt;
      &lt;td&gt;194&lt;/td&gt;
      &lt;td&gt;South Korea&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;18&lt;/th&gt;
      &lt;td&gt;184&lt;/td&gt;
      &lt;td&gt;Poland&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;19&lt;/th&gt;
      &lt;td&gt;184&lt;/td&gt;
      &lt;td&gt;Singapore&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;c1&quot;&gt;# 연령에 대한 정보를 본다.
&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;mcq&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;Age&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;describe&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;count    16385.000000
mean        32.372841
std         10.473487
min          0.000000
25%         25.000000
50%         30.000000
75%         37.000000
max        100.000000
Name: Age, dtype: float64
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;sns&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;distplot&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;mcq&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;mcq&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;Age&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;][&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;Age&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;])&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&amp;lt;matplotlib.axes._subplots.AxesSubplot at 0x113c21048&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;img src=&quot;images/2017/Kaggle-ML-DS-survey-2017-EDA-FAQ_files/Kaggle-ML-DS-survey-2017-EDA-FAQ_13_1.png&quot; alt=&quot;png&quot; /&gt;&lt;/p&gt;

&lt;p&gt;응답자의 대부분이 어리며, 
20대부터 급격히 늘어나며, 30대가 가장 많다. 
평균 나이는 32세다.&lt;/p&gt;

&lt;h2 id=&quot;학력&quot;&gt;학력&lt;/h2&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;sns&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;countplot&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;y&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;FormalEducation&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;mcq&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&amp;lt;matplotlib.axes._subplots.AxesSubplot at 0x1139e3eb8&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;img src=&quot;images/2017/Kaggle-ML-DS-survey-2017-EDA-FAQ_files/Kaggle-ML-DS-survey-2017-EDA-FAQ_16_1.png&quot; alt=&quot;png&quot; /&gt;&lt;/p&gt;

&lt;p&gt;학사 학위를 가진 사람보다 석사 학위를 가지고 있는 사람이 많으며, 박사학위를 가지고 있는 사람들도 많다.&lt;/p&gt;

&lt;h2 id=&quot;전공&quot;&gt;전공&lt;/h2&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;c1&quot;&gt;# value_counts 를 사용하면 그룹화 된 데이터의 카운트 값을 보여준다. 
# normalize=True 옵션을 사용하면, 
# 해당 데이터가 전체 데이터에서 어느정도의 비율을 차지하는지 알 수 있다.
&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;mcq_major_count&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;pd&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;DataFrame&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;mcq&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;MajorSelect&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;value_counts&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;())&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;mcq_major_percent&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;pd&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;DataFrame&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;mcq&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;MajorSelect&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;value_counts&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;normalize&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;bp&quot;&gt;True&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;))&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;mcq_major_df&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;mcq_major_count&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;merge&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;mcq_major_percent&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;left_index&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;bp&quot;&gt;True&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;right_index&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;bp&quot;&gt;True&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;mcq_major_df&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;columns&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;응답 수&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&apos;비율&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;mcq_major_df&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div&gt;
&lt;style scoped=&quot;&quot;&gt;
    .dataframe tbody tr th:only-of-type {
        vertical-align: middle;
    }

    .dataframe tbody tr th {
        vertical-align: top;
    }

    .dataframe thead th {
        text-align: right;
    }
&lt;/style&gt;
&lt;table border=&quot;1&quot; class=&quot;dataframe&quot;&gt;
  &lt;thead&gt;
    &lt;tr style=&quot;text-align: right;&quot;&gt;
      &lt;th&gt;&lt;/th&gt;
      &lt;th&gt;응답 수&lt;/th&gt;
      &lt;th&gt;비율&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;th&gt;Computer Science&lt;/th&gt;
      &lt;td&gt;4397&lt;/td&gt;
      &lt;td&gt;0.331074&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;Mathematics or statistics&lt;/th&gt;
      &lt;td&gt;2220&lt;/td&gt;
      &lt;td&gt;0.167156&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;Engineering (non-computer focused)&lt;/th&gt;
      &lt;td&gt;1339&lt;/td&gt;
      &lt;td&gt;0.100821&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;Electrical Engineering&lt;/th&gt;
      &lt;td&gt;1303&lt;/td&gt;
      &lt;td&gt;0.098110&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;Other&lt;/th&gt;
      &lt;td&gt;848&lt;/td&gt;
      &lt;td&gt;0.063851&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;Physics&lt;/th&gt;
      &lt;td&gt;830&lt;/td&gt;
      &lt;td&gt;0.062495&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;Information technology, networking, or system administration&lt;/th&gt;
      &lt;td&gt;693&lt;/td&gt;
      &lt;td&gt;0.052180&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;A social science&lt;/th&gt;
      &lt;td&gt;531&lt;/td&gt;
      &lt;td&gt;0.039982&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;Biology&lt;/th&gt;
      &lt;td&gt;274&lt;/td&gt;
      &lt;td&gt;0.020631&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;Management information systems&lt;/th&gt;
      &lt;td&gt;237&lt;/td&gt;
      &lt;td&gt;0.017845&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;A humanities discipline&lt;/th&gt;
      &lt;td&gt;198&lt;/td&gt;
      &lt;td&gt;0.014909&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;A health science&lt;/th&gt;
      &lt;td&gt;152&lt;/td&gt;
      &lt;td&gt;0.011445&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;Psychology&lt;/th&gt;
      &lt;td&gt;137&lt;/td&gt;
      &lt;td&gt;0.010315&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;I never declared a major&lt;/th&gt;
      &lt;td&gt;65&lt;/td&gt;
      &lt;td&gt;0.004894&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;Fine arts or performing arts&lt;/th&gt;
      &lt;td&gt;57&lt;/td&gt;
      &lt;td&gt;0.004292&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;

&lt;p&gt;컴퓨터 전공자들이 33%로 가장 많으며, 다음으로 수학, 공학, 전기 공학 순이다.&lt;/p&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;c1&quot;&gt;# 재학중인 사람들의 전공 현황
&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;plt&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;figure&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;figsize&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;))&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;sns&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;countplot&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;y&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;MajorSelect&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;mcq&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&amp;lt;matplotlib.axes._subplots.AxesSubplot at 0x1139f4160&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;img src=&quot;images/2017/Kaggle-ML-DS-survey-2017-EDA-FAQ_files/Kaggle-ML-DS-survey-2017-EDA-FAQ_21_1.png&quot; alt=&quot;png&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;취업-여부&quot;&gt;취업 여부&lt;/h2&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;mcq_es_count&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;pd&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;DataFrame&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;mcq&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;EmploymentStatus&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;value_counts&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;())&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;mcq_es_percent&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;pd&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;DataFrame&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;mcq&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;EmploymentStatus&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;value_counts&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;normalize&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;bp&quot;&gt;True&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;))&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;mcq_es_df&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;mcq_es_count&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;merge&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;mcq_es_percent&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;left_index&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;bp&quot;&gt;True&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;right_index&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;bp&quot;&gt;True&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;mcq_es_df&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;columns&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;응답 수&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&apos;비율&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;mcq_es_df&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div&gt;
&lt;style scoped=&quot;&quot;&gt;
    .dataframe tbody tr th:only-of-type {
        vertical-align: middle;
    }

    .dataframe tbody tr th {
        vertical-align: top;
    }

    .dataframe thead th {
        text-align: right;
    }
&lt;/style&gt;
&lt;table border=&quot;1&quot; class=&quot;dataframe&quot;&gt;
  &lt;thead&gt;
    &lt;tr style=&quot;text-align: right;&quot;&gt;
      &lt;th&gt;&lt;/th&gt;
      &lt;th&gt;응답 수&lt;/th&gt;
      &lt;th&gt;비율&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;th&gt;Employed full-time&lt;/th&gt;
      &lt;td&gt;10897&lt;/td&gt;
      &lt;td&gt;0.651890&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;Not employed, but looking for work&lt;/th&gt;
      &lt;td&gt;2110&lt;/td&gt;
      &lt;td&gt;0.126226&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;Independent contractor, freelancer, or self-employed&lt;/th&gt;
      &lt;td&gt;1330&lt;/td&gt;
      &lt;td&gt;0.079564&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;Not employed, and not looking for work&lt;/th&gt;
      &lt;td&gt;924&lt;/td&gt;
      &lt;td&gt;0.055276&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;Employed part-time&lt;/th&gt;
      &lt;td&gt;917&lt;/td&gt;
      &lt;td&gt;0.054858&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;I prefer not to say&lt;/th&gt;
      &lt;td&gt;420&lt;/td&gt;
      &lt;td&gt;0.025126&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;Retired&lt;/th&gt;
      &lt;td&gt;118&lt;/td&gt;
      &lt;td&gt;0.007059&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;sns&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;countplot&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;y&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;EmploymentStatus&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;mcq&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&amp;lt;matplotlib.axes._subplots.AxesSubplot at 0x115e71ba8&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;img src=&quot;images/2017/Kaggle-ML-DS-survey-2017-EDA-FAQ_files/Kaggle-ML-DS-survey-2017-EDA-FAQ_24_1.png&quot; alt=&quot;png&quot; /&gt;&lt;/p&gt;

&lt;p&gt;응답자의 대부분이 65%가 풀타임으로 일하고 있으며, 그 다음으로 구직자가 12%다.&lt;/p&gt;

&lt;h2 id=&quot;프로그래밍-경험&quot;&gt;프로그래밍 경험&lt;/h2&gt;
&lt;ul&gt;
  &lt;li&gt;‘Tenure’항목은 데이터사이언스 분야에서 코딩 경험이 얼마나 되는지에 대한 질문이다. 대부분이 5년 미만이며, 특히 1~2년의 경험을 가진 사람들이 많다.&lt;/li&gt;
&lt;/ul&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;sns&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;countplot&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;y&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;Tenure&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;mcq&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&amp;lt;matplotlib.axes._subplots.AxesSubplot at 0x115e83978&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;img src=&quot;images/2017/Kaggle-ML-DS-survey-2017-EDA-FAQ_files/Kaggle-ML-DS-survey-2017-EDA-FAQ_27_1.png&quot; alt=&quot;png&quot; /&gt;&lt;/p&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;korea&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;mcq&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;loc&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;mcq&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;Country&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;==&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;South Korea&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)]&lt;/span&gt;

&lt;span class=&quot;k&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;The number of interviewees in Korea: &apos;&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;str&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;korea&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;shape&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]))&lt;/span&gt;

&lt;span class=&quot;n&quot;&gt;sns&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;distplot&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;korea&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;Age&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;dropna&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;())&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;plt&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;title&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;Korean&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;plt&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;show&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;The number of interviewees in Korea: 194
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;img src=&quot;images/2017/Kaggle-ML-DS-survey-2017-EDA-FAQ_files/Kaggle-ML-DS-survey-2017-EDA-FAQ_28_1.png&quot; alt=&quot;png&quot; /&gt;&lt;/p&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;pd&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;DataFrame&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;korea&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;GenderSelect&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;value_counts&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;())&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div&gt;
&lt;style scoped=&quot;&quot;&gt;
    .dataframe tbody tr th:only-of-type {
        vertical-align: middle;
    }

    .dataframe tbody tr th {
        vertical-align: top;
    }

    .dataframe thead th {
        text-align: right;
    }
&lt;/style&gt;
&lt;table border=&quot;1&quot; class=&quot;dataframe&quot;&gt;
  &lt;thead&gt;
    &lt;tr style=&quot;text-align: right;&quot;&gt;
      &lt;th&gt;&lt;/th&gt;
      &lt;th&gt;GenderSelect&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;th&gt;Male&lt;/th&gt;
      &lt;td&gt;156&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;Female&lt;/th&gt;
      &lt;td&gt;37&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;A different identity&lt;/th&gt;
      &lt;td&gt;1&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;sns&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;countplot&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;x&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;GenderSelect&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;korea&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;plt&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;title&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;Korean&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;Text(0.5,1,&apos;Korean&apos;)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;img src=&quot;images/2017/Kaggle-ML-DS-survey-2017-EDA-FAQ_files/Kaggle-ML-DS-survey-2017-EDA-FAQ_30_1.png&quot; alt=&quot;png&quot; /&gt;&lt;/p&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;figure&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;ax1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;ax2&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;plt&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;subplots&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;ncols&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;

&lt;span class=&quot;n&quot;&gt;figure&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;set_size_inches&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;12&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;sns&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;distplot&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;korea&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;Age&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;loc&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;korea&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;GenderSelect&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;==&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;Female&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;dropna&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(),&lt;/span&gt; 
             &lt;span class=&quot;n&quot;&gt;norm_hist&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;bp&quot;&gt;False&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;color&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;sns&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;color_palette&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;Paired&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;],&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;ax&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;ax1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;plt&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;title&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;korean Female&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;

&lt;span class=&quot;n&quot;&gt;sns&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;distplot&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;korea&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;Age&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;loc&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;korea&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;GenderSelect&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;==&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;Male&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;dropna&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(),&lt;/span&gt; 
             &lt;span class=&quot;n&quot;&gt;norm_hist&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;bp&quot;&gt;False&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;color&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;sns&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;color_palette&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;Paired&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;],&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;ax&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;ax2&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;plt&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;title&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;korean Male&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;Text(0.5,1,&apos;korean Male&apos;)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;img src=&quot;images/2017/Kaggle-ML-DS-survey-2017-EDA-FAQ_files/Kaggle-ML-DS-survey-2017-EDA-FAQ_31_1.png&quot; alt=&quot;png&quot; /&gt;&lt;/p&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;sns&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;barplot&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;x&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;korea&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;EmploymentStatus&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;unique&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(),&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;y&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;korea&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;EmploymentStatus&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;value_counts&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;len&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;korea&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;))&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;plt&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;xticks&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;rotation&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;30&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;ha&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;right&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;plt&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;title&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;Employment status of the korean&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;plt&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;ylabel&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;plt&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;show&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;img src=&quot;images/2017/Kaggle-ML-DS-survey-2017-EDA-FAQ_files/Kaggle-ML-DS-survey-2017-EDA-FAQ_32_0.png&quot; alt=&quot;png&quot; /&gt;&lt;/p&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;korea&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;StudentStatus&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;korea&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;StudentStatus&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;fillna&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;No&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;sns&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;countplot&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;x&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;StudentStatus&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;korea&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;plt&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;title&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;korean&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;plt&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;show&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;img src=&quot;images/2017/Kaggle-ML-DS-survey-2017-EDA-FAQ_files/Kaggle-ML-DS-survey-2017-EDA-FAQ_33_0.png&quot; alt=&quot;png&quot; /&gt;&lt;/p&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;full_time&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;mcq&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;loc&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;mcq&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;EmploymentStatus&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&apos;Employed full-time&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)]&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;full_time&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;shape&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;looking_for_job&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;mcq&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;loc&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[(&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;mcq&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;EmploymentStatus&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&apos;Not employed, but looking for work&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)]&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;looking_for_job&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;shape&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;(10897, 228)
(2110, 228)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/p3msv18FIyQ&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;h2 id=&quot;자주-묻는-질문-faq&quot;&gt;자주 묻는 질문 FAQ&lt;/h2&gt;
&lt;ul&gt;
  &lt;li&gt;초보자들이 묻는 가장 일반적인 질문에 대한 답을 시각화 해본다.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;q1-python과-r중-어떤-언어를-배워야-할까요&quot;&gt;Q1. Python과 R중 어떤 언어를 배워야 할까요?&lt;/h3&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;sns&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;countplot&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;y&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;LanguageRecommendationSelect&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;mcq&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&amp;lt;matplotlib.axes._subplots.AxesSubplot at 0x113b5e5c0&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;img src=&quot;images/2017/Kaggle-ML-DS-survey-2017-EDA-FAQ_files/Kaggle-ML-DS-survey-2017-EDA-FAQ_36_1.png&quot; alt=&quot;png&quot; /&gt;&lt;/p&gt;

&lt;p&gt;파이썬을 명확하게 선호하고 있는 것으로 보여지며, 전문가와 강사들이 선호하는 언어를 알아본다.&lt;/p&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;c1&quot;&gt;# 현재 하고 있는 일
&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;sns&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;countplot&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;y&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;mcq&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;CurrentJobTitleSelect&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;])&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&amp;lt;matplotlib.axes._subplots.AxesSubplot at 0x105b45a58&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;img src=&quot;images/2017/Kaggle-ML-DS-survey-2017-EDA-FAQ_files/Kaggle-ML-DS-survey-2017-EDA-FAQ_38_1.png&quot; alt=&quot;png&quot; /&gt;&lt;/p&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;c1&quot;&gt;# 현재 하고 있는 일에 대한 전체 응답수
&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;mcq&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;mcq&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;CurrentJobTitleSelect&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;notnull&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()][&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;CurrentJobTitleSelect&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;shape&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;(11830,)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;c1&quot;&gt;# 현재 하고 있는 일에 대한 응답을 해준 사람 중 Python과 R을 사용하는 사람
# 응답자들이 실제 업무에서 어떤 언어를 주로 사용하는지 볼 수 있다.
&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;data&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;mcq&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;mcq&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;CurrentJobTitleSelect&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;notnull&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;())&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;amp;&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;
    &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;mcq&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;LanguageRecommendationSelect&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&apos;Python&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;
        &lt;span class=&quot;n&quot;&gt;mcq&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;LanguageRecommendationSelect&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&apos;R&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;))]&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;shape&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;plt&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;figure&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;figsize&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;))&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;sns&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;countplot&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;y&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;CurrentJobTitleSelect&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; 
              &lt;span class=&quot;n&quot;&gt;hue&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;LanguageRecommendationSelect&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; 
              &lt;span class=&quot;n&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;(7158, 228)





&amp;lt;matplotlib.axes._subplots.AxesSubplot at 0x105b30e80&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;img src=&quot;images/2017/Kaggle-ML-DS-survey-2017-EDA-FAQ_files/Kaggle-ML-DS-survey-2017-EDA-FAQ_40_2.png&quot; alt=&quot;png&quot; /&gt;&lt;/p&gt;

&lt;p&gt;데이터사이언티스트들은 Python을 주로 사용하지만 R을 사용하는 사람들도 제법 된다. 하지만 소프트웨어 개발자들은 Python을 훨씬 더 많이 사용하며, Python보다 R을 더 많이 사용하는 직업군은 통계 학자들이다.&lt;/p&gt;

&lt;h2 id=&quot;q2-데이터-사이언스-분야에서-앞으로-크게-주목받을-것은-무엇일까요&quot;&gt;Q2. 데이터 사이언스 분야에서 앞으로 크게 주목받을 것은 무엇일까요?&lt;/h2&gt;
&lt;ul&gt;
  &lt;li&gt;관련 분야의 종사자가 아니더라도 빅데이터, 딥러닝, 뉴럴네트워크 같은 용어에 대해 알고 있다. 응답자들이 내년에 가장 흥미로운 기술이 될 것이라 응답한 것이다.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;데이터사이언스-툴&quot;&gt;데이터사이언스 툴&lt;/h2&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;mcq_ml_tool_count&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;pd&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;DataFrame&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;mcq&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;MLToolNextYearSelect&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;value_counts&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;())&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;mcq_ml_tool_percent&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;pd&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;DataFrame&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;mcq&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;MLToolNextYearSelect&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;value_counts&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;normalize&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;bp&quot;&gt;True&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;))&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;mcq_ml_tool_df&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;mcq_ml_tool_count&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;merge&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;mcq_ml_tool_percent&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; 
    &lt;span class=&quot;n&quot;&gt;left_index&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;bp&quot;&gt;True&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; 
    &lt;span class=&quot;n&quot;&gt;right_index&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;bp&quot;&gt;True&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;).&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;head&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;20&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;mcq_ml_tool_df&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;columns&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;응답 수&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&apos;비율&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;mcq_ml_tool_df&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div&gt;
&lt;style scoped=&quot;&quot;&gt;
    .dataframe tbody tr th:only-of-type {
        vertical-align: middle;
    }

    .dataframe tbody tr th {
        vertical-align: top;
    }

    .dataframe thead th {
        text-align: right;
    }
&lt;/style&gt;
&lt;table border=&quot;1&quot; class=&quot;dataframe&quot;&gt;
  &lt;thead&gt;
    &lt;tr style=&quot;text-align: right;&quot;&gt;
      &lt;th&gt;&lt;/th&gt;
      &lt;th&gt;응답 수&lt;/th&gt;
      &lt;th&gt;비율&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;th&gt;TensorFlow&lt;/th&gt;
      &lt;td&gt;2621&lt;/td&gt;
      &lt;td&gt;0.238316&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;Python&lt;/th&gt;
      &lt;td&gt;1713&lt;/td&gt;
      &lt;td&gt;0.155756&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;R&lt;/th&gt;
      &lt;td&gt;910&lt;/td&gt;
      &lt;td&gt;0.082742&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;Spark / MLlib&lt;/th&gt;
      &lt;td&gt;755&lt;/td&gt;
      &lt;td&gt;0.068649&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;Hadoop/Hive/Pig&lt;/th&gt;
      &lt;td&gt;417&lt;/td&gt;
      &lt;td&gt;0.037916&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;Other&lt;/th&gt;
      &lt;td&gt;407&lt;/td&gt;
      &lt;td&gt;0.037007&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;Amazon Machine Learning&lt;/th&gt;
      &lt;td&gt;392&lt;/td&gt;
      &lt;td&gt;0.035643&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;Jupyter notebooks&lt;/th&gt;
      &lt;td&gt;358&lt;/td&gt;
      &lt;td&gt;0.032551&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;I don&apos;t plan on learning a new tool/technology&lt;/th&gt;
      &lt;td&gt;341&lt;/td&gt;
      &lt;td&gt;0.031006&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;Google Cloud Compute&lt;/th&gt;
      &lt;td&gt;296&lt;/td&gt;
      &lt;td&gt;0.026914&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;Amazon Web services&lt;/th&gt;
      &lt;td&gt;273&lt;/td&gt;
      &lt;td&gt;0.024823&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;Julia&lt;/th&gt;
      &lt;td&gt;222&lt;/td&gt;
      &lt;td&gt;0.020185&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;DataRobot&lt;/th&gt;
      &lt;td&gt;220&lt;/td&gt;
      &lt;td&gt;0.020004&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;Microsoft Azure Machine Learning&lt;/th&gt;
      &lt;td&gt;220&lt;/td&gt;
      &lt;td&gt;0.020004&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;IBM Watson / Waton Analytics&lt;/th&gt;
      &lt;td&gt;194&lt;/td&gt;
      &lt;td&gt;0.017640&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;C/C++&lt;/th&gt;
      &lt;td&gt;186&lt;/td&gt;
      &lt;td&gt;0.016912&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;Tableau&lt;/th&gt;
      &lt;td&gt;150&lt;/td&gt;
      &lt;td&gt;0.013639&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;SQL&lt;/th&gt;
      &lt;td&gt;138&lt;/td&gt;
      &lt;td&gt;0.012548&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;Java&lt;/th&gt;
      &lt;td&gt;116&lt;/td&gt;
      &lt;td&gt;0.010547&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;MATLAB/Octave&lt;/th&gt;
      &lt;td&gt;115&lt;/td&gt;
      &lt;td&gt;0.010456&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;data&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;mcq&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;MLToolNextYearSelect&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;value_counts&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;().&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;head&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;20&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;sns&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;barplot&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;y&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;index&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;x&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&amp;lt;matplotlib.axes._subplots.AxesSubplot at 0x105bc98d0&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;img src=&quot;images/2017/Kaggle-ML-DS-survey-2017-EDA-FAQ_files/Kaggle-ML-DS-survey-2017-EDA-FAQ_44_1.png&quot; alt=&quot;png&quot; /&gt;&lt;/p&gt;

&lt;p&gt;구글의 딥러닝 프레임워크 텐서플로우가 23%로 가장 많은 관심을 받을 것이라 응답했다.
그리고 Python이 15%, R은 8% 로 따르고 있다.&lt;/p&gt;

&lt;p&gt;클라우드는 Amazon ML, GCP, AWS, MS Azure ML, IBM Watson 순으로 응답되었다.&lt;/p&gt;

&lt;h3 id=&quot;데이터사이언스-방법-data-science-methods&quot;&gt;데이터사이언스 방법 Data Science Methods&lt;/h3&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;data&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;mcq&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;MLMethodNextYearSelect&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;value_counts&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;().&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;head&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;15&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;sns&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;barplot&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;y&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;index&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;x&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&amp;lt;matplotlib.axes._subplots.AxesSubplot at 0x105bcd668&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;img src=&quot;images/2017/Kaggle-ML-DS-survey-2017-EDA-FAQ_files/Kaggle-ML-DS-survey-2017-EDA-FAQ_46_1.png&quot; alt=&quot;png&quot; /&gt;&lt;/p&gt;

&lt;p&gt;응답에 대한 통계를 보면 딥러닝과 뉴럴넷이 엄청나게 인기가 있을 것이고 시계열 분석, 베이지안, 텍스트 마이닝 등의 내용이 있다. 중간 쯤에 부스팅과 배깅 같은 앙상블 메소드도 있다.&lt;/p&gt;

&lt;h2 id=&quot;q3-어디에서-데이터-사이언스를-배워야-할까요&quot;&gt;Q3. 어디에서 데이터 사이언스를 배워야 할까요?&lt;/h2&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;mcq&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;LearningPlatformSelect&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;mcq&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;LearningPlatformSelect&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;astype&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;str&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;).&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;apply&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;lambda&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;x&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;x&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;split&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;,&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;))&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;s&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;mcq&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;apply&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;lambda&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;x&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;pd&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;Series&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;x&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;LearningPlatformSelect&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]),&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;axis&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;).&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;stack&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;().&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;reset_index&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;level&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;drop&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;bp&quot;&gt;True&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;s&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;name&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&apos;platform&apos;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;plt&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;figure&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;figsize&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;))&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;data&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;s&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;s&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;!=&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&apos;nan&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;value_counts&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;().&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;head&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;15&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;sns&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;barplot&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;y&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;index&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;x&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&amp;lt;matplotlib.axes._subplots.AxesSubplot at 0x11e84e0b8&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;img src=&quot;images/2017/Kaggle-ML-DS-survey-2017-EDA-FAQ_files/Kaggle-ML-DS-survey-2017-EDA-FAQ_49_1.png&quot; alt=&quot;png&quot; /&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Kaggle은 우리 응답자들 사이에서 가장 인기있는 학습 플랫폼&lt;/li&gt;
  &lt;li&gt;그러나 이 설문 조사를 실시한 곳이 Kaggle이기 때문에 응답이 편향되었을 수 있음&lt;/li&gt;
  &lt;li&gt;온라인 코스, 스택 오버플로 및 유튜브 (YouTube) 상위 5 대 최우수 학습 플랫폼은 대학 학위나 교과서의 중요도보다 높다.&lt;/li&gt;
&lt;/ul&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;c1&quot;&gt;# 설문내용과 누구에게 물어봤는지를 찾아봄
&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;qc&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;question&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;loc&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;question&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;
    &lt;span class=&quot;s&quot;&gt;&apos;Column&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;str&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;contains&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;LearningCategory&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)]&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;qc&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;shape&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;qc&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;(7, 3)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div&gt;
&lt;style scoped=&quot;&quot;&gt;
    .dataframe tbody tr th:only-of-type {
        vertical-align: middle;
    }

    .dataframe tbody tr th {
        vertical-align: top;
    }

    .dataframe thead th {
        text-align: right;
    }
&lt;/style&gt;
&lt;table border=&quot;1&quot; class=&quot;dataframe&quot;&gt;
  &lt;thead&gt;
    &lt;tr style=&quot;text-align: right;&quot;&gt;
      &lt;th&gt;&lt;/th&gt;
      &lt;th&gt;Column&lt;/th&gt;
      &lt;th&gt;Question&lt;/th&gt;
      &lt;th&gt;Asked&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;th&gt;91&lt;/th&gt;
      &lt;td&gt;LearningCategorySelftTaught&lt;/td&gt;
      &lt;td&gt;What percentage of your current machine learni...&lt;/td&gt;
      &lt;td&gt;All&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;92&lt;/th&gt;
      &lt;td&gt;LearningCategoryOnlineCourses&lt;/td&gt;
      &lt;td&gt;What percentage of your current machine learni...&lt;/td&gt;
      &lt;td&gt;All&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;93&lt;/th&gt;
      &lt;td&gt;LearningCategoryWork&lt;/td&gt;
      &lt;td&gt;What percentage of your current machine learni...&lt;/td&gt;
      &lt;td&gt;All&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;94&lt;/th&gt;
      &lt;td&gt;LearningCategoryUniversity&lt;/td&gt;
      &lt;td&gt;What percentage of your current machine learni...&lt;/td&gt;
      &lt;td&gt;All&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;95&lt;/th&gt;
      &lt;td&gt;LearningCategoryKaggle&lt;/td&gt;
      &lt;td&gt;What percentage of your current machine learni...&lt;/td&gt;
      &lt;td&gt;All&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;96&lt;/th&gt;
      &lt;td&gt;LearningCategoryOther&lt;/td&gt;
      &lt;td&gt;What percentage of your current machine learni...&lt;/td&gt;
      &lt;td&gt;All&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;97&lt;/th&gt;
      &lt;td&gt;LearningCategoryOtherFreeForm&lt;/td&gt;
      &lt;td&gt;What percentage of your current machine learni...&lt;/td&gt;
      &lt;td&gt;All&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;use_features&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;x&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;x&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;mcq&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;columns&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;x&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;find&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;
    &lt;span class=&quot;s&quot;&gt;&apos;LearningPlatformUsefulness&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;!=&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;c1&quot;&gt;# 학습플랫폼과 유용함에 대한 연관성을 살펴본다.
&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;fdf&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{}&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;feature&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;use_features&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;a&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;mcq&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;feature&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;value_counts&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;a&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;a&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;a&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;sum&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;fdf&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;feature&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;len&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;LearningPlatformUsefulness&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;):]]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;a&lt;/span&gt;

&lt;span class=&quot;n&quot;&gt;fdf&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;pd&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;DataFrame&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;fdf&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;).&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;transpose&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;().&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;sort_values&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;
    &lt;span class=&quot;s&quot;&gt;&apos;Very useful&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;ascending&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;bp&quot;&gt;False&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;

&lt;span class=&quot;c1&quot;&gt;# 학습플랫폼들이 얼마나 유용한지에 대한 상관관계를 그려본다.
&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;plt&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;figure&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;figsize&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;))&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;sns&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;heatmap&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;fdf&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;sort_values&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;
        &lt;span class=&quot;s&quot;&gt;&quot;Very useful&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;ascending&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;bp&quot;&gt;False&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;),&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;annot&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;bp&quot;&gt;True&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&amp;lt;matplotlib.axes._subplots.AxesSubplot at 0x11e82d2e8&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;img src=&quot;images/2017/Kaggle-ML-DS-survey-2017-EDA-FAQ_files/Kaggle-ML-DS-survey-2017-EDA-FAQ_53_1.png&quot; alt=&quot;png&quot; /&gt;&lt;/p&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;c1&quot;&gt;# 유용함의 정도를 각 플랫폼별로 그룹화 해서 본다.
&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;fdf&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;plot&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;kind&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;bar&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;figsize&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;20&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;),&lt;/span&gt;
         &lt;span class=&quot;n&quot;&gt;title&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;Usefullness of Learning Platforms&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&amp;lt;matplotlib.axes._subplots.AxesSubplot at 0x11e331208&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;img src=&quot;images/2017/Kaggle-ML-DS-survey-2017-EDA-FAQ_files/Kaggle-ML-DS-survey-2017-EDA-FAQ_54_1.png&quot; alt=&quot;png&quot; /&gt;&lt;/p&gt;

&lt;p&gt;실제로 프로젝트를 해보는 것에 대해 74.7%의 응답자가 응답했고 매우 유용하다고 표시했다. SO는 스택오버플로우가 아닐까 싶고, 캐글, 수업, 책이 도움이 많이되는 편이다. 팟캐스트는 매우 유용하지 않지만 때때로 유용하다는 응답은 가장 많았다.&lt;/p&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;cat_features&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;x&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;x&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;mcq&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;columns&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;x&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;find&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;
    &lt;span class=&quot;s&quot;&gt;&apos;LearningCategory&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;!=&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;cat_features&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;[&apos;LearningCategorySelftTaught&apos;,
 &apos;LearningCategoryOnlineCourses&apos;,
 &apos;LearningCategoryWork&apos;,
 &apos;LearningCategoryUniversity&apos;,
 &apos;LearningCategoryKaggle&apos;,
 &apos;LearningCategoryOther&apos;]
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;cdf&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{}&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;feature&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;cat_features&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;cdf&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;feature&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;len&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;LearningCategory&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;):]]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;mcq&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;feature&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;mean&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;

&lt;span class=&quot;c1&quot;&gt;# 파이차트를 그리기 위해 평균 값을 구해와서 담아준다.
&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;cdf&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;pd&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;Series&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;cdf&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;cdf&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;Kaggle            5.531434
OnlineCourses    27.375514
Other             1.795940
SelftTaught      33.366771
University       16.988607
Work             15.217593
dtype: float64
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;c1&quot;&gt;# 학습 플랫폼 별 도움이 되는 정도를 그려본다.
&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;plt&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;pie&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;cdf&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;labels&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;cdf&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;index&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; 
        &lt;span class=&quot;n&quot;&gt;autopct&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;%1.1f%%&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;shadow&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;bp&quot;&gt;True&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;startangle&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;140&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;plt&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;axis&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;equal&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;plt&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;title&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;Contribution of each Platform to Learning&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;plt&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;show&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;img src=&quot;images/2017/Kaggle-ML-DS-survey-2017-EDA-FAQ_files/Kaggle-ML-DS-survey-2017-EDA-FAQ_58_0.png&quot; alt=&quot;png&quot; /&gt;&lt;/p&gt;

&lt;p&gt;개인프로젝트를 해보는 것이 가장 많은 도움이 되었으며, 온라인코스와 대학, 업무 그 다음으로 캐글을 통해 배웠다고 응답되었다.&lt;/p&gt;

&lt;h2 id=&quot;q4-데이터과학을-위해-높은-사양의-컴퓨터가-필요한가요&quot;&gt;Q4. 데이터과학을 위해 높은 사양의 컴퓨터가 필요한가요?&lt;/h2&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;c1&quot;&gt;# 설문내용과 누구에게 물어봤는지를 찾아봄
&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;qc&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;question&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;loc&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;question&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;
    &lt;span class=&quot;s&quot;&gt;&apos;Column&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;str&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;contains&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;HardwarePersonalProjectsSelect&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)]&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;qc&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;shape&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;qc&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;(1, 3)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div&gt;
&lt;style scoped=&quot;&quot;&gt;
    .dataframe tbody tr th:only-of-type {
        vertical-align: middle;
    }

    .dataframe tbody tr th {
        vertical-align: top;
    }

    .dataframe thead th {
        text-align: right;
    }
&lt;/style&gt;
&lt;table border=&quot;1&quot; class=&quot;dataframe&quot;&gt;
  &lt;thead&gt;
    &lt;tr style=&quot;text-align: right;&quot;&gt;
      &lt;th&gt;&lt;/th&gt;
      &lt;th&gt;Column&lt;/th&gt;
      &lt;th&gt;Question&lt;/th&gt;
      &lt;th&gt;Asked&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;th&gt;74&lt;/th&gt;
      &lt;td&gt;HardwarePersonalProjectsSelect&lt;/td&gt;
      &lt;td&gt;Which computing hardware do you use for your p...&lt;/td&gt;
      &lt;td&gt;Learners&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;mcq&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;mcq&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;HardwarePersonalProjectsSelect&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;notnull&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()][&lt;/span&gt;
    &lt;span class=&quot;s&quot;&gt;&apos;HardwarePersonalProjectsSelect&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;shape&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;(4206,)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;mcq&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;HardwarePersonalProjectsSelect&apos;&lt;/span&gt;
   &lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;mcq&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;HardwarePersonalProjectsSelect&apos;&lt;/span&gt;
          &lt;span class=&quot;p&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;astype&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;str&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;).&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;apply&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;lambda&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;x&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;x&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;split&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;,&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;))&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;s&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;mcq&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;apply&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;lambda&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;x&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; 
              &lt;span class=&quot;n&quot;&gt;pd&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;Series&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;x&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;HardwarePersonalProjectsSelect&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]),&lt;/span&gt;
              &lt;span class=&quot;n&quot;&gt;axis&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;).&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;stack&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;().&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;reset_index&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;level&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;drop&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;bp&quot;&gt;True&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;s&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;name&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&apos;hardware&apos;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;s&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;s&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;s&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;!=&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&apos;nan&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;pd&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;DataFrame&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;s&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;value_counts&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;())&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div&gt;
&lt;style scoped=&quot;&quot;&gt;
    .dataframe tbody tr th:only-of-type {
        vertical-align: middle;
    }

    .dataframe tbody tr th {
        vertical-align: top;
    }

    .dataframe thead th {
        text-align: right;
    }
&lt;/style&gt;
&lt;table border=&quot;1&quot; class=&quot;dataframe&quot;&gt;
  &lt;thead&gt;
    &lt;tr style=&quot;text-align: right;&quot;&gt;
      &lt;th&gt;&lt;/th&gt;
      &lt;th&gt;hardware&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;th&gt;Basic laptop (Macbook)&lt;/th&gt;
      &lt;td&gt;2246&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;Laptop + Cloud service (AWS&lt;/th&gt;
      &lt;td&gt;669&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;GCE ...)&lt;/th&gt;
      &lt;td&gt;669&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;Azure&lt;/th&gt;
      &lt;td&gt;669&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;Gaming Laptop (Laptop + CUDA capable GPU)&lt;/th&gt;
      &lt;td&gt;641&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;Traditional Workstation&lt;/th&gt;
      &lt;td&gt;527&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;Laptop or Workstation and local IT supported servers&lt;/th&gt;
      &lt;td&gt;445&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;GPU accelerated Workstation&lt;/th&gt;
      &lt;td&gt;416&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;Workstation + Cloud service&lt;/th&gt;
      &lt;td&gt;174&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;Other&lt;/th&gt;
      &lt;td&gt;147&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;

&lt;p&gt;맥북을 사용하는 응답자가 가장많고, 랩탑과 함께 클라우드를 사용하는 사람들이 그 다음이고 적당한 GPU를 가진 게임용 노트북을 사용하는 사례가 그 다음이다.&lt;/p&gt;

&lt;h2 id=&quot;q5-데이터-사이언스-공부에-얼마나-많은-시간을-사용-하는지&quot;&gt;Q5. 데이터 사이언스 공부에 얼마나 많은 시간을 사용 하는지?&lt;/h2&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;plt&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;figure&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;figsize&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;))&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;sns&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;countplot&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;y&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;TimeSpentStudying&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; 
              &lt;span class=&quot;n&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;mcq&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; 
              &lt;span class=&quot;n&quot;&gt;hue&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;EmploymentStatus&apos;&lt;/span&gt;
             &lt;span class=&quot;p&quot;&gt;).&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;legend&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;loc&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;center left&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
                      &lt;span class=&quot;n&quot;&gt;bbox_to_anchor&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mf&quot;&gt;0.5&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;))&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&amp;lt;matplotlib.legend.Legend at 0x116d17390&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;img src=&quot;images/2017/Kaggle-ML-DS-survey-2017-EDA-FAQ_files/Kaggle-ML-DS-survey-2017-EDA-FAQ_68_1.png&quot; alt=&quot;png&quot; /&gt;&lt;/p&gt;

&lt;p&gt;풀타임으로 일하는 사람들은 2~10시간 일하는 비율이 높으며, 풀타임으로 일하는 사람보다 일을 찾고 있는 사람들이 더 많은 시간을 공부하는 편이다.&lt;/p&gt;

&lt;p&gt;하지만 응답자 중 대부분이 풀타임으로 일하고 있는 사람들이라는 것을 고려할 필요가 있다.&lt;/p&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;figure&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;ax1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;ax2&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;plt&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;subplots&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;ncols&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;

&lt;span class=&quot;n&quot;&gt;figure&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;set_size_inches&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;12&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;sns&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;countplot&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;x&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;TimeSpentStudying&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; 
              &lt;span class=&quot;n&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;full_time&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; 
              &lt;span class=&quot;n&quot;&gt;hue&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;EmploymentStatus&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;ax&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;ax1&lt;/span&gt;
             &lt;span class=&quot;p&quot;&gt;).&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;legend&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;loc&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;center right&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
                      &lt;span class=&quot;n&quot;&gt;bbox_to_anchor&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mf&quot;&gt;0.5&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;))&lt;/span&gt;

&lt;span class=&quot;n&quot;&gt;sns&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;countplot&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;x&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;TimeSpentStudying&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; 
              &lt;span class=&quot;n&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;looking_for_job&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; 
              &lt;span class=&quot;n&quot;&gt;hue&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;EmploymentStatus&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;ax&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;ax2&lt;/span&gt;
             &lt;span class=&quot;p&quot;&gt;).&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;legend&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;loc&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;center right&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
                      &lt;span class=&quot;n&quot;&gt;bbox_to_anchor&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mf&quot;&gt;0.5&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;))&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&amp;lt;matplotlib.legend.Legend at 0x118f36fd0&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;img src=&quot;images/2017/Kaggle-ML-DS-survey-2017-EDA-FAQ_files/Kaggle-ML-DS-survey-2017-EDA-FAQ_70_1.png&quot; alt=&quot;png&quot; /&gt;&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/2C7wtfqulx8&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;h2 id=&quot;q6-블로그-팟캐스트-수업-기타-등등-추천할만한-것이-있는지&quot;&gt;Q6. 블로그, 팟캐스트, 수업, 기타 등등 추천할만한 것이 있는지?&lt;/h2&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;mcq&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;BlogsPodcastsNewslettersSelect&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;mcq&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;
    &lt;span class=&quot;s&quot;&gt;&apos;BlogsPodcastsNewslettersSelect&apos;&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;astype&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;str&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;).&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;apply&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;lambda&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;x&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;x&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;split&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;,&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;))&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;mcq&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;BlogsPodcastsNewslettersSelect&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;head&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;0    [Becoming a Data Scientist Podcast, Data Machi...
1    [Becoming a Data Scientist Podcast, Siraj Rava...
2    [FastML Blog, No Free Hunch Blog, Talking Mach...
3                                     [KDnuggets Blog]
4    [Data Machina Newsletter, Jack&apos;s Import AI New...
Name: BlogsPodcastsNewslettersSelect, dtype: object
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;s&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;mcq&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;apply&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;lambda&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;x&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;pd&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;Series&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;x&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;BlogsPodcastsNewslettersSelect&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]),&lt;/span&gt;
              &lt;span class=&quot;n&quot;&gt;axis&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;).&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;stack&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;().&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;reset_index&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;level&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;drop&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;bp&quot;&gt;True&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;s&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;name&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&apos;platforms&apos;&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;s&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;head&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;0    Becoming a Data Scientist Podcast
0              Data Machina Newsletter
0             O&apos;Reilly Data Newsletter
0         Partially Derivative Podcast
0           R Bloggers Blog Aggregator
Name: platforms, dtype: object
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;s&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;s&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;s&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;!=&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&apos;nan&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;value_counts&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;().&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;head&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;20&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;plt&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;figure&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;figsize&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;))&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;plt&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;title&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;Most Popular Blogs and Podcasts&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;sns&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;barplot&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;y&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;s&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;index&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;x&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;s&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&amp;lt;matplotlib.axes._subplots.AxesSubplot at 0x123c7b978&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;img src=&quot;images/2017/Kaggle-ML-DS-survey-2017-EDA-FAQ_files/Kaggle-ML-DS-survey-2017-EDA-FAQ_75_1.png&quot; alt=&quot;png&quot; /&gt;&lt;/p&gt;

&lt;p&gt;KDNuggets Blog, R Bloggers Blog Aggregator 그리고 O’Reilly Data Newsletter 가 가장 유용하다고 투표를 받았다.
데이터 사이언스 되기라는 팟캐스트도 유명한 듯 하다.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://www.kdnuggets.com/&quot;&gt;Machine Learning, Data Science, Big Data, Analytics&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://www.youtube.com/channel/UCfxnrdBM1YRV9j2MB8aiy4Q&quot;&gt;Becoming a Data Scientist - YouTube - YouTube&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://www.youtube.com/channel/UCWN3xxRkmTPmbKwht9FuE5A&quot;&gt;Siraj Raval - YouTube - YouTube&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;mcq&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;CoursePlatformSelect&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;mcq&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;
    &lt;span class=&quot;s&quot;&gt;&apos;CoursePlatformSelect&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;astype&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;
    &lt;span class=&quot;s&quot;&gt;&apos;str&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;).&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;apply&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;lambda&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;x&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;x&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;split&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;,&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;))&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;mcq&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;CoursePlatformSelect&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;head&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;0              [nan]
1              [nan]
2    [Coursera, edX]
3              [nan]
4              [nan]
Name: CoursePlatformSelect, dtype: object
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;t&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;mcq&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;apply&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;lambda&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;x&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;pd&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;Series&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;x&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;CoursePlatformSelect&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]),&lt;/span&gt;
              &lt;span class=&quot;n&quot;&gt;axis&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;).&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;stack&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;().&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;reset_index&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;level&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;drop&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;bp&quot;&gt;True&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;t&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;name&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&apos;courses&apos;&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;t&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;head&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;20&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;0          nan
1          nan
2     Coursera
2          edX
3          nan
4          nan
5          nan
6          nan
7     Coursera
8          nan
9          nan
10    Coursera
11         nan
12    Coursera
12    DataCamp
12         edX
13         nan
14         nan
15         nan
16         nan
Name: courses, dtype: object
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;t&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;t&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;t&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;!=&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&apos;nan&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;value_counts&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;plt&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;title&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;Most Popular Course Platforms&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;sns&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;barplot&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;y&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;t&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;index&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;x&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;t&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&amp;lt;matplotlib.axes._subplots.AxesSubplot at 0x122e1ec88&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;img src=&quot;images/2017/Kaggle-ML-DS-survey-2017-EDA-FAQ_files/Kaggle-ML-DS-survey-2017-EDA-FAQ_80_1.png&quot; alt=&quot;png&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Coursera와 Udacity가 가장 인기있는 플랫폼이다.&lt;/p&gt;

&lt;h2 id=&quot;q7-데이터-사이언스-직무에서-가장-중요하다고-생각되는-스킬은&quot;&gt;Q7. 데이터 사이언스 직무에서 가장 중요하다고 생각되는 스킬은?&lt;/h2&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;job_features&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;x&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;x&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;mcq&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;columns&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;x&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;find&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;
        &lt;span class=&quot;s&quot;&gt;&apos;JobSkillImportance&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;!=&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt; 
    &lt;span class=&quot;ow&quot;&gt;and&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;x&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;find&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;JobSkillImportanceOther&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;

&lt;span class=&quot;n&quot;&gt;job_features&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;[&apos;JobSkillImportanceBigData&apos;,
 &apos;JobSkillImportanceDegree&apos;,
 &apos;JobSkillImportanceStats&apos;,
 &apos;JobSkillImportanceEnterpriseTools&apos;,
 &apos;JobSkillImportancePython&apos;,
 &apos;JobSkillImportanceR&apos;,
 &apos;JobSkillImportanceSQL&apos;,
 &apos;JobSkillImportanceKaggleRanking&apos;,
 &apos;JobSkillImportanceMOOC&apos;,
 &apos;JobSkillImportanceVisualizations&apos;]
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;jdf&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{}&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;feature&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;job_features&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;a&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;mcq&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;feature&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;value_counts&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;a&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;a&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;a&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;sum&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;jdf&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;feature&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;len&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;JobSkillImportance&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;):]]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;a&lt;/span&gt;

&lt;span class=&quot;n&quot;&gt;jdf&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;{&apos;BigData&apos;: Nice to have    0.574065
 Necessary       0.379929
 Unnecessary     0.046006
 Name: JobSkillImportanceBigData, dtype: float64,
 &apos;Degree&apos;: Nice to have    0.598107
 Necessary       0.279867
 Unnecessary     0.122026
 Name: JobSkillImportanceDegree, dtype: float64,
 &apos;EnterpriseTools&apos;: Nice to have    0.564970
 Unnecessary     0.290200
 Necessary       0.144829
 Name: JobSkillImportanceEnterpriseTools, dtype: float64,
 &apos;KaggleRanking&apos;: Nice to have    0.677261
 Unnecessary     0.203876
 Necessary       0.118863
 Name: JobSkillImportanceKaggleRanking, dtype: float64,
 &apos;MOOC&apos;: Nice to have    0.606994
 Unnecessary     0.285752
 Necessary       0.107255
 Name: JobSkillImportanceMOOC, dtype: float64,
 &apos;Python&apos;: Necessary       0.645994
 Nice to have    0.327214
 Unnecessary     0.026792
 Name: JobSkillImportancePython, dtype: float64,
 &apos;R&apos;: Nice to have    0.513945
 Necessary       0.414807
 Unnecessary     0.071247
 Name: JobSkillImportanceR, dtype: float64,
 &apos;SQL&apos;: Nice to have    0.491778
 Necessary       0.434224
 Unnecessary     0.073998
 Name: JobSkillImportanceSQL, dtype: float64,
 &apos;Stats&apos;: Necessary       0.513889
 Nice to have    0.457576
 Unnecessary     0.028535
 Name: JobSkillImportanceStats, dtype: float64,
 &apos;Visualizations&apos;: Nice to have    0.490820
 Necessary       0.455392
 Unnecessary     0.053788
 Name: JobSkillImportanceVisualizations, dtype: float64}
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;jdf&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;pd&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;DataFrame&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;jdf&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;).&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;transpose&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;jdf&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div&gt;
&lt;style scoped=&quot;&quot;&gt;
    .dataframe tbody tr th:only-of-type {
        vertical-align: middle;
    }

    .dataframe tbody tr th {
        vertical-align: top;
    }

    .dataframe thead th {
        text-align: right;
    }
&lt;/style&gt;
&lt;table border=&quot;1&quot; class=&quot;dataframe&quot;&gt;
  &lt;thead&gt;
    &lt;tr style=&quot;text-align: right;&quot;&gt;
      &lt;th&gt;&lt;/th&gt;
      &lt;th&gt;Necessary&lt;/th&gt;
      &lt;th&gt;Nice to have&lt;/th&gt;
      &lt;th&gt;Unnecessary&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;th&gt;BigData&lt;/th&gt;
      &lt;td&gt;0.379929&lt;/td&gt;
      &lt;td&gt;0.574065&lt;/td&gt;
      &lt;td&gt;0.046006&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;Degree&lt;/th&gt;
      &lt;td&gt;0.279867&lt;/td&gt;
      &lt;td&gt;0.598107&lt;/td&gt;
      &lt;td&gt;0.122026&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;EnterpriseTools&lt;/th&gt;
      &lt;td&gt;0.144829&lt;/td&gt;
      &lt;td&gt;0.564970&lt;/td&gt;
      &lt;td&gt;0.290200&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;KaggleRanking&lt;/th&gt;
      &lt;td&gt;0.118863&lt;/td&gt;
      &lt;td&gt;0.677261&lt;/td&gt;
      &lt;td&gt;0.203876&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;MOOC&lt;/th&gt;
      &lt;td&gt;0.107255&lt;/td&gt;
      &lt;td&gt;0.606994&lt;/td&gt;
      &lt;td&gt;0.285752&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;Python&lt;/th&gt;
      &lt;td&gt;0.645994&lt;/td&gt;
      &lt;td&gt;0.327214&lt;/td&gt;
      &lt;td&gt;0.026792&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;R&lt;/th&gt;
      &lt;td&gt;0.414807&lt;/td&gt;
      &lt;td&gt;0.513945&lt;/td&gt;
      &lt;td&gt;0.071247&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;SQL&lt;/th&gt;
      &lt;td&gt;0.434224&lt;/td&gt;
      &lt;td&gt;0.491778&lt;/td&gt;
      &lt;td&gt;0.073998&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;Stats&lt;/th&gt;
      &lt;td&gt;0.513889&lt;/td&gt;
      &lt;td&gt;0.457576&lt;/td&gt;
      &lt;td&gt;0.028535&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;Visualizations&lt;/th&gt;
      &lt;td&gt;0.455392&lt;/td&gt;
      &lt;td&gt;0.490820&lt;/td&gt;
      &lt;td&gt;0.053788&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;plt&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;figure&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;figsize&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;))&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;sns&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;heatmap&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;jdf&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;sort_values&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;Necessary&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; 
                            &lt;span class=&quot;n&quot;&gt;ascending&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;bp&quot;&gt;False&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;),&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;annot&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;bp&quot;&gt;True&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&amp;lt;matplotlib.axes._subplots.AxesSubplot at 0x116e0b080&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;img src=&quot;images/2017/Kaggle-ML-DS-survey-2017-EDA-FAQ_files/Kaggle-ML-DS-survey-2017-EDA-FAQ_86_1.png&quot; alt=&quot;png&quot; /&gt;&lt;/p&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;jdf&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;plot&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;kind&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;bar&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;figsize&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;12&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;),&lt;/span&gt; 
         &lt;span class=&quot;n&quot;&gt;title&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;Skill Importance in Data Science Jobs&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&amp;lt;matplotlib.axes._subplots.AxesSubplot at 0x116cd4ba8&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;img src=&quot;images/2017/Kaggle-ML-DS-survey-2017-EDA-FAQ_files/Kaggle-ML-DS-survey-2017-EDA-FAQ_87_1.png&quot; alt=&quot;png&quot; /&gt;&lt;/p&gt;

&lt;p&gt;꼭 필요한 것으로 Python, R, SQL, 통계, 시각화가 있다.&lt;/p&gt;

&lt;p&gt;있으면 좋은 것은 빅데이터, 학위, 툴 사용법, 캐글랭킹, 무크가 있다.&lt;/p&gt;

&lt;h2 id=&quot;q8-데이터-과학자의-평균-급여는-얼마나-될까&quot;&gt;Q8. 데이터 과학자의 평균 급여는 얼마나 될까?&lt;/h2&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;mcq&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;mcq&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;CompensationAmount&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;notnull&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()].&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;shape&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;(5224, 228)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;mcq&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;CompensationAmount&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;mcq&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;
    &lt;span class=&quot;s&quot;&gt;&apos;CompensationAmount&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;str&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;replace&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;,&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;mcq&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;CompensationAmount&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;mcq&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;
    &lt;span class=&quot;s&quot;&gt;&apos;CompensationAmount&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;str&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;replace&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;-&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;

&lt;span class=&quot;c1&quot;&gt;# 환율계산을 위한 정보 가져오기
&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;rates&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;pd&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;read_csv&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;data/conversionRates.csv&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;rates&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;drop&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;Unnamed: 0&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;axis&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;inplace&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;bp&quot;&gt;True&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;

&lt;span class=&quot;n&quot;&gt;salary&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;mcq&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;
    &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;CompensationAmount&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;CompensationCurrency&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
     &lt;span class=&quot;s&quot;&gt;&apos;GenderSelect&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
     &lt;span class=&quot;s&quot;&gt;&apos;Country&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
     &lt;span class=&quot;s&quot;&gt;&apos;CurrentJobTitleSelect&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]].&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;dropna&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;salary&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;salary&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;merge&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;rates&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;left_on&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;CompensationCurrency&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
                      &lt;span class=&quot;n&quot;&gt;right_on&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;originCountry&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;how&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;left&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;salary&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;Salary&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;pd&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;to_numeric&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;salary&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;CompensationAmount&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;])&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;salary&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;exchangeRate&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;salary&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;head&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div&gt;
&lt;style scoped=&quot;&quot;&gt;
    .dataframe tbody tr th:only-of-type {
        vertical-align: middle;
    }

    .dataframe tbody tr th {
        vertical-align: top;
    }

    .dataframe thead th {
        text-align: right;
    }
&lt;/style&gt;
&lt;table border=&quot;1&quot; class=&quot;dataframe&quot;&gt;
  &lt;thead&gt;
    &lt;tr style=&quot;text-align: right;&quot;&gt;
      &lt;th&gt;&lt;/th&gt;
      &lt;th&gt;CompensationAmount&lt;/th&gt;
      &lt;th&gt;CompensationCurrency&lt;/th&gt;
      &lt;th&gt;GenderSelect&lt;/th&gt;
      &lt;th&gt;Country&lt;/th&gt;
      &lt;th&gt;CurrentJobTitleSelect&lt;/th&gt;
      &lt;th&gt;originCountry&lt;/th&gt;
      &lt;th&gt;exchangeRate&lt;/th&gt;
      &lt;th&gt;Salary&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;th&gt;0&lt;/th&gt;
      &lt;td&gt;250000&lt;/td&gt;
      &lt;td&gt;USD&lt;/td&gt;
      &lt;td&gt;Male&lt;/td&gt;
      &lt;td&gt;United States&lt;/td&gt;
      &lt;td&gt;Operations Research Practitioner&lt;/td&gt;
      &lt;td&gt;USD&lt;/td&gt;
      &lt;td&gt;1.000000&lt;/td&gt;
      &lt;td&gt;250000.0&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;1&lt;/th&gt;
      &lt;td&gt;80000&lt;/td&gt;
      &lt;td&gt;AUD&lt;/td&gt;
      &lt;td&gt;Female&lt;/td&gt;
      &lt;td&gt;Australia&lt;/td&gt;
      &lt;td&gt;Business Analyst&lt;/td&gt;
      &lt;td&gt;AUD&lt;/td&gt;
      &lt;td&gt;0.802310&lt;/td&gt;
      &lt;td&gt;64184.8&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;2&lt;/th&gt;
      &lt;td&gt;1200000&lt;/td&gt;
      &lt;td&gt;RUB&lt;/td&gt;
      &lt;td&gt;Male&lt;/td&gt;
      &lt;td&gt;Russia&lt;/td&gt;
      &lt;td&gt;Software Developer/Software Engineer&lt;/td&gt;
      &lt;td&gt;RUB&lt;/td&gt;
      &lt;td&gt;0.017402&lt;/td&gt;
      &lt;td&gt;20882.4&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;3&lt;/th&gt;
      &lt;td&gt;95000&lt;/td&gt;
      &lt;td&gt;INR&lt;/td&gt;
      &lt;td&gt;Male&lt;/td&gt;
      &lt;td&gt;India&lt;/td&gt;
      &lt;td&gt;Data Scientist&lt;/td&gt;
      &lt;td&gt;INR&lt;/td&gt;
      &lt;td&gt;0.015620&lt;/td&gt;
      &lt;td&gt;1483.9&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;4&lt;/th&gt;
      &lt;td&gt;1100000&lt;/td&gt;
      &lt;td&gt;TWD&lt;/td&gt;
      &lt;td&gt;Male&lt;/td&gt;
      &lt;td&gt;Taiwan&lt;/td&gt;
      &lt;td&gt;Software Developer/Software Engineer&lt;/td&gt;
      &lt;td&gt;TWD&lt;/td&gt;
      &lt;td&gt;0.033304&lt;/td&gt;
      &lt;td&gt;36634.4&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;k&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;Maximum Salary is USD $&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;n&quot;&gt;salary&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;Salary&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;dropna&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;().&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;astype&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;).&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;max&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;())&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;Minimum Salary is USD $&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;n&quot;&gt;salary&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;Salary&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;dropna&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;().&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;astype&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;).&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;min&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;())&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;Median Salary is USD $&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;n&quot;&gt;salary&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;Salary&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;dropna&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;().&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;astype&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;).&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;median&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;())&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;Maximum Salary is USD $ 28297400000
Minimum Salary is USD $ 0
Median Salary is USD $ 53812.0
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;가장 큰 수치는 여러 국가들의 GDP보다 크다고 한다. 가짜 응답이며, 평균급여는 USD $ 53,812 이다. 그래프를 좀 더 잘 표현하기 위해 50만불 이상의 데이터만 distplot으로 그려봤다.&lt;/p&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;plt&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;subplots&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;figsize&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;15&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;))&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;salary&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;salary&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;salary&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;Salary&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;500000&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;sns&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;distplot&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;salary&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;Salary&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;])&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;plt&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;axvline&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;salary&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;Salary&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;median&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(),&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;linestyle&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;dashed&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;plt&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;title&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;Salary Distribution&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;size&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;15&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;Text(0.5,1,&apos;Salary Distribution&apos;)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;img src=&quot;images/2017/Kaggle-ML-DS-survey-2017-EDA-FAQ_files/Kaggle-ML-DS-survey-2017-EDA-FAQ_94_1.png&quot; alt=&quot;png&quot; /&gt;&lt;/p&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;plt&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;subplots&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;figsize&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;12&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;))&lt;/span&gt;

&lt;span class=&quot;n&quot;&gt;sal_coun&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;salary&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;groupby&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;
    &lt;span class=&quot;s&quot;&gt;&apos;Country&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;Salary&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;median&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;().&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;sort_values&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;ascending&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;bp&quot;&gt;False&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)[:&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;30&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;to_frame&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;

&lt;span class=&quot;n&quot;&gt;sns&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;barplot&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;Salary&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; 
            &lt;span class=&quot;n&quot;&gt;sal_coun&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;index&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
            &lt;span class=&quot;n&quot;&gt;data&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;sal_coun&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
            &lt;span class=&quot;n&quot;&gt;palette&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;RdYlGn&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;

&lt;span class=&quot;n&quot;&gt;plt&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;axvline&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;salary&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;Salary&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;median&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(),&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;linestyle&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;dashed&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;plt&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;title&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;Highest Salary Paying Countries&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;Text(0.5,1,&apos;Highest Salary Paying Countries&apos;)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;img src=&quot;images/2017/Kaggle-ML-DS-survey-2017-EDA-FAQ_files/Kaggle-ML-DS-survey-2017-EDA-FAQ_95_1.png&quot; alt=&quot;png&quot; /&gt;&lt;/p&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;plt&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;subplots&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;figsize&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;))&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;sns&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;boxplot&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;y&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;GenderSelect&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;x&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;Salary&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;salary&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&amp;lt;matplotlib.axes._subplots.AxesSubplot at 0x117f34630&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;img src=&quot;images/2017/Kaggle-ML-DS-survey-2017-EDA-FAQ_files/Kaggle-ML-DS-survey-2017-EDA-FAQ_96_1.png&quot; alt=&quot;png&quot; /&gt;&lt;/p&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;salary_korea&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;salary&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;loc&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;salary&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;Country&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;==&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;South Korea&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)]&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;plt&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;subplots&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;figsize&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;))&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;sns&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;boxplot&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;y&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;GenderSelect&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;x&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;Salary&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;salary_korea&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&amp;lt;matplotlib.axes._subplots.AxesSubplot at 0x11aae1710&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;img src=&quot;images/2017/Kaggle-ML-DS-survey-2017-EDA-FAQ_files/Kaggle-ML-DS-survey-2017-EDA-FAQ_97_1.png&quot; alt=&quot;png&quot; /&gt;&lt;/p&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;salary_korea&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;shape&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;(26, 8)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;salary_korea&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;salary_korea&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;GenderSelect&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&apos;Female&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div&gt;
&lt;style scoped=&quot;&quot;&gt;
    .dataframe tbody tr th:only-of-type {
        vertical-align: middle;
    }

    .dataframe tbody tr th {
        vertical-align: top;
    }

    .dataframe thead th {
        text-align: right;
    }
&lt;/style&gt;
&lt;table border=&quot;1&quot; class=&quot;dataframe&quot;&gt;
  &lt;thead&gt;
    &lt;tr style=&quot;text-align: right;&quot;&gt;
      &lt;th&gt;&lt;/th&gt;
      &lt;th&gt;CompensationAmount&lt;/th&gt;
      &lt;th&gt;CompensationCurrency&lt;/th&gt;
      &lt;th&gt;GenderSelect&lt;/th&gt;
      &lt;th&gt;Country&lt;/th&gt;
      &lt;th&gt;CurrentJobTitleSelect&lt;/th&gt;
      &lt;th&gt;originCountry&lt;/th&gt;
      &lt;th&gt;exchangeRate&lt;/th&gt;
      &lt;th&gt;Salary&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;th&gt;479&lt;/th&gt;
      &lt;td&gt;30000&lt;/td&gt;
      &lt;td&gt;KRW&lt;/td&gt;
      &lt;td&gt;Female&lt;/td&gt;
      &lt;td&gt;South Korea&lt;/td&gt;
      &lt;td&gt;Data Analyst&lt;/td&gt;
      &lt;td&gt;KRW&lt;/td&gt;
      &lt;td&gt;0.000886&lt;/td&gt;
      &lt;td&gt;26.58&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;2903&lt;/th&gt;
      &lt;td&gt;800000&lt;/td&gt;
      &lt;td&gt;KRW&lt;/td&gt;
      &lt;td&gt;Female&lt;/td&gt;
      &lt;td&gt;South Korea&lt;/td&gt;
      &lt;td&gt;Researcher&lt;/td&gt;
      &lt;td&gt;KRW&lt;/td&gt;
      &lt;td&gt;0.000886&lt;/td&gt;
      &lt;td&gt;708.80&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;4063&lt;/th&gt;
      &lt;td&gt;60000000&lt;/td&gt;
      &lt;td&gt;KRW&lt;/td&gt;
      &lt;td&gt;Female&lt;/td&gt;
      &lt;td&gt;South Korea&lt;/td&gt;
      &lt;td&gt;Researcher&lt;/td&gt;
      &lt;td&gt;KRW&lt;/td&gt;
      &lt;td&gt;0.000886&lt;/td&gt;
      &lt;td&gt;53160.00&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;salary_korea_male&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;salary_korea&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;salary_korea&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;GenderSelect&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&apos;Male&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;salary_korea_male&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;Salary&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;describe&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;count        23.000000
mean      43540.617217
std       37800.608484
min           0.886000
25%       17500.000000
50%       37212.000000
75%       59238.000000
max      177200.000000
Name: Salary, dtype: float64
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;salary_korea_male&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div&gt;
&lt;style scoped=&quot;&quot;&gt;
    .dataframe tbody tr th:only-of-type {
        vertical-align: middle;
    }

    .dataframe tbody tr th {
        vertical-align: top;
    }

    .dataframe thead th {
        text-align: right;
    }
&lt;/style&gt;
&lt;table border=&quot;1&quot; class=&quot;dataframe&quot;&gt;
  &lt;thead&gt;
    &lt;tr style=&quot;text-align: right;&quot;&gt;
      &lt;th&gt;&lt;/th&gt;
      &lt;th&gt;CompensationAmount&lt;/th&gt;
      &lt;th&gt;CompensationCurrency&lt;/th&gt;
      &lt;th&gt;GenderSelect&lt;/th&gt;
      &lt;th&gt;Country&lt;/th&gt;
      &lt;th&gt;CurrentJobTitleSelect&lt;/th&gt;
      &lt;th&gt;originCountry&lt;/th&gt;
      &lt;th&gt;exchangeRate&lt;/th&gt;
      &lt;th&gt;Salary&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;th&gt;85&lt;/th&gt;
      &lt;td&gt;40000000&lt;/td&gt;
      &lt;td&gt;KRW&lt;/td&gt;
      &lt;td&gt;Male&lt;/td&gt;
      &lt;td&gt;South Korea&lt;/td&gt;
      &lt;td&gt;Business Analyst&lt;/td&gt;
      &lt;td&gt;KRW&lt;/td&gt;
      &lt;td&gt;0.000886&lt;/td&gt;
      &lt;td&gt;35440.000&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;147&lt;/th&gt;
      &lt;td&gt;80000&lt;/td&gt;
      &lt;td&gt;USD&lt;/td&gt;
      &lt;td&gt;Male&lt;/td&gt;
      &lt;td&gt;South Korea&lt;/td&gt;
      &lt;td&gt;Researcher&lt;/td&gt;
      &lt;td&gt;USD&lt;/td&gt;
      &lt;td&gt;1.000000&lt;/td&gt;
      &lt;td&gt;80000.000&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;314&lt;/th&gt;
      &lt;td&gt;60000&lt;/td&gt;
      &lt;td&gt;USD&lt;/td&gt;
      &lt;td&gt;Male&lt;/td&gt;
      &lt;td&gt;South Korea&lt;/td&gt;
      &lt;td&gt;Business Analyst&lt;/td&gt;
      &lt;td&gt;USD&lt;/td&gt;
      &lt;td&gt;1.000000&lt;/td&gt;
      &lt;td&gt;60000.000&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;333&lt;/th&gt;
      &lt;td&gt;60000000&lt;/td&gt;
      &lt;td&gt;KRW&lt;/td&gt;
      &lt;td&gt;Male&lt;/td&gt;
      &lt;td&gt;South Korea&lt;/td&gt;
      &lt;td&gt;Researcher&lt;/td&gt;
      &lt;td&gt;KRW&lt;/td&gt;
      &lt;td&gt;0.000886&lt;/td&gt;
      &lt;td&gt;53160.000&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;562&lt;/th&gt;
      &lt;td&gt;50000000&lt;/td&gt;
      &lt;td&gt;KRW&lt;/td&gt;
      &lt;td&gt;Male&lt;/td&gt;
      &lt;td&gt;South Korea&lt;/td&gt;
      &lt;td&gt;Researcher&lt;/td&gt;
      &lt;td&gt;KRW&lt;/td&gt;
      &lt;td&gt;0.000886&lt;/td&gt;
      &lt;td&gt;44300.000&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;769&lt;/th&gt;
      &lt;td&gt;42000000&lt;/td&gt;
      &lt;td&gt;KRW&lt;/td&gt;
      &lt;td&gt;Male&lt;/td&gt;
      &lt;td&gt;South Korea&lt;/td&gt;
      &lt;td&gt;Software Developer/Software Engineer&lt;/td&gt;
      &lt;td&gt;KRW&lt;/td&gt;
      &lt;td&gt;0.000886&lt;/td&gt;
      &lt;td&gt;37212.000&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;799&lt;/th&gt;
      &lt;td&gt;1000&lt;/td&gt;
      &lt;td&gt;KRW&lt;/td&gt;
      &lt;td&gt;Male&lt;/td&gt;
      &lt;td&gt;South Korea&lt;/td&gt;
      &lt;td&gt;Machine Learning Engineer&lt;/td&gt;
      &lt;td&gt;KRW&lt;/td&gt;
      &lt;td&gt;0.000886&lt;/td&gt;
      &lt;td&gt;0.886&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;1060&lt;/th&gt;
      &lt;td&gt;75000000&lt;/td&gt;
      &lt;td&gt;KRW&lt;/td&gt;
      &lt;td&gt;Male&lt;/td&gt;
      &lt;td&gt;South Korea&lt;/td&gt;
      &lt;td&gt;Scientist/Researcher&lt;/td&gt;
      &lt;td&gt;KRW&lt;/td&gt;
      &lt;td&gt;0.000886&lt;/td&gt;
      &lt;td&gt;66450.000&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;1360&lt;/th&gt;
      &lt;td&gt;30000000&lt;/td&gt;
      &lt;td&gt;KRW&lt;/td&gt;
      &lt;td&gt;Male&lt;/td&gt;
      &lt;td&gt;South Korea&lt;/td&gt;
      &lt;td&gt;Statistician&lt;/td&gt;
      &lt;td&gt;KRW&lt;/td&gt;
      &lt;td&gt;0.000886&lt;/td&gt;
      &lt;td&gt;26580.000&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;1568&lt;/th&gt;
      &lt;td&gt;90000&lt;/td&gt;
      &lt;td&gt;SGD&lt;/td&gt;
      &lt;td&gt;Male&lt;/td&gt;
      &lt;td&gt;South Korea&lt;/td&gt;
      &lt;td&gt;Computer Scientist&lt;/td&gt;
      &lt;td&gt;SGD&lt;/td&gt;
      &lt;td&gt;0.742589&lt;/td&gt;
      &lt;td&gt;66833.010&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;1576&lt;/th&gt;
      &lt;td&gt;10800000&lt;/td&gt;
      &lt;td&gt;KRW&lt;/td&gt;
      &lt;td&gt;Male&lt;/td&gt;
      &lt;td&gt;South Korea&lt;/td&gt;
      &lt;td&gt;Data Scientist&lt;/td&gt;
      &lt;td&gt;KRW&lt;/td&gt;
      &lt;td&gt;0.000886&lt;/td&gt;
      &lt;td&gt;9568.800&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;1905&lt;/th&gt;
      &lt;td&gt;20000&lt;/td&gt;
      &lt;td&gt;USD&lt;/td&gt;
      &lt;td&gt;Male&lt;/td&gt;
      &lt;td&gt;South Korea&lt;/td&gt;
      &lt;td&gt;Researcher&lt;/td&gt;
      &lt;td&gt;USD&lt;/td&gt;
      &lt;td&gt;1.000000&lt;/td&gt;
      &lt;td&gt;20000.000&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;1945&lt;/th&gt;
      &lt;td&gt;50000&lt;/td&gt;
      &lt;td&gt;KRW&lt;/td&gt;
      &lt;td&gt;Male&lt;/td&gt;
      &lt;td&gt;South Korea&lt;/td&gt;
      &lt;td&gt;Machine Learning Engineer&lt;/td&gt;
      &lt;td&gt;KRW&lt;/td&gt;
      &lt;td&gt;0.000886&lt;/td&gt;
      &lt;td&gt;44.300&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;1949&lt;/th&gt;
      &lt;td&gt;80000000&lt;/td&gt;
      &lt;td&gt;KRW&lt;/td&gt;
      &lt;td&gt;Male&lt;/td&gt;
      &lt;td&gt;South Korea&lt;/td&gt;
      &lt;td&gt;Software Developer/Software Engineer&lt;/td&gt;
      &lt;td&gt;KRW&lt;/td&gt;
      &lt;td&gt;0.000886&lt;/td&gt;
      &lt;td&gt;70880.000&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;2322&lt;/th&gt;
      &lt;td&gt;200000000&lt;/td&gt;
      &lt;td&gt;KRW&lt;/td&gt;
      &lt;td&gt;Male&lt;/td&gt;
      &lt;td&gt;South Korea&lt;/td&gt;
      &lt;td&gt;Other&lt;/td&gt;
      &lt;td&gt;KRW&lt;/td&gt;
      &lt;td&gt;0.000886&lt;/td&gt;
      &lt;td&gt;177200.000&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;2334&lt;/th&gt;
      &lt;td&gt;60000000&lt;/td&gt;
      &lt;td&gt;KRW&lt;/td&gt;
      &lt;td&gt;Male&lt;/td&gt;
      &lt;td&gt;South Korea&lt;/td&gt;
      &lt;td&gt;Machine Learning Engineer&lt;/td&gt;
      &lt;td&gt;KRW&lt;/td&gt;
      &lt;td&gt;0.000886&lt;/td&gt;
      &lt;td&gt;53160.000&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;2557&lt;/th&gt;
      &lt;td&gt;7200000&lt;/td&gt;
      &lt;td&gt;KRW&lt;/td&gt;
      &lt;td&gt;Male&lt;/td&gt;
      &lt;td&gt;South Korea&lt;/td&gt;
      &lt;td&gt;Researcher&lt;/td&gt;
      &lt;td&gt;KRW&lt;/td&gt;
      &lt;td&gt;0.000886&lt;/td&gt;
      &lt;td&gt;6379.200&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;2924&lt;/th&gt;
      &lt;td&gt;15000&lt;/td&gt;
      &lt;td&gt;USD&lt;/td&gt;
      &lt;td&gt;Male&lt;/td&gt;
      &lt;td&gt;South Korea&lt;/td&gt;
      &lt;td&gt;Researcher&lt;/td&gt;
      &lt;td&gt;USD&lt;/td&gt;
      &lt;td&gt;1.000000&lt;/td&gt;
      &lt;td&gt;15000.000&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;3394&lt;/th&gt;
      &lt;td&gt;66000000&lt;/td&gt;
      &lt;td&gt;KRW&lt;/td&gt;
      &lt;td&gt;Male&lt;/td&gt;
      &lt;td&gt;South Korea&lt;/td&gt;
      &lt;td&gt;Programmer&lt;/td&gt;
      &lt;td&gt;KRW&lt;/td&gt;
      &lt;td&gt;0.000886&lt;/td&gt;
      &lt;td&gt;58476.000&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;3832&lt;/th&gt;
      &lt;td&gt;30000000&lt;/td&gt;
      &lt;td&gt;KRW&lt;/td&gt;
      &lt;td&gt;Male&lt;/td&gt;
      &lt;td&gt;South Korea&lt;/td&gt;
      &lt;td&gt;Data Scientist&lt;/td&gt;
      &lt;td&gt;KRW&lt;/td&gt;
      &lt;td&gt;0.000886&lt;/td&gt;
      &lt;td&gt;26580.000&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;3979&lt;/th&gt;
      &lt;td&gt;35000000&lt;/td&gt;
      &lt;td&gt;KRW&lt;/td&gt;
      &lt;td&gt;Male&lt;/td&gt;
      &lt;td&gt;South Korea&lt;/td&gt;
      &lt;td&gt;Researcher&lt;/td&gt;
      &lt;td&gt;KRW&lt;/td&gt;
      &lt;td&gt;0.000886&lt;/td&gt;
      &lt;td&gt;31010.000&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;4300&lt;/th&gt;
      &lt;td&gt;60000000&lt;/td&gt;
      &lt;td&gt;KRW&lt;/td&gt;
      &lt;td&gt;Male&lt;/td&gt;
      &lt;td&gt;South Korea&lt;/td&gt;
      &lt;td&gt;Scientist/Researcher&lt;/td&gt;
      &lt;td&gt;KRW&lt;/td&gt;
      &lt;td&gt;0.000886&lt;/td&gt;
      &lt;td&gt;53160.000&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;4366&lt;/th&gt;
      &lt;td&gt;10000&lt;/td&gt;
      &lt;td&gt;USD&lt;/td&gt;
      &lt;td&gt;Male&lt;/td&gt;
      &lt;td&gt;South Korea&lt;/td&gt;
      &lt;td&gt;Data Scientist&lt;/td&gt;
      &lt;td&gt;USD&lt;/td&gt;
      &lt;td&gt;1.000000&lt;/td&gt;
      &lt;td&gt;10000.000&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;

&lt;h2 id=&quot;q9-개인프로젝트나-학습용-데이터를-어디에서-얻나요&quot;&gt;Q9. 개인프로젝트나 학습용 데이터를 어디에서 얻나요?&lt;/h2&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;mcq&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;PublicDatasetsSelect&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;mcq&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;
    &lt;span class=&quot;s&quot;&gt;&apos;PublicDatasetsSelect&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;astype&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;str&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;).&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;apply&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;lambda&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;x&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;x&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;split&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;,&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
    &lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;q&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;mcq&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;apply&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;lambda&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;x&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;pd&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;Series&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;x&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;PublicDatasetsSelect&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]),&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;axis&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;).&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;stack&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;().&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;reset_index&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;level&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;drop&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;bp&quot;&gt;True&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;

&lt;span class=&quot;n&quot;&gt;q&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;name&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&apos;courses&apos;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;q&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;q&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;q&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;!=&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&apos;nan&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;value_counts&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;pd&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;DataFrame&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;q&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div&gt;
&lt;style scoped=&quot;&quot;&gt;
    .dataframe tbody tr th:only-of-type {
        vertical-align: middle;
    }

    .dataframe tbody tr th {
        vertical-align: top;
    }

    .dataframe thead th {
        text-align: right;
    }
&lt;/style&gt;
&lt;table border=&quot;1&quot; class=&quot;dataframe&quot;&gt;
  &lt;thead&gt;
    &lt;tr style=&quot;text-align: right;&quot;&gt;
      &lt;th&gt;&lt;/th&gt;
      &lt;th&gt;courses&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;th&gt;Dataset aggregator/platform (i.e. Socrata/Kaggle Datasets/data.world/etc.)&lt;/th&gt;
      &lt;td&gt;6843&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;Google Search&lt;/th&gt;
      &lt;td&gt;3600&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;University/Non-profit research group websites&lt;/th&gt;
      &lt;td&gt;2873&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;I collect my own data (e.g. web-scraping)&lt;/th&gt;
      &lt;td&gt;2560&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;GitHub&lt;/th&gt;
      &lt;td&gt;2400&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;Government website&lt;/th&gt;
      &lt;td&gt;2079&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;Other&lt;/th&gt;
      &lt;td&gt;399&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;plt&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;title&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;Most Popular Dataset Platforms&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;sns&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;barplot&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;y&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;q&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;index&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;x&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;q&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&amp;lt;matplotlib.axes._subplots.AxesSubplot at 0x11900df60&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;img src=&quot;images/2017/Kaggle-ML-DS-survey-2017-EDA-FAQ_files/Kaggle-ML-DS-survey-2017-EDA-FAQ_107_1.png&quot; alt=&quot;png&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Kaggle 및 Socrata는 개인 프로젝트나 학습에 사용하기 위한 데이터를 얻는데 인기있는 플랫폼이다. Google 검색 및 대학 / 비영리 단체 웹 사이트는 각각 2위와 3위에 있다. 그리고 직접 웹스크래핑 등을 통해 데이터를 수집한다고 한 응답이 4위다.&lt;/p&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;c1&quot;&gt;# 주관식 응답을 읽어온다.
&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;ff&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;pd&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;read_csv&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;data/freeformResponses.csv&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; 
                 &lt;span class=&quot;n&quot;&gt;encoding&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;ISO-8859-1&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;low_memory&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;bp&quot;&gt;False&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;ff&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;shape&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;(16716, 62)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;c1&quot;&gt;# 설문내용과 누구에게 물어봤는지를 찾아봄
&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;qc&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;question&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;loc&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;question&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;
    &lt;span class=&quot;s&quot;&gt;&apos;Column&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;str&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;contains&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;PersonalProjectsChallengeFreeForm&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)]&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;qc&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;shape&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;qc&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;Question&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;values&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;(1, 3)





&apos;What is your biggest challenge with the public datasets you find for personal projects?&apos;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h4 id=&quot;개인프로젝트에서-공개-된-데이터셋을-다루는-데-가장-어려운-점은-무엇일까&quot;&gt;개인프로젝트에서 공개 된 데이터셋을 다루는 데 가장 어려운 점은 무엇일까?&lt;/h4&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;ppcff&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;ff&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;
    &lt;span class=&quot;s&quot;&gt;&apos;PersonalProjectsChallengeFreeForm&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;value_counts&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;().&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;head&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;15&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;ppcff&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;name&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&apos;응답 수&apos;&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;pd&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;DataFrame&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;ppcff&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div&gt;
&lt;style scoped=&quot;&quot;&gt;
    .dataframe tbody tr th:only-of-type {
        vertical-align: middle;
    }

    .dataframe tbody tr th {
        vertical-align: top;
    }

    .dataframe thead th {
        text-align: right;
    }
&lt;/style&gt;
&lt;table border=&quot;1&quot; class=&quot;dataframe&quot;&gt;
  &lt;thead&gt;
    &lt;tr style=&quot;text-align: right;&quot;&gt;
      &lt;th&gt;&lt;/th&gt;
      &lt;th&gt;응답 수&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;th&gt;None&lt;/th&gt;
      &lt;td&gt;23&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;Cleaning the data&lt;/th&gt;
      &lt;td&gt;20&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;Cleaning&lt;/th&gt;
      &lt;td&gt;20&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;Dirty data&lt;/th&gt;
      &lt;td&gt;16&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;Data Cleaning&lt;/th&gt;
      &lt;td&gt;14&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;none&lt;/th&gt;
      &lt;td&gt;13&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;dirty data&lt;/th&gt;
      &lt;td&gt;10&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;Data cleaning&lt;/th&gt;
      &lt;td&gt;10&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;-&lt;/th&gt;
      &lt;td&gt;9&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;Size&lt;/th&gt;
      &lt;td&gt;9&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;cleaning&lt;/th&gt;
      &lt;td&gt;8&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;Missing data&lt;/th&gt;
      &lt;td&gt;8&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;Incomplete data&lt;/th&gt;
      &lt;td&gt;8&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;Lack of documentation&lt;/th&gt;
      &lt;td&gt;7&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;Quality&lt;/th&gt;
      &lt;td&gt;6&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;

&lt;p&gt;대부분 데이터를 정제하는일이라고 응답하였고 그 다음이 데이터 크기다.&lt;/p&gt;

&lt;h2 id=&quot;q11-데이터-사이언스-업무에서-가장-많은-시간을-필요로-하는-일은&quot;&gt;Q11. 데이터 사이언스 업무에서 가장 많은 시간을 필요로 하는 일은?&lt;/h2&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;time_features&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;x&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;x&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;mcq&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;columns&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;x&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;find&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;Time&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;!=&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;][&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;tdf&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{}&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;feature&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;time_features&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;tdf&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;feature&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;len&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;Time&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;):]]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;mcq&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;feature&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;mean&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;

&lt;span class=&quot;n&quot;&gt;tdf&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;pd&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;Series&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;tdf&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;tdf&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;

&lt;span class=&quot;n&quot;&gt;plt&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;pie&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;tdf&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;labels&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;tdf&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;index&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; 
        &lt;span class=&quot;n&quot;&gt;autopct&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;%1.1f%%&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;shadow&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;bp&quot;&gt;True&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;startangle&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;140&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;plt&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;axis&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;equal&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;plt&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;title&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;Percentage of Time Spent on Each DS Job&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;plt&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;show&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;FindingInsights    13.094776
GatheringData      36.144754
ModelBuilding      21.268066
OtherSelect         2.396247
Production         10.806372
Visualizing        13.869372
dtype: float64
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;img src=&quot;images/2017/Kaggle-ML-DS-survey-2017-EDA-FAQ_files/Kaggle-ML-DS-survey-2017-EDA-FAQ_116_1.png&quot; alt=&quot;png&quot; /&gt;&lt;/p&gt;

&lt;p&gt;데이터를 수집하는 일이 37%로 업무의 가장 큰 비중을 차지하고 그 다음으로 모델을 구축하고 시각화, 인사이트를 찾는 순이다.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/I5iNG4M533c&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;h2 id=&quot;q11-데이터사이언스-직업을-찾는데-가장-고려해야-할-요소는-무엇일까요&quot;&gt;Q11. 데이터사이언스 직업을 찾는데 가장 고려해야 할 요소는 무엇일까요?&lt;/h2&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;c1&quot;&gt;# 설문내용과 누구에게 물어봤는지를 찾아봄
&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;qc&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;question&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;loc&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;question&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;
    &lt;span class=&quot;s&quot;&gt;&apos;Column&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;str&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;contains&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;JobFactor&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)]&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;qc&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;shape&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;qc&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;Question&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;values&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;(16, 3)





array([ &apos;How are you assessing potential job opportunities? - Opportunities for professional development&apos;,
       &apos;How are you assessing potential job opportunities? - The compensation and benefits offered&apos;,
       &quot;How are you assessing potential job opportunities? - The office environment I&apos;d be working in&quot;,
       &quot;How are you assessing potential job opportunities? - The languages, frameworks, and other technologies I&apos;d be working with&quot;,
       &quot;How are you assessing potential job opportunities? - The amount of time I&apos;d have to spend commuting&quot;,
       &apos;How are you assessing potential job opportunities? - How projects are managed at the company or organization&apos;,
       &apos;How are you assessing potential job opportunities? - The experience level called for in the job description&apos;,
       &quot;How are you assessing potential job opportunities? - The specific department or team I&apos;d be working on&quot;,
       &quot;How are you assessing potential job opportunities? - The specific role or job title I&apos;d be applying for&quot;,
       &apos;How are you assessing potential job opportunities? - The financial performance or funding status of the company or organization&apos;,
       &quot;How are you assessing potential job opportunities? - How widely used or impactful the product or service I&apos;d be working on is&quot;,
       &apos;How are you assessing potential job opportunities? - The opportunity to work from home/remotely&apos;,
       &quot;How are you assessing potential job opportunities? - The industry that I&apos;d be working in&quot;,
       &quot;How are you assessing potential job opportunities? - The reputations of the company&apos;s senior leaders&quot;,
       &apos;How are you assessing potential job opportunities? - The diversity of the company or organization&apos;,
       &apos;How are you assessing potential job opportunities? - Opportunity to publish my results&apos;], dtype=object)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;job_factors&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;x&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;x&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;mcq&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;columns&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;x&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;find&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;JobFactor&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;!=&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;jfdf&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{}&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;feature&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;job_factors&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;a&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;mcq&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;feature&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;value_counts&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;a&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;a&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;a&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;sum&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;jfdf&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;feature&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;len&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;JobFactor&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;):]]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;a&lt;/span&gt;

&lt;span class=&quot;n&quot;&gt;jfdf&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;pd&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;DataFrame&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;jfdf&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;).&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;transpose&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;

&lt;span class=&quot;n&quot;&gt;plt&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;figure&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;figsize&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;))&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;sns&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;heatmap&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;jfdf&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;sort_values&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;Very Important&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; 
                             &lt;span class=&quot;n&quot;&gt;ascending&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;bp&quot;&gt;False&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;),&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;annot&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;bp&quot;&gt;True&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&amp;lt;matplotlib.axes._subplots.AxesSubplot at 0x11b946198&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;img src=&quot;images/2017/Kaggle-ML-DS-survey-2017-EDA-FAQ_files/Kaggle-ML-DS-survey-2017-EDA-FAQ_121_1.png&quot; alt=&quot;png&quot; /&gt;&lt;/p&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;jfdf&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;plot&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;kind&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;bar&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;figsize&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;18&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;),&lt;/span&gt; 
          &lt;span class=&quot;n&quot;&gt;title&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;Things to look for while considering Data Science Jobs&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;plt&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;show&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;img src=&quot;images/2017/Kaggle-ML-DS-survey-2017-EDA-FAQ_files/Kaggle-ML-DS-survey-2017-EDA-FAQ_122_0.png&quot; alt=&quot;png&quot; /&gt;&lt;/p&gt;

&lt;p&gt;데이터 사이언티스트로 직업을 찾을 때 가장 고려할 요소는 배울 수 있는 곳인지, 사무실 근무환경, 프레임워크나 언어, 급여, 경영상태, 경력정도 순이다.&lt;/p&gt;

&lt;h2 id=&quot;q12-데이터-사이언티스트가-되기-위해-학위가-중요할까요&quot;&gt;Q12. 데이터 사이언티스트가 되기 위해 학위가 중요할까요?&lt;/h2&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;sns&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;countplot&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;y&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;UniversityImportance&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;mcq&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&amp;lt;matplotlib.axes._subplots.AxesSubplot at 0x11dfe0e80&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;img src=&quot;images/2017/Kaggle-ML-DS-survey-2017-EDA-FAQ_files/Kaggle-ML-DS-survey-2017-EDA-FAQ_125_1.png&quot; alt=&quot;png&quot; /&gt;&lt;/p&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;plotly.offline&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;as&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;py&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;py&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;init_notebook_mode&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;connected&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;bp&quot;&gt;True&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;plotly.figure_factory&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;as&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;fig_fact&lt;/span&gt;

&lt;span class=&quot;n&quot;&gt;top_uni&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;mcq&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;UniversityImportance&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;value_counts&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;().&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;head&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;top_uni_dist&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[]&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;uni&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;top_uni&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;index&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;top_uni_dist&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;append&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;
        &lt;span class=&quot;n&quot;&gt;mcq&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;mcq&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;Age&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;notnull&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;())&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;amp;&lt;/span&gt; \
            &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;mcq&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;UniversityImportance&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;uni&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)][&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;Age&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;])&lt;/span&gt;

&lt;span class=&quot;n&quot;&gt;group_labels&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;top_uni&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;index&lt;/span&gt;

&lt;span class=&quot;n&quot;&gt;fig&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;fig_fact&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;create_distplot&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;top_uni_dist&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;group_labels&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;show_hist&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;bp&quot;&gt;False&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;py&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;iplot&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;fig&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;filename&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;University Importance by Age&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;마치 연령대 그래프를 찍어 본것과 같은 형태의 그래프다.
20~30대는 대학 학위가 매우 중요하다고 생각하며, 연령대가 높은 응답자들은 그다지 중요하지 않다고 응답했다. 300명 미만의 응답자만이 학위가 중요하지 않다고 생각한다.&lt;/p&gt;

&lt;p&gt;대부분의 응답자가 석사와 박사인 것을 고려해 봤을 때 이는 자연스러운 응답이다.&lt;/p&gt;

&lt;h2 id=&quot;q13-어디에서-부터-데이터사이언스를-시작해야-할까요&quot;&gt;Q13. 어디에서 부터 데이터사이언스를 시작해야 할까요?&lt;/h2&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;mcq&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;mcq&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;FirstTrainingSelect&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;notnull&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()].&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;shape&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;(14712, 228)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;sns&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;countplot&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;y&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;FirstTrainingSelect&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;mcq&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&amp;lt;matplotlib.axes._subplots.AxesSubplot at 0x11c7e3e10&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;img src=&quot;images/2017/Kaggle-ML-DS-survey-2017-EDA-FAQ_files/Kaggle-ML-DS-survey-2017-EDA-FAQ_130_1.png&quot; alt=&quot;png&quot; /&gt;&lt;/p&gt;

&lt;p&gt;대부분의 응답자가 학사학위 이상으로 대학교육에 대한 중요성을 부여했지만,
가장 많은 응답자가 코세라, 유데미와 같은 온라인 코스를 통해 데이터 사이언스를 공부했고 그 다음으로 대학교육이 차지하고 있다.&lt;/p&gt;

&lt;p&gt;개인프로젝트를 해보는 것도 중요하다고 답한 응답자가 제법 된다.&lt;/p&gt;

&lt;h2 id=&quot;q14-데이터사이언티스트-이력서에서-가장-중요한-것은-무엇일까요&quot;&gt;Q14. 데이터사이언티스트 이력서에서 가장 중요한 것은 무엇일까요?&lt;/h2&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;sns&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;countplot&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;y&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;ProveKnowledgeSelect&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;mcq&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&amp;lt;matplotlib.axes._subplots.AxesSubplot at 0x1187539b0&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;img src=&quot;images/2017/Kaggle-ML-DS-survey-2017-EDA-FAQ_files/Kaggle-ML-DS-survey-2017-EDA-FAQ_133_1.png&quot; alt=&quot;png&quot; /&gt;&lt;/p&gt;

&lt;p&gt;머신러닝과 관련 된 직무경험이 가장 중요하고 다음으로 캐글 경진대회의 결과가 중요하다고 답했다. 그리고 온라인 강좌의 수료증이나 깃헙 포트폴리오 순으로 중요하다고 답했다.&lt;/p&gt;

&lt;h2 id=&quot;q15-머신러닝-알고리즘을-사용하기-위해-수학이-필요할까요&quot;&gt;Q15. 머신러닝 알고리즘을 사용하기 위해 수학이 필요할까요?&lt;/h2&gt;

&lt;p&gt;scikit과 같은 라이브러리는 세부 정보를 추상화하여 기본기술을 몰라도 ML 모델을 프로그래밍 할 수 있다. 그럼에도 그 안에 있는 수학을 아는 것이 중요할까?&lt;/p&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;c1&quot;&gt;# 설문내용과 누구에게 물어봤는지를 찾아봄
&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;qc&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;question&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;loc&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;question&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;
    &lt;span class=&quot;s&quot;&gt;&apos;Column&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;str&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;contains&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;AlgorithmUnderstandingLevel&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)]&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;qc&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div&gt;
&lt;style scoped=&quot;&quot;&gt;
    .dataframe tbody tr th:only-of-type {
        vertical-align: middle;
    }

    .dataframe tbody tr th {
        vertical-align: top;
    }

    .dataframe thead th {
        text-align: right;
    }
&lt;/style&gt;
&lt;table border=&quot;1&quot; class=&quot;dataframe&quot;&gt;
  &lt;thead&gt;
    &lt;tr style=&quot;text-align: right;&quot;&gt;
      &lt;th&gt;&lt;/th&gt;
      &lt;th&gt;Column&lt;/th&gt;
      &lt;th&gt;Question&lt;/th&gt;
      &lt;th&gt;Asked&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;th&gt;227&lt;/th&gt;
      &lt;td&gt;AlgorithmUnderstandingLevel&lt;/td&gt;
      &lt;td&gt;At which level do you understand the mathemati...&lt;/td&gt;
      &lt;td&gt;CodingWorker&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;mcq&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;mcq&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;AlgorithmUnderstandingLevel&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;notnull&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()].&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;shape&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;(7410, 228)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;sns&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;countplot&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;y&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;AlgorithmUnderstandingLevel&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;mcq&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&amp;lt;matplotlib.axes._subplots.AxesSubplot at 0x11dbcac50&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;img src=&quot;images/2017/Kaggle-ML-DS-survey-2017-EDA-FAQ_files/Kaggle-ML-DS-survey-2017-EDA-FAQ_138_1.png&quot; alt=&quot;png&quot; /&gt;&lt;/p&gt;

&lt;p&gt;현재 코딩업무를 하는 사람들에게 질문했으며, 기술과 관련 없는 사람에게 설명할 수 있는 정도라면 충분하다는 응답이 가장 많으며 좀 더디더라도 밑바닥부터 다시 코딩해 볼 수 있는 게 중요하다는 응답이 그 뒤를 잇는다.&lt;/p&gt;

&lt;h2 id=&quot;q16-어디에서-일을-찾아야-할까요&quot;&gt;Q16. 어디에서 일을 찾아야 할까요?&lt;/h2&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;c1&quot;&gt;# 설문내용과 누구에게 물어봤는지를 찾아봄
&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;question&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;loc&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;question&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;
    &lt;span class=&quot;s&quot;&gt;&apos;Column&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;str&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;contains&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;
    &lt;span class=&quot;s&quot;&gt;&apos;JobSearchResource|EmployerSearchMethod&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div&gt;
&lt;style scoped=&quot;&quot;&gt;
    .dataframe tbody tr th:only-of-type {
        vertical-align: middle;
    }

    .dataframe tbody tr th {
        vertical-align: top;
    }

    .dataframe thead th {
        text-align: right;
    }
&lt;/style&gt;
&lt;table border=&quot;1&quot; class=&quot;dataframe&quot;&gt;
  &lt;thead&gt;
    &lt;tr style=&quot;text-align: right;&quot;&gt;
      &lt;th&gt;&lt;/th&gt;
      &lt;th&gt;Column&lt;/th&gt;
      &lt;th&gt;Question&lt;/th&gt;
      &lt;th&gt;Asked&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;th&gt;108&lt;/th&gt;
      &lt;td&gt;EmployerSearchMethod&lt;/td&gt;
      &lt;td&gt;How did you find your current job? - Selected ...&lt;/td&gt;
      &lt;td&gt;CodingWorker-NC&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;109&lt;/th&gt;
      &lt;td&gt;EmployerSearchMethodOtherFreeForm&lt;/td&gt;
      &lt;td&gt;How did you find your current job? - Some othe...&lt;/td&gt;
      &lt;td&gt;CodingWorker-NC&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;271&lt;/th&gt;
      &lt;td&gt;JobSearchResource&lt;/td&gt;
      &lt;td&gt;Which resource has been the best for finding d...&lt;/td&gt;
      &lt;td&gt;Learners&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;272&lt;/th&gt;
      &lt;td&gt;JobSearchResourceFreeForm&lt;/td&gt;
      &lt;td&gt;Which resource has been the best for finding d...&lt;/td&gt;
      &lt;td&gt;Learners&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;plt&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;title&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;Best Places to look for a Data Science Job&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;sns&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;countplot&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;y&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;JobSearchResource&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;mcq&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&amp;lt;matplotlib.axes._subplots.AxesSubplot at 0x123b7f630&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;img src=&quot;images/2017/Kaggle-ML-DS-survey-2017-EDA-FAQ_files/Kaggle-ML-DS-survey-2017-EDA-FAQ_142_1.png&quot; alt=&quot;png&quot; /&gt;&lt;/p&gt;

&lt;p&gt;구직자들은 회사 웹사이트나 구직 사이트로부터 찾고 그 다음으로 특정 기술의 채용 게시판, 일반 채용 게시판, 친구나 가족, 이전 직장 동료나 리더를 통해 채용 정보를 얻는다.&lt;/p&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;plt&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;title&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;Top Places to get Data Science Jobs&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;sns&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;countplot&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;y&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;EmployerSearchMethod&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;mcq&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&amp;lt;matplotlib.axes._subplots.AxesSubplot at 0x11cff3da0&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;img src=&quot;images/2017/Kaggle-ML-DS-survey-2017-EDA-FAQ_files/Kaggle-ML-DS-survey-2017-EDA-FAQ_144_1.png&quot; alt=&quot;png&quot; /&gt;&lt;/p&gt;

&lt;p&gt;위에서 구직자는 주로 구직사이트로 부터 채용정보를 가장 많이 찾았으나,
채용자는 친구, 가족, 이전 직장 동료 등의 추천을 통해 가장 많이 사람을 구하며 다음으로 리쿠르터나 특정 회사에 소속 된 사람에게 직접 연락을 해서 구하는 비율이 높다.&lt;/p&gt;

&lt;h3 id=&quot;그럼-한국-사람들은-어떨까&quot;&gt;그럼 한국 사람들은 어떨까?&lt;/h3&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;plt&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;title&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;Best Places to look for a Data Science Job&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;sns&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;countplot&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;y&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;JobSearchResource&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;korea&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&amp;lt;matplotlib.axes._subplots.AxesSubplot at 0x11da65390&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;img src=&quot;images/2017/Kaggle-ML-DS-survey-2017-EDA-FAQ_files/Kaggle-ML-DS-survey-2017-EDA-FAQ_147_1.png&quot; alt=&quot;png&quot; /&gt;&lt;/p&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;plt&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;title&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;Top Places to get Data Science Jobs&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;sns&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;countplot&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;y&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;EmployerSearchMethod&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;korea&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&amp;lt;matplotlib.axes._subplots.AxesSubplot at 0x11ff69d30&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;img src=&quot;images/2017/Kaggle-ML-DS-survey-2017-EDA-FAQ_files/Kaggle-ML-DS-survey-2017-EDA-FAQ_148_1.png&quot; alt=&quot;png&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;결론&quot;&gt;결론&lt;/h2&gt;
&lt;ul&gt;
  &lt;li&gt;이 설문결과로 Python이 R보다 훨씬 많이 사용됨을 알 수 있었다.&lt;/li&gt;
  &lt;li&gt;하지만 Python과 R을 모두 사용하는 사람도 많다.&lt;/li&gt;
  &lt;li&gt;데이터 수집과 정제는 어려운 일이다.(공감)&lt;/li&gt;
  &lt;li&gt;인기있는 학습플랫폼과 블로그, 유튜브 채널, 팟캐스트 등을 알게 되었다.&lt;/li&gt;
  &lt;li&gt;내년에 인기있는 기술로는 딥러닝과 텐서플로우가 큰 차지를 할 것이다.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;노트북 소스코드 &lt;a href=&quot;https://github.com/corazzon/KaggleStruggle/tree/master/kaggle-survey-2017&quot;&gt;KaggleStruggle/kaggle-survey-2017 at master · corazzon/KaggleStruggle&lt;/a&gt;&lt;/p&gt;
</description>
                <link>http://corazzon.github.io/Kaggle-ML-DS-survey-EDA-FAQ</link>
                <guid>http://corazzon.github.io/Kaggle-ML-DS-survey-EDA-FAQ</guid>
                <pubDate>2017-11-21T00:00:00+00:00</pubDate>
        </item>

        <item>
                <title>matplotlib 한글폰트 사용하기</title>
                <description>
&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/S5N3LjhkcDs&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;h1 id=&quot;matplotlib-한글폰트-사용하기&quot;&gt;matplotlib 한글폰트 사용하기&lt;/h1&gt;

&lt;h2 id=&quot;1-필요한-패키지를-가져옵니다&quot;&gt;1. 필요한 패키지를 가져옵니다.&lt;/h2&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;c1&quot;&gt;# 그래프를 노트북 안에 그리기 위해 설정
&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;%&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;matplotlib&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;inline&lt;/span&gt;

&lt;span class=&quot;c1&quot;&gt;# 필요한 패키지와 라이브러리를 가져옴
&lt;/span&gt;&lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;matplotlib&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;as&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;mpl&lt;/span&gt;
&lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;matplotlib.pyplot&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;as&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;plt&lt;/span&gt;
&lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;matplotlib.font_manager&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;as&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;fm&lt;/span&gt;

&lt;span class=&quot;c1&quot;&gt;# 그래프에서 마이너스 폰트 깨지는 문제에 대한 대처
&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;mpl&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;rcParams&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;axes.unicode_minus&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;bp&quot;&gt;False&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h2 id=&quot;2-그래프를-그리기-위해-임의의-데이터를-만들어-줍니다&quot;&gt;2. 그래프를 그리기 위해 임의의 데이터를 만들어 줍니다.&lt;/h2&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;numpy&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;as&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;np&lt;/span&gt;

&lt;span class=&quot;n&quot;&gt;data&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;np&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;random&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;randint&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;100&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;100&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;50&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;).&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;cumsum&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;data&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;array([ 85, 150, 138, 216, 216, 193, 199, 248, 197, 144,  95, 188, 199,
       164, 106, 153, 154, 188, 156, 200, 294, 323, 245, 321, 298, 299,
       346, 323, 223, 304, 318, 236, 233, 291, 335, 378, 361, 401, 412,
       360, 344, 326, 391, 356, 363, 309, 328, 283, 285, 341])
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h2 id=&quot;3-기본-폰트로-지정-되었기-때문에-한글이-깨져-나옵니다&quot;&gt;3. 기본 폰트로 지정 되었기 때문에 한글이 깨져 나옵니다.&lt;/h2&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;plt&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;plot&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;range&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;50&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;),&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&apos;r&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;mpl&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;rcParams&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;axes.unicode_minus&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;bp&quot;&gt;False&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;plt&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;title&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;시간별 가격 추이&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;plt&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;ylabel&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;주식 가격&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;plt&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;xlabel&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;시간(분)&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;Text(0.5,0,&apos;시간(분)&apos;)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;img src=&quot;images/2017/matplotlib_font_setting_files/matplotlib_font_setting_5_1.png&quot; alt=&quot;png&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;4-폰트를-설정해-주기에-앞서-설치-된-matplotlib-의-버전과-위치정보를-가져옵니다&quot;&gt;4. 폰트를 설정해 주기에 앞서 설치 된 matplotlib 의 버전과 위치정보를 가져옵니다.&lt;/h2&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;k&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;버전: &apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;mpl&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;__version__&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;설치 위치: &apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;mpl&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;__file__&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;설정 위치: &apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;mpl&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;get_configdir&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;())&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;캐시 위치: &apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;mpl&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;get_cachedir&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;())&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;버전:  2.1.0
설치 위치:  /Users/corazzon/codes/jupyter/lib/python3.6/site-packages/matplotlib/__init__.py
설정 위치:  /Users/corazzon/.matplotlib
캐시 위치:  /Users/corazzon/.matplotlib
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h2 id=&quot;5-matplotlib의-위치정보를-알았으니-터미널을-이용해-해당-위치로-가봅니다&quot;&gt;5. matplotlib의 위치정보를 알았으니 터미널을 이용해 해당 위치로 가봅니다.&lt;/h2&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;k&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;설정파일 위치: &apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;mpl&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;matplotlib_fname&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;())&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;설정파일 위치:  /Users/corazzon/codes/jupyter/lib/python3.6/site-packages/matplotlib/mpl-data/matplotlibrc
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h2 id=&quot;6-설치-된-폰트를-찍어-봅니다&quot;&gt;6. 설치 된 폰트를 찍어 봅니다.&lt;/h2&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;font_list&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;fm&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;findSystemFonts&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;fontpaths&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;bp&quot;&gt;None&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;fontext&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;ttf&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;

&lt;span class=&quot;c1&quot;&gt;# ttf 폰트 전체갯수
&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;len&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;font_list&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;))&lt;/span&gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;197
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;c1&quot;&gt;# OSX 의 설치 된 폰트를 가져오는 함수
&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;font_list_mac&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;fm&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;OSXInstalledFonts&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;len&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;font_list_mac&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;))&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;197
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;c1&quot;&gt;# 시스템 폰트에서 읽어온 리스트에서 상위 10개만 출력
&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;font_list&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[:&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;[&apos;/Library/Fonts/Gurmukhi.ttf&apos;,
 &apos;/System/Library/Fonts/SFCompactText-SemiboldItalic.otf&apos;,
 &apos;/System/Library/Fonts/SFCompactDisplay-Medium.otf&apos;,
 &apos;/Library/Fonts/NanumMyeongjo.otf&apos;,
 &apos;/Library/Fonts/NanumSquareRoundOTFL.otf&apos;,
 &apos;/System/Library/Fonts/SFCompactDisplay-Semibold.otf&apos;,
 &apos;/Library/Fonts/Arial Narrow Bold Italic.ttf&apos;,
 &apos;/Library/Fonts/STIXNonUniBol.otf&apos;,
 &apos;/Library/Fonts/STIXIntUpSmReg.otf&apos;,
 &apos;/System/Library/Fonts/ZapfDingbats.ttf&apos;]
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;f&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;f&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;name&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;f&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;fm&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;fontManager&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;ttflist&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;len&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;font_list&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;))&lt;/span&gt;
&lt;span class=&quot;c1&quot;&gt;# 10개의 폰트명 만 출력
&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;f&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[:&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;197





[&apos;DejaVu Sans&apos;,
 &apos;DejaVu Sans&apos;,
 &apos;DejaVu Serif&apos;,
 &apos;STIXSizeFiveSym&apos;,
 &apos;STIXSizeFourSym&apos;,
 &apos;STIXSizeTwoSym&apos;,
 &apos;STIXSizeFourSym&apos;,
 &apos;DejaVu Sans Mono&apos;,
 &apos;DejaVu Serif Display&apos;,
 &apos;STIXGeneral&apos;]
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;c1&quot;&gt;# [f.name for f in fm.fontManager.ttflist if &apos;&apos; in f.name]
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h2 id=&quot;7-나눔고딕을-사용할-예정이기-때문에-이름에-nanum이-들어간-폰트만-가져와-봅니다&quot;&gt;7. 나눔고딕을 사용할 예정이기 때문에 이름에 ‘Nanum’이 들어간 폰트만 가져와 봅니다.&lt;/h2&gt;
&lt;ul&gt;
  &lt;li&gt;폰트를 설치했는데 원하는 폰트명을 가져오지 못 할때, 터미널을 열어  mpl.get_cachedir()로 찍히는 캐시위치로 이동해서 캐시파일을 열어봅니다.&lt;/li&gt;
  &lt;li&gt;캐시파일에 원하는 폰트리스트가 없으면 주피터 노트북 혹은 콘다를 재실행 해줍니다.&lt;/li&gt;
&lt;/ul&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;p&quot;&gt;[(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;f&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;f&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;fname&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;f&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;fm&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;fontManager&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;ttflist&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&apos;Nanum&apos;&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;f&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;[(&apos;NanumGothicOTF&apos;, &apos;/Library/Fonts/NanumGothic.otf&apos;),
 (&apos;NanumBarunGothicOTF&apos;, &apos;/Library/Fonts/NanumBarunGothicUltraLight.otf&apos;),
 (&apos;NanumSquareRoundOTF&apos;, &apos;/Library/Fonts/NanumSquareRoundOTFEB.otf&apos;),
 (&apos;NanumBarunGothicOTF&apos;, &apos;/Library/Fonts/NanumBarunGothicLight.otf&apos;),
 (&apos;NanumBarunpen&apos;, &apos;/Library/Fonts/NanumBarunpenBold.otf&apos;),
 (&apos;NanumBarunGothic&apos;, &apos;/Library/Fonts/NanumBarunGothicLight.ttf&apos;),
 (&apos;Nanum Brush Script OTF&apos;, &apos;/Library/Fonts/NanumBrush.otf&apos;),
 (&apos;NanumSquareRoundOTF&apos;, &apos;/Library/Fonts/NanumSquareRoundOTFR.otf&apos;),
 (&apos;NanumMyeongjoOTF&apos;, &apos;/Library/Fonts/NanumMyeongjoBold.otf&apos;),
 (&apos;Nanum Pen Script OTF&apos;, &apos;/Library/Fonts/NanumPen.otf&apos;),
 (&apos;NanumBarunpen&apos;, &apos;/Library/Fonts/NanumBarunpenRegular.otf&apos;),
 (&apos;NanumSquareOTF&apos;, &apos;/Library/Fonts/NanumSquareOTFExtraBold.otf&apos;),
 (&apos;NanumBarunGothicOTF&apos;, &apos;/Library/Fonts/NanumBarunGothic.otf&apos;),
 (&apos;NanumGothicOTF&apos;, &apos;/Library/Fonts/NanumGothicLight.otf&apos;),
 (&apos;NanumBarunGothicOTF&apos;, &apos;/Library/Fonts/NanumBarunGothicBold.otf&apos;),
 (&apos;NanumGothicOTF&apos;, &apos;/Library/Fonts/NanumGothicExtraBold.otf&apos;),
 (&apos;NanumMyeongjoOTF&apos;, &apos;/Library/Fonts/NanumMyeongjo.otf&apos;),
 (&apos;NanumSquareRoundOTF&apos;, &apos;/Library/Fonts/NanumSquareRoundOTFB.otf&apos;),
 (&apos;NanumSquareOTF&apos;, &apos;/Library/Fonts/NanumSquareOTFBold.otf&apos;),
 (&apos;NanumSquareOTF&apos;, &apos;/Library/Fonts/NanumSquareOTFLight.otf&apos;),
 (&apos;NanumMyeongjoOTF&apos;, &apos;/Library/Fonts/NanumMyeongjoExtraBold.otf&apos;),
 (&apos;NanumSquareRoundOTF&apos;, &apos;/Library/Fonts/NanumSquareRoundOTFL.otf&apos;),
 (&apos;NanumGothicOTF&apos;, &apos;/Library/Fonts/NanumGothicBold.otf&apos;),
 (&apos;NanumSquareOTF&apos;, &apos;/Library/Fonts/NanumSquareOTFRegular.otf&apos;),
 (&apos;NanumBarunGothic&apos;, &apos;/Library/Fonts/NanumBarunGothicUltraLight.ttf&apos;),
 (&apos;NanumBarunGothic&apos;, &apos;/Library/Fonts/NanumBarunGothicBold.ttf&apos;),
 (&apos;NanumBarunGothic&apos;, &apos;/Library/Fonts/NanumBarunGothic.ttf&apos;)]
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h2 id=&quot;9-폰트를-사용하는-방법은-3가지가-있습니다&quot;&gt;9. 폰트를 사용하는 방법은 3가지가 있습니다.&lt;/h2&gt;
&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;1) FontProperties 를 사용하는 방법 - 그래프의 폰트가 필요한 항목마다 지정해 주어야 합니다.
2) matplotlib.rcParams[]으로 전역글꼴 설정 방법 - 그래프에 설정을 해주면 폰트가 필요한 항목에 적용 됩니다.
3) 2)번의 방법을 mpl.matplotlib_fname()로 읽어지는 설정 파일에 직접 적어주는 방법, 단 모든 노트북에 적용됩니다. 노트북을 열 때마다 지정해 주지 않아도 돼서 편리합니다.
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h3 id=&quot;1-fontproperties-를-사용하는-방법&quot;&gt;1) FontProperties 를 사용하는 방법&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;텍스트를 지정하는 항목에 지정해 사용할 수 있습니다. 지정해 준 항목에만 해당 폰트가 적용 됩니다.&lt;/li&gt;
  &lt;li&gt;matplotlib.pyplot
    &lt;ul&gt;
      &lt;li&gt;title()&lt;/li&gt;
      &lt;li&gt;xlabel()&lt;/li&gt;
      &lt;li&gt;ylabel()&lt;/li&gt;
      &lt;li&gt;legend()&lt;/li&gt;
      &lt;li&gt;text()&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;matplotlib.axes
    &lt;ul&gt;
      &lt;li&gt;set_title()&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;c1&quot;&gt;# fname 옵션을 사용하는 방법
&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;path&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&apos;/Library/Fonts/NanumBarunpenRegular.otf&apos;&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;fontprop&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;fm&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;FontProperties&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;fname&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;path&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;size&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;18&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;

&lt;span class=&quot;n&quot;&gt;plt&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;plot&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;range&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;50&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;),&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&apos;r&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;plt&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;title&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;시간별 가격 추이&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;fontproperties&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;fontprop&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;plt&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;ylabel&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;주식 가격&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;fontproperties&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;fontprop&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;plt&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;xlabel&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;시간(분)&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;fontproperties&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;fontprop&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;plt&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;show&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;img src=&quot;images/2017/matplotlib_font_setting_files/matplotlib_font_setting_20_0.png&quot; alt=&quot;png&quot; /&gt;&lt;/p&gt;

&lt;h3 id=&quot;2-matplotlibrcparams으로-전역글꼴-설정-방법&quot;&gt;2) matplotlib.rcParams[]으로 전역글꼴 설정 방법&lt;/h3&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;c1&quot;&gt;# 기본 설정 읽기
&lt;/span&gt;&lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;matplotlib.pyplot&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;as&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;plt&lt;/span&gt;

&lt;span class=&quot;c1&quot;&gt;# size, family
&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;# 설정 되어있는 폰트 사이즈&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;plt&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;rcParams&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;font.size&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; 
&lt;span class=&quot;k&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;# 설정 되어있는 폰트 글꼴&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;plt&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;rcParams&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;font.family&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;# 설정 되어있는 폰트 사이즈
10.0
# 설정 되어있는 폰트 글꼴
[&apos;sans-serif&apos;]
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;c1&quot;&gt;# serif, sans-serif, monospace
&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;serif 세리프가 있는 폰트--------&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;plt&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;rcParams&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;font.serif&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;])&lt;/span&gt; 
&lt;span class=&quot;k&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;sans-serif 세리프가 없는 폰트 --------&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;plt&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;rcParams&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;font.sans-serif&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;])&lt;/span&gt; 
&lt;span class=&quot;k&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;monospace 고정폭 글꼴--------&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;plt&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;rcParams&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;font.monospace&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;])&lt;/span&gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;serif 세리프가 있는 폰트--------
[&apos;DejaVu Serif&apos;, &apos;Bitstream Vera Serif&apos;, &apos;Computer Modern Roman&apos;, &apos;New Century Schoolbook&apos;, &apos;Century Schoolbook L&apos;, &apos;Utopia&apos;, &apos;ITC Bookman&apos;, &apos;Bookman&apos;, &apos;Nimbus Roman No9 L&apos;, &apos;Times New Roman&apos;, &apos;Times&apos;, &apos;Palatino&apos;, &apos;Charter&apos;, &apos;serif&apos;]
sans-serif 세리프가 없는 폰트 --------
[&apos;DejaVu Sans&apos;, &apos;Bitstream Vera Sans&apos;, &apos;Computer Modern Sans Serif&apos;, &apos;Lucida Grande&apos;, &apos;Verdana&apos;, &apos;Geneva&apos;, &apos;Lucid&apos;, &apos;Arial&apos;, &apos;Helvetica&apos;, &apos;Avant Garde&apos;, &apos;sans-serif&apos;]
monospace 고정폭 글꼴--------
[&apos;DejaVu Sans Mono&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Computer Modern Typewriter&apos;, &apos;Andale Mono&apos;, &apos;Nimbus Mono L&apos;, &apos;Courier New&apos;, &apos;Courier&apos;, &apos;Fixed&apos;, &apos;Terminal&apos;, &apos;monospace&apos;]
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;plt&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;rcParams&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;font.family&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&apos;Nanum Brush Script OTF&apos;&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;plt&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;rcParams&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;font.size&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;20&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;plt&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;rcParams&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;figure.figsize&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;14&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;plt&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;plot&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;range&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;50&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;),&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&apos;r&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;plt&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;title&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;시간별 가격 추이&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;plt&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;ylabel&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;주식 가격&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;plt&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;xlabel&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;시간(분)&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;plt&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;style&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;use&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;seaborn-pastel&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;plt&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;show&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;img src=&quot;images/2017/matplotlib_font_setting_files/matplotlib_font_setting_25_0.png&quot; alt=&quot;png&quot; /&gt;&lt;/p&gt;

&lt;h4 id=&quot;rcparams-대신-fontproperties-와-pltrc-를-사용하는-방법&quot;&gt;rcParams 대신 FontProperties 와 plt.rc 를 사용하는 방법&lt;/h4&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;path&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&apos;/Library/Fonts/NanumBarunGothic.ttf&apos;&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;font_name&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;fm&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;FontProperties&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;fname&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;path&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;size&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;50&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;).&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;get_name&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;font_name&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;plt&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;rc&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;font&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;family&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;font_name&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;

&lt;span class=&quot;n&quot;&gt;fig&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;ax&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;plt&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;subplots&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;ax&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;plot&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;ax&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;set_title&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;시간별 가격 추이&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;plt&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;ylabel&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;주식 가격&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;plt&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;xlabel&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;시간(분)&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;plt&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;style&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;use&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;ggplot&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;plt&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;show&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;NanumBarunGothic
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;img src=&quot;images/2017/matplotlib_font_setting_files/matplotlib_font_setting_27_1.png&quot; alt=&quot;png&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;3-rcparams-를-설정파일에-직접-적어주는-방법---모든-노트북에-공통적용&quot;&gt;3) rcParams 를 설정파일에 직접 적어주는 방법 - 모든 노트북에 공통적용&lt;/h2&gt;
&lt;ul&gt;
  &lt;li&gt;font.family         : NanumGothicOTF&lt;/li&gt;
  &lt;li&gt;이 외에 자주 사용하는 설정도 함께 해주면 편리합니다.&lt;/li&gt;
  &lt;li&gt;이곳에 폰트를 지정해 주면 노트북을 실행할 때 바로 로드되도록 설정할 수 있습니다.&lt;/li&gt;
&lt;/ul&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;k&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;설정파일 위치: &apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;mpl&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;matplotlib_fname&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;())&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;설정파일 위치:  /Users/corazzon/codes/jupyter/lib/python3.6/site-packages/matplotlib/mpl-data/matplotlibrc
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;c1&quot;&gt;# import matplotlib.pyplot as plt
# import numpy as np
&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;fig&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;ax&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;plt&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;subplots&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;ax&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;plot&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;np&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;random&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;randn&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;100&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;),&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;np&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;random&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;randn&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;100&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;),&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&apos;o&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;ax&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;set_title&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;숫자 분포도 보기&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;plt&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;show&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;img src=&quot;images/2017/matplotlib_font_setting_files/matplotlib_font_setting_30_0.png&quot; alt=&quot;png&quot; /&gt;&lt;/p&gt;

&lt;p&gt;참고 URL :&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://matplotlib.org/api/font_manager_api.html&quot;&gt;font_manager — Matplotlib 2.1.0 documentation&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://matplotlib.org/users/customizing.html&quot;&gt;Customizing matplotlib — Matplotlib 2.0.2 documentation&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://matplotlib.org/examples/api/unicode_minus.html&quot;&gt;마이너스 폰트가 깨지는 문제 unicode_minus.py — Matplotlib 2.0.2 documentation&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;https://financedata.github.io/posts/matplotlib-hangul-for-osx.html&lt;/li&gt;
&lt;/ul&gt;

</description>
                <link>http://corazzon.github.io/matplotlib_font_setting</link>
                <guid>http://corazzon.github.io/matplotlib_font_setting</guid>
                <pubDate>2017-11-20T00:00:00+00:00</pubDate>
        </item>

        <item>
                <title>파이썬 코리아 Data101 튜토리얼(IPython Notebook) 후기</title>
                <description>
&lt;p&gt;IPython Notebook을 처음 접한 건 지난해(2014년) 파이썬코리아 6월 세미나에서였다.&lt;/p&gt;

&lt;p&gt;어찌 보면 기형적으로 장고를 통해 파이썬을 접했기에 파이썬 문법을 익히기 위해 코드카데미의 파이썬 강좌를 수강했던 경험이 있는데 코드카데미를 통해 파이썬을 학습하면서 느꼈던 장점은 환경설정에 대한 진입장벽을 없애줬다는 점이었다. 이런 내게, IPython Notebook은 코드를 입력하고 결과를 바로 보여준다는 점에서 코드카데미를 떠올리게도 했지만 파이썬 학습도구, 통계, 문서 작성도구 등 여러분야에서 사용되는 것 같다. 마크다운 문법을 사용할 수 있다는 점에서도 강좌용이나 문서화 도구로도 좋겠다는 생각이 들었는데 오늘 발표자료 또한 IPython Notebook으로 제작 되어 Github으로 공유되었다. 그리고 작성 된 데이터들은 다양한 형태로 export가 가능하다고도 하니까 응용할 수 있는 분야는 정말 무궁무진 할듯 하다.&lt;/p&gt;

&lt;p&gt;IPython Notebook은 파이썬 코드를 입력하고 Shift+Enter만으로 그 결과를 볼 수 있고 또, 그 데이터를 바로 시각화해서 볼 수 있다는 점에서 신선한 자극이 되었다.  하지만 이런 장점을 알면서도 마음먹고 써보지 않음 소용이 없는데, 워낙 게으른 탓에 알면서도 차일피일 미뤄오다가 이 번에 유료 튜토리얼을 진행한다고 해서 바로 신청하게 되었다.&lt;/p&gt;

&lt;p&gt;어떠한 언어든 툴이든 환경설정이 가장 큰 진입장벽으로 느껴지는 데, 이미 파이썬과 장고를 자주 사용해서 그런지 IPython과 관련 된 환경을 설정하는 건 크게 어렵진 않았다.&lt;/p&gt;

&lt;p&gt;원래 생각으로는 튜토리얼 며칠 전에 IPython Notebook을 미리 설치해서 맛보기를 해보고 갈 생각이었지만 사정이 여의치 않아서 설치도 못 한채 튜토리얼에 참석했는데 생각보다 설치시간이 많이 걸리지 않았다. 튜토리얼 시간 중 초반 30분은 설치하는 시간으로 생각하셨다는 데 30분 내에 대부분이 환경설정을 마쳤던 것 같다.&lt;/p&gt;

&lt;p&gt;김슬님의 발표는 예전에도 몇 번 들었던 적이 있는데 이번에도 엄청나게 열심히 준비하신 흔적이 강의내내 엿보였다. 통계와 관련 된 여러 이야기를 시작으로 IPython Notebook으로 통계를 내고 수치를 내는 과정이 왜 필요할지 세균의 개념이 없었던 시기에 어떻게 콜레라의 전파를 막을 수 있었는지에 대한 이야기를 시작으로 흥미를 잘 이끌어 주셨다.&lt;/p&gt;

&lt;p&gt;특히 통계로 원주율을 구하는 방법을 평면에 원을 그리고 평면의 1/4에 점을 찍고 그 원 안에 점이 몇개가 들어가 있는지를 통해 통계로서 원주율을 구하는 코드를 직접 실행해 보고 그 결과를 보게 함으로써 점점 더 많은 점을 뿌리고 찍어가면서 원주율에 근접해 가도록 설명을 해주셨는데 결과 값이 눈앞에 그래프로 딱딱 찍히는 모습을 보니 너무 재미있어서 계속 숫자를 바꿔가며 실험을 해봤다. 파이썬 코드를 타이핑하고 바로 그 실행결과를 볼 수 있으니 시간이 가는 줄 모르고 진행 되었고 3시간이 넘는 튜토리얼이었지만 정말 지루할 틈이 없었다. 심지어 쉬는 시간에도 대부분의 사람들이 튜토리얼 코드의 값을 바꿔보면서 수치와 그래프의 변화 모습을 보며 재미있어 했다. 김슬님 또한 쉬는시간임에도 쏟아지는 질문들에 대해 성심껏 답을 해주셨다.&lt;/p&gt;

&lt;p&gt;책을 넘겨가며 혹은 혼자 모니터를 보며 실험해 봤으면 훨씬 어렵고 힘들었을텐데 이렇게 재미있는 예제로 설명해 주니 IPython Notebook의 매력에 빠져 만들어 보고 싶은 것들이 머릿속을 채워나갔다.&lt;/p&gt;

&lt;p&gt;또, 차 맛을 보는 여인에 대한 이야기를 하면서 혼자 강의를 진행해 나가는 게 아니라 수강생들의 의견을 물어보고 얘기하면서 일방적인 수업이 아니라 모두가 참여하고 모두가 토론할 수 있는 분위기를 이끌어 내주신 점에서도 정말 발표를 능수능란하게 하신다는 생각이 들었다.&lt;/p&gt;

&lt;p&gt;평소 데이터를 분석하거나 혹은 분석 된 데이터를 보는 걸 좋아하고 또 분석 된 데이터를 다시 가공해 보는 것도 좋아하는 편인데 R과 같은 도구는 사용해 본적이 없지만 여러 오픈소스를 통해 그래프를 그리고 표현해 봤었는데 IPython Notebook을 사용하면 좀 더 쉽게 좀 더 잘 표현 할 수도 있을 것만 같은 기대감이 차 올랐다.&lt;/p&gt;

&lt;p&gt;얼마 전에 이슈가 되었던 &lt;em&gt;버거지수&lt;/em&gt; 또한 IPython Notebook으로 제작 되었는데 튜토리얼을 들으니 버거지수가 더 가깝게 느껴진다. 김슬님이 강의 내내 IPython Notebook을 느껴본다라고 생각해 보라고 했는데 그래서 인지 부담없이 IPython Notebook이 가깝게 느껴진 듯한 느낌적인 느낌이다. :)&lt;/p&gt;

&lt;p&gt;보통 IPython Notebook 관련 스터디에는 보통의 개발자 보다는 통계와 관련 된 분들이 많이 오셔서 화기애애한 분위기라는 얘길 들었었는데, 통계와 관련 된 베이스가 있다면 좀 더 정교하게 필요한 데이터를 얻을 수 있을 것 같은 생각이 든다. 또, 굳이 통계만을 위해서가 아니라 코드를 적고 그 실행 결과를 Shift+Enter만으로 코드와 함께 볼 수 있다는 점에서 학습했던 코드를 정리하고 그 내용에 대한 설명을 적어가면서 개인적인 스터디 용도로 사용해도 너무 좋을 것 같은 생각이 든다.&lt;/p&gt;

&lt;p&gt;앞으로 자주 사용하게 될 것만 같은 고마운 툴이고, 재미있게 IPython Notebook을 전파해 주신 김슬님께도 너무 감사드린다.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://github.com/lexifdev/statbystep&quot;&gt;발표자료 lexifdev/statbystep&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;http://nbviewer.ipython.org/&quot;&gt;IPython 무료 호스팅 사이트&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;http://nbviewer.ipython.org/gist/hyeshik/cf9f3d7686e07eedbfda?revision=6&quot;&gt;“버거 지수”는 진짜 도시의 발전 수준을 반영할까?&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;IPython Notebook 설치에 도움이 되는 글&lt;/p&gt;

    &lt;blockquote&gt;
      &lt;p&gt;&lt;a href=&quot;http://neurorep.blogspot.kr/2014/06/mac-os-x-10.html&quot;&gt;MAC OS X 10.9 Mavericks 에서 virtualenv 내에 IPython 환경 구축하기&lt;/a&gt;&lt;/p&gt;
    &lt;/blockquote&gt;
  &lt;/li&gt;
&lt;/ul&gt;

 	&amp;gt; &lt;a href=&quot;http://www.lucypark.kr/blog/2013/02/06/python-and-ipython-on-windows/&quot;&gt;윈도우에 파이썬, IPython 설치하기 완벽 가이드 - Lucy Park&lt;/a&gt;

</description>
                <link>http://corazzon.github.io/python-korea-data101</link>
                <guid>http://corazzon.github.io/python-korea-data101</guid>
                <pubDate>2015-02-15T00:00:00+00:00</pubDate>
        </item>

        <item>
                <title>장고로 첫 삽뜨기</title>
                <description>
&lt;h3 id=&quot;장고로-첫-삽-뜨기---우리집-꼬마를-위한-유아용-영어동요-웹앱-개발후기&quot;&gt;장고로 첫 삽 뜨기 - 우리집 꼬마를 위한 유아용 영어동요 웹앱 개발후기&lt;/h3&gt;

&lt;h1 id=&quot;django-장고-시작하기&quot;&gt;django 장고 시작하기&lt;/h1&gt;

&lt;p&gt;장고코딩을 처음 해 본게 스마트스터디의 오픈세션에서 였는데 내 게으름으로 인해 그 후 일년이 지나서야 본격적으로 장고를 시작하게 되었다. 그렇다고 뭐 아주 열심히 열정적으로 장고를 사용한 건 아니지만 말이다. 과거, 옥시토신 호르몬의 분비로 인해 서버 아이디와 비밀번호는 다 잊어버렸지만 VI를 6개월 만에 다시 사용했는데도 마치 어제 사용한 듯 명령어들이 손가락에 붙어 있었던 기억이 있다. 기억력을 감퇴시킨다는 옥시토신 호르몬은 다시 내게 찾아왔고 녹슨 손가락을 가지고 맥북을 다시 열었음에도 마치 어제 코딩 한 듯한 기분이 들었다. 늦은 저녁 서초동 지하에서 타이핑하던 손가락 근육의 움직임을 기억해 가며 한 줄씩 다시 따라해 봤다. 이렇게 하루에 한 두시간씩 장고로 튜토리얼을 따라 해보다가 내것을 만들어 보고자 하는 마음이 조금씩 번져나가기 시작했다.&lt;/p&gt;

&lt;h1 id=&quot;나만의-서비스-만들기&quot;&gt;나만의 서비스 만들기&lt;/h1&gt;

&lt;p&gt;하루가 어떻게 지나가는지도 모르는 시간을 보내며 배재홍님이 쓴 &amp;lt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;스타트업 바이블&lt;/code&gt;&amp;gt;을 읽는 데 ‘구멍가게를 하더라도 네 자신을 위해 일할 줄 아는 사람이 되라’라는 문구가 다가왔다. 그렇게 첫 삽을 들게 되었다. 이렇게 작은 것이라도 나만의 서비스를 처음부터 끝까지 만들어 서비스까지 해보고 싶다는 생각이 들었고 기획, 디자인, 개발도 내 생각을 녹여서 오롯이 내것을 만들고 싶었다.&lt;/p&gt;

&lt;p&gt;그렇게 다섯 살 아들을 위한 유아용 앱을 하나 만들겠다는 결심으로 터미널을 열고 까만 화면을 채워 나가기 시작했다. 지금도 막상 내가 만든 걸 하루이틀을 꼬박 줄테니 만들어 보라면 만들 수도 있을 것도 같지만 게으른 시간은 빠르게 흘러갔다. 모니터 안의 결과물은 지지부진하고 만족스럽지 못했고 시간은 늘 부족했다.&lt;/p&gt;

&lt;h1 id=&quot;선택과-집중-그리고-피처크립&quot;&gt;선택과 집중 그리고 피처크립&lt;/h1&gt;

&lt;p&gt;내가 잘 못하는 건 필요한 최소한의 기능만을 남겨두고 나머지 불필요한 것들을 버리는 것이다. 현실에서나 작은 화면 안에서나 이런 내 성격은 부끄럽게 도드라졌고 항상 고치고 싶은 부분으로 남아있다. 조금씩 이 앱을 개발하면서 점점 추가하고 싶은 기능과 컨텐츠들이 늘어나며 내가 만들고자 했던 것에서 점점 더 멀어져만 갔다.  기능 하나를 뺄까 생각했다가도 계속 이런저런 기능들이 다 있었으면 좋겠다 생각하고 피처크립을 만들어 가고 있었다.&lt;/p&gt;

&lt;p&gt;이건 기능 뿐만이 아니라 개발도구도 그랬다. 새로 장고를 사용하게 되면서 장고에서 유명한 패키지들은 한번씩 다 써보고 싶고 &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;django-REST-framework&lt;/code&gt;도 써보고 싶고 &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;south&lt;/code&gt;, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;haystack&lt;/code&gt;, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;celery&lt;/code&gt;도 써보고 싶었다. 기존에 사용하던 방법으로 코딩하면 금방할 것도 같았지만 너무 엘레강스 하지 못해 이래저래 시간을 보냈다. 그 와중에 장고는 1.6이 넘게 판올림을 했다. 물론 이런 과정에서 여러 패키지들을 비교해 써보고 학습하는 건 좋았지만 속도가 붙지 않으니 조금 처지는 느낌이 들었다. 그래서 서비스 해가면서 사용하고 싶은 패키지나 툴을 하나씩 공부하며 적용해 나가는 것도 나쁘진 않았을 것 같다.&lt;/p&gt;

&lt;p&gt;하지만 장고와 관련 된 여러 패키지들은 너무나도 매력적이었다. 기존의 방법대로 개발 했다면 과연 더 금방 끝낼 수 있었을까? &lt;a href=&quot;http://www.youtube.com/watch?v=IRHP979pb-M&quot;&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;화성에서 온 개발자 금성에서 온 기획자&lt;/code&gt;&lt;/a&gt; 를 보면 김밥천국에 가서 밥을 시키면 고추장부터 만드는 걸 프레임워크 사용에 빗대어 나오는 데 그 슬라이드를 보고 혼자 얼마나 웃었는지 장고를 사용하며 깨알같은 여러 패키지의 도움은 많은 시간을 절약하게 해주었다. 내가 그 보다 잘 만들 자신이 없고 또 내가 만들고자 하는 것들에 충실하기 위해서 이런 여러 패키지들의 사용은 너무 꿀맛이었다.&lt;/p&gt;

&lt;p&gt;계획했던 것보다 일정이 많이 늘어지면서 같이 느러지는 나를 보고 있자니 쏘면서 달리기가 필요한 시기가 찾아왔다. 막상 이 글과 그간의 결과물을 올려놓고 나면 아무도 찾아와 보지 않더라도 너무나 부끄러워 두 손으로 얼굴을 가리게 될지언정 내게 변화가 필요한 시점임에는 틀림이 없었다.&lt;/p&gt;

&lt;h2 id=&quot;python과-django의-꿀맛같은-패키지와-기능들&quot;&gt;python과 django의 꿀맛같은 패키지와 기능들&lt;/h2&gt;

&lt;h3 id=&quot;django-taggit&quot;&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;django-taggit&lt;/code&gt;&lt;/h3&gt;

&lt;p&gt;내가 만드는 서비스는 유튜브API를 사용하여 유튜브에 있는 영어동요를 큐레이팅해서 보여주는 서비스다. 우리 아이가 좋아하고 내가 좋아하는 영어동요들을 모으다 보니 6천개가 넘게 모였는데 이것을 어떻게 모아서 보여줄지가 고민이었다. 수집 된 비디오에 각 비디오의 제목과 설명에 맞는 태그를 달아서 태그별로 보여주고 싶었는데 이 역시 내가 직접 만드는 것 보단 누군가 잘 만들어 놓은 것을 가져다 쓰기로 하고 django-taggit을 클론 받아서 사용하고 있다.&lt;/p&gt;

&lt;h3 id=&quot;django-category&quot;&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;django-category&lt;/code&gt;&lt;/h3&gt;

&lt;p&gt;이것도 깃헙에서 클론받아 설치해 사용하고 메뉴의 카테고리를 구성하는데 사용했다.&lt;/p&gt;

&lt;h3 id=&quot;django-admin&quot;&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;django-admin&lt;/code&gt;&lt;/h3&gt;

&lt;p&gt;장고의 꽃이라 불리는 기능인 만큼 내가 장고를 사용할 결정을 내리는 데 가장 큰 매력으로 다가왔던 것이 바로 어드민 기능이었다. 기존 웹서비스를 개발하다 보면 일정에 맞추느라고 늘 어드민 기능은  만족스럽지 못했는데 기본적인 어드민 기능을 모두 제공한다. 누군가 django자체가 CMS와 유사하다고도 얘기했던 거 같은데 django-admin이 그 말과 가장 가깝다는 생각이 든다. 로그인 그와 관련된 세션, 계정관리 기능, 각 모델에 대한 CRUD기능, history관리 등등 기본적으로 필요한 기능들은 대부분 구현되어 있어서 내 입맛대로 커스터마이징만 좀 하면 그럴 듯한 관리자 페이지를 갖게 된다.&lt;/p&gt;

&lt;h3 id=&quot;pep8&quot;&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;PEP8&lt;/code&gt;&lt;/h3&gt;

&lt;p&gt;혼자 보는 코드이지만 Python 코딩컨벤션을 지켜서 코딩하고 싶었고 많은 선삽자들과 Tow Scoop of Django 에서도 이를 추천한다. 하지만 한번 보고 뒤 돌아 서면 다 잊어버리기 일쑤라 Vim plugin 잔소리꾼을 고용하여 코딩하며 자연스럽게 PEP8에 익숙해져 갔다.&lt;/p&gt;

&lt;h3 id=&quot;vim-plugin---python-mode-잔소리꾼&quot;&gt;Vim plugin - &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Python-mode&lt;/code&gt; 잔소리꾼&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/klen/python-mode&quot;&gt;Python-mode, Python in VIM (klen/python-mode)&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;처음 설치할 때 pathogen 설정이 필요하며 PEP8, 코드폴딩 등을 지원 한다. 사용하지 않는 변수, import된 모듈을 체크해 주며 코딩컨벤션을 지킬 수 있어서 좋고 자동으로 고쳐주니 좋긴 한데 좀 무거운면이 있고, 설치 후 인덴트가 꼬여서 처음 시작할 때부터 사용하는 게 좋다. 중간에 적용하면 나 처럼 디버그하느라 시간을 다 보낼 수 있다.&lt;/li&gt;
  &lt;li&gt;PEP8을 지원하는 다른 VIM plugin 이나 .vimrc 설정파일도 많지만 이걸 적용하면 새로 작성하는 코드에 스페이스 4개와 같은 인덴트 기능을 비롯한 PEP8을 자동으로 적용해 준다. 현재 8~9개월 정도 사용했는데(파이썬 코딩을 많이 안 했다는 게 함정이긴 하지만) 컨벤션을 지킬 수 있게 잔소리가 계속 나오기 때문에 자연스럽게 PEP8을 익힐 수 있어서 좋다. 개발 시작할 때부터 사용하면 좋지만 난 중간에 설치해서 각종 오류에 대처하는데 시간을 많이 소비했다. 하지만 덕분에 PEP8을 손가락으로 익힐 수 있어서 좋았다. vi에서 편집 후 :w를 누르면 화면 하단에 잔소리가 라인별로 뜬다. 잔소리 한 줄씩 줄여가는 재미도 쏠쏠하다.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;여러 기능이 있지만 지금까지 파악한 것들을 다시 정리해봤다.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;코드 폴딩기능 제공&lt;/li&gt;
  &lt;li&gt;PEP8(인덴트 스페이스4, 너무 긴 라인, 콤마와 오퍼레이터 사이의 여백처리들, 라인여백, 세미콜론의 불필요한 사용 등등)&lt;/li&gt;
  &lt;li&gt;사용하지 않는 변수&lt;/li&gt;
  &lt;li&gt;불필요하게 import 된 모듈&lt;/li&gt;
  &lt;li&gt;오류 시 해당 라인에 ‘EE’ 오류 표시, 불필요한 라인은 ‘WW’표시&lt;/li&gt;
  &lt;li&gt;화면 하단에 오류 리스팅&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;virtualenv-virtualenvwrapper&quot;&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;virtualenv&lt;/code&gt;, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;virtualenvwrapper&lt;/code&gt;&lt;/h2&gt;

&lt;p&gt;파이썬으로 개발하는 사람들 중에 이 두가지 툴을 사용하지 않는 사람들은 거의 없을 듯 하다. 각 개발환경에 맞는 가상환경을 만들어 주고 배포할 때는 &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;fabric&lt;/code&gt;을 사용하게 되면 설치 된 패키지들을 알아서 관리해 준다. 정말 이 두가지 툴이 없었더라면 배포하면서 완전 멘붕이 찾아왔을 지도 모른다. 또 다른 사람이 개발해 놓은 소스를 깃헙에서 받아서 볼 때도 편리하게 가상환경 설정이 가능하다. &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;requirements.txt&lt;/code&gt; 만 있다면,&lt;/p&gt;

&lt;h3 id=&quot;south&quot;&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;South&lt;/code&gt;&lt;/h3&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;python manage.py schemamigration yourapp --auto 
python manage.py migrate yourapp
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;이 단 두 줄의 마법으로 스키마가 생성, 변경, 삭제 된다.
스키마를 수정할 일이 있으면 모델만 수정해 주면 된다.
설치도 간단하고 사용법도 이렇게 간단할 수가! 아름답다고 밖에 표현할 말이 없다.&lt;/p&gt;

&lt;h3 id=&quot;layout폴더구조&quot;&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;layout&lt;/code&gt;(폴더구조)&lt;/h3&gt;

&lt;p&gt;아직까지도 고민되고 아직까지도 어떻게 써야할지에 대한 고민이 된다. &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Tow Scoop of Django&lt;/code&gt; 를 보면 이에 대한 내용이 있고 github에도 이에 대한 예제 소스가 여럿 있다. 일단은 django 기본 예제를 바탕으로 사용하고 있다. 프로젝트의 특성에 맞게 사용하는 걸 추천받았지만 아직 초보라 그런지 어떻게 사용하는 게 편할지는 좀 더 고민해 봐야 될거 같다.&lt;/p&gt;

&lt;h3 id=&quot;template-tags&quot;&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;template tags&lt;/code&gt;&lt;/h3&gt;

&lt;p&gt;장고 템플릿 기능을 사용하면 시간변환이나 글자수체크, 통화변환을 비롯해 템플릿 안에서 파이썬 코드나 함수를 불러 사용해야 될 일이 있는데 이럴 때 사용하면 유용하다. Tow Scoop of Django 책에서도 이와 관련 된 깃헙 추천 링크를 제공한다. 또 context_processor를 사용해 파이썬 코드가 필요한 부분이나 메뉴 같은 부분에 응용할 수 있다.&lt;/p&gt;

&lt;h3 id=&quot;fabric&quot;&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;fabric&lt;/code&gt;&lt;/h3&gt;

&lt;p&gt;fabric은 장고를 다른 서버에 배포할 때 유용한 패키지다.&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;
    &lt;table&gt;
      &lt;tbody&gt;
        &lt;tr&gt;
          &lt;td&gt;[Deploying a Django site with Fabric&lt;/td&gt;
          &lt;td&gt;Richmond Virginia Web Developer · Francis Yaconiello](http://www.yaconiello.com/blog/deploying-django-site-fabric/)&lt;/td&gt;
        &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.jeffknupp.com/blog/2012/02/09/starting-a-django-project-the-right-way/&quot;&gt;Starting a Django Project the Right Way&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;$ pip install fabric
$ pip freeze &amp;gt; requirements.txt
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;와우 단 두 줄로 &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;requirements.txt&lt;/code&gt; 가 자동으로 생성 된다니 믿을 수 없는 일!
aws에 배포하면서 환경이 맞지 않아 잠시 고민하고 &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;fabric&lt;/code&gt;을 검색해서 써보니 너무 간단하고 훌륭하다. 배포하는 중간에 그간 설치해 두었던 virtualenv환경을 메모해 둘걸이라고 생각했던 내 뇌구조는 너무나도 구식이었다. 이런 건 그냥 설치 후 한 줄이면 되는거다. 머리가 나쁘면 손발이 고생한다. 그리고 배포 스크립트를 작성해 놓고 혹시라도 서버를 옮기게 된다든지 증설하게 될 때 사용할 수도 있다. 물론 AWS AMI를 사용한다면 더 굳이 이렇게 할 필요도 없겠지만 말이다.
그리고 python에는 너무나도 훌륭한 tool이 많다.&lt;/p&gt;

&lt;h3 id=&quot;db&quot;&gt;DB&lt;/h3&gt;

&lt;p&gt;처음에는 &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;sqlite&lt;/code&gt;를 사용하다가 결국 &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;mysql&lt;/code&gt;로 갈아타게 되었고, Tool은 맥용 Sequel Pro와 터미널을 조합하여 사용하고 있다. 뭔가 새로운 다른 DB를 사용해 보고 싶지만 일단 첫 삽에서는 그동안 사용해 그나마 익숙한 mysql을 사용하기로 했다. 
django ORM을 사용해 DB를 추상화 시킬 수 있고 사용법도 간단하지만(? 아직 많이 사용하지 못해 빙산의 일각만 보았기 때문에) 추상화로 인해 로드가 심한 쿼리를 작성하는 것에 대한 문제가 고민이었다. 최대한 조인이 없는 쿼리를 만들려고 했고 심플하게 구성하려 했다.&lt;/p&gt;

&lt;h3 id=&quot;서버&quot;&gt;서버&lt;/h3&gt;

&lt;p&gt;장고로 서비스를 만드는 일은 처음이기 때문에 서버의 인스턴스를 만들기 쉽고, 지웠다 다시 만들었다 하는 무한반복(이라 쓰고 더 낫게 실패하기라 읽는다.)의 삽질과정이 필요하기 때문에 &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;AWS의 무료인스턴스&lt;/code&gt;로 서버에 릴리즈 하는 것을 테스트 해보았다. AWS의 마이크로인스턴스는 삽질이 많이 필요할 때 너무나도 유용하다. 국내 호스팅 서비스를 이용한다면 초기 세팅비용의 부담감으로 이렇게 아예 인스턴스를 지웠다 깔았다를 밥먹듯이 하는 건 상상도 못할텐데, 그렇다고 개인서버를 만들어서 OS를 지웠다 깔았다의 무한반복도 시간이 너무 오래 걸려 쉽지 않은데 이런 귀찮은 과정을 무료로 게다가 몇 초에서 몇 분만에 이용할 수 있다니! 이런 기능은 정말 꿀맛같다. 하지만 사용료에 대한 문제 때문에 서버는 끝까지 고민이 된다(사용자가 많지 않다면 무료 인스턴스만으로도 서비스가 가능할 것도 같지만 많은 부모와 아이들이 봐주길 바라는 마음으로, 하지만 이런 걱정도 일단 뚜껑은 열고 하는게 낫겠지,). 중간에 &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;django-medusa&lt;/code&gt;를 이용해 static 한 사이트로 변환 후에 이를 깃허브 같은 무료 서버에 호스팅 하는 것도 매생이님을 통해 추천받았는데 내 끈기없는 인내심으로 인해 결국 aws로 서비스 하게 되었다. 하지만 앞으로 만드는 서비스에는 사용해 볼까 생각중이다. 어짜피 스케쥴링도 전원을 끄지 않는 내 노트북에서 오토메이터 등으로 돌아가게 설정해 놓으면 되니까. 통계는 구글어날리틱스와 같은 툴을 사용하면 되니 충분히 STATIC하게 서비스가 가능한 형태의 앱이긴 하다.&lt;/p&gt;

&lt;p&gt;서버 후보였던 디지털 오션도 있지만 현재 AWS 무료 서비스만으로도 충분하다. (좋아해야 할지 울어야 할지)&lt;/p&gt;

&lt;p&gt;그래서 현재는 &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;nginx&lt;/code&gt;+&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;uwsgi&lt;/code&gt;의 조합으로 &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;AWS ec2&lt;/code&gt;에 무료 인스턴스로 서비스 하고 있다.&lt;/p&gt;

&lt;h2 id=&quot;front-end&quot;&gt;Front-end&lt;/h2&gt;

&lt;p&gt;모바일과 PC용화면을 따로 구분하며 제작하지 말고 해상도에 따라 다르게 보여지도록 작업한다는 목표로 작업했다.&lt;/p&gt;

&lt;p&gt;front-end쪽은 내가 스스로 다 하기엔 해야 될 게 너무 많기 때문에 다른 일들과 마찬가지로 이미 잘 만들어지고 검증 된 것들을 가져다 사용하는 것이 옳았고 그렇게 선택하게 된 게 &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;purecss&lt;/code&gt;와 &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;bootstrap&lt;/code&gt;이다. 또 Front-end는 내게 가장 취약한 부분이기도 하다.&lt;/p&gt;

&lt;p&gt;내가 원하는 페이스북 스타일의 햄버거 아이콘을 가진 슬라이드 메뉴에 RWD(responsive web design)를 지원하는 그리드가 딱이라 생각되었다. 여기에 &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;bootstrap&lt;/code&gt;의 몇 가지 컴포넌트들을 가져왔다. 그래서 &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;purecss&lt;/code&gt;에서는 &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;grid&lt;/code&gt;, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;menu&lt;/code&gt;를 가져와 사용하고 bootstrap에서는 &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;glyphycon&lt;/code&gt;과 &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;badge&lt;/code&gt;를 가져와 사용했다. 그리고 &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;carousel&lt;/code&gt;은 bootstrap을 가져다 쓸까 하다가 &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;slick&lt;/code&gt;을 사용했다. 그리고 필요한 몇 가지는 만들어 사용했고 &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;미디어쿼리&lt;/code&gt;를 사용해서 해상도에 따라 보여지는 정보를 다르게 표현했다. 또 휴대폰의 가로세로 변환에도 적용 될 수 있는 UI를 만들고자 했다.&lt;/p&gt;

&lt;h3 id=&quot;grid&quot;&gt;Grid&lt;/h3&gt;

&lt;p&gt;UI 테스트는 &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Chrome 브라우저&lt;/code&gt;의 &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Emulation&lt;/code&gt; 기능을 사용해서 했고 아이폰을 제외한 대부분의 모바일 화면이 제각각이라 각 해상도에서 제목이나 상세설명이 넘쳐흘러 보이지 않는지, 섬네일 등의 이미지가 제대로 보여지는 지 동영상 재생과 관련 된 부분을 중점적으로 보면서 미디어 쿼리를 수정했는데 시간도 가장 많이 걸리고 휴대폰 각각 해상도가 너무 천차만별 이라 모바일 화면에서 섬네일이 2개 보여지는 것이 좋을지 3개 보여지는 것이 좋을지와 같은 그리드 표현에 대한 고민이 많이 되었고 같은 미디어쿼리를 수십번 수정해도 마음에 들지 않아서 가장 힘든 부분이었다. 그나마 pure의 그리드 기능이 개발 도중에 업데이트가 되어서 화면 별로 그리드 숫자를 조정 할 수 있도록 변경되어 도움이 되었다. 개발 초기에는 pure의 그리드와 bootstrap의 그리드도 바꿔가며 사용하면서 어떤 그리드가 내가 만들고자 하는 목적에 부합할지에 대해 여러번 시뮬레이션(삽질)해보고 결국 &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;purecss&lt;/code&gt;로 굳히게 되었다.&lt;/p&gt;

&lt;h2 id=&quot;youtube-api&quot;&gt;YouTube API&lt;/h2&gt;

&lt;p&gt;앱스토어에 보면 유튜브와 관련 된 혹은 유튜브를 큐레이팅 해서 보여주는 앱들이 엄청나게 많다. 개인들이 제작한 많은 유아용 앱들이 대부분 이런 형태를 띠고 있다. 그래서 나도 쉽게 진입할 수 있는 유튜브 API를 사용해 앱을 만들게 되었다. 유튜브는 사용자가 동영상을 올리면 그 영상이 실행 될 때 어떠한 식으로든 광고에 노출 되게 되며 그 광고에 대한 수익을 업로더와 유튜브가 공유하는 형태이다. 이러한 앱들이 유튜브의 동영상을 중계해줘 플레이가 많이 되면 업로더에게 수익이 발생되는 형태이다. 다만 업로더가 저작권이 없는 동영상을 올렸느냐 아니냐에 대한 판가름을 해야하는데 그건 유튜브에서 저작권에 문제가 된다고 판단 되는 영상에 대해서는 별도의 관리를 하고 있다. 나는 주로 영어동요에 관련 된 키워드로 동영상들을 수집하고 있는데 수집하다보면 과거에 수집 되었던 영상들이 저작권 문제로 삭제되어 있는 걸 종종 봤다. 또 유튜브 플레이어는 몇 가지 종류가 있는 데 광고가 플레이 되지 않는 버전으로 연결시켜주어서 동영상이 플레이 될 때는 광고가 보여지지 않도록 개발하였다.&lt;/p&gt;

&lt;h3 id=&quot;youtube-player&quot;&gt;YouTube Player&lt;/h3&gt;

&lt;p&gt;API문서에 의하면 플레이어 관련 API로  &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Android&lt;/code&gt;, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;IFrame&lt;/code&gt;, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Javascript&lt;/code&gt;, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Flash API&lt;/code&gt;를 제공한다. 안드로이드 웹뷰와 내장 브라우저로 서비스해야하는 나로서는 Javascript, Flash, 크롬리스 플레이어로는 사용자가 환경 내에서 별도의 설정을 해야만 했다. 줄곧 크롬에서만 개발해 오던 나는 (복병이야 매 단계마다 있긴 했지만) player에서 새로운 복병을 만났다.
  일단 최근 버전이 아닌 안드로이드 웹뷰에서 유튜브 동영상이 재생 되지 않았다. 그냥 까만 화면만 나올 뿐 아무리 동영상을 클릭해도 재생되지 않았다. PC용 크롬에서 주로 개발해 오던 나는 유튜브 동영상 쯤이야 링크만 던져주면 알아서 플레이 되겠지라고 생각했었는데 오산이었다. 이건 웹뷰에서 일부 수정해서 고쳐지긴 했는데 낮은 안드로이드 버전에서는 플레이가 되지 않고 있다.(정말 산넘어 산이다.)&lt;/p&gt;

&lt;h2 id=&quot;참고서적&quot;&gt;참고서적&lt;/h2&gt;

&lt;h3 id=&quot;two-scoop-of-django&quot;&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Two Scoop of Django&lt;/code&gt;&lt;/h3&gt;

&lt;p&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;django-packages&lt;/code&gt; 사이트를 개발한 ‘Daniel Greenfeld’와 그의 연인‘Audrey Roy’가 쓴 책이다. 보통 프로그래밍 언어 책에는 예제를 따라해 가며 그 언어에 익숙해 지는 방법이라든지와 같은 실제 코딩기법들이 주로 나열되어 있는 책들이 많지만 이 책은 코딩컨벤션, 프로젝트레이아웃, 템플릿태그의 사용, 유용한 3rd party 라이브러리들, 서버에 디플로이 하는 법 등에 대한 조언이 주로 담겨져 있다. 이 저자와 같은사람들을 보통 &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;선삽자&lt;/code&gt;라 부르던데 선삽자로서 장고를 개발하며 겪을 수 있는 어려운 점을 옆에서 조언하듯이 써주었다. 그리고 이 책 덕분에 PEP8도 지키려 노력했다.  유일하게 이 책의 참고 소스를 깃허브에 올려 놓은 것이 이 프로젝트 레이아웃인데 이와 가깝게 쓰려고 노력은 하겠지만 설정파일을 어디에 두어야 할지에 대한 고민 등은 아직까지도 가장 어려운 일이다(아마도 프로젝트 특성에 따라 써야겠지만). 내가 구입한 책은 django 1.5 버전을 기준으로 쓰여졌지만 현재 1.6버전으로 업데이트 출판되어 있다.&lt;/p&gt;

&lt;h3 id=&quot;쉽고-빠른-웹-개발-django&quot;&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;쉽고 빠른 웹 개발 Django&lt;/code&gt;&lt;/h3&gt;

&lt;p&gt;인사이트 출판사에서 2012년에 출판 된 책이며 장고를 다룬 다른 책도 있긴 하지만 그건 장고를 주로 다룬 책이 아니라서  현재까지 장고만을 다룬 유일한 국내서로 알고 있다. 이미 절판 되었지만 인사이트의 전자책 판매사이트를 통해 구매할 수가 있다. 하지만 절판된 책이라 업데이트 되지 못 하고 장고 1.0버전으로 쓰여졌다는 것과 PDF버전으로만 볼 수 있다는 게 아쉽지만 Django에 대한 감을 잡기엔 좋다. 이 책의 말미에는 Google App Engine으로 서비스하는 팁도 나와 있지만 비교적 오래 된 내용이라 지금 실정과는 시간의 벽이 있지 않을까 싶다.&lt;/p&gt;

&lt;h2 id=&quot;버전관리----git-bitbucket&quot;&gt;버전관리 -  &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;git&lt;/code&gt;, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;bitbucket&lt;/code&gt;&lt;/h2&gt;

&lt;p&gt;과거엔 버전관리 없이 코딩을 한적도 있었지만 이제는 무엇을 만들든지 버전관리 없이 코딩을 한다는 건 상상할 수도 없는 일이다. 따로 버전관리서버를 운용하긴 부담스럽지만 무료로 사용이 가능한 bitbucket을 이용해서 버전관리했고 tool은 &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;소스트리&lt;/code&gt;를 사용했다. 원래 업무용으로는 주로 svn을 사용해 왔지만 이젠 git만을 사용하고 있고 소규모로 사용해서 그런지 부족함 없이 잘 사용하고 있다. 오히려 좋은 기능들이 많을텐데 모르고 지나가는 게 훨씬 많긴 하지만, 이젠 빼놓을 수 없는 너무나도 훌륭한 개발도구이다.&lt;/p&gt;

&lt;h2 id=&quot;광고&quot;&gt;광고&lt;/h2&gt;

&lt;p&gt;애드몹, 카울리, 아담 등을 알아보다가 결국은 PC와 모바일을 함께 사용할 수 있는 애드센스로 정했다. 이번 서비스를 개발하며 개인용 계정이 아니라 개인스튜디오용 계정을 새로 팠는데 애드센스를 기존에 사용하던 개인 계정에 먼저 연결해 두었더니 다른 계정에서는 등록이 되지 않아 기존계정에서 초대하는 방법으로 사용하게 되었다. 구글어날리틱스와 연동도 시켜놨다. 모니터링은 메일링 등록을 해두고 잔소리를 계속 보내주도록 설정해 놓았다.&lt;/p&gt;

&lt;h2 id=&quot;개밥먹기&quot;&gt;개밥먹기&lt;/h2&gt;

&lt;p&gt;아이에게 YouTube에 있는 동영상들을 찾아 보여주면서 처음엔 즐겨찾기를 등록해서 보여줬고 시간이 지날 수록 아이가 좋아하는 동요의 리스트는 늘어갔고 무료로 볼 수 있는 이런 좋은 컨텐츠들을 주변 아기 엄마들에게도 추천해 줬는데 이걸 모아놓고 더 많은 아기 엄마들과 공유한다면 좋겠다는 생각이 들었다. hooplakidz나 baby Einstein 같은 너무나도 유명한 동영상 업로더들도 많지만 나는 엄청나게 많은 동영상을 본 엄마라 다른 엄마들에게 알려지지 않은 좋은 동영상들을 공유하고 싶었다. 그리고 django를 취미 삼아 쓰면서 개밥먹기 하기 너무 좋은 음식이라는 생각이 들었다. 아직도 코드화 되지 못하고 머릿속에만 남아있는 생각들을 개밥먹기 하면서 조금씩 요리해 볼 계획이다. (참고로 난 요리를 잘 못하는 데 내가 한 요리는 정말 잘 먹는다. 사실 좋아하지 않는 음식이 없다고 해야 더 솔직하겠지만)&lt;/p&gt;

&lt;h2 id=&quot;라임키즈&quot;&gt;&lt;a href=&quot;http://rhymekids.com/&quot;&gt;라임키즈&lt;/a&gt;&lt;/h2&gt;

&lt;p&gt;이렇게 첫 삽으로 만든 앱이 &lt;a href=&quot;http://rhymekids.com/&quot;&gt;라임키즈&lt;/a&gt;다. 앞으로 다른 유아용 앱을 만들려고 계획 중이고 지금 출시해 놓은 &lt;a href=&quot;http://rhymekids.com/&quot;&gt;라임키즈&lt;/a&gt;도 조금씩 매일 업데이트 하고 있다. 영어동요 주제별로 예를 들면 파닉스, 컬러, 도형, 수학, 계절 등 널서리라임과 마더구스의 내용은 무궁무진하다. 그리고 우리집 꼬마들과 자주 보는 영어책들(예를 들면 노부영 같은)과 같은 동영상들을 어떻게 모아서 보여줄지가 고민이다. 지금 수집해 놓은 동영상들이 6천곡이 넘다보니 이미 컨텐츠는 넘치는데 이걸 어떻게 보여줘야지 아이들이 좋아할지 계속 고민하고 있다.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://play.google.com/store/apps/details?id=com.rhymekids&quot;&gt;&lt;img src=&quot;http://corazzon.github.io/images/2014/08/rhymekids_banner_400x140.png&quot; /&gt;
&lt;/a&gt;&lt;/p&gt;
</description>
                <link>http://corazzon.github.io/my-first-django-app</link>
                <guid>http://corazzon.github.io/my-first-django-app</guid>
                <pubDate>2014-08-14T00:00:00+00:00</pubDate>
        </item>

        <item>
                <title>지킬로 블로그 시작하기</title>
                <description>
&lt;h1 id=&quot;jekyll-지킬&quot;&gt;Jekyll 지킬&lt;/h1&gt;

&lt;h3 id=&quot;jekyll-시작하기&quot;&gt;Jekyll 시작하기&lt;/h3&gt;
&lt;p&gt;어디선가 Jekyll은 워드프레스보다 훨씬 설치가 간단 하다고 하는데 그 말 그대로 github에 저장소를 만들고 터미널에서 몇 줄이면 바로 블로그가 생성 되었다. (보통 10여분 정도 걸리기도 한다고 하지만 대부분 바로 생성 되었다.)&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;$ jekyll new 저장소명  
$ cd 저장소명
$ git init
$ git remote add origin 저장소경로
$ git add .
$ git commit -m &apos;Initial commit&apos;
$ git push origin master (프로젝트 페이지의 경우 부모가 없는 gh-pages브랜치를 만들어 push)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;이 간단한 과정이면 블로그가 생성 되고 별도의 DB설정 없이 마크다운 문서를 바로 포스트할 수 있다. DB가 없는 게 조금 어색하기도 했지만 어짜피 로컬에서 쓰는 글도 대부분 마크다운 문서로 저장하고 있었기 때문에 오히려 관리는 더 편할거 같다는 생각이 들었다. (아직 많이 사용해 보진 않았지만) 블로그로 통계낼 것도 아니고 간단한 통계기능은 &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;구글어날리틱스&lt;/code&gt;를 사용하면 되니 DB가 없더라도 불편할 일은 그닥 없을 거 같았다. 전문적인 블로그를 운영할 것도 아니고 개인적인 기록차원에서 사용할 것 이라면 더욱 더 말이다.&lt;/p&gt;

&lt;p&gt;그리고 무엇보다도 호스팅에 신경쓰지 않아도 된다는 게 마음에 들었다. 그간 가상호스팅을 몇 년 간 사용하긴 했지만 사용 빈도도 적고 개인적인 학습 목적에서 사용하는 용도로는 아마존 EC2를 더 자주 사용했기 때문에 굳이 호스팅 비용을 들여가며 가상서버를 유지할 의지가 점점 줄어들어가고 있다.&lt;/p&gt;

&lt;p&gt;지킬은 블로그가 아니라 파싱엔진이라고도 하지만 편하고 서버 유지 및 관리에 대한 부담 없이 사용하기 좋아서 쓰기로 마음 먹었다. 그리고 &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;루비&lt;/code&gt;로 만들어졌다는 점도 마음에 들었다. 루비를 사용해 본적은 없지만 루비로 만들어진 &lt;a href=&quot;http://www.redmine.org/&quot;&gt;레드마인(Redmine)&lt;/a&gt;은 충분히 매력적이었기 때문에 루비에 대한 간이라도 보고 싶어졌다.&lt;/p&gt;

&lt;h3 id=&quot;지킬-테마-고르기&quot;&gt;지킬 테마 고르기&lt;/h3&gt;
&lt;p&gt;일단 지킬을 설치하고 나니 테마를 직접 만들 의지와 여유가 없어서 사용할만한 테마를 골라야 했다. 워드프레스 처럼 다양하진 않지만 사용 해볼만한 테마가 몇가지 있긴 했지만 태그, 카테고리 등의 기능을 사용하기 위해선 별도의 플러그인을 필요로 해서 &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;지킬부트스트랩&lt;/code&gt;(&lt;a href=&quot;http://jekyllbootstrap.com/&quot;&gt;JekyllBootstrap&lt;/a&gt;)을 사용하기로 마음 먹었다.
지킬부트스트랩엔 내가 최소로 원하는 기능인 카테고리, 태그, 아카이브, 덧글, 부트스트랩 테마 를 모두 포함하고 있어서 고민 없이 바로 클론 받아 로컬에서 이것저것 살펴봤다.&lt;/p&gt;

&lt;h4 id=&quot;jekyll-theme-후보였던-것들&quot;&gt;Jekyll theme 후보였던 것들&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;http://lanyon.getpoole.com/&quot;&gt;Lanyon · A Jekyll theme&lt;/a&gt; - bootstrap을 개발한 &lt;a href=&quot;https://twitter.com/mdo&quot;&gt;@mdo&lt;/a&gt; 가 만든 테마로 페이스북 스타일의 햄버거? 아이콘이 있는 메뉴를 지원한다.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://mmistakes.github.io/hpstr-jekyll-theme/&quot;&gt;HPSTR Theme&lt;/a&gt; - 포스트별로 배경이미지를 바꿀 수 있다.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;쓸데없는-시행착오--gh-pages-branch&quot;&gt;쓸데없는 시행착오 : gh-pages branch&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://help.github.com/articles/creating-project-pages-manually&quot;&gt;Creating Project Pages manually · GitHub Help&lt;/a&gt; 에 나와 있는 것처럼 부모가 없는 &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;gh-pages&lt;/code&gt; branch에서 동작한다 하여 해당 브랜치를 만들었지만 마스터 브랜치에 반영이 되지 않으면 &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;username.github.io&lt;/code&gt; 페이지에서 볼 수가 없었다.
 그래서 기본 branch를 master에서 gh-pages로 변경 했지만 역시나 보여지지 않았다.&lt;/p&gt;

&lt;p&gt;하지만 &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;username.github.com&lt;/code&gt; root 저장소에 지킬을 설치할 경우 gh-pages 브랜치를 사용하지 않는 다는 걸 뒤늦게 알았다. 이미 &lt;a href=&quot;https://help.github.com/articles/user-organization-and-project-pages&quot;&gt;User, Organization and Project Pages · GitHub Help&lt;/a&gt;에서 읽었지만 프로젝트 페이지 도움말에서 이 내용이 내 머릿속에 덮어쓰기 되어버린 것이다. 프로젝트로 생성할 경우에만 gh-pages를 통해 디플로이 하면 된다고 나와 있는 걸 모든 github 페이지는 gh-pages에서 돌아간다고 생각한 게 잘못이었다. 제목에도 프로젝트 페이지라 나와 있건만 왜 삽질을 한 건지, 허무하게도 &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;username.github.com&lt;/code&gt;의 master branch에서 지킬은 너무나도 잘 돌아갔다. 하지만 여러번의 삭제 재설치로 인해 github에 좀 더 익숙해 졌으니 그걸로 위안을 삼아야지,&lt;/p&gt;

&lt;h3 id=&quot;jekyll-seo&quot;&gt;Jekyll SEO&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;http://bretthard.in/2012/06/jekyll-and-seo-optimization/&quot;&gt;Constantly Learning: Jekyll and SEO Optimization&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;참고한-jekyll-사용기&quot;&gt;참고한 Jekyll 사용기&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;http://svperstarz.github.io/jekyll-docs-ko/&quot;&gt;Jekyll 한국어 번역 사이트 • Simple, blog-aware, static sites&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://spoqa.github.io/2011/12/17/about-spoqa-blog-creation.html&quot;&gt;Spoqa Tech Blog- Spoqa 블로그 탄생 비화&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://devblog.croquis.com/ko/2012/05/22/1-jekyll-blog.html&quot;&gt;Jekyll을 이용해서 블로그 만들기 (1)&lt;/a&gt; : jekyllbootstrap을 사용한 블로그 사용 후기&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://dogfeet.github.io/articles/2012/github-pages.html&quot;&gt;#dogfeet - GitHub의 페이지 기능 이용하기&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://ohyecloudy.com/ddiary/2013/09/21/hello-jekyll/&quot;&gt;hello jekyll! jekyll-bootstrap 이용한 블로그&lt;/a&gt; : pending branch에서 글을 쓰고 gh-pages 브랜치로 글을 발행 한다고 함&lt;/li&gt;
  &lt;li&gt;
    &lt;table&gt;
      &lt;tbody&gt;
        &lt;tr&gt;
          &lt;td&gt;jekyll bootstrap : [The Quickest Way to Blog on GitHub Pages.&lt;/td&gt;
          &lt;td&gt;ruhoh universal static blog generator](http://jekyllbootstrap.com/)&lt;/td&gt;
        &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://nolboo.github.io/blog/2013/10/15/free-blog-with-github-jekyll/&quot;&gt;지킬로 깃허브에 무료 블로그 만들기 - Nolboo’s Blog&lt;/a&gt; : 지킬 설치 과정이 엄청 자세하다.&lt;/li&gt;
&lt;/ul&gt;

</description>
                <link>http://corazzon.github.io/jekyll-blog-quick-start</link>
                <guid>http://corazzon.github.io/jekyll-blog-quick-start</guid>
                <pubDate>2014-02-26T00:00:00+00:00</pubDate>
        </item>

        <item>
                <title>코드카데미로 파이썬 배우기</title>
                <description>
&lt;h2 id=&quot;codecademy-python수업-후기&quot;&gt;Codecademy python수업 후기&lt;/h2&gt;

&lt;p&gt;지난 몇달 간 &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;python&lt;/code&gt;도 제대로 모르면서 취미로 무작정 &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;django&lt;/code&gt;로 웹어플리케이션을 만들면서 모르는 건 그때 그때 구글링을 통해 해결하곤 했었는데 python을 제대로 알지 못 하고 django를 다루다 보니 장님 코끼리 만지는 기분으로 python 기초에 대한 부족함을 늘 느끼고 있었다.&lt;/p&gt;

&lt;p&gt;보통 새로운 언어를 익힐 때 환경을 설정하는 일이 까다롭고 힘들 때가 많아서 시작도 전에 환경설정에서 지치는 일이 다반사였다. 하지만 &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;codecademy&lt;/code&gt;는 이미 구축되어 있는 가상환경 안에서 직접 타이핑해보며 튜토리얼을 따라해 볼 수 있어서 초기 학습에 드는 비용을 줄일 수 있는 점이 좋았다. 크롬 확장 중에 파이썬을 직접 타이핑해보며 결과를 볼 수 있는 좋은 도구도 있긴하고 초기 비용을 들여서 제대로 공부하는 게 더 좋긴 하겠지만, 진입장벽을 낮춰주어 처음부터 지치는 일이 없어서 좋았다. - 얼마 전에 mavericks로 OS를 업데이트하고 여러 버전의 python 사용으로 virtualenv가 제대로 작동하지 않은 적이 있었는데 그 문제 해결을 위해 이틀 동안 아무것도 못하고 이 문제에만 매달려 있어야 했던 기억을 떠올려 보면(아…지금 생각해도…) 정말 훌륭한 튜터이자 도구인 셈이다.&lt;/p&gt;

&lt;p&gt;책 혹은 인터넷에 있는 여러 강좌들을 에디팅툴과 오가며 타이핑해가며 학습하는 것보다 각 챕터별 주제에 맞는 예제와 코드 그리고 그 결과를 즉각적으로 보여줘서 게임을 진행하는 것처럼 운영되는 진행 방식도 다음 문제는 어떤게 나올지 궁금해 지도록 흥미를 유발하기에 충분했다.&lt;/p&gt;

&lt;p&gt;또, 여행을 떠나 본다거나 선생님이 되어 학생의 점수를 채점해 보게 한다거나 간단한 배틀쉽게임을 만들어 보게 하는 등의 스토리 텔링을 통해 단순한 내용도 재미있게 전달되었다.&lt;/p&gt;

&lt;p&gt;보통 프로그래밍언어를 익힐 때 아무리 좋은 책이나 온라인 상의 강좌를 보더라도 직접 타이핑하고 손가락에 익히지 않으면 체득하기가 어려운 편인데(백문이 불여일타) 이런 어려움을 극복할 수 있도록 환경설정이 잘 되어 있고 튜토리얼의 구성도 짜임새 있는 편이다.
그리고 해결되지 않는 문제가 있을 때는 화면 왼편 하단의 &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Q&amp;amp;A Forum&lt;/code&gt;을 이용하면 다른 학습자들의 도움을 받을 수도 있고 이미 다른 누군가가 올려놓은 질문에 대한 답으로 문제를 해결한 적도 많았다. 또, 나와는 다른 솔루션으로 해결하는 게 재미있기도 하고 왜 나는 저렇게 단순하고 간결하게 해결하지 못했을까 하는 생각과 함께 내 두뇌를 원망하기도 했다.&lt;/p&gt;

&lt;p&gt;개발서적을 보면서 프로그래밍을 공부할 때는 책 한권을 다 읽어도 의식하고 읽지 않으면 나중에 다시 책을 봤을 때 내가 이 내용을 읽었었나?하는 의문이 들며 너무나 새로운 내용인듯 할 때가 대부분이 었는데 매 단계마다 실습을 하거나 코드를 고치지 않았더라도 서브밋버튼을 눌러야만 다음 단계로 넘어가는 행동을 유도하는 게 책을 읽어 학습을 하는 것보다 훨씬 기억에 잘 남았다.&lt;/p&gt;

&lt;p&gt;너무 장점만 나열한거 같고 코드카데미빠스러운 글이된듯 하지만 몇몇 단순한 버그 외엔 프로그래밍을 시작하기에 정말 좋은 도구임에 틀림없다는 생각이 든다. 가끔 맞는 코드를 입력했는데도 오류를 내기도 하는데 그럴 땐 새로고침 버튼을 누르거나 다른 페이지로 이동했다가 다시 들어오면 해결이 되기도 한다고 Q&amp;amp;A포럼에 나와 있는데 그런 문제들이 종종 있긴 하다. 그리고 진행률이 계속 따라다니는데 이 숫자 때문에 더 학습하게 되는 거 같기도 하다.&lt;/p&gt;

&lt;p&gt;굳이 단점을 꼽아보자면 기본적인 내용만을 알려주기 때문에 이 수업만으로는 부족한 점이 좀 있긴하다. 하지만 앞서 이야기 했듯이 프로그래밍을 모르는 사람이 프로그래밍을 시작하기에 진입장벽을 낮춰주는 역할은 정말 훌륭하다고 느껴진다. 우리나라의 생활코딩과 병행한다면 장소와 장비의 구애를 받지않고 누구든 프로그래밍을 시작할 수 있을거 같다.(물론 데스크탑이나 노트북은 있어야겠지만) 그리고 누구나 코드카데미에 강좌를 개설할 수 있다고 하는데 아직 이건 자세히 살펴보지 않아서 잘 모르겠지만, 만약 그렇다면 수업이 점점 더 많아지고 좀 더 복잡한 내용들도 코드카데미를 통해 수업받을 수 있게 되지 않을까 싶다.&lt;/p&gt;

&lt;p&gt;우리집 꼬마가 가끔 모니터를 빤히 들여다 보고 있는 나를 보고 “엄마 뭐하는거에요?” 하고 물어본 적이 있는데 “응~ 프로그램 짜는거야” 했더니 “우유를 짜야지 왜 프로그램을 짜 하하하”하며 엄청 웃길래 나도 덩달아 엄청 웃었던 기억이 난다. 지금은 프로그래밍을 가르치기엔 너무 어린듯 하긴 하지만 몇몇 수학적 개념을 제외 한다면 어린이에게도 이 내용으로 프로그래밍을 가르쳐 줄 수 있지 않을까 하는 생각과 함께 내 아이에게도 이 수업을 알려주고 싶다는 생각이 든다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/2014/02/codecademy_python/codecademy_python-01.png&quot; /&gt;
✐  어디까지 왔는지, 앞으로 학습할 내용을 한 눈에 볼 수 있다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/2014/02/codecademy_python/codecademy_python-02.png&quot; /&gt;
✐  진행 상태와 내가 획득한 뱃지들&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/2014/02/codecademy_python/codecademy_python-03.png&quot; /&gt;
✐ 각 챕터에서 어디까지 왔는지 - 이전 수업으로 돌아가기도 가능하다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/2014/02/codecademy_python/codecademy_python-04.png&quot; /&gt;
✐ 수업 중간에 뱃지를 획득하곤 하는데 이게 은근히 동기부여가 된다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/2014/02/codecademy_python/codecademy_python-05.png&quot; /&gt;
✐&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;화면 왼쪽에는 학습내용, 그리고 실습해야 할 내용, 힌트보기 등이 있다.&lt;/li&gt;
  &lt;li&gt;터미널에서 코드를 치고 그 결과를 바로 확인해 볼 수 있다.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;img src=&quot;/images/2014/02/codecademy_python/codecademy_python-06.png&quot; /&gt;
&lt;img src=&quot;/images/2014/02/codecademy_python/codecademy_python-07.png&quot; /&gt;
&lt;img src=&quot;/images/2014/02/codecademy_python/codecademy_python-08.png&quot; /&gt;
&lt;img src=&quot;/images/2014/02/codecademy_python/codecademy_python-09.png&quot; /&gt;
&lt;img src=&quot;/images/2014/02/codecademy_python/codecademy_python-11.png&quot; /&gt;
&lt;img src=&quot;/images/2014/02/codecademy_python/codecademy_python-10.png&quot; /&gt;
&lt;img src=&quot;/images/2014/02/codecademy_python/codecademy_python-12.png&quot; /&gt;
✐ 조금씩 쉬엄쉬엄 해볼까 했는데 이 때부터 만사 제치고 여기만 매달려 있었다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/2014/02/codecademy_python/codecademy_python-14.png&quot; /&gt;
✐ 저 진행률 때문에 계속 새로고침해 보게 된다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/2014/02/codecademy_python/codecademy_python-15.png&quot; /&gt;
✐ 드디어 끝, 찾아보면 resume 버튼도 있어서 강좌를 다시 시작해서 해볼 수도 있다.&lt;/p&gt;
</description>
                <link>http://corazzon.github.io/learning-python-with-codecademy</link>
                <guid>http://corazzon.github.io/learning-python-with-codecademy</guid>
                <pubDate>2014-02-14T00:00:00+00:00</pubDate>
        </item>


</channel>
</rss>
