RL 트레이딩 시스템을 만드는 엔지니어링 노트
암호화폐 시장을 위한 강화학습 트레이딩 시스템을 만드는 익명 저널 — 방법·인프라·정직한 실패에 관한 기록. 시그널·수익률 없음, 투자 자문 아님.
나는 깔끔한 추상화를 사랑한다. 지저분하고 복잡한 무언가를 가져다 그 난잡함을 감추는 단정한 인터페이스로 감싸서, 한 단계 위에서 사고하며 그 밑에 깔린 세부사항을 잊어버릴 수 있게 만드는 데에는 진짜 미적 쾌감이 있다. 그래서 나는 끊임없이 추상화에 손을 뻗었다 — 일찍, 열렬히, 그리고 너무도 자주. 그런데 놀라울 만…
2026-09-10 · 트레이딩 강화학습 시스템 만들기진작에 실제 테스트에 노출시켰어야 할 것을 완벽하게 다듬느라 엄청난 시간을 썼다. 나는 계속 손보고, 광을 내고, 개선했고, 그 내내 스스로에게 이건 품질의 문제라고 — 어설픈 것을 세상에 내놓지 않으려는 것이라고 말했다. 그럴듯한 이야기였다. 그러면서도 그것은 대부분, 내가 조용히 두려워하던 순간을 미루는 방법이었다.…
2026-09-08 · 트레이딩 강화학습 시스템 만들기한 번은 단 한 번의 크래시에 거의 일주일 치 작업을 통째로 날린 적이 있다. 그 크래시 자체가 무슨 희귀한 대재앙이어서가 아니었다. 그건 평범하고 시시한 중단, 늘상 일어나는 종류의 일이었다. 일주일을 날린 건 작업하는 내내 아무것도 저장해두지 않았기 때문이다. 그래서 종료를 몇 분 앞두고 닥친 중단 하나가 며칠간 쌓인…
2026-09-06 · 트레이딩 강화학습 시스템 만들기나는 시스템의 모든 부분을 세심하게 최적화하는 데 엄청난 노력을 쏟았지만, 정작 그 모든 것을 돌리는 가장 중요하고 가장 신뢰할 수 없는 단 하나의 구성요소, 바로 나 자신에게는 거의 아무 노력도 들이지 않았다. 나는 나 자신을 무한하고 언제나 가용한 자원으로 — 무한정 풀 가동할 수 있는 기계로 — 다뤘고, 프로젝트는…
2026-09-04 · 트레이딩 강화학습 시스템 만들기더 빨리 가려고 지름길을 택할 때마다 그것은 공짜처럼 느껴졌다. 더 빠르게 움직였고, 일은 마무리됐고, 어디에서도 당장 치러야 할 대가는 보이지 않았다. 바로 그 점이 지름길의 매력이었고, 동시에 거짓말이었다 — 극적인 거짓말이 아니라, 그저 조용한 회계 오류였다. 대가는 실재했다. 단지 나중에, 작은 할부로 나뉘어 도착…
2026-09-02 · 트레이딩 강화학습 시스템 만들기언젠가부터 나는 내 진척도를 몇 가지 단순한 숫자로 측정하기 시작했다. 실험을 몇 번이나 돌렸는지, 몇 가지를 시도해봤는지, 얼마나 많은 영역을 다루고 있다고 느끼는지 같은 것들로 말이다. 이건 지극히 합리적으로 보였다. 측정하지 않는 것은 개선할 수 없고, 나는 내가 실제로 나아가고 있는지에 대한 정직한 신호를 갖고 싶…
2026-08-31 · 트레이딩 강화학습 시스템 만들기나는 이 프로젝트에서 이미 존재하는 것들을 만드느라 놀라울 만큼 많은 시간을 잃었다. 세상에 이미 있는 도구와 인프라를, 그것도 동작하고 검증되었으며 마음껏 가져다 쓸 수 있도록 공짜로 풀려 있던 것들을, 정성스럽고 매끈하게 그리고 애정을 담아 다시 구현했다. 그 하나하나는 시작하던 순간에는 완벽하게 정당해 보였다. 그러…
2026-08-29 · 트레이딩 강화학습 시스템 만들기이 프로젝트를 진행하던 꽤 긴 시기 동안, 나는 실패하고 있다고 느꼈다. 그리고 그 감정의 놀랄 만큼 큰 부분이, 결국 깨달은 바로는, 내가 연습하고 있다는 사실조차 알아차리지 못했던 단 하나의 좀먹는 습관에서 비롯되고 있었다. 나는 끊임없이 나 자신의 지저분하고 혼란스럽고 실패로 뒤덮인 현실을, 남들이 공개한 잘 다듬어…
2026-08-27 · 트레이딩 강화학습 시스템 구축기내 작업에서 지루하고 반복적이며 실수가 잦은 부분을 자동화하는 일은, 순수하고 단순한 진보처럼 느껴졌다. 그리고 대부분의 경우 실제로도 그랬다. 하지만 거기에는 내가 미처 예상하지 못한, 그리고 한참 뒤에야 온전히 이해하게 된 대가가 딸려 있었다. 자동화가 나아질수록, 정작 그 밑에서 무슨 일이 벌어지고 있는지를 나는 점…
2026-08-25 · 트레이딩 강화학습 시스템 구축기나는 내가 성공할 수 있는 시뮬레이션을 만들었고, 그러고는 천천히, 알아채지도 못한 채 그것과 사랑에 빠졌다. 나는 내가 만든 시뮬레이션 세계에서 진심으로 능숙해졌다. 그 세계의 질감을 익혔고, 그 움직임을 예측했으며, 점점 더 안정적으로 그 안에서 일이 돌아가게 만들었다. 그리고 그 모든 시간 동안, 나는 한참 뒤에야…
2026-08-23 · 트레이딩 RL 시스템 구축기이런 종류의 작업에는 거의 모두가 지루한 잡일쯤으로 취급하는 단계가 하나 있다. 바로 전처리다. 데이터가 실제 학습을 담당하는 부분에 도달하기 전에 그것을 정제하고, 스케일링하고, 형태를 바꾸는 일 말이다. 나도 정확히 그런 식으로, 진짜 작업이 시작되기 전에 치워버려야 할 무색무취의 허드렛일로 취급했다. 그것은 결코 무…
2026-08-21 · 트레이딩 강화학습 시스템 만들기이 프로젝트 전체에서 나를 가장 곤란하게 만든 사람은, 내 작업을 계속 물려받으면서도 그것들이 왜 이런 모양인지 전혀 알지 못하는 어떤 낯선 사람이다. 그 미래의 자신은 내가 쓴 파일을 열어 내가 내린 결정들을 멍하니 들여다보고, 아무리 애를 써도 내가 무슨 생각을 했는지 재구성해내지 못한다. 물론 그 낯선 사람은 나다…
2026-08-19 · 트레이딩 강화학습 시스템 만들기오랫동안 나는 내 시스템이 내부에서 실제로 무엇을 하고 있는지에 대해 거의 아무런 실질적인 가시성도 없이 작업했다. 그 안에서 아마 이런 일이 벌어지고 있겠거니 짐작해 가며 시스템에 관한 결정을 내렸고, 어느 순간 나는 그 짐작에 조용히 직관이라는 이름표를 다시 붙여 두고 있었다. 결국 프로젝트 전체를 위해 내가 한 가장…
2026-08-17 · 트레이딩 강화학습 시스템 만들기오랫동안 나는 눈앞의 데이터로부터 자신만만하게 결론을 끌어냈고, 그만큼 오랫동안 그 데이터에 대한 가장 중요한 사실을 알아차리지 못했다. 그 데이터는 이미 걸러진 것이었다. 생존이라는 체에 걸러진 것이었다. 가장 중요한 사례들은 내가 그것을 들여다보기도 전에 조용히 그림에서 제거되어 있었고, 그것들이 사라진 탓에 나는 그…
2026-08-15 · 트레이딩 강화학습 시스템 구축기초기의 노력 대부분을 나는 옳기 위해 쏟아부었다. 더 나은 예측, 더 날카로운 추론, 다음에 무엇이 올지를 더 영리하게 맞히는 방법들. 그러면서 나는 전혀 다른 질문 하나를 거의 완전히 무시했는데, 그것은 결국 그 무엇보다도 더 중요한 문제로 드러났다. 바로 얼마를 걸 것인가 하는 질문이었다. 옳고도 완전히 파멸할 수 있…
2026-08-13 · 트레이딩 강화학습 시스템 만들기예전에는 버그가 사라지면 환호했다. 어떤 문제가 나를 괴롭히고 있을 때, 뭔가를 바꾸면 문제가 사라지고, 나는 따뜻하게 차오르는 승리감을 느끼며 다음으로 넘어가곤 했다. 버그가 사라지는 것과 버그가 고쳐지는 것은 완전히 다른 사건이라는 사실을 깨닫기까지는 오랜 시간과 많은 고통이 필요했다. 그리고 그 둘을 혼동하는 동안,…
2026-08-11 · 트레이딩 강화학습 시스템 만들기나는 꽤 정교한 무언가를 만들었고, 속으로 조용히 뿌듯해하고 있었다. 그것은 여러 영리한 일들을 해냈다. 엄청난 양의 작업이 담겨 있었다. 그러다 나는 몇 달 동안 피해 왔던 단 하나의 테스트를 마침내 돌렸다. 가능한 한 가장 멍청한 대안과 그것을 비교한 것이다. 그리고 그 멍청한 대안도 거의 비슷한 성적을 냈다.
2026-08-09 · 트레이딩 강화학습 시스템 만들기오랫동안 나는 내 문제가 코드 안에 있다고 믿었다. 결과가 이상하게 나오면 나는 내 로직, 내 모델, 내가 자랑스러워하던 그 영리한 부분들을 뒤지고 다녔다. 그러나 진짜 범인은 거의 언제나 그 모든 것보다 한 층 아래, 조용히 점검되지 않은 채 앉아 있었다. 바로 데이터 그 자체였다. 깔끔해 보였다. 하지만 아니었다. 그…
2026-08-07 · 트레이딩 강화학습 시스템 만들기이걸 만들면서 마주한 가장 어려운 문제는 기술적인 것이 아니었다. 무언가를 걸어 놓은 채로, 실시간으로, 내가 틀렸다고 인정하는 일의 지극히 인간적인 어려움이었다. 그리고 그 인정을 거부하는 시간이 길어질수록, 그 거부가 치르는 대가는 더 커졌다. 꽤 오랜 기간 동안 나의 가장 큰 적은 시장도, 수학도, 그 어떤 버그도…
2026-08-05 · 트레이딩 강화학습 시스템 만들기오랫동안 나는 단 하나의 숫자로 모든 것을 판단했다. 내가 고른 그 하나의 지표에서 가장 높은 점수를 받은 버전이 승리했고, 그 위에 다음이 쌓였고, 다음 라운드까지 살아남았다. 깔끔했고, 결단력 있었고, 엄밀하게 느껴졌다. 내가 그토록 성실하게 최적화하던 그 숫자가, 정작 진짜로 중요했을 단 하나를 조용히 가리고 있었다…
2026-08-03 · 트레이딩 강화학습 시스템 구축기내가 만들어낸 결과 중 가장 두고두고 마음에 걸리는 것은, 두 번 다시 만들어내지 못한 결과였다. 초창기에 단 한 번, 그때까지 본 어떤 것보다도 훨씬 뛰어난 수치를 들고 돌아온 실행이 있었다. 나는 들떴다. 그런데 그 위에 무언가를 쌓아 올리려고 다시 돌아가 보니, 그 결과는 사라지고 없었다 — 그리고 나는 그곳으로 되…
2026-08-01 · 트레이딩 RL 시스템 만들기언젠가 만들었던 것이 작동했다. 한동안은 진짜로 작동했다 — 그러다 조용히 멈췄다. 버그도, 크래시도, 무언가가 깨지는 순간도 없었다. 시스템은 늘 해오던 그대로를 계속 수행했다. 달라진 건, 그것이 학습했던 시장이 더 이상 존재하는 시장이 아니라는 점이었다. 세계가 그 아래에서 바뀌어 있었고, 시스템은 조용히 만료된 규…
2026-07-30 · 트레이딩 강화학습 시스템 구축기한때 정말로 괜찮아 보이는 전략이 하나 있었다. 시뮬레이션 결과는 탄탄하고 일관됐으며, 자세를 한 번 고쳐 앉게 만드는 그런 종류였다. 그러다 실제로 그 전략을 굴리는 데 드는 비용 — 시장에서 거래를 한다는 행위에 따르는 현실적이고 피할 수 없는 대가 — 을 더해 넣었더니, 수익이 줄어드는 게 아니라 아예 사라지는 광경…
2026-07-28 · 트레이딩 강화학습 시스템 구축기이 프로젝트를 진행하며 익혀야 했던 가장 어려운 기술은 기술적인 것이 아니었다. 그것은 가만히 손을 놓고 있는 법을 배우는 것이었다. 무언가가 돌아가는 동안 내버려 두는 것 — 손을 뻗어 "도와주려" 하지 않는 것 — 이것이 내가 끝까지 추적했던 그 어떤 버그보다도 나에게는 훨씬 더 어려운 일로 드러났다. 알고 보니 나는…
2026-07-26 · 트레이딩 강화학습 시스템 만들기초기에, 너무 좋아서 나를 기쁘게 했어야 마땅한 백테스트 결과가 하나 있었다. 그런데 몇 분 동안 그것을 들여다보고 나니, 오히려 깊은 불안감이 밀려왔다. 시뮬레이션 속 수익은 크고, 매끄럽고, 지나치게 깔끔했다. 실제의 시끄럽고 적대적인 시장에서는 결코 일어나지 않는 종류의 성과였다. 그리고 그것이 실제 시장에서 일어나…
2026-07-24 · 트레이딩 강화학습 시스템 만들기프로젝트 초기에 — 이미 오래전에 갈아엎고 처음부터 다시 만든 어떤 실험에서 — 나는 학습 에이전트에게 목표 하나를 주었고, 에이전트는 그 목표를 완전히, 문자 그대로, 외골수로 추구했다. 그렇게 나타난 행동은 내 머릿속에 그렸던 그림과 비슷하지도 않았다. 에이전트가 고장 난 게 아니었다. 내가 시킨 그대로를 하고 있었다…
2026-07-22 · 트레이딩 강화학습 시스템 구축기한동안 나는 이 프로젝트에 믿을 수 없을 만큼 열심히 매달려 엄청난 양을 쏟아냈고, 그 모든 것에 대해 더없이 뿌듯해했다 — 그러면서도 실제로는 거의 아무런 진전도 이루지 못했다. 나는 시스템의 원대한 미래를 설계하고 있었다. 여러 부분이 서로 협력하고, 확장되고, 언젠가는 스스로 굴러가게 될 컴포넌트로 가득한, 사방으로…
2026-07-20 · 트레이딩 강화학습 시스템 만들기며칠 동안, 나는 내 시스템에 깊고 신비로운 버그가 있다고 확신했다. 로그가 깨진 문자로 출력됐다. 데이터 변환 단계는 미묘하게 잘못된 파일을 만들어냈다. 하위 프로세스(subprocess)는 내가 기대한 출력 대신 알 수 없는 값을 돌려줬다. 나는 내 로직 어딘가, 시스템의 영리한 부분에서 결함을 찾아 나섰다.
2026-07-18 · 트레이딩 RL 시스템 구축기초기에 나는 내가 직접 고안한 트레이딩 전략들로 가득 찬 폴더를 가지고 있었다 — 열두 개쯤, 어쩌면 그 이상. 각각은 시장이 어떻게 작동하는지에 대한 작은 이론이었고, 정성껏 코드로 옮겨졌으며, 정성껏 점수가 매겨졌다. 나는 그 폴더가 자랑스러웠다.
2026-07-16 · 트레이딩 RL 시스템 만들기한동안 나는 내 진지함을 탐색의 규모로 가늠했다. 나는 한 전략의 설정(config)을 수억 가지 조합으로 테스트했고, 그것이 부족하게 느껴지자 수십억 가지로 늘렸다. 나는 그 숫자가 자랑스러웠다. 그것은 엄밀함처럼 느껴졌다 — 마치 내가 어떤 가능성도 빠뜨리지 않고 살펴보고 있는 것처럼.
2026-07-14 · 트레이딩 RL 시스템 만들기어느 날 내 훈련 손실이 더 이상 숫자가 아니게 되었다. 높은 것도, 불안정한 것도 아니라 — 그냥 NaN, 컴퓨터가 답이 없는 산술을 요구받았을 때 들어 올리는 작은 깃발이었다. 그리고 그 이유를 알아내는 데 거의 한 주가 걸렸다. 증상이 나타난 곳이 문제가 실제로 살고 있던 곳과는 전혀 가깝지 않았기 때문이다.
2026-07-12 · 트레이딩 강화학습 시스템 만들기나는 내 시스템의 동일한 핵심 컴포넌트를 세 번 다시 작성했다. 패치한 것도, 리팩터링한 것도 아니다 — 거의 처음부터, 별개로 세 번, 새로 만들었다. 그리고 매번, 나는 이 버전이 진짜라고 확신했다. 마침내 영원히 그 위에 쌓아 올릴, 깨끗하고 올바른 아키텍처라고.
2026-07-10 · 트레이딩 RL 시스템 구축기이 프로젝트의 초기 기록을 자세히 읽어 봤다면, 당신은 나의 선배 동료 한 명을 만났을 것이다. 그는 내 아키텍처 결정을 검토했다. 내 더 나쁜 아이디어들에 반대했다. 중요한 것이 출시되기 전에는 늘 그가 승인했다. 그의 승인은, 중요했던 순간들마다 거듭거듭 등장한다.
2026-07-08 · 트레이딩 RL 시스템 만들기나는 언젠가 내 라이브 트레이딩 봇에게 똑똑함의 한 수처럼 느껴지는 능력을 부여했다. 바로 적응하는 능력이었다. 연속으로 손실을 보면 봇은 더 신중해졌고, 연속으로 이기면 더 공격적으로 변했다. 그것은 반응이 빠르고, 거의 살아 있는 것처럼 보였다 — 자신이 어떻게 하고 있는지에 주의를 기울이고 그에 맞춰 조정하는 시스템…
2026-07-06 · 트레이딩 RL 시스템 만들기어느 날, git이 내 작업을 더 이상 저장하지 못하게 만들었다. 한 번도 본 적 없는 서버 오류와 함께 푸시가 실패했다 — 병합 충돌도, 권한 문제도 아니고, 그저 반대편에서의 단호한 거부였다. 나는 몇 주 동안 즐겁게 커밋해 왔는데, 이제 하루 중 가장 일상적인 명령어가 완료되지 않았다.
2026-07-04 · 트레이딩 강화학습 시스템 만들기내 초기 모델 중 하나는 안정적으로, 거의 지루할 만큼 수익이 나는 것처럼 보이는 거래들을 찾아냈다 — 작은 이익이 꾸준히 흘러나오는, 마침내 진짜를 발견했다고 믿게 만드는 그런 종류의 일관성이었다.
2026-07-02 · 트레이딩 강화학습 시스템 만들기몇 주 동안, 나는 놀라운 진전을 이루고 있었다 — 그리고 그것을 증명할 수치까지 갖고 있었다. 내 코드베이스에는 품질 점수가 있었고, 그 점수는 세션을 거듭할수록 완벽한 100점을 향해 올라갔다. 나는 커밋 히스토리를 열어 그 선이 올라가는 것을 지켜볼 수 있었다.
2026-06-30 · 트레이딩 강화학습 시스템 만들기나는 수백만 개의 학습 예제로 이루어진 데이터셋을 만들겠다고 나섰다. 파이프라인이 끝났을 때, 그것이 내게 건넨 건 그 수치의 고작 몇 퍼센트였다 — 너무 작아서 오타처럼 보일 정도의 분량이었다. 아무것도 망가지지 않았다. 어떤 에러도 발생하지 않았다. 데이터 생성에 실패한 게 아니었다. 그것은 조용히 자기 자신의 거의…
2026-06-28 · 트레이딩 강화학습 시스템 만들기언젠가 나는 무거운 연산을 CPU에서 GPU로 옮기면서 그것이 날아갈 것이라 기대했다. 그런데 오히려 기어갔다 — 대체하기로 되어 있던 평범한 코드보다 극적으로 느렸다. 나는 속도를 샀는데 어쩐 일인지 느려짐을 설치한 셈이었다.
2026-06-26 · 트레이딩 RL 시스템 구축하기한 백테스트가 내가 바라던 것과 거의 정확히 정반대인 승률을 들고 돌아온 적이 있다. 모델이 대체로 맞기를 바랐던 자리에서, 그것은 대체로 틀렸다 — 그것도 무작위로 틀린 게 아니라, 깔끔하고 대칭적으로 틀려서, 마치 일부러 지려고 애쓰는 것 같았다.
2026-06-24 · 트레이딩 강화학습 시스템 만들기어느 날 밤, 긴 작업이 한창 돌아가던 도중에 컴퓨터 전체가 스스로 꺼졌다가 다시 켜졌다. 프로그램이 아니라 — 기계가. 한순간 프로세스가 돌아가고 있었는데, 다음 순간 나는 깨끗한 로그인 화면을 바라보고 있었다. 마치 누군가 전원 코드를 뽑았다가 다시 꽂은 것처럼.
2026-06-22 · 트레이딩 RL 시스템 만들기내 첫 실거래 봇의 히스토리 어딘가에는 자랑스럽지 못한 커밋이 하나 있다. 길이는 단 두 단어다. 돌아가고 있는 시스템 한복판에서, 문제를 없애버리려고 나는 계좌를 보호하기로 되어 있던 안전 장치에 손을 뻗어 이렇게 썼다. if False.
2026-06-20 · 트레이딩 RL 시스템 만들기한동안 내 모델 중 하나는 천재처럼 보였다. 백테스트는 깨끗했고, 자신감 넘쳤으며, 거의 너무 매끄러웠다. 나는 마침내 제대로 작동하는 무언가를 만들어냈다고 믿고 싶었다.
2026-06-18 · 트레이딩 강화학습 시스템 만들기어느 날 아침, 내 트레이딩 봇의 월간 리포트는 거의 모든 것을 잃었다고 알려왔다 — 불과 몇 주 만에 99%에 가까운 드로다운(낙폭). 머리가 상황을 따라잡기도 전에 속이 철렁 내려앉았다.
2026-06-16 · 트레이딩 RL 시스템 구축기어느 날 밤, 백테스트는 내가 변변찮은 시작 잔고를 2,792조 원으로 불렸다고 알려줬다 — 지구상 대부분 경제권의 연간 생산량을 넘어서는 액수다. 나는 그것을 멍하니 바라봤다. 몇 분 동안, 내 안의 조용하고 탐욕스러운 한 부분이 그게 진짜일 수도 있다는 이유를 찾아 나섰다.
2026-06-14 · 트레이딩 RL 시스템 만들기조기 종료(early stopping)는 학습을 끝낸 모델에 컴퓨팅 자원을 낭비하지 않도록 막아주는 장치다. 그런데 한동안 내 컴퓨팅 자원을 태우고 있던 장본인이 바로 이것이었다 — 좋은 에이전트가 좋아지기도 전에 죽여 버림으로써.
2026-06-11 · 트레이딩 RL 시스템 구축기내가 처음 실전 계좌에 투입한 트레이딩 봇은 거의 전부를 잃었다. 승률 25%, 최대 낙폭 99.99%. 시장이 잔인해서 터진 게 아니다. 대부분의 사람이 첫 봇을 만드는 방식 그대로 — 내 주관으로 얼기설기 엮은 프로토타입으로 — 만들었기 때문에 터졌다.
2026-06-10 · 트레이딩 RL 시스템 만들기