step2. Phase 1. 무중단 시스템 인프라 구축 (1)
24시간 잠들지 않는 퀀트 심장 만들기
완벽히 통제되는 나만의 AI 퀀트 시스템 구축의 첫 단추. 시놀로지 NAS 기반의 독립 서버 세팅과 가상화 격리 환경, 그리고 서버 다운을 막아주는 필수 로깅 아키텍처를 소개합니다.
본격적인 AI 퀀트 시스템 구축의 가장 첫 번째 미션은 바로 '강력하고 안정적인 인프라 구축'입니다. 아무리 뛰어난 매매 알고리즘과 똑똑한 AI 모델을 개발하더라도, 이를 24시간 무중단으로 구동할 수 있는 서버 환경이 뒷받침되지 않는다면 그 시스템은 모래성이나 다름없습니다. 이번 포스팅에서는 비용과 보안을 모두 잡기 위해 클라우드 대신 개인용 NAS를 활용한 아키텍처 설계 과정을 공유합니다.
1. 비용 통제와 데이터 주권: 왜 클라우드가 아닌 NAS인가?
개발자로서 처음 시스템을 구상할 때는 자연스럽게 AWS EC2나 구글 클라우드(GCP) 같은 퍼블릭 클라우드 서비스를 고려했습니다. 하지만 퀀트 시스템의 특성을 깊이 분석해 본 결과, 치명적인 단점들을 발견했습니다.
클라우드의 함정: 트래픽과 스토리지의 복리
금융 시장의 실시간 데이터는 그 용량이 방대합니다. 지속적인 데이터 수집 파이프라인과 24시간 AI 활용, 등 수많은 작업을 클라우드에서 구동할 경우, 네트워크 트래픽 및 스토리지 유지 비용은 기하급수적으로 증가합니다. 퀀트는 복리의 마법으로 돈을 버는 시스템인데, 서버 유지비가 복리로 나간다면 앞뒤가 맞지 않겠죠.
결론적으로 초기 장비 도입 비용은 일부 발생하더라도, 구축 이후 매달 나가는 유지비 압박에서 완전히 해방될 수 있는 시놀로지 NAS(Synology NAS) 기반의 온프레미스(On-Premise) 환경을 선택했습니다. 나의 매매 기록과 알고리즘 코어 데이터를 외부에 두지 않고 내 통제권 안에 두는 '데이터 주권(Data Sovereignty)' 확보 역시 중요한 결정 요인이었습니다.
2. 물리적 하드웨어 스펙 (Synology DS224+)
무중단 퀀트 시스템을 지탱하기 위해 구성한 커스텀 서버 환경의 하드웨어 스펙입니다. 단순한 파일 공유용 스토리지가 아닌, 어엿한 '트레이딩 서버'로서의 역할을 수행하기 위해 스펙을 최적화했습니다.
- CPU (Intel Celeron J4125 쿼드코어): Docker 컨테이너 여러 개와 무거운 가상머신(VM)을 동시에 처리하기 위해서는 최소 쿼드코어 이상의 연산 능력이 필수적입니다.
- MEMORY (기본 2GB + 16GB 추가 = 18GB): 이 시스템 구축의 핵심입니다. AI 에이전트 구동 엔진과 Java 기반 트레이딩 모듈은 메모리를 많이 소모합니다. 따라서 별도의 16GB DDR4 램을 장착하여 Docker와 VM에 할당할 리소스를 넉넉하게 확보했습니다.
- STORAGE (8TB HDD, RAID 1): 수년간 누적될 방대한 주식 시세 데이터와 백테스팅 로그는 절대 날아가서는 안 되는 핵심 자산입니다. 하드디스크 2개를 사용하여 RAID 1(미러링)로 구성, 예기치 못한 물리적 결함에 대비했습니다.
- NETWORK (1GbE LAN): 증권사 Open API와의 통신 지연(Latency)을 최소화하여 슬리피지(Slippage)를 막기 위해 유선 기가비트 네트워크 환경을 물려주었습니다.
3. 격리된 요새: NAS 기반 멀티 아키텍처
시스템의 안정성을 극대화하기 위해 NAS 하드웨어 위에 세 개의 핵심 환경을 논리적으로 격리(Isolation)하여 구축했습니다. 이렇게 역할을 분리하면, 데이터 수집 모듈에 에러가 발생하더라도 AI 두뇌나 DB 서버가 함께 다운되는 대형 사고를 막을 수 있습니다.
① Docker Container Manager (실전 트레이딩 부대)
실제 외부와 통신하며 발 빠르게 움직이는 모듈들은 모두 Docker 컨테이너로 경량화하여 올렸습니다. Python 기반의 'dataCollect' 모듈이 실시간 시세를 수집하고, Java 기반의 'tomcat-1' 모듈이 매매 로직에 따라 신속하게 주문을 넣습니다.
② Rocky Linux 가상머신 (AI 두뇌)
NAS의 메인 OS 시스템과 완전히 분리된 독립된 가상머신(VM)에 Rocky Linux를 설치했습니다. 이곳은 퀀트 시스템의 두뇌 역할을 하는 목적 기반 AI 에이전트인 OpenClaw가 상주하는 공간입니다. 복잡한 의사결정과 웹 정보 수집(Crawling)을 안전하게 수행합니다. 메모리는 넉넉하게 6GB 할당 하였습니다. openclaw 버전을 항상 최신버전으로 유지 하며, 보안이슈에서 자유로울수 없는 openclaw 이기때문에 NAS -> VM 안에 격리 시킴으로서 부여하지 않은 권한에 대한 접근을 최대한으로 차단하기 위한 조치이며 필요한 기능에 대해서만 open 하여 제한적으로 이용할 계획입니다.
③ MariaDB 10 (코어 데이터베이스)
데이터의 영속성을 보장하기 위해 별도의 MariaDB 전용 패키지를 구동합니다. 이곳에는 KIS(한국투자증권)에서 긁어온 과거 시세 테이블과 AI 매매 로그가 차곡차곡 적재되어 향후 백테스팅의 재료로 사용됩니다. 메모리는 1GB 할당 하였습니다.
4. 필수 생존 세팅: 도커 로깅 최적화
마지막으로, 개인 서버를 구축하는 초보 개발자들이 가장 많이 겪는 '서버 다운'의 주범, 도커 로그(Docker Log) 최적화입니다.
데이터 수집 봇과 매매 봇은 1초에도 수십 번씩 상태 로그를 찍어냅니다. 이를 아무 설정 없이 방치하면 단 몇 주 만에 로그 파일이 수십 기가바이트(GB)로 불어나 디스크 풀(Disk Full) 에러를 일으키며 NAS 전체를 마비시킵니다.
이를 방지하기 위해 컨테이너 생성 시 max-size: 30m 및 max-file: 7 옵션을 환경 변수로 강제 주입해야 합니다. 이 설정을 적용하면 개별 로그 파일이 30MB를 넘지 못하며, 최대 7개까지만 로테이션(순환)되므로 누적 디스크 점유율을 완벽하게 통제할 수 있습니다.
"Phase 1. 기초 공사 완료"
비용 효율적인 하드웨어 구축부터 안전한 멀티 격리 환경, 그리고 장애 예방 세팅까지 무중단 자동매매를 위한 인프라가 완성되었습니다. 다음 Phase 2 포스팅에서는 이 튼튼한 요새(Rocky Linux VM) 위에 실제로 시장을 분석하고 매매를 판단할 'AI 두뇌 (OpenClaw)'를 설치하는 과정을 자세히 다루겠습니다.