R을 이용한 퀀트 투자 포트폴리오 만들기 - 데이터 크롤링 및 분석, 퀀트 전략을 활용한 투자 종목 선정까지, 개정판
이현열 지음 / 제이펍 / 2021년 2월
평점 :
장바구니담기


퀀트 포트폴리오 전략의 기초에서 백테스트에 이르기까지 데이터 사이언스가 금융 도메인 지식을 만났을 때 필요로하는 핵심 지식들을 깔끔하고 이해하기 쉽게 정리한 책이다.

구현 과정은 R 언어를 활용하는데 요소요소 R의 강점을 잘 표현하고 있어 R을 제대로 쓰기에도 좋은 지침서라는 생각이 든다. 크롤링 과정으로 R의 Tidyverse 철학을 느껴볼 수 있고, 8장의 dplyr 데이터 분석 패턴이라는 징검다리를 건너, 각종 논문에 등장하는 수식을 통계 패키지를 활용해 한두줄의 코드로 깔끔하게 분석하는 과정을 통해 R을 어떻게 사용해야 하는지 거침없이 표현하고 있다.

책을 읽으며 느꼈던 장점과 단점을 중심으로 리뷰를 시작해보겠다.


  • 책의 백미, 퀀트의 기초
    본 도서의 백미는 9 ~ 13장에 이르는 퀀트의 기초 내용을 간결하고 쉽게 정리한 점이다. 퀀트를 제대로 이해하려면 금융 공학에 대한 기본 지식, 논문 등의 연구 자료, 수식 및 도출 과정들이 모두 포함되어야 할 텐데 이들을 모두 포함하면 너무 난잡해지거나 분량 측면에서 감당하기 어려운 책이 되었을 것이다.

    위 필수 내용들이 하나도 빠지지 않으면서도 설명은 전체 맥락을 이해하는데 필수적인 부분만 다루고 수식 또한 논문 수준의 수식보다는 직관적으로 일반인들이 이해하기 쉬운 형태의 전개로 표현하는 등 짧은 지면에 핵심을 잘 간추리는 저자의 전달력에 놀랐다. 마치 논문과 구현의 경계에서 가장 쉬운 지름길을 찾아가는 과정 같았다.

    증권사에서 핀테크 스타트업에 이르기까지 풍부한 실전 경험을 바탕으로 패스트캠퍼스에서 R과 퀀트 투자 강의를 맡으며 퀀트 투자의 대중화를 위해 노력한다는 저자의 소개가 무색하지 않게 실력이 뛰어난 고수가 전달력까지 좋으면 이런 멋진 책이 탄생하는 구나 라는 생각이 들었다.

    그동안 퀀트 관련 여러 책들을 읽어봤고 논문들도 찾아봤는데 블랙-숄즈 방정식과 같이 이미 고전이 되어버린 방정식을 구현해본다던가, 기초를 건너뛰고 최근 주류인 딥러닝의 CNN, GAN 같은 기술을 접목할 때마다 기본 실력이 부족해서 답답했던 기억이 있다.

    반면 본 도서에서는 포트폴리오 운용 전략에 해당하는 종목 선정, 포트폴리오 구성, 백테스트 및 평가에 이르는 일련의 기초 과정의 핵심이 잘 정리되어 있어 그동안 내가 어떤 기초가 부족했던 것인지 일종의 미싱 링크를 찾은 느낌이었다.


본 서에서 다루는 퀀트의 기초 내용을 간단히 소개하면 다음과 같다.

  • 종목선정
    • 팩터(Factor) : 수익률에 영향을 미치는 요소
    • 베타(Beta) : 개별 주식이 전체 주식시장 변동에 반응하는 정도
    • 저변동성 효과 : 변동성이 낮은 종목들의 수익률이 높은 효과
    • 모멘텀 : 추세. 상승 추세는 지속적으로 상승하고, 하락 추세는 지속적으로 하락하는 관점
    • 밸류 : 기업의 가치. PER, PBR, PCR, PSR 등
    • 퀄리티 : 기업의 우량성. F-ScoreFSCORE_211
    • 섹터 중립 포트폴리오 : 모멘텀 등 팩터들이 특정 섹터의 호황기에 동일 섹터의 모든 종목이 함께 움직이는 경향인 쏠림 현상을 제거한 포트폴리오 구성 방법
    • 조엘 그린블라트 마법의 공식 구현
    • 멀티팩터 포트폴리오 : 위에서 배운 모든 팩터들과 이론들을 결합하여 지표를 설정해보는 과정으로 복습에도 도움이 되고 데이터 사이언스가 금융이라는 도메인을 만났을 때 어떤 작업이 이루어지는지 기본 흐름을 맛볼 수 있었다.
  • 포트폴리오 구성
    • 최소분산 포트폴리오 : 변동성이 최소인 포트폴리오로 고정된 분산-공분산 행렬에 대한 변동성이 최소가 되는 가중치 w를 찾는 최적화 문제최소분산_266
    • 최대분산효과 포트폴리오 : 상관관계가 낮아질수록 포트폴리오의 변동성이 낮아진다는 효과를 이용하여 분산효과를 최대로 하는 포트폴리오 구성 방법최대분산_267
      최대분산_277
    • 위험균형 포트폴리오 : 특정 자산의 비중을 증가시켰을 때 전체 포트폴리오의 위험성 증가 여부를 확인하여 위험 기여도를 산정. 편미분 개념.
    • 인덱스 및 인핸스트 인덱스 포트폴리오 : 액티브, 패시브 전략별 포트폴리오
  • 포트폴리오 백테스트
    • 현재 전략을 과거부터 실행 시 어떤 성과가 발생하는지 테스트해보는 과정
    • 60대 40 포트폴리오 백테스트 : 주식과 채권에 각각 60%, 40% 투자를 가정
    • 시점 선택 전략 백테스트 : 메브 파버의 논문을 활용한 전략으로 과거 10개월 이평선을 활용
    • 동적 자산배분 백테스트 : 지금까지 배운 모든 것들을 응용해보는 과정인데 이 파트가 없었으면 반쪽자리 백테스트가 되었을 것이다. 이 책이 가치있다고 생각한 부분 중 하나이며 앞서 배웠던 것들을 유기적으로 연결해볼 수 있다.동적자산_321
  • 성과 및 위험 평가
    • 백테스트로 구한 수익률의 성과 및 위험성을 평가하는 과정.
    • QMJ 팩터 : 우량성이 높은 종목들을 매수하고, 낮은 종목들을 공매도 하는 전략을 지수 형태로 표기

  • R의 강력함을 잘 표현하는 책(R vs Python)
    이 책의 또 다른 장점 중 하나는 R을 제대로 쓰면 얼마나 강력한지 무기가 될 수 있는지 보여준다는 점에 있다. 개인적으로 프로그래머이기에 Python을 더 많이 활용하고는 있지만 몇가지 특수한 상황은 R과 영원히 작별할 수 없게 만들곤 한다.

    첫째, dplyr 패키지를 활용한 일련의 데이터 분석 과정은 Python의 Pandas를 활용할 때보다 고정된 패턴이 있어 조금 더 직관적이고 생산적이다.

    Python의 최대 장점은 유연성에 있다고 생각한다. 데이터가 어떻게 생겨먹고 분석 기법이 무엇이든 뭐든지 표현하고 가공할 수 있다. 반면 그 유연성이 때로는 독이 되어 능숙하지 않은 기법을 찾아 쓸 때는 많은 시행착오를 거쳐야 하고 그 만큼 시간이 낭비되어 생산성을 저해하곤 한다.

    반면 R은 유연성이 다소 떨어질진 몰라도 join, glimpse, rename, mutate, filter, summarize, arrange, group by 등으로 이어지는 dplyr의 마법의 분석 패턴을 하나 잘 익혀 놓으면 Tabular 형식의 데이터 80%는 이 패턴 하나로 몇분 만에 깔끔하고 직관적으로 분석할 수 있다. 이 책에서는 8장의 절반만 할애해서 R의 핵심 기능을 너무 잘 표현하고 있다.

    프로그래밍에도 좋은 패턴과 예제 하나를 잘 익혀두면 나머지는 시간과 경험의 문제에 지나지 않는다. 비슷한 예로 웹프로그래밍을 처음 배울 때 게시판 예제 하나만 잘 짜도 대부분의 웹 프로그래밍 80%는 익히는 셈이라 할 수 있다. 나머지 디테일한 부분은 그저 시간과 경험의 싸움일 뿐이다.

    시중에 나온 R 서적이 상당히 많은데 내용은 충분하지만 기능별로 모두 파편화되어 돌아서면 잊어먹기 딱 좋은 구성이다. 하지만 이 책은 달랐다. 8장에서 펼쳐지는 데이터 분석의 기본 패턴을 잘 익혀놓으면 명확한 개념의 큰 물줄기를 얻을 수 있다. 더불어 주식 종목정보 분석이라는 흥미로운 유인책은 나름의 학습 동기를 부여해주기에 분석의 과정을 더욱 이해하기 쉬워지며 dplyr가 가지는 R의 매력을 여실히 보여준다.

    둘째, Tidyverse로 대표되는 R의 철학은 상당히 매력적인데 이 책이 그 장점을 잘 활용하고 있다. 예를 들면 JavaScript에는 Callback 지옥이 한 때 유명했는데 쉽게 말하자면 괄호의 지옥이다.

    A(B(C()))와 같이 일련의 함수 호출 과정속에 인자 혹은 옵션 몇가지만 추가되면 괄호속에 파묻혀 직관적으로 한 눈에 잘 들어오지 않는다. 이를 해결하기 위해 Promise나 async, wait 등의 기법이 나왔는데 Tidyverse에서는 이를 해결하지 위해 파이프 오퍼레이터(%>%)를 활용하여 논리적인 기능의 흐름의 경계선을 명확히 구분하여 직관적인 이해를 돕는다.

    셋째, 통계에 특화된 R의 기능이다. 9장의 예제에서도 나오지만 베타(개별 주식이 전체 주식 시장의 변동에 반응하는 정도)를 구하는데 필요한 R의 코드는 고작 한 줄이다. ‘'’R lm(ri ~ rm) ‘’’ 긴 통계학의 역사적인 아이디어를 포뮬러를 활용해 한 줄의 명령어로 쉽게 파악할 수 있다는 점은 R에서 쉽게 손을 뗄 수 없는 매력 중 하나이다.

    그 외에도 ggplot2가 Python 진영의 시각화 라이브러리에 비해 월등한 점, bookdown 패키지 등 산출물과의 연계 기능이 뛰어난 점, 유연성을 포기하고 일정 패턴을 가짐으로써 초보자의 진입 장벽이 낮다는 점 등이 부수적인 장점이라고 생각한다.

    물론 그렇다고 Python이 가진 범용 프로그래밍 언어 고유의 장점을 상쇄할 순 없다. 예를 들어 주식 데이터의 캔들 그림을 인풋 데이터로 활용하여 CNN으로 예측 분석 모델을 구현한다거나, RNN을 활용하여 주가 방향성을 분류, 오토인코더를 활용하여 주가 데이터를 생성하는 등의 딥러닝 위주 프로그래밍은 Python이 훨씬 편리하며 End-to-End의 구현, Serving과 배포 측면에서도 R이 Python을 따라가기엔 부족한 느낌이 든다.

    이런 이유들로 인해 조금 귀찮을지라도 Python과 R 두마리 토끼를 쫓게 되었는데 이 중 R의 장점을 이 책에서 잘 표현하고 있기에 R을 유기적으로 이해하고 빠르게 활용하고 싶은 독자에게 많은 도움이 될 수 있는 책이라는 생각이 들었다.


  • 기타(크롤링 등 프로그래밍 언어로써의 R)
    평소 크롤링은 Python 언어를 활용하는 편이라 이 책을 통해 R을 이용해 크롤링 하는 방법을 처음으로 접했는데 문법이 단순하고 코드량도 적어 참 깔끔하다는 생각을 했다. 프로그래머가 아닌 분들에게는 R 크롤링도 좋은 선택이 되겠다는 생각이 들었다.

    그 외 각종 공시정보를 어느 사이트에서 얻을 수 있는지, 제공되는 API에는 어떤 것들이 있고 발급 받는 방법 등이 잘 정리되어 있어 조사하는 시간을 줄일 수 있다는 점도 책의 장점이다.

    책의 전반부(1 ~ 7장)는 주로 크롤링과 데이터 수집, 가공에 대한 내용을 다루고 있는데 과정 중간마다 R의 기본 문법을 잘 정리해주고 있어 R의 다양한 기능 중 필요한 것만 쏙 뽑아먹는 느낌이었다.

    이 책은 어느정도 R 문법을 아는 분들을 대상으로 쓰여진 책이지만 난 오히려 이 책으로 굵직한 맥락을 숙지하고 필요할 때 거꾸로 레퍼런스를 찾아보는 것이 시간대비 학습 능률에 도움이 되겠다는 생각이 든다.

    개인적으로는 후반부(8 ~ 13장)에 관심이 많아 해당 부분 위주의 리뷰를 작성했지만 독자마다 필요로 하는 지식이 다를 수 있으므로 R의 기본 문법과 크롤링 등의 기능에 관심있는 독자라면 전반부(1 ~ 7장)의 내용도 매우 유익할 것 같다.


  • 아쉬운 점
    개인적으로 너무 마음에 들었던 책인지라 칭찬 일색으로 일관했기에 다소 아쉬웠던 점도 정리해 보려한다.

    • 퀀트 트레이딩 전략 및 심화 과정도 자세히 다루는 후속편이 나왔으면 좋겠다. 저자 분의 내공과 전달력이면 이 부분도 왠지 자신감이 생길것 같다. 물론 그러면 또 어렵다고 악평을 하는 독자 분들이 많아지는 것도 알고 있다. 책을 좋아하는 사람으로써, 입문서보다는 중급서에 관심이 많아지게 된 세월 때문에 이해하기 어려우면 비추하는 리뷰 문화에 할 말이 참 많다..

    • 딥러닝과 융합된 R의 모습도 보고 싶은데 이 역시 본 도서에서 다룰 일은 아니고 후속편으로 등장했으면 좋겠다. 적고 보니 후기작에 대한 의견이 되어버린 것 같은데 사실 범위 정도를 제외하고는 본 도서를 흠잡기 어렵다.


수식과 기본을 놓치지 않고도 퀀트의 기초 지식을 쉽게 습득하고 싶은 분들께, R을 R답게 활용하고 싶은 분들께, 데이터 사이언스가 금융 도메인 지식을 만나면 어떻게 활용되는지 알고 싶은 분들께 추천드린다.



댓글(0) 먼댓글(0) 좋아요(0)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo
 
 
 
R을 이용한 퀀트 투자 포트폴리오 만들기 - 데이터 크롤링 및 분석, 퀀트 전략을 활용한 투자 종목 선정까지, 개정판
이현열 지음 / 제이펍 / 2021년 2월
평점 :
장바구니담기


퀀트 포트폴리오 전략의 기초에서 백테스트에 이르기까지 데이터 사이언스가 금융 도메인 지식을 만났을 때 필요로하는 핵심 지식들을 깔끔하고 이해하기 쉽게 정리한 책이다.

댓글(0) 먼댓글(0) 좋아요(0)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo
 
 
 
Do it! 장고 + 부트스트랩 파이썬 웹 개발의 정석 Do it! 시리즈
이성용.김태곤 지음 / 이지스퍼블리싱 / 2021년 1월
평점 :
장바구니담기


본 도서는 Python - Django 기술을 중심으로 최신 트렌드의 기술 스택을 활용하여 웹 개발 프로젝트의 전반을 다루는 책이다.

개인적으로는 데이터 분석에 있어 Python을 주로 다루고 있기에 같은 언어를 활용하여 시너지를 낼 수 있는 웹 프로젝트를 개발하고 싶은 마음에 본 도서를 읽게 되었다.

또 다른 이유로 그동안 웹 개발에 주로 활용해 왔던 Java 기반의 개발에서 잠시 벗어나 데브옵스 환경 및 최신 트렌드를 활용한 개발에 구미가 당기기도 했다. 책을 읽고 난 후 결론부터 얘기하면 소기의 목적에 맞는 스킬들을 이 책에서 얻을 수 있어 기뻤다.

책이 어떻게 구성되어 있고, 어떠한 내용을 다루며, 누구에게 도움이 될지 아래와 같이 장점을 중심으로 리뷰해보겠다.

  • 웹 개발 프로젝트에 필요한 모든 과정을 다룬다.
    이 책이 그저 Django 프레임워크에 대한 설명을 다룬다던가, 아니면 웹 개발을 위한 Python 문법 정도만 다뤘다면 이 책에 높은 점수를 부여하긴 힘들었을 것이다. 그런 책은 시중에 널려있는 데다 인터넷 검색으로 쉽게 정보를 얻을 수 있기 때문이다.

    많은 장점 중에서도 이 책이 가지는 최고의 장점을 꼽으라면 웹 개발의 전과정을 다루는 점을 꼽고 싶다. 웹 개발에 10년 이상 종사한 경험에 비추어 볼 때 주니어에서 시니어로 넘어가는데 겪는 어려움은 대부분 프레임워크, 서버, Echo 환경 간 호환성 측면이나 연결 부분에서 발생한다. Django 프레임워크 활용법이 미숙하거나 Python 문법에 익숙치 않아 겪는 문제보다는 WebServer와 Django의 호환성, DB 연동에서의 이슈, 도커와 Git을 활용한 배포 이슈, TDD와 관련된 의사소통 등에서 주로 어려움을 겪는다. Django나 Python 자체만의 어려움은 요즘 레퍼런스들이 워낙 좋아 인터넷 검색만으로도 쉽게 트러블 슈팅이 가능하다.

    주니어들이 상대적으로 이런 프레임워크 및 서버 간 연동에 어려움을 겪는 이유는 대부분 경험 부족인데 웹 프로젝트 전체를 아우르는 경험이 상대적으로 부족하기 때문이다. 이런 측면에서 볼 때 웹 개발 환경 전반을 모두 다룬다는 것은 전체 프로세스에 대한 역량을 미리 쌓아볼 수 있어 큰 행운이라 할 수 있다. 책이 600p가 넘는 상당한 분량을 갖는 이유 또한 이런 전과정을 모두 다루고 있기 때문이다.

    BootStrap - Git - Pycharm - Test - Docker - Cloud에 이르는 전 과정을 그저 나열식으로 설명하는 것이 아닌 타임라인에 따라 유기적으로 배치한 구성이 일품이다. 저자 특유의 전달력으로 알기 쉽게 전달해주기 때문에 책을 읽고 생기는 궁금증만 스스로 더 능동적으로 학습한다면 최단 시간 내 시니어의 경지에 오를 수 있을것이다.

  • 최신 트렌드를 활용한 기술 스택이 돋보인다.
    • BootStrap
      BootStrap은 프런트 엔드 지식이 풍부하지 않은 사람도 단 시간내에 실력있는 퍼블리셔 혹은 프런트 엔드 개발자의 퍼포먼스를 낼 수 있게 도와주는 프런트 엔드 프레임워크다. 책의 분량이 상당한데 적당한 완급 조절을 위해 그리고 너무 프런트 엔드에 치우치지 않도록 저자의 선택이 돋보였다.

      HTML, JavaScript, CSS 등의 지식은 독자 수준에 따라 각각의 요소마다 한 권의 책을 할당해도 설명이 부족할 수 있는 부분인데 이를 한 큐에 해결하기에는 BootStrap이 제격이다. Django의 특성 상 백엔드에 초점이 맞춰져 기술될 수 밖에 없는 주제의 특성 상 프런트 엔드에 소홀해 질 수 밖에 없는데 직접 눈으로 보고 이해하려는 UI 부분을 한정된 지면 내에 효과적으로 설명하기 위해 BootStrap을 사용한 것은 최신 트렌드에 부합하며 독자들의 집중력 유지에 도움을 준다고 평할 수 있겠다.부트스트랩

    • Docker와 클라우드
      데브옵스의 개념이 널리 퍼진지 오래이지만 그럼에도 아직까지 Docker를 사용하지 않는 회사가 더 많을 것이다. 대부분 사내 데이터 혹은 인프라 센터를 보유하고 있기 때문이다. 이를 거꾸로 생각하면 사내 레거시에 배포하는 것 보다 데브옵스의 개발환경에 익숙치 않은 개발자들이 많다는 의미일 것이기에 상대적으로 보다 최신 트렌드인 데브 옵스 환경을 간접적으로 경험하고 싶은 이들에게 본 도서는 유기적인 프로젝트 수행 능력을 향상시키는데 도움을 준다.

      AWS와 같은 클라우드를 활용할 기회가 없던 독자에게는 클라우드의 기본 맛을 보는데 이만한 경량 예제도 없다는 생각이 든다. 더불어 Docker 기반으로 개발한 프로젝트를 AWS로 이식하는데 얼마나 편리한지 느끼며 현재의 레거시를 데브옵스 환경으로 바꾸기 위한 최소한의 기술을 습득할 수 있을 것이다.AWS

    • Git
      아직도 사내에 Git을 사용하지 않는 회사가 많다. 인력, 예산 등의 문제로 인해 기존 레거시를 업그레이드 하지 못한 회사도 있을 것이고 GitHub 오픈소스 정책과 부합하지 않는 면도 있을텐데 버전 관리에 있어 역시 최신 트렌드를 활용함으로써 SVN 등의 전통적인 형상 관리에서 벗어나 Git을 익히고 싶은 독자에게는 큰 도움이 될 수 있는 부분이다.

      특히 Git은 1개의 챕터에서 모두 설명하고 끝나는 방식이 아닌 처음 블로그 예제를 개발하며 리포지토리를 설정하고 중간 중간 필요시마다 커밋하는 등 실전과 동일한 이벤트마다 활용하고 설명해주고 있기에 보다 빠른 이해와 습득이 가능할 것이다.

    • TDD(테스트 주도 개발)
      물론 테스트 주도 개발은 나온지 꽤 오래된 개념이다. 개인적으로 2005년 Ruby 기반의 TDD 번역서에서 처음으로 접했기에 이미 상당히 오래된 개념인데 실제로 프로젝트를 수행하면서 TDD를 제대로 접목하여 쓴 경험이 별로 없다.

      하지만 Django 기반의 TDD는 적어도 국내에서는 역사가 그리 깊지 않다. Python 자체가 웹 프로그래밍에 있어 주류가 아닌데다 최근 AI, 데이터 주도의 열풍에 힘입어 다시 각광받기 시작했기에 이런 특수한 환경을 고려할 때 Django 기반의 TDD 능력을 향상시키는데 도움이 된다. 더불어 규모가 작은 회사의 인력 문제로 QA부서가 없거나 테스트 환경이 변변찮은 회사에서의 경험만 있는 이에게도 최소한의 커뮤니케이션 능력을 갖추는데 보탬이 될 것이다.

    • Pycharm과 그 외의 것들
      Python에 있어 Pycharm을 뛰어넘는 IDE는 아직 들어본 적이 없다. 개인적으로 PyCharm을 사용하면 할수록 편리하게 느껴지는 매력을 느끼고 있으며, 문명이 발전할수록 시간의 소중함에 대한 인식은 점차 증가하기에 최근에는 알고리즘의 성능만큼이나 개발자 생산성 측면에서의 퍼포먼스도 중요시 되어가고 있다.

      그 외에도 구글 O-Auth를 활용한 소셜 로그인 연동 기능과 HTTPS 인증서를 개인 차원에서 무료로 발급받고 웹서버와 연동하는 방법도 다루고 있다.

  • Django 본연의 목적에 대한 설명도 충실하다.
    Django 프레임워크 본연에 대한 설명도 일품이지만, Java 진영에 Spring이라는 뛰어난 프레임워크만이 가지고 있는 장점이 있듯 Django만이 가진 Python 생태계에서만 활용 가능한 장점이 소개되어 있다.

    MVC 기법과 유사한 MTV 패턴을 시작으로 템플릿, 다대다 관계의 카테고리, Tag 모델 및 페이지, 외부라이브러리 활용법, 댓글, 검색, 아바타, 대문, 자기소개 등 웹 페이지에서 개발하는 대부분의 컴포넌트 및 페이지를 하나의 블로그를 완성해가며 꼼꼼히 다룬다. 놀라운 것은 Django 파트만 발췌해도 능히 훌륭한 책인데 앞서 언급했던 장점들인 유관 Echo들을 전부 다루고 있기에 종합 선물같은 느낌을 받을 수 있다.

  • 가급적 연관된 모든 개념을 설명하고자 노력한다.
    책의 실습과정 중간에 HTML Escaping, Mixin 같은 개념들이 나오는데 사실 웹 프로젝트를 진행하는데 알아둬야 할 내용이긴 하지만 Django와 직접적인 관련이 없기에 굳이 설명하지 않는다고 해도 나무랄 독자는 적을 것이다.

    알아두면 좋아요

    그럼에도 이런 번외 개념조차 “알아두면 좋아요” 박스와 같은 별도의 구성을 통해 하나하나 짚어보고 애매한 개념을 그냥 지나가는 법이 없다. 저자의 장인정신과 가르치고자 하는 의지 그리고 꼼꼼함이 모두 녹아 있는 듯 해서 매우 만족스러웠다. 책을 쓰는 것은 보통 고된 작업이 아니므로 대부분 어느 지점에는 타협을 보게 마련일텐데 ‘네가 아무리 노력이 부족하고, 능력이 부족할지라도 반드시 알 수 밖에 없을 것이다.’라고 말하는 듯한 저자의 강한 의지가 느껴졌다.

  • 개념을 쉽게 풀이해준다.
    앞서 언급했듯 웹 개발의 A to Z를 다루기에 분량이 상당하다는 점, 배울 것이 많다는 점을 저자들도 충분히 알고 있는 듯 하다. 어려운 개념을 매우 쉽게 설명하고자 노력하는 점, 가급적 원론 보다는 실습코드와 시각화를 통해 이해를 유도하는 점, 특히 깊이있는 설명을 할 수 있음에도 실습 진행에 필요한 최소한의 개념만 언급하며 완급 조절하는 점에서 독자들을 위한 배려가 느껴졌다.

  • 저자 본인들이 겪었던 시행착오나 삽질을 그대로 녹였다.
    또 하나 상당히 마음에 들었던 점은 프로젝트 완성 목표 지점에 도착하는 것만으로도 보통 일이 아닐텐데 아래 그림처럼 가끔 일부러 실수를 유발하도록 안내한다는 점이다. 초보자들이 자주 겪는 실수나 혹은 저자 본인들이 겪었던 실수를 그대로 따라해보고 어떻게 해결해야 하는지 언급하는 구성이 종종 눈에 띈다.

    이런 설명은 단순히 실수를 방지하는 차원을 떠나 Django 프레임워크의 눈에 보이지 않는 내부 매커니즘에 대한 감을 깨닫는데 큰 도움이 된다. 실수야 반복을 통해 충분히 보완할 수 있지만 내부 매커니즘의 감을 잡는다는 것은 전문가를 위한 길이며 긴 경험 없이는 결코 축적하기 어렵기 때문에 박수 갈채를 보내고 싶다.

    삽질흔적

  • Do-it! 도서 시리즈의 최대 장점, End-to-End 구성
    요즈음 머신러닝 진영의 파이프라인 구성 트렌드는 End-to-End 구성이다. Input이 바로 Output으로 직결된다는 의미인데 그와 유사하게 Do-it!시리즈는 아무것도 모르는 독자가 전문가 수준의 퍼포먼스를 내는데 가장 빠른 지름길이라는 생각을 여러번 해왔다. 전혀 경험하지 못한 지식을 빠르게 익히고 싶을 때 나는 보통 Do-it! 시리즈 중 출간된 책이 있는지 확인하는 편이다.

    물론 Do-it! 시리즈가 초급 기술을 주로 겨냥하고 있어 아쉬운 측면도 있다. 이제 나름 업계 짬밥도 차고 실력이 늘어가니 예전만큼 Do-it! 시리즈를 접할일이 줄어들고 있기 때문이다. 하지만 적어도 웹 개발이 전무하거나 Django 등 위에서 소개한 기술 스택이 하나라도 처음인 독자가 있다면 이 책이 분명 효율적인 지름길이 될 것이다.

    표지




댓글(2) 먼댓글(0) 좋아요(1)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo
 
 
bjh 2022-02-22 15:17   좋아요 1 | 댓글달기 | URL
깊이 있는 설명 감사합니다

nanhmjjang 2022-05-01 19:56   좋아요 0 | URL
부족함에도 좋은 평을 해주셔서 감사합니다. :)
 
다시 확률 통계 : 확률편 - 데이터 분석, 마케팅, 비즈니스를 위한 확률 통계 입문서 다시 수학 시리즈
나가노 히로유키 지음, 장진희 옮김 / 길벗 / 2020년 7월
평점 :
장바구니담기


결론부터 먼저 말하자면 이 책은 확률의 기초를 튼튼하게 다지고, 확률에 숨겨진 진의를 파악하는데 있어 좋은 감각을 다질 수 있는 최고의 기본서라고 평하고 싶다. 수알못인 학생들조차 고등학교 수학의 정석을 덮으면 옆면이 까맣게 보인다는 집합 부터 베이즈 정리의 기본까지 다룬다.

다루는 범위가 너무 기초적이고 협소하다고 하여 본 도서를 그저 그런 기본서 정도로 취급하지 않았으면 좋겠다. 다른 수학 영역이라면 몰라도 과연 확률이 어려운 이유가 어려운 수식 때문일까?

수식 때문이 아니라면, 확률이 어려운 이유는 무엇일까?

위 질문을 먼저 던지는 이유는 확률의 무엇이 어려운지 정확히 알아야 과연 이 책이 어려움을 해소시켜주는 솔루션이 될 수 있을지 검증할 수 있기 때문이다. 본 리뷰는 개인적으로 확률이 왜 어려운 것인지 소개함과 동시에 본 도서가 그런 어려운 점을 어떻게 해소시켜 주는지 소개하는 방식으로 기술하려 한다.


  • 불확실성과 경우의 수
    외판원 문제(순회 세일즈맨 문제)
    세일즈맨이 n개 도시를 한 번씩 방문해서 출발 지점으로 돌아올 때 이동 거리가 최소가 되는 경로를 구하는 문제

    여기서 문제는 n의 값이 커질때마다 경우의 수가 기하급수적으로 늘어난다는 점이다. n=5 인경우 120가지에 그치지만, n=84인 경우 대략 3e+126의 경우의 수가 조합된다. 쉽게 말해 뒤에 0이 126개 붙는다고 보면 된다. 현존하는 최고 성능의 컴퓨터라 할지라도 이처럼 다항식이 아닌 NP-난해(NP-Hard)의 문제는 해결할 수 없다. 사람은 당연히 평생을 바쳐도 해결할 수 없는 문제가 된다.조합폭발

    확률을 계산하기 위한 가장 쉬운 방법은 모든 사건의 경우의 수를 구하는 것이다. 전체를 알면 확률 구하는 것은 그리 어려운 문제가 아니기 때문이다. 하지만 위 NP-Hard 문제는 차치하더라도 약간의 복잡한 문제가 주어지면 가장 쉽다는 경우의 수를 판별하기 조차 어렵다.

    개인적으로 경우의 수가 가지는 진정한 의의는 특정 사건이 가지는 세계에 대한 이해와 친숙함을 도와주는데 있다고 생각한다. 경우의 수를 전부 알게 된다면 사건이 형성하는 계(界)의 모양을 전체 지도를 펼쳐놓고 보는 것과 다름이 없다.

    우리가 어떤 확률에 불안한 첫번째 이유는 경우의 수를 전부 볼 수 없기 때문이다. 경우의 수를 최대한 많이 보려고 해도 시간이 허락해주지 않는다. 항상 불확실성을 안고 문제를 접해야 하는 것이 내가 생각하는 확률이 어려운 근본적인 이유이다.

    그렇기에 미적분을 발명한 천재 라이프니츠 조차 주사위를 2번 던졌을 때 합이 9일 경우와 10일 경우가 같다고 착각한 것이 아닐까? 본 도서는 한정된 학습 시간 내에 경우의 수의 본질에 흠뻑빠지게 해준다는 점이 백미이다.


  • 확률은 어디까지 적용이 가능할까?
    확률은,
    • 반복이 가능하며,
    • 한 번의 시행은 우연에 좌우되지만,
    • 전체적으로는 수학 법칙을 찾아낼 수 있는 현상에 대해서만 관심을 갖는다. 일상의 무한에 가까운 사건에서 확률이 관심을 가지는 대상 범위만 바라보는 프레임만 형성해도 자신감이 생긴다.

    그런데 중고교 과정에서 왜 이렇게 가장 중요한 것들을 먼저 알려주지 않는지 의문이다. 그런 점에서 본 도서가 정말 마음에 드는 점은 각 장의 초입마다 이런 확률의 본질을 명확하게 알려준다는 점이다. 배워볼만하게 징검다리를 놓아줌으로써 독자로 하여금 나름의 체계를 구축하게 해준다.

    중복과 순서의 개념 또한 마찬가지이다. 순열과 조합의 개념이 등장하며 경우의 수도 다루기 만만찮아 지는데 일단 중복과 순서를 하나의 프레임으로 들고 문제를 바라보면 경우의 수 문제도 자신감이 생긴다. 그러한 기준점을 하나 들고 기준점과 달랐던 문제들로 나름의 체계를 갖춘다면 확률이 그리 낯설지만은 않을 것이다.중복과 순서


  • 일상을 확률 세계로 대응하는 감각

    “비율을 볼 때는 항상 비율만 보지 말고, 그게 현실 세계에서 뭘 의미하는지 구체화시켜서 생각해야 해요. 아니면 통계는 그냥 숫자놀음에 불과하게 됩니다.” - 오하이오의 낚시꾼

    통계에 대한 직관적인 인사이트를 선사하는 오하이오의 낚시꾼페이스북 페이지에서 인용한 글이다. 통계적 수치가 현실 세계에서 어떤 의미를 가지는지 노력하지 않으면 라이프니츠의 실수를 번복하게 된다.

    희박한 가능성에 믿음과 설득력을 부여하는 p-value를 남용하는 문제가 지속적으로 대두되는 것도 현실 세계와 동떨어진 숫자놀음의 한 일례라 생각한다.

    그런데 어떻게 하면 현실 세계를 확률과 연결할 수 있을까?

    통계와 확률의 귀납적 성질 때문일까. 아이러니하게도 전체를 보지 못한 세계에서 전체를 보고자 노력하는 양상이니 훈련도 경험의 양이 중요하다. 경우의 수의 도움을 받아보고 많은 문제를 풀어보고 그렇게 다진 감각으로 현실 세계의 문제와 연결도 지어보고 그렇게 타고난 감각을 쌓아야 한다고 생각한다.

    그런점에서 본 도서가 가지는 장점은 다각도로 깊이 있는 생각에 도움이 되는 다양한 예제들이 가득차 있다는 점이다. 예제도 그냥 양만 많은것이 아니다.몬티홀

    보통 한 권의 책을 읽고 나면 누구나 2-3 단어 혹은 2-3 문장 정도의 가장 중요한 핵심 주제를 요약할 수 있을 것이다. 시간이 지나면 많은 구체적인 부분들은 망각되지만 그 핵심 몇 문장은 평생 가지고 가는데 큰 문제는 없다.

    적어도 그동안 읽었던 수십 권의 확률 서적에서 가장 중요한 획들. 그러니까 무한의 확률 세계에서 나름의 체계를 잡아주던 기준들이 하나씩 예제로 등장한다. 그동안의 확률 서적에서 배웠던 것들을 총정리 하는 느낌이었고, 부족했던 감각은 보충할 수 있는 느낌이었다. 이 책 결코 기본서가 아니다. 밥솥의 뜸을 들이듯 사고의 영역에서 만큼은 그 어떤 책보다 심오하다.

    확률 학습 만큼은 확실히 다양한 문제에 대한 경험, 밥솥에 뜸을 들이는 과정이 중요한 것 같다. 주변의 통계학과 출신의 지인들에게 확률과 통계에 대해 물어본 적이 있다. 놀라웠던 것은 가르치니까 그런가보다하고 배워온 지식이 태반이라고 한다. 앞서 말한 뜸들이는 과정이나 현실과 결부시켜보는 훈련을 하기에 고도의 사고가 필요하여 지치기 일쑤고 그런 방식으로는 속도가 너무 더뎌 비효율적이라는 판단에 마치 수학을 학습하듯 엄밀하고 딱떨어지는 논리 전개로의 확률에 치중하게 되었다는 것이다.

    동전의 앞면이 1000번 연속으로 나왔다면, 다음번 동전의 앞면이 나올 확률은 100%일까? 50%일까? 0%일까?

    조건부확률과 베이즈 정리가 왜 어려울까? 단순히 사전 분포를 사후 분포를 매핑하는 과정이 추가되어서? 내 생각에 베이즈 정리가 어려운 이유는 확률의 본질에 자신이 없기 때문이다. 이러한 뜸들이는 과정이 없기 때문에, 불안하게 계속 공식만 외우고 그렇게 배웠왔기에 그런가보다 하고 쓰는 과정의 연속 때문에, 조금만 문제를 틀어도 머리속 사고력에 제약이 생기기 때문이다.최고의결혼상대

    비교적 직장인보다 학습할 시간이 많이 주어지는 학창시절이야말로 이 긴 뜸들이는 과정에 적합한 시간이 아닐까 하는 생각이 든다. 본 도서는 상당히 많은 문제가 등장한다. 비록 현실의 문제에 비할바는 못되지만 그래도 상당히 유연한 사고를 위한 양질의 문제가 주어진다.

    3, 4장의 경우 온전히 문제로만 구성된 챕터인데 파트마다 별 4개짜리의 수능 난이도 문제가 등장한다. 물론 학생들의 입시에도 도움이 되겠지만 진리를 탐구하는 어른들에게도 도움이 된다. 재미있는 것은 수능 시절 왜 이 문제를 못풀었는지 당시의 기억이 떠오르기도 한다. 다시금 본 도서로 형성된 나름의 체계와 프레임으로 비춰보며 스스로의 사고 과정이 얼마나 향상되었는지 그동안 보지 못했던 사고력을 가시화 하는 기분은 뭐라 표현하기 힘든 즐거움이다.


마지막으로 본 도서를 추천하고 싶은 독자는 다음과 같다.

  • 데이터 사이언티스트
    MCMC(Markov chain Monte Carlo)와 강화학습을 심도있게 공부하는 사람이라면 이 책의 예제들은 마치 퀴즈책을 푸는 느낌이 들 것이다. 그런데 생각보다 난이도가 녹록치는 않을 것이다. 수식으로 전체를 설명하지 않는 현실 내 문제들이 제법 숨어있기 때문이다. 재미있게 풀어나가다보면 스스로의 사고력에 부족했던 기본기를 채워주는 느낌이 들 것이다.

  • 학생
    그저 문제를 잘 푸는 계산기가 되지 말고, 대학생까지 밖에 약빨이 안통하는 입시에만 집착하지 말고, 기초 과학이 어떻게 현실에 응용이 되는지 깨닫는 계기가 되었으면 한다. 공부는 점수를 높이는 보람으로 하는 것이 아닌 진리와 답을 알고 싶은 스스로의 호기심이 가장 큰 원동력이라 생각한다. 나는 알파고를 보고 수학을 이래서 배워야하는 거구나 하고 땅을 치고 후회했다. 기초과학이 왜 꿈을 이루게 하는지, 혹은 어떻게 돈이 되는지 그 과정을 본 도서를 통해 잘 익혔으면 좋겠다.벤포드




댓글(0) 먼댓글(0) 좋아요(1)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo
 
 
 
할짝 심리학 2 - 나도 모르는 내 마음의 병 한빛비즈 교양툰 9
이한나 지음 / 한빛비즈 / 2020년 12월
평점 :
장바구니담기


개인적으로 만화를 좋아하는데 특히 한빛비즈 교양툰 시리즈를 참 좋아한다. 최근 리뷰를 올린 퀀텀(quantum)을 예로 들면 양자 역학을 이처럼 알기 쉽게 풀어쓴 책은 본 적이 없다. 첫 진입 장벽이 특수상대성 이론인지라 결코 입문이 쉽지 않은데 단 십여 페이지로 깔끔하게 정리해줬던 강렬했던 첫 인상을 잊지 못한다.

작년에 본 까면서 보는 해부학 만화 또한 일품이었다. 특히 6살이었던 아들 녀석에게 깊은 탐구심과 집중력을 선물해 준 책이라는 점에서 감사하다. 호기심은 흥미로 이어지고 발견과 깨달음은 무엇이든 집중하게 만든다.

본 리뷰에서 소개할 “할짝 심리학 2” 또한 이 교양툰 시리즈 중 하나이기에 믿고 볼만한 책이라 여겼다. 그동안 교양툰에서 느꼈던 여러 선례 덕분일까 이번 책 또한 기대가 상당했고 만족감 역시 기대와 일치했다.

요즘 시중에 출간되는 서적을 보면 심리학, 감정, 정신이라는 주제가 대세인 듯 하다. 아마도 직장으로 대표되는 일상의 스트레스와 시간에 쫓기며 사는 인생 속에서 삶의 의미를 잃어버리는 일이 흔하기 때문이 아닐까 싶다. 나 역시 이런 주제를 다루는 책을 10권 이상은 읽은 듯 하다.

읽다보면 현재까지 밝혀진 몇가지 공통된 매커니즘이 등장하는데 이 책의 큰 장점중의 하나가 이런 매커니즘을 모두 소개하고 있다는 것이다. 예를 들면 문명의 발전속도에 비해 인간의 몸과 마음은 최초 인류 대비 거의 진화하지 않았다는 점, 도파민을 대표로 하는 각종 호르몬 등의 화학적 성분 혹은 약물이 인간의 감정과 판단에 영향을 미치는 매커니즘을 들 수 있겠다.

만화의 장점은 역시 재미와 가독성을 들 수 있겠는데 각종 심리학 대중서적에서 이구동성으로 언급하는 단골 소재가 전달력 끝판왕인 만화라는 도구를 통해 전달한다는 것은 심리학을 어려워하는 일반인들에게는 소중한 기회인 듯하다.

물론 만화의 특성 상 대부분의 지면에 그림, 삽화가 포함되므로 한정된 지면 대비 전달하는 정보의 양이 적을 수 밖에 없는 것 또한 사실이지만 심리학과 감정 측면에 있어 전공 수준의 학습과 연구를 목표로 하지 않는 이상 우리 일상에 도움되는 지식을 얻는 것은 이 만화로 충분하다는 생각이 든다.

할짝 심리학 2에서 다루는 굵직한 주제를 간단히 소개하자면 일상에서 흔히 들을 수 있었지만 매커니즘이 이해되지는 않았던 우울증, 공황장애, 조현병, 사이코패스 등을 다룬다. 더불어 한 때 유명했던 영화 뷰티풀마인드 주인공의 실존인물인 존 내쉬와 같은 천재들이 겪었던 질환도 소개되며, 절단 증후군이나 프레골리 망상과 같은 다소 신기한 질환도 소개된다.

이런 주제들이 평소 궁금했지만 진입 장벽이나 수준이 높아 다가서지 못했던 지식들, 혹은 그럼에도 알고 싶으나 주제가 우울하거나 무거워 왠지 다가서기 꺼려졌던 분이라면 이 책에 가장 적합한 독자가 아닐까 싶다. 만화 속 주인공의 대사들은 하나같이 유머러스하고 해학적이며, 책의 표지만 봐도 알 수 있듯 마치 이말년 작가를 상기시키는 병맛(?) 화풍이 강렬하기 때문이다. 그만큼 친숙하고 흥미있게 궁금했던 주제들에 다가갈 수 있다.

도파민 등

특히 위 현상들을 직접 앓고 있다거나 혹은 주위 지인이나 가족들이 앓고 있어 본인이 응대하기 난처로운 상황인 분들께 짧은 시간내에 현실과 이론을 파악할 수 있는 좋은 수단이 되리라 생각한다.

위 현상들과 직간접적인 관련이 없더라도 일반인에게도 상당히 유익한 부분이 있다. 주위와의 상호작용으로 갑자기 위와 같은 현상들이 발현된다면 응급히 본인에게 어떤 조치를 해야 하는지 일종의 심리적 예방 주사를 미리 맞을 수 있는 기회이다. 더불어 우리의 정신 세계와 심리의 매커니즘이 어떤 원리로 움직이는지 이해하기 쉬워져 스스로도 몰랐던 행동과 판단에 대한 해석이 어느정도 가능해진다.

다소 무겁지만 우리의 정신을 알기 위해 반드시 필요했던 지식들을 해학적이고 알기 쉽게 접근할 수 있다는 점에서 큰 획을 그을만한 책이라는 생각이 든다.

세상은 점점 배워야 할 것이 많아지고, 시간은 점점 줄어들고, 주위 역시 해준다는 사람은 거의 없는데 해달라는 사람만 지천인 요즘의 현실에서 지피지기의 전략으로 먼저 나를 충분히 알고, 스스로의 정신을 튼튼히 하며, 상대의 심리를 이해할 수 있다면 조금 더 현명하고 슬기롭게 세상을 헤쳐나갈 수 있지 않을까? 바로 그런 점에서 본 교양 만화를 강력히 추천하고 싶다.




댓글(0) 먼댓글(0) 좋아요(0)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo