
문제 제기: 잘 돌아가던 게 왜 다른 곳에선 멈추나

한 환경에서 완성한 자동화 시스템은 재사용하고 싶어진다. 기본 틀을 그대로 두고 일부만 바꿔 붙이면 새 환경에서도 금방 돌아가기 때문이다. 실제로 필자는 한국 주식용으로 만든 자동매매 틀을 재사용해 코인용을 짧은 시간에 만들었고, 그 다음 날 미국 주식용까지 이어서 만들었다.
재사용 덕분에 만드는 속도는 확실히 빨랐다. 다만 '금방 만들어진다'는 것과 '제대로 동작한다'는 것은 다른 이야기였다. 새 환경에는 원래 환경에 없던 규칙이 숨어 있었다. 그 결과 매수 조건을 충족해도 주문이 실행되지 않는 경우가 있었고, 코인에서는 개선 판단에 필요한 근거를 잡기 어려웠다. 재사용을 하지 말자는 게 아니라, 옮기기 전에 무엇을 점검해야 하는지가 이 글의 주제다.
왜 점검이 필요한가: 겉은 같아 보여도 전제가 다르다

이번 사례에서 문제가 된 지점은 크게 두 가지였다.
- 숨은 규칙의 차이. 미국 주식 자동매매에서는 소수점 단위 매수가 가능했다. 하지만 한국 주식에 맞춰 만든 프로그램은 정수 단위로만 사도록 돼 있었다. 그 결과 계좌에 돈이 있어도 한 주 값이 그보다 비싼 종목은 매수 조건에 맞아도 사지지 않았다. 원인은 한국 주식 시스템 기준으로만 생각한 것이었다.
- 판단 근거의 차이. 주식은 예를 들어 특정 대형주가 오를 때 업황 호황 같은 이유를 유추할 수 있었다. 반면 코인으로 넘어가자 왜 오르고 왜 내리는지 이유를 짚기 어려웠고, 그래서 어떻게 다듬을지, 어떤 데이터를 더 모아야 할지조차 알기 어려운 상태가 됐다.
즉 코드를 옮기는 건 쉬워도, 그 코드가 기대던 '환경의 전제'까지 함께 옮겨지지는 않는다. 그래서 옮기기 전에 전제 차이를 확인하는 절차가 필요하다.
확인 절차: 옮기기 전에 무엇을 점검하나

다른 환경으로 시스템을 옮길 때는 다음 순서로 점검하는 것을 권한다.
- 단위와 규칙 비교. 최소 거래 단위, 소수점 허용 여부, 거래 가능 시간 등 원래 환경의 '당연한 전제'를 새 환경과 항목별로 나열해 비교한다. 실제로 한국 주식 기준으로 만든 정수 단위 제한 때문에, 소수점 매수가 가능한 미국 주식에서는 조건이 맞아도 매수되지 않는 문제가 있었다.
- 판단 근거의 존재 여부. 시스템이 내리는 판단의 이유를 사람이 설명할 수 있는가. 이유를 모르면 개선 방향과 필요한 데이터도 정하기 어렵다.
- 작은 테스트 실행. 옮긴 직후 소액·소량으로 실제 동작을 한 번 돌려본다. '조건에 맞는데 실행이 안 되는' 케이스가 있는지 직접 확인한다.
체크리스트: 옮기기 전 최소 점검

- 거래(또는 처리) 최소 단위가 두 환경에서 같은가? 정수/소수점 차이는 없는가?
- 동작 시간대·주기 차이가 시스템 알림·모니터링에 영향을 주는가?
- 자는 시간처럼 열려 있는 시간대의 알림을 제어할 방법이 있는가?
- 시스템 판단의 이유를 사람이 설명할 수 있는가?
- 개선에 필요한 데이터를 새 환경에서 확보할 수 있는가?
- 옮긴 뒤 작은 테스트 케이스를 직접 실행해 봤는가?
- 실패 시 되돌릴 방법과 사람 승인 단계가 있는가?
적용 예시: 재사용은 하되, 경계는 명시한다

재사용 자체가 나쁜 건 아니다. 실제 사례에서도 한국 주식용으로 만든 기본 틀을 가져오고, 코인용 통로와 판단 조건 같은 일부만 모듈처럼 붙이는 방식으로 코인 시스템을 금방 만들 수 있었다. 미국 주식은 이렇게 코인 개발이 빨랐기 때문에 고민 없이 바로 이어서 만들었다.
핵심은 공통으로 쓸 부분과 환경마다 달라지는 부분을 분리하는 것이다. 실제 사례에서 확인된 범위는 두 가지다. 하나는 한국 주식의 기본 틀을 재사용하고 코인용 통로·판단 조건만 붙여 코인 시스템을 만들었다는 점이고, 다른 하나는 미국 주식처럼 자는 시간에 열리는 시장에서는 그 시간대 알림을 막아두고 결과만 받아 보는 방식으로 운영했다는 점이다.
아래는 실제 구조를 단정하는 것이 아니라, 이런 경험을 바탕으로 옮길 때 일반적으로 나눠서 검토해볼 만한 항목이다.
- 공통으로 재사용을 검토할 부분: 전체 처리 흐름 등 환경과 무관한 로직.
- 환경별로 나눠 점검할 부분: 거래 단위 규칙, 동작 시간대에 따른 알림 제어.
예를 들어 자는 시간에 열리는 시장이라면 그 시간대 알림을 막아두고 결과만 받아 보도록 운영할 수 있다. 실제로도 자는 시간에는 알림이 오지 않게 막아두어 생활에 지장 없이 결과만 확인하는 방식으로 운영했다.
한계와 주의사항

이 글의 사례는 자동매매 개발 과정에서 얻은 경험이며, 특정 전략의 수익이나 성과를 보장하지 않는다. 시장·거래소·시간대의 규칙은 수시로 바뀔 수 있으므로, 여기 정리한 체크리스트도 각자의 환경에서 다시 검증해야 한다.
또한 '이유를 모른다'는 상태는 그 환경이 나쁘다는 뜻이 아니라, 아직 필요한 데이터와 판단 근거가 갖춰지지 않았다는 신호로 보는 편이 낫다. 무리하게 그대로 옮기기보다, 이유를 설명할 수 있을 때까지 규모를 작게 유지하는 것을 권한다.
이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.
'실전 원칙' 카테고리의 다른 글
| 자동화가 아무것도 안 할 때, 조건부터 완화하면 안 되는 이유 (0) | 2026.07.28 |
|---|---|
| 계좌에 돈이 있어도 주문이 안 되는 원인 체크리스트 (0) | 2026.07.28 |
| 자동화 시스템을 만들기 전 API 가능 여부부터 확인하는 법 (0) | 2026.07.28 |
| AI 결과를 두 개 이상의 모델로 교차 검증하는 방법 (0) | 2026.07.27 |
| AI가 '문제없다'고 해도 직접 테스트해야 하는 이유 (0) | 2026.07.27 |