Monthly Archives: May 2019

거래소 개발중 – 기술 검토 결과

어쩌다가 거래소 개발을 하게 됐는데
컴포넌트별 기술을 검토 해 봤다.

컴포넌트

  • API – REST
  • API – WS
  • MessageLogging
  • Orderbook
  • Matching
  • PNL
  • ….

기술검토 항목

  • Elixir
    데이빗 거래소에서 썼다고 해서… 얼랭계열로 안정성이 뛰어나지만 타 언어와 연계해서 사용할 경우 액터모델을 제대로 활용하지 못할 것 같아서 제외
  • Akka – Scala
    그냥제외
  • Spring – Kotlin
    ReactiveAPI
  • node.ts
    이게 정말 애매하다…
    데이터를 전달하는 용도로는 정말 뛰어난데
    직접 핸들링할 때는 자료구조 지원도 약하고
    싱글스레드가 오히려 발목을 잡는다
    atomic, synchronized가 필요한 경우도 있으니…
    api나 데이터 전달하는 용도로만 활용해야할까

마이크로 서비스와 메시지 브로커(kafka)를 사용하고 있어서 특정 언어나 플랫폼에 종속되지 않는 구조를 생각하고 개발중

역시 노드는 간단한거 만들기는 좋다.
복잡한 시스템을 만드는 것은 좀 곤란한걸로…
노드는 데이터 스트림을 처리하는데는 효율적이나
데이터를 조합해서 처리하는 상황이라면 안쓰는게 좋을 것 같다.
기본적으로 지원되는 자료구조가 약한것도 문제
커뮤니티 라이브러리가 많은 부분을 채워주지만 이거 믿어도 되나 싶은것들이 상당수