13년차의 서버실

서버, 인프라, 홈랩 기술 블로그

홈랩에서 주식 봇 2대를 4개월 굴려보고 — 솔직한 운영 회고 (Proxmox LXC)

개인 투자용 보조 도구를 남의 클라우드에 올리기가 영 내키지 않았습니다. API 키, 알림, 관심 종목… 사소해 보여도 결국 내 판단 흔적이 남는 데이터라, 그냥 집에 있는 홈랩에 올리자 싶었죠. 그렇게 시그널 봇 1대 + 포트폴리오 봇 1대를 Proxmox LXC로 올려 4개월을 굴렸습니다. 성공담이 아니라 — 솔직히 잘된 것도, 벽에 부딪힌 것도 다 적어봅니다.

1. 왜 클라우드가 아니라 홈랩이었나

  • 프라이버시: 보유 현황·관심 종목은 개인 투자 성향 그 자체입니다. 남의 서버에 두기 싫었어요.
  • 비용 0: 이미 돌아가는 홈랩(Intel i5-8500 · 6코어 · 31GB RAM · Proxmox VE 8.4)에 LXC 하나 더 얹는 건 공짜에 가깝습니다.
  • 완전한 통제: 언제든 콘솔 열고 뜯어볼 수 있습니다.

2. 두 봇은 역할이 완전히 다릅니다

코드가 아니라 ‘용도’ 기준으로 나눠보면 이렇습니다.

  • 시그널 봇 — 관심 종목의 리스크 뉴스 키워드(리콜·결함 등)를 감지하면 텔레그램으로 “검토 알림”을 보냅니다. 핵심 원칙은 “자동 매매가 아니라, 조건 충족 사실만 전달 — 매매 결정은 본인 판단” 입니다.

▲ 시그널 봇의 텔레그램 리스크 알림 예시

  • 포트폴리오 봇 — Core-Satellite 방식으로 보유 현황을 웹 대시보드에 보여주고, 트레일링스톱·트렌드브레이크·리스크뉴스 같은 신호를 표시합니다. “매주 적립, 매도는 목표 수익 도달 또는 펀더멘털 훼손 시에만” 같은 규칙 기반이고요.

▲ 포트폴리오 봇 대시보드 (실제 보유 수치는 가림)

3. 굳이 LXC 2대로 나눈 이유 — 완전 격리

둘을 한 서버에 몰지 않고 LXC 2대로 물리적으로 분리했습니다. 각각 별도 텔레그램 토큰, 별도 DB, 별도 코드 저장소로요.

이유는 단순합니다. 한쪽이 죽거나 꼬여도 다른 쪽은 멀쩡해야 하니까요. 토큰이 섞이면 알림이 엉키고, DB가 섞이면 디버깅이 지옥이 됩니다. 봇 하나당 스펙도 소박합니다 — 2코어 / 1GB RAM / 8GB 디스크면 충분했습니다.

# LXC 114 (stock-signal-bot)
cores: 2
memory: 1024
swap: 512
rootfs: local-zfs:subvol-114-disk-0, size=8G

# LXC 115 (stock-portfolio-bot) — 동일 스펙

이 “작게 쪼개서 격리하는” 패턴은 나중에 다른 자동화(예: 블로그 발행 봇)에도 그대로 재사용했습니다. 한 번 몸에 익히니 새 프로젝트를 올릴 때 고민이 줄더라고요.

4. 배포·운영

각 LXC 안에서 Docker로 돌리고, onboot=1로 호스트 재부팅 시 자동 기동, 상태는 텔레그램 알림으로 확인합니다. 24/7 가동이지만 리소스가 작아 호스트에 부담이 거의 없습니다.

5. 솔직히 — 가장 큰 벽은 ‘내 계좌 데이터’였습니다

여기가 이 글의 핵심입니다. 인프라(LXC·Docker·알림)는 오히려 쉬웠고, 진짜 벽은 데이터였어요. 그런데 그 데이터가 시세가 아니라 ‘내 실제 보유 현황’ 이었다는 게 포인트입니다.

  • 시세(현재가·추이)는 어떻게든 흘러들어옵니다. 문제는 내가 어떤 종목을 몇 주, 평단 얼마에 갖고 있는지를 자동으로 못 가져온다는 거였습니다.
  • 증권사 계좌 연동이 벽이었습니다. 개인이 증권사 API를 붙이는 건 문턱이 높거나 제약이 많더라고요.
  • 그래서 주식을 사고팔 때마다 보유 수량·평단을 손으로 반영해야 합니다. 자동화 도구를 만들어놓고, 정작 제일 자주 바뀌는 데이터(내 포지션)를 수동으로 넣고 있는 거죠. 이게 제일 귀찮고, 자동화의 핵심을 못 채운 부분입니다.
  • 결국 “매매하면 손으로 업데이트”라는 수동 루프가 남았습니다. 대시보드는 멀쩡히 도는데 그 앞단에 사람 손이 계속 들어가니, “완전 자동”과는 거리가 멀어졌어요.

6. 그래도 남은 것

  • LXC 격리·Docker·헬스체크·텔레그램 알림 같은 홈랩 운영 패턴을 제대로 체득했습니다.
  • “소규모 봇은 2코어/1GB면 충분하다”는 감이 생겨서, 이후 프로젝트의 리소스 산정이 훨씬 쉬워졌습니다.
  • 무엇보다 “뭐가 자동화의 진짜 병목인지”를 몸으로 배웠습니다. 서버가 아니라 데이터 소스라는 걸요.

7. 홈랩에서 이런 봇 굴리려는 분께

클라우드 홈랩(자가 호스팅)
비용 월 과금 지속 전기세 수준(사실상 0)
프라이버시 제3자 서버에 데이터 내 손 안
유지보수 관리형(편함) 본인 몫
데이터 접근 동일하게 API 필요 동일하게 API 필요

핵심 조언 두 가지입니다.

  • 포트폴리오 자동화의 진짜 관문은 시세가 아니라 ‘내 계좌(보유 현황) 연동’입니다. 증권사 API가 붙는지부터 확인하세요. 안 되면 결국 수동 입력이 남고, 그게 자동화의 발목을 잡습니다.
  • 개인 금융 도구라면 클라우드보다 홈랩이 프라이버시·비용에서 유리합니다. 대신 유지보수는 온전히 본인 몫이라는 걸 감안하세요.

⚠️ 이 글은 홈랩 운영 기록이며 투자 조언이 아닙니다. 언급된 종목·수치는 예시일 뿐이며, 어떤 매매도 권유하지 않습니다.