์ด์ ์ฝ์ธ์์ ๊ดํ ๊ธฐ์ฌ๋ฅผ ์ฝ์์ต๋๋ค.
์ํธํํ ๊ฑฐ๋์ ์ฝ์ธ์(๋ํ ์ฐจ๋ช ํ)์ด ๋๊ท๋ชจ ํฌ์๋ฅผ ํตํด ์๋ฒ ์์ง ์ ๋ฌธ๊ธฐ์ ์์ดํํฉํ ๋ฆฌ(๋ํ ๋ฌธ๋๊ฒฝ) ๊ฒฝ์๊ถ์ ์ธ์ํ๊ณ , ์์ฌ๊ฐ ๊ณต๋ ๊ฐ๋ฐํ โ์ฝ์ธ์ ์ฝ์ด(Coinone Core, https://coinonecore.com)โ๋ฅผ ํตํด ๊ฑฐ๋ ์์ง ์๋ฃจ์ ์ฌ์ ์ ์ง์ถํ๋ค๊ณ 3์ผ ๋ฐํ๋ค. ์ฝ์ธ์์ ์ด๋ฒ ์์ดํํฉํ ๋ฆฌ์ ๋ํ ํฌ์๋ฅผ ํตํด ์์ ์ ์ธ ์๋ฒ ๊ธฐ์ ๋ ฅ์ ํ๋ณด, ์๋ก์ด ์ฌ์ ์์ญ์ผ๋ก์ ํ์ฅ์ ๋ชจ์ํ ์ ์๊ฒ ๋๋ค๊ณ ์ค๋ช ํ๋ค. ์์ดํํฉํ ๋ฆฌ๊ฐ ์งํํ๊ณ ์๋ ๊ฒ์ ์์ง ์๋ฒ ์ฌ์ ์ ์ ๊ท ์ฌ์ ๊ณผ ๋ฌด๊ดํ๊ฒ ๊ณ์ ์งํํ ์์ ์ด๋ค. ์ฝ์ธ์ ์ญ์ โ์ฝ์ธ์ ์ฝ์ดโ์ ๋ณ๊ฐ๋ก ์์ดํํฉํ ๋ฆฌ๊ฐ ๊ธฐ์กด์ ์งํํ๊ณ ์๋ ๊ฒ์ ์ฌ์ ์ด ์ฑ์ฅํ ์ ์๋๋ก ํ์กฐํ ์์ ์ด๋ค.์ฝ์ธ์์ ๋ฐ๋ฅด๋ฉด โ์ฝ์ธ์ ์ฝ์ดโ๋ ์ฝ์ธ์์ ๊ฑฐ๋์ ๊ตฌ์ถ ๋ฐ ์ด์ ๊ฒฝํ๊ณผ ์์ดํํฉํ ๋ฆฌ์ ๋๊ท๋ชจ ๋ถ์ฐ ์ฒ๋ฆฌ ๊ธฐ์ ์ญ๋์ด ์ตํฉ๋ ์์ง ์๋ฃจ์ ์ด๋ค. โ์ฝ์ธ์ ์ฝ์ดโ๋ ์๋ฐฑ ๋์ ์๋ฒ๋ก ์ํ ํ์ฅ์ด ๊ฐ๋ฅํ ๋ถ์ฐ ์์คํ ์ ๊ฐ์ท์ผ๋ฉฐ, ์๋น์ค ์ค๋จ ์์ด ๊ฑฐ๋ ์์ง ํ์ฅ ๋ฐ ์ ๊ท ์ฝ์ธ ์์ฅ ์๋น์ค๋ ์ง์ํ๋ค.๊ฑฐ๋ ์๋ฒ์ ๊ฒฝ์ฐ ๋จ์๊ฐ์ ์๋ง์ ์์ฒญ์ ์ฒ๋ฆฌํด์ผ ํ๋๋ฐ, โ์ฝ์ธ์ ์ฝ์ดโ๋ ์ด๋น 300๋ง ๊ฑด ์ด์ ์ฒด๊ฒฐ ์ฒ๋ฆฌ๊ฐ ๊ฐ๋ฅํ๋ค. ๋์๋ณด๋ ๊ธฐ๋ฅ์ ์ ๊ณตํด ๊ฑฐ๋ ์๋ฒ์ ์ํ๋ฅผ ํ๋์ ํ์ ํ ์ ์๋ค. ์ํธํํ ๊ฑฐ๋์ ์ด์์ ์์ด ์์ ์ ์ธ ์๋ฒ ์ด์์ ๊ฐ์ฅ ์ค์ํ ์์ ์ค ํ๋๋ก, ์ฝ์ธ์์ โ์ฝ์ธ์ ์ฝ์ดโ๋ฅผ ํตํด ์ฆ๊ถ์ฌ ์์ค ์ด์์ ์ฒด๊ฒฐ ์์ง์ ํ๋ณดํ๊ฒ ๋๋ค๊ณ ์ค๋ช ํ๋ค.
์ฝ์ธ์ ์ฐจ๋ช ํ ๋ํ๋ โ์ฝ์ธ์์ ์์ดํํฉํ ๋ฆฌ์์ ๊ณต๋ ํ๋ก์ ํธ ์งํ์ ํตํด ์ฅ๊ธฐ์ ์ธ ์ฌ์ ์ ํ๋ ฅ์ ๊ฐ๋ฅ์ฑ์ ํ์ธํ๋คโ๋ฉฐ, โ์์ฌ์ ํ์ ์ผ๋ก ๊ตฌํํ โ์ฝ์ธ์ ์ฝ์ดโ๋ ํฅํ ์ฝ์ธ์๊ณผ ์์ดํํฉํ ๋ฆฌ๊ฐ ํ ๋จ๊ณ ๋ ์ฑ์ฅํ ์ ์๋ ์๋ฏธ ์๋ ๋ฐ๋ฐํ์ด ๋ ๊ฒ์ด๋คโ๊ณ ์ ํ๋ค. ์์ดํํฉํ ๋ฆฌ ๋ฌธ๋๊ฒฝ ๋ํ๋ โ์๋ ๊ฐ ์ถ์ ๋ ์์ฌ์ ๋ ธํ์ฐ์ ๊ธฐ์ ๋ ฅ์ ๊ฑฐ๋ ์์ง ์์ญ์์๋ ์ง๊ฐ๋ฅผ ๋ฐํํ ๊ฒ์ด๋คโ๋ฉฐ, โ์์ฌ๊ฐ ์์์จ ์ ๋ฌธ์ฑ์ด ๋ง๋ ํญ๋ฐ์ ์ธ ์๋์ง๊ฐ ๋ง๋ค์ด์ง๊ธธ ๊ธฐ๋ํ๋คโ๊ณ ์ ํ๋ค
์ฝ์ธ์, ์ํธํํ ๊ฑฐ๋ ์์ง ์๋ฃจ์ ์ฌ์ ์ง์ถ์ค์์
๋ฐ์ผ๋ฆฌ๊ธ์ต๊ทธ๋ฃน์ด ๋ง๋ ์ฝ์ธ์, โ์ฝ์ธ์ ์ฝ์ด' ์์ง ์๋ฃจ์ ์ฌ์ ์ง์ถ๋ผ๋ ๋ณด๋์๋ฃ๋ก ์ด ๊ธฐ์ฌ์ ๋๋ค๋ง ๋ฌด์์ ์ค๋ช ํ๋์ง ์ ๋งคํฉ๋๋ค. ์ํธํตํ๊ฑฐ๋์์ ๋ฐ๋์ ํ์ํ ๋งค๋งค์ฒด๊ฒฐ์์ง์ ์๋ฅ์ ์ผ๋ก ํ๋งคํ๋ค๋ ๊ฒ์ธ์ง, ์๋๋ฉด ์ํธํตํ๊ฑฐ๋์ ์ ์ฒด๋ฅผ ์๋ฅ์ ์ผ๋ก ํ๋งคํ๋ค๋ ๊ฒ์ธ์ง ์ ๋งคํฉ๋๋ค.
ํน์๋ ํด์ ๊ฒ์์ ํ๋๊น ์ฝ์ธ์ฝ์ด ํํ์ด์ง์ ์๋ฅ์ ์ค๋ช ์๋ฃ๊ฐ ์๋๊ตฐ์. ํํ์ด์ง ์ด๊ธฐํ๋ฉด์ ๊ฑธ๋ฆฐ ๊ด๊ณ ๋ฌธ๊ตฌ์ ๋๋ค.
State-of-the-art Trading Engine Matching engine is the core to run successful crypto exchanges.
[gview file="http://www.smallake.kr/wp-content/uploads/2018/09/Coinone-Core-Intro-2018-08-29.pdf"]
์๋ฃ๋ฅผ ๋ณด๋๊น Order Type์ด๋ Monitoring, API์ ๊ฐ์ด ์ด์๊ฒฝํ์ด ๋ น์๋ ๊ธฐ๋ฅ์ด ๋ณด์ ๋๋ค. ๋ค๋ง ์ฃผ๋ฌธ/์ฒด๊ฒฐ๊ณผ ์์ธ๋ฅผ ์ด๋ป๊ฒ ๋ค๋ฃจ๋์ง๋ ๋ช ํํ์ง ์๋ค์. ์๋ฃ๋ฅผ ์ฝ์ผ๋ฉด์ ๊ฐ์ฅ ๊ถ๊ธํ ์ ์ ๋ฐ์ดํ์ ๊ด๋ จํ ๋ถ๋ถ์ด์์ต๋๋ค. ํํ๋ค ๊ฑฐ๋์์ ๋ฌด์ค ๋งค์นญ์ ๋ฌด๋ฅผ ๋ฌด์ฒ ์ค์ํ๋ค๊ณ ์๊ฐํ๊ณ ํต์ฌ๊ธฐ์ ๋ก ์ด์ผ๊ธฐํ์ง๋ง ์กฐ๊ธ ์ดํด๋ณด๋ฉด ๋ฌด์ฒ ๋ง์ ์ฐธ๊ณ ์๋ฃ๋ค์ด ์์ต๋๋ค. ๋ํ์ ์ธ ๊ฒ์ด Objectcomputing/Liquibook:Modern C++ order matching engine์ ๋๋ค. ์ด๋น ์ด๋ฐฑ์์ ์ด๋ฐฑ์ค์ญ๋ง๊ฑด์ ์ฒ๋ฆฌํ๋ค๊ณ ํฉ๋๋ค.
Liquibook is written in C++ using modern, high-performance techniques. This repository includes the source of a test program that can be used to measure Liquibook performance. Benchmark testing with this program shows sustained rates of 2.0 million to 2.5 million inserts per second.
LiquidBook๋ Memory๋ก Limit Orderbook์ ๊ด๋ฆฌํ๋๋ฐ CoinoneCore๋ ์ด์ ๋ํ ์ธ๊ธ์ด ๋ช ํํ์ง ์๋ค์. ๋๊ฐ์ง ๊ทธ๋ฆผ์ด ๊ฐ๋ฅํฉ๋๋ค.
์ฒซ์งธ๋ Limit Orderbook์ ์ฒญ์ฐ๊ฒฐ์ ์ฒ๋ฆฌ์ ๊ฐ์ ํ์ ์ ๋ฌด์ฉ ๋ฐ์ดํ๋ฅผ ๋ถ๋ฆฌ๊ด๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ๋๋ค. ๊ธ์ต์์ฅ์ ๊ฑฐ๋์์ ๋ฌ๋ฆฌ ์ํธํตํ๊ฑฐ๋์๋ ์ฒด๊ฒฐ ์ฆ์ ์ฒญ์ฐ๊ฒฐ์ ์ฒ๋ฆฌ๋ฅผ ํ์ฌ์ผ ํฉ๋๋ค. T+1๊ณผ ๊ฐ์ ๊ท์น์ ์ ์ฉํ ์ ์๊ณ ๋ฌด์กฐ๊ฑด ์ค์๊ฐ์ด์ด์ผ ํฉ๋๋ค. ๋งค์นญ์ฒ๋ฆฌ๋ฅผ ํ ๊ฒฐ๊ณผ๋ฅผ ๋ฉ์์ง๊ณผ ๊ฐ์ ๋ฐฉ์์ผ๋ก ๋ฐฑ์คํผ์ค์์คํ ์ด ์ฒ๋ฆฌํ๋๋ก ์ธํฐํ์ด์ค๋ฅผ ์ค๊ณํ ์ ์์ต๋๋ค.
๋์ฌ๋ Limit Orderbook๊ณผ ํ์ญ์ ๋ฌด์ฉ ๋ฐ์ดํ๋ฅผ ํตํฉ๊ตฌ์ถํ๋ ๋ฐฉ๋ฒ์ ๋๋ค. ๋ฐ์ดํ์ ์์ ์ฑ๋๋ฌธ์ Shared Memory ๋ณด๋ค๋ In Memory DBMS๋ฅผ ์ ํํ ์ฌ์ง๊ฐ ๋์ต๋๋ค.
์๋ฃ๋ง ๋๊ณ ๋ณด๋ฉด ์ฒซ์งธ์ ๋ชจ์์ ์ ํํ ๋ฏ ํฉ๋๋ค. ๋ฌผ๋ก ์ถ์ธก์ ๋๋ค.
์ด๋ค ๊ทธ๋ฆผ์ ํํ๋๋ผ๋ ์๋ฅ์ ์๊ฐ์๊ฐ ์ฌ์ฉํ๋ ๊ฐ๋ ์ธ Scaling Out, Fail-Safe๊ฐ ๋ฌ๋ฆฌ ํด์ํ์ฌ์ผ ํฉ๋๋ค. ์ค์๊ฐ์ฒญ์ฐ๊ฒฐ์ ๋ฅผ ํ์ฌ์ผ ํ๋ ์ํธํตํ๊ฑฐ๋์์์ Scaling Out๊ณผ Fail Safe๋ฅผ ์ธ๊ธํ ๋ ๋งค์นญ๊ณผ ์ฒญ์ฐ๊ฒฐ์ ์ ๋ฌด๋ฅผ ๋ถ๋ฆฌํ ์ ์์ต๋๋ค. ํ์ฅ์ฑ๊ณผ ์์ ์ฑ์ ๋งค์นญ์ด ์๋๋ผ ์์คํ ์ ์ฒด์ ์ ์ฉํ์ฌ์ผ ์ ๋ขฐํ ์ ์๋ ์์คํ ์ด๊ธฐ๋๋ฌธ์ ๋๋ค. ํํ๊ณผ ๊ฐ์ ์์ฅ์กฐ์์ด ์์ฃผ ๋ฐ์ํ๋ ์ํธํตํ์์ฅ์์ ๋งค์นญ๋ง ์ค์ผ์ผ์์ํ์๋ค๊ณ ์์คํ ์ ์์ ์ฑ์ด ๋์์ง์ง์์ต๋๋ค. ์ ์ฒด๋ ๋ถ๋ถ์ด ๋ชจ์ฌ์ ์ด๋ฃจ์ด์ง์ง๋ง ๋ถ๋ถ์ ์ฐ์ ์ ์ธ ํฉ์ด ์ ์ฒด๊ฐ ์๋๋๋ค.
์ฃผ๋ณ์ ๋ณด๋๊น ์ํธํตํ๊ฑฐ๋์๋ฅผ ์์ถํ๋ ํ์ฌ๋ค์ด ๋ง๋๊ตฐ์. ์๋ฅ์
์ผ๋ก ํ๋ ๊ณณ๋ ์๊ณ SI๋ก ํ๋ ๊ณณ๋ ์์ต๋๋ค. ์ด๋ ๊ฒฝ์ฐ์ด๋ ํ์ฅ์ฑ๊ณผ ์ ๋ขฐ์ฑ์ ์ ๊ณตํ๋ ๊ธฐ์ ์ ๊ตฌ์กฐ์ด๊ธธ ๋ฐ๋๋๋ค.