Skip to content
@Goboolean

Goboolean

About Our Project

Quant Trading 은 주식이나 선물 등의 상품 거래를 수학과 통계를 기반으로 접근하여 전략을 수립하고 투자하는 일련의 방법론을 의미합니다. 그러나 데이터를 받아오고 거래하는 인프라 구축, 분석을 위한 인공지능 지식 등은 퀀트 입문에 크나큰 문턱이며 늘 한계로 지적되어 왔습니다. Goboolean 은 이 문제를 엔지니어링을 통해 해결하여 사용자에게 최상의 퀀트 분석 경험을 제공하고자 합니다. 이 서비스를 통해 사용자는 많은 종류의 알고리즘을 선택하고 이를 튜닝하며, 주식 종목 등의 상품을 적용하여 분석하는 과정을 장난감을 조립하듯 할 수 있습니다.

Full System

Architecture Diagram

full system

Goboolean 의 전체 시스템 다이어그램은 다음과 같습니다. fetch system 은 구현이 완료되어 kubernetes 환경에 배포되었으며, 나머지 시스템도 박차를 가하고 있습니다.

Fetch System

Architecture Diagram

fetch system

fetch system 의 아키텍처 다이어그램은 위와 같습니다. 외부 HTS로부터 다량의 거래 데이터를 받아와 Goboolean 의 다른 시스템에서 사용할 수 있도록 데이터를 적절하게 처리 및 저장 & 전송하는 기능을 담당하고 있습니다. 평균 초당 3000건, 최대 15000건의 데이터를 처리하고 있으며, 부하에 유연하게 확장될 수 있는 구조를 가지고 있습니다.

Skill

language

Go Java
Go Java

database

MongoDB etcd InfluxDB PostgreSQL
mongodb etcd influxdb postgresql

data streaming

kafka kafka streams kafka connect
kafka kafka kafka

Kafka Ecosystem

kafka ecosystem

또한 **kafka ecosystem (kafka broker | kafka streams | kafka connect)** 를 통해 전체 파이프라인을 stateful 하게 관리하여 장애 및 부하 상황에도 유연하게 대처할 수 있도록 하고 있습니다.

Core System

Architecture Diagram

core system

core system 의 아키텍처 다이어그램은 다음과 같습니다. goboolean 시스템에서 사용자의 핵심 유즈케이스를 담당합니다.

Skill

language

Go Java
Go Java

database

MongoDB PostgreSQL
MongoDB PostgreSQL

communication

kafka gRPC
Go Java

MSA Pattern

core system 에는 Event Driven Architecture 이 적용되어 core system 내부의 컴포넌트간 통신은 물론 외부 시스템과의 통신을 이벤트 기반으로 하여 유연함을 확보하였습니다. 또한 도메인의 분해 과정에서 CQRS 를 적용하여 각자의 역할에 맞는 도메인 로직 및 모델을 설정하였습니다.

Sequence Diagram

core system use case sequence diagram

core system 의 핵심 usecase 에 대한 sequence diagram 은 위와 같습니다. 하나의 유즈케이스가 이벤트를 기반으로 core system 의 여러 컴포넌트의 상호작용을 통해 서비스되고 있는 것을 확인할 수 있습니다.

Client Interaction

core system client interaction

client 는 위와 같이 core system 의 주요 서버들과 통신합니다.

ML System

Architecture Diagram

ml system

ml system 의 다이어그램은 위와 같습니다. kubeflow 환경에서 머신러닝과 서비스를 통합하여 관련 서비스를 제공합니다. worker은 한 번의 실험에서 최대 90만개의 event 를 발행합니다.

Skill

language & framework

Go Python tensorflow
Go Python Tensorflow

data streaming

Kafka
kafka

Pinned

  1. fetch-server.v1 fetch-server.v1 Public

    Goboolean 프로젝트의 stock-fetch-server 입니다.

    Go

  2. fetch-system.master fetch-system.master Public

    Goboolean 프로젝트의 Fetch Server 리포지토리입니다. (deprecated)

    Go

  3. fetch-system.worker fetch-system.worker Public

    Go 1

  4. fetch-system.IaC fetch-system.IaC Public

    Go

  5. core-system.worker core-system.worker Public

    Go

  6. manager-cli manager-cli Public

    Goboolean 프로젝트의 manager-cli 입니다.

    Makefile

Repositories

Showing 10 of 18 repositories

Top languages

Loading…

Most used topics

Loading…