⚙️ 매칭 엔진 Matching Engine
거래소의 핵심 소프트웨어로, 호환되는 매수·매도 주문을 실시간으로 연결해 자동으로 체결해 줘요. '매수' '매도' 버튼 뒤에서 실제로 돌아가는 기계예요.
🛎️ 쉽게 풀면 — 자동화된 번호표 창구
정육점 번호표 창구와 경매를 합쳐 놓은 모습을 상상해 봐요. 거래하고 싶은 사람마다 번호를 뽑고 가격을 외칩니다. 엔진은 가장 좋은 가격을 먼저 처리하고, 같은 가격끼리는 번호를 먼저 뽑은 사람 순서로 처리해요. 이게 바로 매칭 엔진이 하는 일인데, 사람 손 하나 안 거치고 수천 개의 주문을 순식간에 처리해요. 대기 중인 모든 주문(매수 호가와 매도 호가를 가격순으로 정렬한 목록)이 오더북이에요. 오더북은 사람들이 '원하는 것'을 보여주고, 매칭 엔진은 누가 실제로 '거래하는지', 그리고 어떤 가격에 체결되는지를 결정해요.
🔁 주문을 넣으면 무슨 일이 벌어지나요?
매수 또는 매도 버튼을 누르는 순간, 내 주문이 접수되고 정확한 시각이 찍혀요. 그러면 엔진이 오더북을 훑으며 내 가격과 겹치는 상대방을 찾아요. 새 매수 주문은 내 가격 이하의 가장 낮은 매도 호가를 찾고, 새 매도 주문은 내 가격 이상의 가장 높은 매수 호가를 찾아요. 가격이 교차하면 바로 체결돼요. 맞는 상대가 없으면 내 주문은 오더북에서 대기하다가 나중에 들어오는 주문을 기다려요.
📏 기본 규칙 — 가격 우선·시간 우선
대부분의 거래소는 가격 우선·시간 우선(FIFO, First-In First-Out) 방식으로 매칭해요. 단 두 가지 우선순위가 전부를 좌우해요.
| 규칙 | 의미 |
|---|---|
| 💰 가격 우선 | 가장 낮은 매도 호가와 가장 높은 매수 호가가 다른 것보다 먼저 체결돼요 |
| ⏱️ 시간 우선 | 같은 가격의 주문끼리는 먼저 들어온 주문이 먼저 체결돼요 |
📊 가격 우선·시간 우선이 기본값이지만 유일한 방식은 아니에요. 일부 시장은 같은 가격 주문을 수량 비율로 분배하는 Pro-Rata 방식 등을 쓰기도 해요. 입문자라면 '가장 좋은 가격이 이기고, 같은 가격이면 먼저 온 것이 이긴다'만 기억해도 충분해요.
🧩 전량 체결과 부분 체결
주문은 반대편에 맞는 유동성이 있는 만큼만 체결돼요. 예를 들어 코인 10개를 사려는데 내 가격에 맞는 매도 물량이 6개뿐이라면, 엔진은 6개를 먼저 체결하고 남은 4개는 새로운 매도 주문이 나타날 때까지 오더북에서 기다려요. 이게 부분 체결이에요. 큰 주문이 가격을 움직이는 것도 이 때문이에요. 가장 저렴한 매도 물량이 소화되면 엔진은 더 비싼 쪽으로 올라가야 하고, 이게 슬리피지로 나타나요.
🏦 나한테 왜 중요한가요?
중앙화 거래소에서 내가 넣는 모든 시장가 주문과 지정가 주문은 매칭 엔진을 거쳐요. 중앙화 거래소는 매우 빠른 오프체인 엔진을 돌려 초당 엄청난 거래량을 소화하는데, 그래서 체결이 즉각적으로 느껴지는 거예요. 다만 엔진을 정직하게 운영하고 내 자산을 관리해 주는 거래소를 신뢰해야 하는 구조예요.
🚫 매칭 엔진이 없는 세계
초보자들이 많이 놓치는 부분이에요. 매칭 엔진은 하나의 방식일 뿐, 유일한 방식이 아니에요. Uniswap 같은 AMM 기반 자동화 마켓 메이커(AMM)는 오더북도 매칭 엔진도 없어요. 다른 트레이더와 연결해 주는 대신, 공유 유동성 풀과 수학 공식으로 가격을 계산해 체결해요. '오더북 + 매칭 엔진'은 대부분의 중앙화 거래소 이야기이고, 크립토 거래의 상당 부분은 엔진 없이 돌아가요. 두 세계를 나란히 비교하려면 CEX vs DEX를 참고해 봐요.
❓ 자주 묻는 질문
- 거래소 직원이 내 거래 상대방을 직접 정해주나요?
- 아니요. 매칭은 완전 자동·규칙 기반으로 이루어집니다. 엔진은 가장 좋은 가격을 먼저 체결하고, 같은 가격이면 먼저 들어온 주문을 우선합니다. 어떤 사람도 내 거래 상대방을 지정하거나 가격을 정하지 않아요.
- 모든 크립토 거래에 매칭 엔진이 쓰이나요?
- 아니요. 오더북 방식 거래소는 매칭 엔진을 쓰지만, Uniswap 같은 AMM 기반 DEX는 오더북도 매칭 엔진도 없어요. 대신 유동성 풀과 수학 공식으로 가격을 계산해 체결합니다.
- 내 주문이 한 번에 다 체결되지 않은 이유가 뭔가요?
- 주문은 반대편에 맞는 유동성이 있는 만큼만 체결됩니다. 내 가격에 맞는 물량이 부족하면 일부만 먼저 체결되고, 나머지는 오더북에 남아 새 주문이 들어올 때까지 기다려요.