화웨이 Matebook X Pro에 MacOS 10.15 Catalina 설치기

개요 2018년 Matebook X Pro 출시 당시부터 PCMag과 같은 주요 매체들의 평가는 매우 좋았습니다. 다만, 맥북프로의 디자인을 카피했다는 점, 번들로 깔리는 Huawei PC Manager 소프트웨어에 백도어의 위험성이 있는 보안 취약점이 있었다는 점에서 사람들의 선호도는 좋지 않았습니다. 그럼에도 불구하고 저에게 이 노트북은 분기마다 한두대씩 갈아치우던 기변병을 최근 1년 이상 잠재워준 훌륭한 제품입니다. 그동안 이 노트북으로 해왔던 작업은 윈도우 10에서 Visual Studio 2019에서 C++ 개발, IntelliJ IDEA에서 Clojure 개발, PyCharm에서 Python 개발, 회사 업무로 출장시 아래아한글 문서편집 등을 해왔습니다. »

Author image Yoonbae Cho

슬리피지를 고려한 시장가 시뮬레이션

슬리피지란? 슬리피지(Slippage)란 우리가 주식시장에 시장가 주문시 원하는 가격 대비 높거나 낮은 금액으로 체결되는 현상을 말합니다. 주된 원인은 거래량이 충분치 않거나, 주문량이 너무 많거나, 시장의 가격이 급변하거나, 또는 주문이 지연되어 처리될때 발생될 수 있습니다. 예를들어, 20,000원짜리 주식의 호가는 코스피/코스닥 공히 50원 단위입니다. 20,000원에 체결되길 희망하며 시장가로 매수 주문을 낸다면, 20,000원에 그대로 주문이 체결되는 경우도 많겠지만, 여러가지 원인에 의해 20,050원이나 20,100원에 체결되기도 합니다. 자동주식거래 시스템 개발시 이러한 슬리피지를 전혀 고려하지 않는다면, 백테스터(Backtester)에서 높은 수익을 가져오는 훌륭한 전략도 시장에서는 수익을 전혀 내지 못할 가능성도 있습니다. »

Author image Yoonbae Cho

PMP 취득

최근(2020. 1. 2) Project Management Professional (PMP)® 자격을 취득했습니다. 지난 12년간 회사에서 다양한 업무를 수행해 왔지만, 과연 나의 Job Position을 한마디로 뭐라고 정의하면 좋을까? 라는 질문 끝에, Project Manager로 답을 내리고 그에 상응하는 자격을 갖고자 도전했습니다. 시험준비 및 응시는 모두 영어로 했으며, 종합점수는 Above Target으로 합격했습니다. 물론 한국어로도 시험준비와 응시가 가능합니다. 준비기간은 Audit을 포함해 총 한달반 걸렸습니다. 중간에 개인적인 일로 보름정도 준비를 못했으므로, 실제 준비기간은 한달로 봐도 무방합니다. Audit 대응방법, 학습 리소스와 최근 시험경향을 감안한 학습 노하우를 공유하고자 합니다. »

Author image Yoonbae Cho

Master English FAST

Master English FAST: An Uncommon Guide to Speaking Extraordinary English 저는 최근 영어실력이 어느순간 정체된것 같다고 느끼는 와중에, ‘Uncommon Guide’라는 책의 부제에 이끌려 킨들 에디션을 구입해 읽어보게 되었습니다. 120페이지 정도 짧은 분량의 책이라 금방 읽었는데, 앞으로의 공부방향에 대해 어느정도 실마리를 찾은것 같습니다. 저자는 과거 본인이 일본어 학습과정에 겪은 어려움을 토대로, 단어와 문법에 치우친 기존의 영어학습 방법에서 탈피해야 하며, 무엇보다 먼저 본인 영어실력의 약점과 장점을 진단하고, 명확한 목표를 설정할 것을 권합니다. »

Author image Yoonbae Cho

tvheadend Docker Container 자동실행

이번에 Intel NUC을 한대 들였습니다. TDP가 10W 밖에 안되는 J5005 CPU가 탑재되어 있어, 전기요금 부담은 적을겁니다. 그동안 NAS로 써왔던 라즈베리와 Odroid C2와는 작별입니다. 덕분에 Synology 사용자들이 주로 사용하는 tvheadend를 간편하게 설치할 수 있는 Docker 이미지를 사용하게 되었습니다. 그동안 써왔던 라즈베리나 Odroid C2는 ARM64 아키텍처라 쓸 수가 없었거든요. 그래서 컨테이너를 생성하는 방법과, systemd로 tvheadend 서비스를 등록해 NAS 부팅시 자동으로 실행하는 절차를 간단히 기록하고자 합니다. Docker Container 생성 IPTV의 데이터는 IGMP로 전송되기 때문에, 네트워크는 host 방식으로 설정해야 합니다. »

Author image Yoonbae Cho

Redis를 Configuration Store로 활용하기

Redis는 키-값 형태의 데이터를 메모리에 저장하는 데이터베이스입니다. 메모리에 데이터를 저장하기 때문에 속도가 무척 빠른 것이 장점입니다. 물론 메모리 가격이 SSD나 HDD 보다는 훨씬 비싸기 때문에 대용량의 데이터를 저장하기에는 적합하지 않습니다. Configuration Store 최근 Redis를 설정값 저장공간으로 사용하는 아이디어가 떠올라 구현을 시작했습니다. 예를들어 ZeroMQ의 Publisher 노드의 접속정보와 같은 설정을 Redis에 저장해 놓으면, 여러대의 컴퓨터에 설정파일을 배포하는 번거로운 절차가 사라질겁니다. 각각의 컴퓨터는 Redis에 등록된 설정을 그때그때 가져오기만 하면 되는거죠. ZooKeeper 책을 읽으면서 든 생각입니다. »

Author image Yoonbae Cho

ZeroMQ 테스팅툴 zmqc 소스코드 컴파일 (Windows 10)

개요 2년전, ZeroMQ를 처음 접했던 시절 Publish와 Subscribe 테스트를 위해 직접 Python으로 테스팅툴을 직접 만들어 썼던 기억이 있습니다. 네트워크를 이용한 분산처리를 하다보면 테스트가 다소 불편하기 때문에 커맨드라인에서 각종 소켓을 생성해 표준 입력(stdin)으로 메시지를 보내거나, 받은 메시지를 표준출력(stdout)으로 확인하는 정도의 기능을 하는 툴이 꼭 필요하거든요. 최근 nanomsg를 기웃거리다 보니, nanocat라는 유틸리티가 기본적으로 제공되고 있었습니다. ZeroMQ에서도 유사한 툴이 있겠다 싶어 GitHub을 찾아보니, Publish/Subscribe 외에도 Push/Pull 등 여러가지 프로토콜을 지원하는 Python 프로젝트가 있었고, 이를 Go로 포팅한 프로젝트가 눈길을 끌었습니다. »

Author image Yoonbae Cho

ZeroMQ 4.2.5 소스코드 컴파일 (Windows 10)

ZeroMQ는 Publish/Subscribe, Request/Respond 등의 프로토콜을 구현하는 경량 메시징큐 라이브러리입니다. 리눅스에서는 apm이나 yum과 같은 패키지 인스톨러를 통해서 간단히 설치할 수 있지만, 윈도우에서는 최신 버전이 바이너리로 제공되지 않기 때문에 직접 소스코드를 컴파일해야 합니다. 준비 ZeroMQ 다운로드 GitHub에서 최신 버전의 zip 파일을 받아 임의 폴더에 임시로 압축을 해지합니다. 여기서는 C:\zeromq-4.2.5 폴더로 가정한다. CMake 설치 CMake 최신 버전의 x64 인스톨러를 받아 설치합니다. CMake는 과거 Makefile이 갖는 복잡하고 번거로운 절차를 줄여주는 것이 주된 기능인데, 여기서는 단일한 소스코드를 여러가지 플랫폼에서 컴파일하게 도와주는 역할을 합니다. »

Author image Yoonbae Cho

파이썬 3.7의 asyncio.run()

파이썬 3.7이 출시되었습니다. 다양한 개선사항 중에서도 눈에 띄는 것은, 드디어 코루틴을 간편하게 쓸 수 있는 asyncio.run() 함수. 그동안 이벤트 루프 만든다고 코드가 지저분했는데, 이제 무척 깔끔해졌습니다. import asyncio async def hello_world(): print("Hello World!") asyncio. »

Author image Yoonbae Cho

자동 주식거래 시스템의 메시지 처리

자동 주식거래 시스템의 메시지 국내 2천여 종목의 거래체결 데이터는 하루 천만건이 넘습니다. 그야말로 빅데이터의 전형이죠. 자동 주식거래 시스템은 천만건의 빅데이터를 실시간으로 분석해 주가의 방향을 예측해 배팅해야 합니다. 시스템의 성패는 최종적으로 돈을 벌 수 있는 매매전략의 보유여부로 귀결되지만, 당장 밑바닥부터 시스템을 설계하고 구현하는 개발자의 입장에선 과연 천만건의 데이터를 적시에 처리할 수 있느냐가 1차 관문입니다. 메시징 시스템의 종류 시장의 거래체결 데이터, 증권사에 요청할 매매주문 데이터는 사실 단위 시스템간에 주고받는 메시지입니다. 메시지는 자동 주식거래 시스템의 시작과 끝이며, 이를 처리하는 메시징 시스템은 전체 시스템 관점에서 봤을때 척추와 같은 가장 중요한 역할을 담당합니다. »

Author image Yoonbae Cho