본문으로 건너뛰기
피드

월 $20 인프라로 MRR $10K 회사 여러 개 돌리는 법

backend 약 6분
vote
0
댓글
북마크

VPS 하나, Go 바이너리, SQLite, 로컬 GPU, GitHub Copilot 조합으로 월 $20 이하의 인프라 비용으로 MRR $10K 넘는 회사를 여러 개 운영하는 개발자의 실전 플레이북. AWS 없이도 충분히 확장 가능한 아키텍처를 구축할 수 있음을 구체적 수치와 코드로 보여줌.

  • 1

    $5~$10 VPS 하나로 AWS EKS+RDS 대체, Go 정적 바이너리로 배포 단순화

  • 2

    SQLite WAL 모드로 동시성 확보, NVMe 위 단일 .db 파일로 수천 명 처리

  • 3

    중고 RTX 3090 + VLLM으로 배치 AI 무제한 로컬 추론, OpenRouter로 프론티어 모델 폴백

  • 4

    GitHub Copilot 요청 단위 과금 활용 — 에이전트 30분 작업도 $0.04

  • 월 $20짜리 인프라로 MRR $10K 넘는 회사를 여러 개 돌리고 있는 개발자의 실전 플레이북
    • VC 피칭에서 "대체 투자금이 왜 필요한 거죠?"라는 피드백을 받을 정도로 린(lean)하게 운영 중
    • 핵심 철학은 단순함 — 비용을 0에 가깝게 유지하면 100만 달러 투자받고 번레이트 태우는 것과 런웨이가 동일함

서버: VPS 하나면 충분함

  • AWS EKS + RDS + NAT Gateway 세팅하면 유저 한 명 없이도 월 $300 날아감
    • 대신 Linode나 DigitalOcean에서 $5~$10짜리 VPS 하나 빌리면 끝
    • 1GB RAM이 무섭게 느껴질 수 있지만, swapfile 하나 잡아두면 충분히 돌아감
  • 서버가 하나면 로그 위치도 알고, 왜 죽었는지도 알고, 재시작도 바로 가능
    • 인프라 관리가 아니라 요청 처리에 집중할 수 있음

언어: Go의 압도적 이점

  • 백엔드를 Go로 작성하는 이유가 명확함
    • Python이나 Ruby는 인터프리터 부팅 + gunicorn 워커만으로 RAM 절반을 먹음
    • Go는 단일 정적 바이너리로 컴파일 → scp로 서버에 올리고 실행하면 배포 끝
    • pip 의존성 지옥도, 가상환경도 없음
  • 2026년 기준 추가 이점: LLM이 Go 코드를 추론하기 매우 쉬움
    • 표준 라이브러리만으로 프로덕션급 웹서버 구현 가능 — 프레임워크 불필요

AI: 로컬 GPU로 무제한 크레딧 확보

  • 배치 AI 작업에 OpenAI API 수백 달러 쓰는 대신, 중고 RTX 3090($900)으로 로컬 추론
    • 프롬프트 로직에 버그 있으면 전체 배치를 다시 돌려야 하는데, 로컬이면 비용 부담 제로
  • 로컬 AI 업그레이드 경로가 깔끔함
    • Ollama: 한 줄 명령으로 설치, 프롬프트 반복 실험에 최적
    • VLLM: 프로덕션용. PagedAttention으로 동시 요청 8~16개를 배치 처리하면 1개 처리 시간에 16개가 끝남
    • Transformer Lab: 파인튜닝이나 사전학습이 필요할 때

💡

> OpenRouter를 쓰면 Anthropic, OpenAI, Google 모델을 하나의 OpenAI-호환 API로 통합 가능. Anthropic API 다운되면 자동으로 OpenAI 모델로 폴백되니 별도 재시도 로직이 필요 없음

Copilot: AI IDE 구독료 절약의 핵

  • Claude Opus 4.6을 하루종일 쓰면서 월 $60도 안 나옴
    • GitHub Copilot이 토큰 단위가 아니라 요청 단위 과금이라서 가능한 구조
    • 에이전트가 30분 동안 코드베이스 전체를 뒤지고 수백 개 파일을 수정해도 요청 1회 = 약 $0.04
  • 전략: 성공 기준이 명확한 상세 프롬프트를 작성하고, "에러 다 고칠 때까지 계속해"라고 던진 뒤 커피 마시러 가면 됨

데이터베이스: SQLite가 생각보다 쓸만한 이유

  • 새 프로젝트는 무조건 SQLite3로 시작함
    • 로컬 C 인터페이스/메모리 통신이라 원격 Postgres TCP 왕복보다 차수 단위로 빠름
  • "동시성은?" — WAL(Write-Ahead Logging) 켜면 해결됨
    • PRAGMA journal_mode=WAL; PRAGMA synchronous=NORMAL; 한 줄이면 리더/라이터가 서로 안 막힘
    • NVMe 드라이브 위 단일 .db 파일로 동시 유저 수천 명 처리 가능

중요

> 결론은 단순함 — 단일 VPS + 정적 바이너리 + 로컬 GPU + SQLite 조합이면 월 커피 몇 잔 가격으로 확장 가능한 스타트업 인프라가 완성됨. 무한 런웨이 확보.


기술 맥락

  • Go를 백엔드 언어로 선택한 건 단순히 "빠르니까"가 아니에요. 1GB RAM 서버라는 극한 제약 조건에서 Python/Ruby의 런타임 오버헤드가 치명적이거든요. 정적 바이너리 배포는 컨테이너 오케스트레이션 자체를 불필요하게 만들어서 운영 복잡도를 아예 제거해버리는 효과가 있어요
  • SQLite에 WAL 모드를 거는 건 핵심 트레이드오프를 정확히 이해한 선택이에요. 기본 저널 모드에서는 쓰기마다 전체 DB 잠금이 걸리지만, WAL은 쓰기를 별도 로그에 먼저 기록하고 나중에 병합하는 방식이라 읽기/쓰기 동시성이 확보돼요. 다만 WAL도 동시 쓰기는 직렬화되니까, 쓰기 부하가 극단적이면 Postgres로 넘어가야 하는 시점이 있어요
  • VLLM의 PagedAttention이 Ollama 대비 동시 처리에서 압도적인 이유는 GPU 메모리 관리 방식 차이 때문이에요. Ollama는 요청마다 전체 KV 캐시를 할당하는 반면, VLLM은 OS의 가상 메모리처럼 필요한 만큼만 페이지 단위로 할당하거든요. 그래서 같은 24GB VRAM으로 동시 요청을 배치로 묶어 처리할 수 있는 거예요

VC 투자 없이 린하게 부트스트랩하는 구체적 플레이북으로, 특히 Go+SQLite+VPS 조합의 비용 대비 성능이 인상적임. 사이드 프로젝트나 초기 스타트업 개발자에게 바로 적용 가능한 실전 가이드.

댓글

댓글

댓글을 불러오는 중...

backend

클릭하우스가 PgBouncer 처리량을 4배로 끌어올린 방법

ClickHouse Managed Postgres 팀은 단일 스레드인 PgBouncer를 여러 프로세스로 띄우고 `so_reuseport`와 피어링(peering)을 조합해 16 vCPU 머신을 제대로 쓰게 만들었다. 동일한 AWS 환경에서 단일 프로세스는 약 8.7만 TPS 근처에서 막혔지만, 16개 프로세스 구성은 약 33.6만 TPS까지 올라갔다.

backend

SQLite 쓸 거면 STRICT 테이블을 기본값으로 보자는 주장

SQLite의 STRICT 테이블은 INTEGER 컬럼에 문자열이 들어가는 식의 타입 실수를 막아주는 기능이다. 글쓴이는 SQLite 특유의 유연한 타입 시스템보다, 실수는 빨리 터뜨리는 쪽이 실무에서 낫다고 주장한다. 다만 기존 테이블을 바로 STRICT로 바꾸기 어렵고, SQLite 3.37.0 이상에서만 쓸 수 있다는 제약도 있다.

backend

왜 아직도 Lisp를 배워볼 만한가

Lisp는 괄호가 많은 이상한 언어처럼 보이지만, 핵심은 문법이 아니라 언어 자체를 확장할 수 있다는 점에 있음. 매크로, 코드-데이터 동일성, REPL 중심 개발이 합쳐지면 프로그램을 '작성'한다기보다 살아 있는 시스템을 계속 진화시키는 방식으로 개발하게 됨.

backend

EDB 포스트그레스 AI, 포레스터 멀티모델 데이터 플랫폼 리더 선정

EDB의 AI 데이터 플랫폼 EDB 포스트그레스 AI가 2026년 2분기 포레스터 웨이브 멀티모델 데이터 플랫폼 보고서에서 리더로 선정됐음. 트랜잭션, 분석, AI 워크로드를 하나의 플랫폼에서 다루는 흐름이 강해지는 가운데, EDB는 전략과 현재 제공 기능 모두에서 높은 평가를 받았다고 밝힘.

backend

Bun, Zig에서 Rust로 갈아탔다: 11일짜리 초대형 런타임 포팅 실험

Bun 팀이 53만 줄이 넘는 Zig 코드베이스를 Rust로 기계적으로 포팅했고, Bun v1.4.0부터 Rust 기반으로 전환될 예정임. 핵심 이유는 성능보다 안정성이었고, use-after-free, double-free, 메모리 누수 같은 문제를 컴파일러와 타입 시스템으로 더 빨리 잡기 위해서였음. Claude Code 워크플로 64개를 병렬로 돌려 11일 만에 전 플랫폼 테스트 통과까지 밀어붙인 사례라, LLM 기반 대규모 코드 마이그레이션의 꽤 강한 신호탄임.