미국 주식으로 시작하는 슬기로운 퀀트투자 - 주린이+코알못도 파이썬으로 쉽게 따라 하는 퀀트투자 레시피
김용환.Yubin Kim 지음 / 한빛미디어 / 2021년 9월
평점 :
장바구니담기


미국 주식으로 시작하는 슬기로운 퀀트투자

한빛미디어에서 제공받는 책으로 해당 리뷰를 작성하였습니다.

책표지!

TL;DR

  • 파이썬 코드가 간단하고, 주식 투자와 관련된 설명이 명쾌하기 때문에 주식 투자와 관련된 기술적인 내용을 파이썬을 활용해서 시각적으로 쉽게 이해할 수 있다.

    • 필자는 주식을 전혀 모르기 때문에, 책의 코드를 이해하는 시간보다 그래프를 이해하는데 중점을 두고 읽었는데, 주식 관련 전문 프로그램에서 분석가분들이 하시는 설명을 어느정도 이해할 수 있는 수준이 되었음
  • 파이썬을 전혀 모르신다면, 부록 A를 먼저 읽어보시고 시작하시면 교재에 나온 코드는 충분히 이해 가능하기 때문에 파이썬에 관심이나 호기심이 있으셨다면 도전해보시면 좋을 듯 합니다.

  • 중급 이상의 개발자분이라면, 이 책에 나온 투자 전략을 기반으로 한 백테스트 애플리케이션을 작성해보셔도 좋을 듯 합니다. 아래 링크는 제가 이 책을 읽고 백테스팅 관련해서 연습해보기 위해서 참고하고 있는 오픈소스 라이브러리링크 입니다. 건승을 빕니다! :D

1

이 책은 자동 트레이딩 프로그램을 만드는게 아니라 그보다 더 근본적인 것들에 대해서 이야기한다. 퀀트 투자에 대한 개념, 누적된 주식 데이터를 읽어내는 방법, 그래프를 이해하고 작성하는 방법, 그리고 전략을 수립하고 테스트하는 방법 등을 자세히 소개한다. 그래서 주식 투자에 대한 기술적인 내용들이 많이 나오고, 그래프를 많이 사용하고 있어서 그래프를 이해하는데 많은 시간을 들여서 읽었다. 내가 만약 주식 투자를 하고 있거나 알고 있었다면 엄청 다양한 종목을 테스트 해볼 수 있을텐데, 그러한 백그라운드가 없어서 아쉽게도 교재에 소개한 내용을 충실히 따라갔다.

간단한 코드!

책을 다 읽고 가장 먼저 든 생각은 내가 사용한 코드를 기반으로 주식 트레이딩 프로그램을 만들수 있을까 궁금했다. github에 검색을 해보니 많은 분들이 django, flask 등을 사용해서 관련 프로그램을 많이 공개해주셔서 현재는 관련 오픈소스를 조금씩 살펴보고 있는데, 교재에 나온 퀀트 전략을 다양한 곳에서 사용하고 있었다. 준비를 해서 도전해봐야겠다.

2 실행 가능한 코드

이 책에서 제공하는 예제 코드는 구글의 Colab을 사용하기 때문에 파이썬을 처음 접하는 초보자도 코드를 쉽게 실행할 수 있다. finterstellar 사이트를 활용하고 있는데, 가입이 어렵지 않고, 교재에서 자세히 설명하고 있기 때문에 해당 사이트에서 OTP 번호만 발급 받으면 모든 예제를 실행해 볼 수 있다. 국내의 주식 관련 정보를 얻기 위해서 조금은 번거로운 작업을 했던 것을 떠올려보면 finterstellar를 사용한 것은 매우 훌륭한 선택이라 생각한다.

퀀트 투자에 대해서 새롭게 알게되었다는 점도 좋았지만, 우량주를 판별하는 기준, 주가 상승에 대한 이해, 변동성, 그리고 투자전략 등과 같은 말과 글로는 이해하기 쉽지 않은 내용을 Colab에서 파이썬 코드를 활용해서 실시간으로 확인할 수 있다는 점이 이 책의 가장 큰 장점이라 할 수 있다. 그러니 이 책을 구매해서 읽으신다면 Colab을 사용해서 코드를 꼭 실행하면서 읽어보시면 좋을 듯 합니다.

그런데, Colab을 사용하시다 보면 한빛미디어에서 제공하는 예제 파일이 약간 불편하게 작성되어 있다. 5장 같은 경우 OTP 번호를 너무 많은 곳에 입력해야 되기 때문에 그러한 불편함을 줄이기 위해서 OTP 변수를 선언하고, Colab에서 수정 > 찾기 및 바꾸기를 선택해서 "OTP"를 OTP로 변경하였다. 이러한 설명이 조금 어렵게 느껴진다면 내가 수정한 5장 예제(5장 예제)를 참고하길 바란다.

finterstellar

3

주식 투자에 관심이 있고, 파이썬이나 데이터분석 등과 같은 것에 호기심이 있으셨다면 흥미로운 책이 될 것이다. 그리고 데이터 분석 등과 같은 기술에 관심이 있으시다면 이 책에서 소개하는 투자기법이나 그래프 등을 참고해서 다양한 곳에 적용할 수 있을 듯 싶다.

매일 매일 조금씩 책을 읽으면서 코드를 실행하면서 책을 재미있게 읽었다. 주식에 관한 전문가들의 종목 평가를 들으면서 그 분들의 용어를 조금은 이해하게 될 수 있어서 성취감도 높았던 책이다.

Written on October 20, 2021



댓글(0) 먼댓글(0) 좋아요(2)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
처음 배우는 플라스크 웹 프로그래밍 - 대규모 애플리케이션 개발부터 테스트, 배포까지
윤정현 지음 / 한빛미디어 / 2021년 8월
평점 :
장바구니담기


한빛미디어에서 제공받는 책으로 해당 리뷰를 작성하였습니다.

책표지!

TL;DR

  • 초급자(AWS RDS 사용이 힘든 학습자) 라면 이 책의 CHAPTER 1 플라스크 시작하기을 읽고, 아래 몇가지 튜토리얼을 진행하고 CHAPTER 4 플라스크 블로그 만들기를 차근 차근 진행해보자(개인적으로 난이도가 CHAPTER 3 플라스크로 영화 예매 사이트 만들기가 더 높은 듯 함)
  • 중급자(AWS RDS 사용이 가능한 학습자) 라면 이 책의 CHAPTER 3 플라스크로 영화 예매 사이트 만들기을 먼저 시작해도 무방할 듯 하다.
    • 중급자의 경우 CHAPTER 1 플라스크 시작하기와 CHAPTER 2 플라스크로 애플리케이션 만들기는 필요할 때 읽어도 무방함

0 - Flask?

Node.js에 Express가 있다면 Python은 Flask가 있고, Java에 Spring이 있다면 우리에겐 Django가 있다.

한때, 내가 가장 많이 사용했던 웹 프레임워크 중 하나가 Flask였다. 왜 ‘한때’라는 부사가 붙느냐면 2017년 이후에 내가 진행했던 외부 프로젝트가 추천시스템 구축 관련이었는데, 해당 프로젝트 책임자’들’이 Django를 요구했기 때문이다. 마치 약속이나 한 것 처럼 대부분의 프로젝트 책임자들이 Django에 대해서 요구하기 때문인데, 요즘은 많은 프로젝트에서 Flask를 기반으로 한 API 서버를 요청하는 경우가 많아졌다. 개인적인 견해를 기반으로 부연 설명을 조금해보자면, Django를 사용해서 API 서버를 구성하는 것이 조금 번거로운 점이 있고, 머신러닝/딥러닝 모델을 기반으로 한 API 서버의 경우 풀스택 프레임워크를 사용할만큼 큰 규모가 아니라는 점 때문이라 생각한다.

한 마디로 말해서 간단한 API를 구성한다면 Flask만한 프레임워크가 없습니다.

1

이 책을 읽고, 모든 예제를 진행하면서 가장 마음에 들었던 점이라면 ‘프로젝트 기반’으로 진행된다는 점이다. 그래서 1~2장 정도를 가볍게 읽고, 3/4/5장 중에서 마음에 드는 주제를 골라서 진행해도 된다는 점이다. 나는 책을 순서대로 진행했는데, 3/4/5장의 프로젝트가 난이도가 중/하/상 수준으로 판단된다. 그래서 플라스크를 처음 접하는 분들은 4장을 목표로 진행하면 좋을 듯 싶다.

RDS를 적극적으로 활용하고 있고, 특정 부분에서 리액티브 프로그래밍 등과 같은 초급 학습자가 학습하기엔 약간 난이도가 있는 부분은 가볍게 넘어가도 좋을 듯 싶다. 저자의 github에 대부분의 코드를 제공하기 때문에 RDS 부분을 SQLite3로 변경하기만 해도 별다른 어려움 없이 예제를 진행할 수 있다.

마지막으로 배포 부분은 도커를 사용하고 있기 때문에, 프로젝트를 진행하고 끝나는 것이 아니라 서버에 직접 배포할 수 있는 경험을 제공한다는 점에서 다른 여타의 책과 확실하게 차이점을 두고 있으며, 이러한 차이점은 초중급 학습자에게 큰 장점이다.

만약, 플라스크에 대한 경험이 없다면 이 교재의 1장과 2장을 먼저 읽고, 웹에서 간단한 플라스크 튜토리얼을 1~2개 정도 진행 후에 4장을 진행해보길 권한다. 그리고 도커 사용이 힘들다면 heroku 등을 사용해서 무료로 배포를 진행할 수 있으니 도전해보면 좋을 듯 싶다.

책내용

2

현재 이 책에서 다루는 내용은 초급자분들이 접근하기엔 약간의 어려움이 따른다. 대표적인 것들이 RDS를 사용한다는 점인데, 초급 사용자가 RDS에 접근한다는게 쉽지 않을 것으로 판단되기 때문이다. MySQL 등을 설치하는 것도 초급자에게 쉽지 않기 때문에 될 수 있으면 SQLite3를 사용하는 방법을 권하고 싶다. 그리고 도커 등과 같은 소프트웨어를 설치하는 문제가 발생하는 경우에는 heroku 등과 같은 다른 무료 서비스를 최대한 활용할 수 있도록 별도의 가이드를 작성해서 배포한다면 좋을 듯 싶다. 그리고 해당 교재는 파이썬의 문법에 대해서 자세한 설명을 하고 있지 않기 때문에 파이썬 문법은 별도의 교재로 학습하고 진행하길 권한다.

파이썬코드

3

완전 초보자에게 조금 어려울 수 있지만, 개발 환경 구성에서 배포까지 전 과정을 제시하는 교재가 흔하지 않기 때문에 초급자는 약간의 도전과제라 생각하고 진행하면 좋은 성과를 이룰 수 있고, 중급자는 폴더 구조, 환경설정, 3rd-party 라이브러리 그리고 도커 등과 같은 다양한 기술을 사용해볼 수 있는 좋은 기회가 될 것이다.


댓글(0) 먼댓글(0) 좋아요(1)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
텐서플로 라이트를 활용한 안드로이드 딥러닝 - 더 작고, 더 가벼운, 모바일, 에지 기기용 머신러닝
임태규 지음 / 한빛미디어 / 2021년 8월
평점 :
장바구니담기


한빛미디어에서 제공받는 책으로 해당 리뷰를 작성하였습니다.

책표지!

0. 머신러닝, 그 공허함

머신러닝 혹은 딥러닝을 공부하고 나면 언제나 아쉬움이 가득하다. 예를 들어, 2018년에 박해선님이 번역하신 <<핸즈온 머신러닝>>을 친구들과 스터디를 하고 나서 느꼈던 감정은 “이제 뭘 해야 하나?”였다. 구글에서 몇가지 글을 찾아서 Flask와 연계해서 간단한 이미지 추론 예제를 진행했지만 내가 생각했던 것(물체 인식, 자율 주행?)을 진행하려고 하니 생각만큼 쉽지 않았다. 특히, 몇 백메가에 달하는 모델을 어떻게 처리해야 할지 몰라서 난감했던 생각이 주마등처럼 스친다.

머신러닝을 아무리 열심히 배워도 ‘모델’ 정도 만들고, 그걸 활용할 수 있는 방법이 적당하지 않았다. 뭔가 해보고 싶어서 ML Kit과 Core ML 등을 찾아서 공부해보려고 했지만 쉽지 않았다. 왜냐하면 대부분 모델을 생성하는 부분을 다루고 있지 않아서 제공하는 모델을 사용하는 것은 문제가 없지만 막상 내가 모델을 만들어서 진행하면 실행 결과가 형편없었다. 2021년이 되어서야 Tensorflow Lite를 활용해서 다양한 예제를 접할 수 있었다.

“2~3권을 책을 참고해서 머신러닝 서비스를 학습할 수 있다면, 무슨 걱정이 있을까?”

Python을 사용해서 모델을 만들고, 그 모델을 사용해서 웹이나 앱을 서비스 하기 위해선 Android, iOS, Flask, Django 등과 같은 책을 참고해야 한다. 최소한 2~3권 정도 책을 참고해서 학습을 진행하게 되는데, 사실 그렇게 학습을 진행할 수 있는 정도면 무슨 걱정이 있겠는가?

1. 한 권으로 시작하자!

<<텐서플로 라이트를 활용한 안드로이드 딥러닝>>은 한 권으로 모델과 Android 앱을 개발하는 모든 과정을 실습 해 볼 수 있다. Python으로 모델을 생성하고, 생성된 모델을 TFLite로 변경해서 Android 앱에 저장하고 저장된 모델을 사용해서 앱을 개발한다. 이 모든 과정을 한권으로 해결할 수 있다. 2~3권을 상호참조하면서 진행하는 것에 비해서 한 권으로 진행하기 떄문에 학습을 일관된 흐름으로 진행할 수 있다.

파이썬 예제

책의 흐름은 단순한 예제인 MNIST로 시작한다. MNIST 예제는 Tensorflow에 포함된 예제라서 누구든 쉽게 접근할 수 있다. 그래서 Python 개발 환경과 코드를 가볍게 연습할 수 있다. 본인이 직접 만든 MNIST 모델을 사용해서 숫자를 인식하는 예제를 만들어보는 것이 첫번째 예제다. 이후 객체 인식 연구에 사용되는 ImageNet을 사용해서 만들어 놓은 예제를 개선하고, 카메라를 사용해서 실시간으로 객체를 추론하는 기능을 추가한다. 마지막으로 성능을 개선하고 끝난다. 단 한권으로 작동하는 Android 앱을 만들어볼 수 있다는 점은 머신러닝을 활용해서 서비스를 만들거나 앱을 만드는 분들에게 엄청나게 큰 장점이라 할 수 있다.

단 한권으로 이 모든 과정을 일관되게 진행할 수 있다!

이 책의 장점은 크게 두 가지로 꼽을 수 있다. 첫째는 자신이 모델을 만들어서 사용하는 것 뿐만 아니라 기존의 공개된 모델을 사용하는 방법을 소개한다는 점이다. 단순하게 MNIST를 가지고 성능 개선까지 진행해도 무리가 없을텐데, 공개된 머신러닝 모델을 활용하는 방법을 소개하고 있어서 머신러닝을 사용해서 서비스를 구성하는 분들에게 많은 도움이 된다. 둘째는 군더더기 없는 설명이다. Tensorflow와 Android 모두를 설명하기 때문에 자칫하면 분량이 늘어날 수 있음에도 불구하고 책을 쓴 저자분이 꼭 필요한 부분만 선별해서 설명하고 있고, 중요한 부분은 2~3번 정도 반복해서 설명하기 때문에 책을 진행하면서 겪게되는 어려움은 없다. 무엇보다 해당 교재에 있는 예제는 별다른 수정 없이 잘 작동(2021.08.19년 기준)하기 때문에 이론을 포기하고 실습만 진행한다 하더라도 많은 것을 배울 수 있다.

2. 아쉬움은?

이 책을 읽으면서 가장 아쉬웠던 부분은 다른 점은 Kotiln이 아니라 Java로 Android 코드가 구성되어 있다는 점이다.

책을 읽는 동안 Java로 구성되어 있어도 별다른 문제 없이 잘 작동하기 때문에 큰 아쉬움이 없었다. 하지만 Google이 Kotlin을 Android의 기본 언어로 지원하고 있기 때문에 이왕이면 Kotlin으로 진행하면 향후에도 책을 읽으면서 작성한 코드를 활용할 수 있으면 좋았을텐데 싶었다.

아쉽게도 Java

그래서 책을 다 읽고, 1~5장까지 진행한 내용은 Kotlin으로 변경해서 github 저장소에 올려두었다. 6장 이후는 현재 코드를 작성하고 있다. 다음에 기회가 된다면 Kotlin으로 진행되는 교재로 개정되길 희망한다. 그리고 (수요가 많이 없을 수 있지만) ML Core 기반의 iOS도 자매품으로 함께 출간되길 기원해본다.

3. 스터디에 좋다!

즐거움이 많았던 책이다. 실습 코드 걱정 없이 즐겁게 읽고, 재미있게 코딩할 수 있는 기회였다. 머신러닝을 가지고 앱이나 서비스를 기획하고 있다면 친구들과 이 책으로 시작해보자. 주변에 머신러닝을 공부하는 분들이 있다면, 이 교재를 가지고 객체 인식, 세그먼테이션 등과 같은 것으로 개선할 수 있으니 스터디에 도전해보면 좋겠다. 책의 분량 때문에 생략된 부분은 다른 교재를 참고해서 진행해보면 좋다. 그래서 머신러닝을 활용해서 서비스를 구성하려는 초급자나 팀에게 추천한다.


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
머신러닝을 활용한 웹 최적화 - A/B 테스트, 메타휴리스틱, 슬롯머신 알고리즘에서 베이즈 최적화까지
이쓰카 슈헤이 지음, 김연수 옮김 / 한빛미디어 / 2021년 6월
평점 :
장바구니담기


한빛미디어에서 제공받는 책으로 해당 리뷰를 작성하였습니다.

책표지!

1

머신러닝, 딥러닝, 선형대수 그리고 통계처럼 AI 분야에서 직접적으로 사용되는 기술이나 이론은 어렵지 않지만, 막막하다. 개별적인 이론이나 기술을 학습하는 할 때, 좋은 교재도 많고 Coursera 등에 강의도 다양하기 때문에 생각보다 어렵지 않다(쉽다는 뜻은 아니다). 하지만 어느순간 막막함이 찾아온다. 당연하게도 학습자의 대부분이 풀고자 하는 문제는 iris처럼 단순하지 않고, MNIST처럼 쉽게 진행되지 않기 때문이다. 하지만 이런 사소한 질문보다 더 큰 의문이 앞을 가로막을 때가 있다.

“도대체 이 기술을 어디에 써야 하는가?”이다.

2.

사례를 찾아보고, 여기저기 풀지 못한 문제를 찾아가보지만 코끼리 다리를 만지는 것도 쉽지 않다. 대부분의 교재나 강의가 ‘모델’과 ‘해석’ 기술을 가르치고 있기 때문이며, 실제 응용할 수 있는 사례를 찾기 위해선 적당한 분야(domain or field)가 있어야 되는데 어떤 분야에 내가 배운 AI 기술을 접목할 수 있을지 막막하다면, 이 교재로 시작해보자.

일단 이 교재는 “해보고(do), 배워보는(learn)” 형식의 책이다. 이런 종류의 책이 가지는 단점은 해보는 것이 중구난방(衆口難防)인 경우가 많고, 그게 아니라면 배우는 내용의 깊이가 전혀 없다는 점이다. 이 책은 이런 단점을 모두 피해간다. 이 책은 일관된 하나의 분야를 지향하고, 생각보다 깊이가 깊다. 그것도 많이 깊다. 그래서 난이도가 조금 올라가는 측면이 있지만 잘 작성된 코드를 제공하기 때문에 용기만 있다면 배우는데 큰 무리는 없다.

이 책의 제일 큰 혼돈은 제목인데, 왜냐하면 최적화라는 단어를 개발자가 접했을 때와 기획/마켓터가 받아들일 때 전혀 다른 상상을 할 것으로 예상되기 때문이다. 개발자는 이책을 AI 기술을 사용해서 웹 최적화를 진행할 듯 보이고, 기획/마켓터는 통계를 기반으로 UX를 개선할 것으로 받아들일 수 있다. 이 책은 그 모든 것을 다룬다. 기술적으로 웹을 최적화 하는 방법과 통계적으로 UX를 개선하는 방법을 모두 다룬다.

그래서 이 책은 개발자,마켓터, 기획자와 함꼐 보면 좋은 내용이 많다. 스타트업이나 팀단위 업무를 진행한다면 사내 스터디, 세미나, 기타 등등의 방법을 동원해서 관심있는 분야을 함께 읽어보길 권한다. 현재의 서비스를 개선해 볼 수 있다는 방법을 직접적으로 제공하기 때문이다.

다양한 예제!

3

머신러닝, 딥러닝, 선형대수 그리고 통계를 실제 서비스 적용하는 사례가 흔하지 않다.A/B Testing를 시작으로 서비스에 적용본다면 현재 서비스에 대한 다양한 관점을 가져볼 수 있을 것이다. 개인적으로 가장 흥미롭게 봤던 예제는 샘플링을 사용해서 최적화된 색상을 찾는 방법이었다. 읽으면서 이 정도 수준의 예제는 당장 적용가능할 것으로 생각해서 친구들과 가벼운 토이 프로젝트를 진행하기로 했다.

파이썬으로 간단한 코드를 수행할 수 있고, 고등학교 수준의 통계적인 지식이 있다면 이 책의 예제를 시작으로 기술적인 도전을 시작해보자!

이 정도의 예제!

4

필자는 이 책을 통해서 Toy 프로젝트를 진행하고 있다. Toy 프로젝트 진행하면서 도움이 된 다른 서적과 자료는 아래와 같다.



댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
데이터가 뛰어노는 AI 놀이터, 캐글 - 상위 랭킹 진입을 위한 필살기
가도와키 다이스케 외 지음, 대니얼WJ 옮김 / 한빛미디어 / 2021년 5월
평점 :
장바구니담기


한빛미디어에서 제공받는 책으로 해당 리뷰를 작성하였습니다.

책표지!

1, TL;DR

이 책의 가장 큰 장점은 캐글에서 사용하는 다양한 기법을 체계적으로 정리하고 있다는 점이다. 대표적인 장점은 1) 성능을 올리는데 사용되는 기법의 장/단점과 특성을 상세하게 설명한다. 2) 캐글에선 많이 사용하지만, 다른 교재에서 다루지 않는 기법을 소개한다.

데이터 분석을 공부하면서 캐글에 공개된 노트북을 최대한 활용하고 있다면, 이 책이 많은 도움을 줄 것이다. 그리고 데이터 분석을 공부한다는게 대부분의 Pandas 라이브러리 사용법 부터 시작하는데, Pandas 사용법을 모두 익혔다면 이 책을 선택해서 다양한 기법을 배워보기 권하고 싶다.

2

책내용!

이 책을 처음 받았을 때, 데이터 분석 경진대회 플랫폼인 캐글(Kaggle)에 관한 책이라 생각했다. 캐글은 데이터 분석을 학습할 때 전처리, 분석기법 등을 살펴볼 수 있다. 상위 등급의 도전자가 공개한 노트는 일반적인 데이터분석 교재에서 배울 수 없는 다양한 팁이 모여있기 때문에 학습에 많은 도움이 된다.

상위 랭크의 노트북이 도움이 된긴 하지만, 사실 이런 과정까지 도달하기 위해서 생각보다 많은 시간을 소모하게 된다. 왜냐하면 대부분의 학습자가 PandasMatplolib 등 다양한 라이브러리 사용법부터 학습하기 시작하기 때문에 다른 사람의 노트북을 보고 학습하는 과정이 쉽지 않다. 노트북에 주석이 없는 경우도 많고, 있다고 해도 너무 간단하기 때문에 초급 데이터 분석자에겐 쉽지 않다. 이런 연습은 교재의 후반부에 등장하는 사례 관련 코드로 연습할 수 있기 때문에 체계적인 연습이 될 것으로 기대한다.


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