๋ฐ์ดํฐ ๋ถ์ ํ์ฑ๊ณผ ์ ์ ์๊ณ์น ํด๊ฒฐ์ ํตํ ํธ๋ ์ด๋ฉ ์์คํ ์์ ์ฑ ํ๋ณด
๐ From Zero to Hero: Dodging the Dark Side of Trading System Bugs (A Jediโs Guide)
AI ์์ฝ
Context
์ค์๊ฐ WebSocket ํผ๋์ ์์ ๋ณด์ฅ ๋ถ์ฌ์ ์ ์ ์๊ณ์น ์ค์ ์ผ๋ก ์ธํ ์์คํ ์ค์๋ ๋ฐ์. ๋คํธ์ํฌ ์งํฐ(Network Jitter)์ ์์ฅ ๋ณ๋์ฑ ๊ธ์ฆ ์ ์๋ชป๋ ์ฃผ๋ฌธ ์คํ ๋ฐ API Rate Limit ์ด๊ณผ๋ผ๋ ๊ตฌ์กฐ์ ํ๊ณ ๋ ธ์ถ.
Technical Solution
- Timestamp ๊ธฐ๋ฐ์ Min-Heap ๋ฒํผ๋ฅผ ๋์ ํ์ฌ ์์๊ฐ ๋ค์์ธ Tick ๋ฐ์ดํฐ์ ์ ๋ ฌ ๋ฐ ์ต์ ์ฑ ๋ณด์ฅ
- ๊ณ ์ ๋น์จ ์๊ณ์น ๋์ ATR ๋ฐ ํ์คํธ์ฐจ ๊ธฐ๋ฐ์ Adaptive Threshold๋ฅผ ์ ์ฉํ์ฌ ์์ฅ ๋ณ๋์ฑ์ ๋์ํ๋ ๋์ ๋ฐด๋ ์ค๊ณ
- ์ฃผ๋ฌธ ์ ์ถ ๋จ๊ณ์ Idempotency ์ฒดํฌ ๋ก์ง์ ๊ตฌํํ์ฌ ์ค๋ณต ์ ํธ ๋ฐ์ ์์๋ ๋จ์ผ ์ฃผ๋ฌธ๋ง ์คํ๋๋ ๋ณด์ฅ ์ฒด๊ณ ๊ตฌ์ถ
- ์๊ฐ ์๋์ฐ ์ฌ๋ผ์ด์ฑ ๊ธฐ๋ฒ์ ํตํ ๋ฐ์ดํฐ ์ ์ ๊ณผ์ ์ผ๋ก ์ ๋ต ์ฐ์ฐ์ ์ ๋ ฅ ๋ฐ์ดํฐ ์ผ๊ด์ฑ ํ๋ณด
- ์ ํธ ๋ฐ์๊ณผ ์ฃผ๋ฌธ ์คํ ๊ณ์ธต์ ๋ถ๋ฆฌํ์ฌ ์ํ ๊ธฐ๋ฐ์ ์ฃผ๋ฌธ ๊ด๋ฆฌ ์์คํ ์ผ๋ก ์ ํ
์ค์ฒ ํฌ์ธํธ
- ์ค์๊ฐ ์คํธ๋ฆผ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ์ ์์ ์์๊ฐ ์๋ ์ด๋ฒคํธ ํ์์คํฌํ ๊ธฐ์ค์ ์ ๋ ฌ ๋ฒํผ ๊ตฌํ ์ฌ๋ถ ๊ฒํ - ์์ฅ ์ํฉ์ ๋ฐ๋ผ ๋ณํ๋ ์งํ์ ๋ํด ์ ์ ์์(Static Constant)๊ฐ ์๋ ํต๊ณ์ ๋ณ๋์ฑ ๊ธฐ๋ฐ์ ๋์ ์๊ณ์น ์ ์ฉ - ์ธ๋ถ API ํธ์ถ ๋ฐ ์ฃผ๋ฌธ ์์คํ ์ค๊ณ ์ ์ค๋ณต ์์ฒญ์ ๋ฐฉ์งํ๋ Idempotency Key ๋๋ ์ํ ๊ฒ์ฆ ๋ก์ง ํ์ ์ ์ฉ