[Smart Trading Lab] 01. 방구석 NAS로 자동매매 시작하기

자동매매는 전략부터가 아니었다. ‘봇이 지금 살아 있냐?’가 먼저였다.

페이퍼트레이딩을 돌려도, 돌아가는지/멈췄는지/어디서 막혔는지 모르면 아무 것도 검증이 안 된다.

그래서 1편은 전략 대신, 방구석 NAS로 24/7 운영 바닥부터 깔아본다.

이 글은 ‘Smart Trading Lab’ 시리즈의 1편이다.

요즘 AI 덕분에 코딩의 코자도 모르던 내가 자동매매봇을 만지작거릴 수 있게 됐다. 그건 확실히 시대가 바뀐 거다.

다만 막상 해보니, 전략보다 먼저 부딪히는 게 있었다. 운영이었다.

밤에 멈추면 어떻게 하지, 주문이 안 나가면 왜 안 나갔는지 어디서 보지, 키는 어디에 저장해야 안전하지… 이런 고민들이 해결되지 않으면 전략은 그냥 ‘구상’으로만 남는다.

그래서 이 글은 ‘전략’ 이야기를 잠깐 미뤄두고, 내가 실제로 고민했고 타협했고, 한 번씩 크게 데여보며 잡아낸 운영 바닥을 정리한다.

이 글에서 얻는 것 – 페이퍼트레이딩인데도 ‘상황 파악’이 안 될 때, 무엇부터 붙여야 하는지 – NAS + Docker로 24/7 운영을 만들며 내가 실제로 타협한 최소 구성 – 중간에 캡처/이미지를 끼워 넣기 위한 IMG 마커 사용법

TL;DR (20초 요약)

  • 페이퍼트레이딩에서도 ‘상황 파악’이 안 되면 검증이 안 된다 → 텔레그램을 ‘상황실’로 붙였다.
  • 초반엔 욕심을 버리고 4가지만 잡았다: NAS(Docker) / OKX / 텔레그램 / 로그.
  • Docker는 멋이 아니라 습관이다: 자동재시작 + 볼륨(로그) + .env(키 분리)만 챙겨도 운영이 달라진다.

목차

1. 컨셉: 방구석 NAS를 ‘서버’로 쓰기로 한 이유
2. 첫 번째 벽: 페이퍼트레이딩인데도 ‘살아있는지’가 안 보인다
3. 해결: 텔레그램을 ‘상황실’로 만들기
4. 최소 구성으로 타협하기 (4개만)
5. Docker 운영에서 진짜 중요한 습관 3가지
6. OKX API 키: ‘실전 감각’이 들어오는 지점
7. 실제 장면: 아침에 열어본 텔레그램
8. 고정 섹션: 내가 정한 운영 규칙 7개
9. 다음 편 예고


0) 컨셉: 집에 놀고 있던 NAS를 ‘방구석 서버’로 쓰자

“서버를 따로 사야 하나?” 생각하다가, 집에 켜져만 있던 NAS를 다시 봤다.

집에 NAS가 하나 있었다. 사진 백업이랑 파일 저장에 한동안 열심히 쓰다가, 어느 순간부터는 그냥 ‘켜져 있는 상자’가 되어버렸다.

그런데 자동매매는 정반대다. 24시간 켜져 있어야 하고, 내가 자는 동안에도 돌아가야 한다.

VPS(클라우드 서버)로 갈까도 고민했다. 깔끔하긴 한데 비용도 들고, ‘서버 운영’ 난이도가 한 단계 올라간다.

NAS는 이미 있고, 어차피 상시 전원이다. 그래서 결론은 NAS.

다만 타협을 하나 걸었다. 지금은 NAS로 시작하지만, 나중에 VPS로 옮겨도 되게 구조는 단순하게 가져가기로.

💡 체크포인트 — 컨셉은 ‘방구석 서버’. 멋진 대시보드보다, 일단 안 죽고(재시작) / 안 잃고(로그) / 바로 아는(알림) 게 먼저였다.


1) 첫 번째 벽: 페이퍼트레이딩인데도 ‘상황 파악’이 안 된다

페이퍼트레이딩이면 마음 편할 줄 알았다. 근데 전혀 아니었다.

‘지금도 실행 중인가?’, ‘주문 로직이 호출은 됐나?’, ‘API가 막혔나, 조건이 안 맞아서 조용한 건가?’ 이걸 확인할 길이 없으면 검증 자체가 안 된다.

진짜로 이런 날이 있었다. 밤에는 “오늘은 잘 도네” 하고 잤는데, 아침에 NAS 들어가 보니 컨테이너가 멈춰 있었다. 언제 멈췄는지, 뭘 하다 멈췄는지, 남아있는 게 없었다.

그때 느꼈다. 자동매매는 전략이 아니라, ‘상황을 볼 수 있게 만드는 것’부터 시작이라는 걸.

💡 체크포인트 — 조용한 게 정상인지(조건 미충족) 비정상인지(봇 다운) 구분이 안 되면, 개선은 ‘감’으로밖에 못 한다.


2) 해결: 텔레그램을 ‘상황실’로 만들기

페이퍼트레이딩을 돌려도 ‘살았는지/죽었는지/어디가 막혔는지’ 알 방법이 없었다. 그래서 텔레그램 봇을 붙였다.

처음엔 로그만 잘 남기면 되겠지 싶었다. 근데 로그는 사후다. 문제는 내가 NAS에 매번 들어가 보지 않는 이상, ‘지금’ 상태가 안 보인다는 거였다.

고민 끝에 텔레그램 봇을 알게 됐고, 이걸 그냥 알림이 아니라 ‘상황실’로 쓰기로 했다.

봇이 시작하면 시작했다고, 재시작되면 재시작됐다고, 주문을 시도하면 시도했다고, 실패하면 실패했다고(가능하면 이유까지). 최소한 이 흐름이 쌓이면, 운영이 달라진다.

그리고 무엇보다, ‘조용함’의 의미가 바뀐다. 예전엔 조용하면 불안했는데, 지금은 조용한 이유가 있다(조건 미충족)와 조용한 이유가 없다(죽음)를 구분할 수 있다.

💡 체크포인트 — 텔레그램을 붙이고 나서부터 자동매매가 ‘관리 가능한 시스템’처럼 느껴지기 시작했다.


3) 최소 구성으로 타협하기: 처음엔 4개만 잡았다

처음엔 욕심이 났다. DB도 붙이고, 대시보드도 만들고, 자동 업데이트도…

근데 초반에는 그 욕심이 고장 포인트만 늘린다. 뭐가 문제인지 더 안 보인다.

그래서 나는 4개만 제대로 하기로 했다: NAS(Docker) / OKX / 텔레그램 / 로그.

이 네 가지가 ‘돌아가는 자동매매’의 최소 바닥이고, 나머지는 그 다음에 붙여도 늦지 않다.


4) Docker 운영에서 진짜 중요한 습관 3가지

Docker는 기술이라기보다 습관이었다. 내가 챙긴 건 딱 세 가지다.

첫째, 죽으면 다시 떠야 한다(자동 재시작). 둘째, 기록은 컨테이너 밖에 남겨야 한다(볼륨). 셋째, 키/설정은 코드 밖으로 빼야 한다(.env).

이걸 챙기기 전에는 컨테이너를 다시 띄우는 순간 로그가 날아가거나, 필요한 순간에 찾기 힘들었다.

로그는 남기는 것만큼 ‘관리’가 중요하다. 로테이션(일 단위)이나 용량 제한을 안 걸면, 언젠가 디스크가 차고 그게 또 장애의 원인이 된다.

💡 체크포인트 — 멋진 구조보다 ‘다시 뜨는가/기록이 남는가/키가 분리됐는가’가 운영의 체감 품질을 결정했다.


5) OKX API 키: ‘실전 감각’이 들어오는 지점

자동매매가 재밌다가도 갑자기 무서워지는 지점이 있다. API 키다.

키가 유출되거나, 권한을 과하게 줬거나, 실거래/테스트 키를 헷갈리면… 그건 전략 문제가 아니라 사고다.

그래서 규칙을 미리 정했다: 권한 최소화, 키는 코드에 박지 말고 .env로, 실거래/테스트 키는 분리. 가능하면 IP 제한도 고민(환경에 따라 난이도는 다르다).

💡 체크포인트 — 보안은 ‘꼼꼼한 사람만 하는 것’이 아니라, 한 번 사고 나면 끝나는 영역이라 처음부터 빡세게 잡는 게 마음이 편했다.


6) 실제 장면: 아침에 열어본 텔레그램

텔레그램을 상황실로 쓰고 나서 가장 체감이 컸던 순간이 있다.

아침에 눈 떠서 폰을 봤는데, 밤 사이에 “재시작됨”, “OKX API timeout”, “재시도 실패” 같은 메시지가 쌓여 있었다.

예전 같았으면 ‘왜 멈췄지?’부터 시작해서 추측으로 하루를 날렸을 텐데, 지금은 최소한 ‘언제/무엇 때문에/어디쯤에서’가 보인다.

추측이 기록으로 바뀌는 순간, 개선 속도가 확 빨라진다.


7) (고정 섹션) 내가 정한 운영 규칙 7개

앞으로 글을 계속 써도 매번 지키려고 적어두는 규칙이다. 이게 흔들리면 다시 ‘감’으로 돌아가게 된다.

  • 봇은 죽어도 자동으로 다시 떠야 한다(재시작 정책은 기본).
  • 로그는 컨테이너 밖에 남긴다(재배포/재시작해도 기록 유지).
  • 텔레그램은 ‘알림’이 아니라 ‘상황실’로 쓴다(시작/주문/실패/예외).
  • API 키는 .env로만 관리하고 권한은 최소화한다.
  • ‘조용함’은 정상일 수도 있다 — 하지만 정상/비정상 구분은 가능해야 한다.
  • 페이퍼트레이딩도 실거래처럼 운영한다(그래야 전환 시 사고가 줄어든다).
  • 문제가 생기면 ‘감’으로 고치지 말고 원인-재현-해결로 기록한다.

8) 다음 편 예고

다음 편부터는 기술/문제해결 쪽으로 더 깊게 들어가려고 한다.

OKX API 키 세팅(권한/보안/실거래 전환 체크리스트), 그리고 다들 한 번씩 겪는 ‘주문 안 나감’ 원인을 케이스별로 잡는 방식.

그리고 내가 운영 흐름으로 생각 중인 구조(임시 TP/SL → AI 수정 → amend/replace)는 글이 길어질 것 같아서 챕터로 나눠서 정리할 예정이다.


마치며

정리하면 1편의 목표는 딱 하나였다. “전략 얘기하기 전에, 일단 살아있게 만들자.”

방구석 NAS를 서버로 쓰고, Docker는 재시작/로그/.env만 제대로, 텔레그램은 상황실, 키는 최소 권한.

이 바닥이 잡히면, 그 다음부터는 ‘전략’이 아니라 ‘개선’이 된다.

다음 편 예고

[다음 편 예고] 02. OKX API 키/권한/실거래 전환 체크리스트 + ‘주문 안 나감’ 원인 잡기

  • OKX API 키 권한 최소화, 실거래/테스트 분리, 실전 체크리스트
  • ‘조용함’이 정상인지 비정상인지 로그/알림으로 구분하는 법
  • ‘주문 안 나감’ 케이스 10가지와 재현-해결 기록 방식

댓글 질문: 여러분은 NAS를 ‘저장소’로 쓰고 계신가요, 아니면 ‘서버’로 확장해보셨나요? 어떤 목적(영상/백업/홈서버/자동화)으로 쓰는지 한 줄만 남겨주시면 다음 편에 반영해볼게요.

댓글 남기기