AXHUB 깊이 읽기 · 01

1GB 서버로
AI 콘텐츠 공장 돌리기

읽는 시간 약 12분성격 남의 사례가 아니라 우리 운영 기록대상 작게 시작하려는 개인·소규모 팀

이 사이트의 해외 기사 번역과 주제 분류는 AI가 한다. 그런데 사이트가 돌아가는 서버는 메모리 1GB, 가장 작은 축의 가상 서버 한 대다. 이 글은 그 제약 안에서 AI 콘텐츠 파이프라인을 굴리려고 택한 구조와, 만드는 동안 깨진 것들의 기록이다. 수치는 실제 구성 값이고, 실패담은 각색하지 않았다.

1문제 — AI는 무겁고, 서버는 작다

번역에 쓰는 소형 모델도 메모리에 올리면 7GB를 차지한다.

분류·요약에 쓰는 모델은 25GB.

서버에 있는 건 1GB다. 처음부터 승부가 안 되는 숫자였다.

"그럼 API를 쓰면 되잖아"가 정답처럼 보이고, 실제로 많은 경우 정답이다.

다만 실험 단계의 서비스에는 매달 나가는 API 비용 자체가 부담이 된다. 트래픽이 아니라 시도 횟수에 비례해 돈이 나가기 때문에, 아끼려는 마음이 실험 횟수를 줄인다.

우리는 세 번째 길을 택했다.

2구조 — 공장과 매장을 분리한다

결론부터. 서버에서는 AI를 한 줄도 돌리지 않는다.

집에 있는 맥 한 대가 공장이다. 수집, 번역, 분류, 요약까지 전부 여기서 무료 공개 모델로 끝낸다.

서버는 매장이다. 완성된 콘텐츠를 넘겨받아 보여주기만 한다.

이 분리가 주는 것은 세 가지다.

새로운 발명은 아니다. 실시간 응답이 필요 없는 일 — 콘텐츠 가공, 리포트, 요약 — 은 예전부터 이렇게 모아서 처리했다. AI라고 다를 이유가 없었다.

3준비물

서버비 외에 추가로 든 비용은 없다. 전기값 정도다.

4파이프라인 — 여섯 단계

  1. 수집. 국내외 소스의 새 글을 가져와 "초안"으로 쌓는다. 이 단계는 발행이 아니다.
  2. 번역. 번역 전용 1.8B 모델. 한국어 기사에는 영어를, 영어 기사에는 한국어를 붙인다.
  3. 분류. 12B 모델이 기사마다 운영 관점의 주제 딱지(도입·거버넌스·조직변화·도구…)를 붙인다. 홈의 주제 묶음이 이 딱지로 만들어진다.
  4. 화제 요약. 해외 개발자 커뮤니티에서 오늘 도는 이야기를 모아 한 줄씩 요약한다.
  5. 큐레이션. 사람이 초안 목록을 훑고 발행할 것만 고른다. 아래에서 다시 말한다.
  6. 전송. 발행분만 서버로 보낸다. 서버는 받아서 저장할 뿐, 아무것도 만들지 않는다.

공장 안에도 제약은 있다. 번역 모델과 분류 모델을 같이 올리면 맥도 버겁다. 그래서 번역이 끝나면 모델을 내리고, 분류 모델을 올린다. 이 순서를 정하는 것까지가 설계였다.

5깨진 것들

구조 이야기는 여기까지고, 지금부터가 아마 더 쓸모 있는 부분이다.

최신 모델이 대답을 안 했다분류에 요즘 유행하는 추론형 모델을 썼더니 답이 계속 빈칸으로 왔다. 이 계열은 "생각" 칸에 답을 쓰고 정작 "대답" 칸을 비워 보내는 경우가 있다. 파이프라인에 필요한 건 생각이 아니라 대답이다. 지시를 따르는 평범한 12B 모델로 바꾸자 끝났다. 기준은 최신·최대가 아니라 용도다.
너무 작아도 탈이 났다반대로 0.5B 초소형 모델은 아무 기사에나 같은 딱지를 붙였다. 망설임 없이, 아주 자신 있게. 작은 모델의 확신을 조심할 것.
한 소스가 934건을 쏟아냈다수집 상한을 안 걸었더니 해외 블로그 하나의 과거 글 전체가 초안함에 들어왔다. 934건이었다. 소스마다 "한 번에 최대 8건" 상한을 걸어 정리했다. 파이프라인의 안전장치는 지능이 아니라 상한이다.
컨테이너 안에서 모델을 못 찾았다앱은 컨테이너 안에서 돌고 모델은 맥에서 도는데, 앱이 계속 빈손으로 돌아왔다. 컨테이너 안에서 "localhost"는 맥이 아니라 컨테이너 자신이다. 여기에 반나절을 썼다. 안 되면 "지금 localhost가 누구인가"부터 묻는다.
번역이 이름을 창작했다1.8B 번역 모델은 문장은 무난한데 고유명사에 약했다. 세계적으로 유명한 연구자의 이름이 엉뚱한 표기로 나온 걸 발견했다. 그래서 번역문 뒤에 사람 확인 단계를 남겼다.
항목 하나가 조용히 사라졌다기사에 새 항목 하나를 추가해 서버로 보내려면 전송 통로 세 군데를 다 고쳐야 했는데, 한 곳을 빠뜨리면 에러도 없이 그 값만 사라졌다. 시끄러운 실패보다 조용한 실패가 무섭다. 세 군데를 운영 문서에 적어둔 뒤로는 5분짜리 일이 됐다.

6사람이 남는 자리

분류 모델의 딱지는 필터가 아니라 힌트다. 발행 버튼은 사람이 누른다. 일괄 발행 기능은 일부러 만들지 않았다.

이유는 초기에 배웠다. 학술 논문과 개발자용 기술 글이 "도구"라는 그럴듯한 딱지를 달고 올라왔지만, 우리 독자가 원하는 글이 아니었다. 지역 소방훈련 기사가 "도입 사례"로 분류된 적도 있다.

그래서 기계가 딱지를 붙이고, 사람이 목록을 훑으며 거른다. 하루 몇 분이면 된다.

카드 시리즈에서 여러 번 말한 "AI가 처리하고 사람은 예외만 확인한다"의, 우리 집 버전이다.

7따라해 본다면

한 번에 만들지 않기를 권한다. 우리가 실제로 밟은 순서다.

  1. 수집만 먼저, AI 없이. 소스의 새 글이 초안함에 쌓이는 것까지. 이때 소스별 상한을 꼭 건다.
  2. 모델 하나로 한 가지만. 번역이든 요약이든 하나만 붙여서 초안에 결과가 달리는 걸 확인한다.
  3. 분류를 붙인다. 딱지 정확도에 실망할 준비를 하고, 힌트로만 쓴다.
  4. 사람 확인 지점을 정한다. 어디서 눈으로 보고 발행할지. 여섯 단계 중 제일 중요한 결정이다.
  5. 전송을 만든다. 발행분만 서버로. 서버는 받기만 한다.

우리는 다른 작업과 병행하며 2~3주가 걸렸다. 몰아서 하면 더 짧겠지만, 단계마다 실물(초안·번역문·딱지)을 눈으로 확인하며 가는 쪽이 결과적으로 빨랐다.

8요지

이 글이 실려 있는 사이트가 결과물이다. 홈의 해외 기사 번역, 주제 묶음, 오늘의 화제가 전부 이 파이프라인을 거쳐 나왔다. 서버는 여전히 1GB다.

장비를 늘리는 대신 구조를 바꾸는 것. 우리가 겪은 AX는 그런 일이었다.

손으로 해보려면 → AXHub 강의 5편 — 각 30분 실습 · 깊이 읽기 목차

이 글은 AXHub 운영 기록(2026년 6월 작업 로그)을 옮긴 것으로, 사양·모델 크기·건수는 실제 값입니다. 파이프라인은 지금도 같은 구조로 돌아갑니다. 구체적인 모델·도구 이름은 바뀔 수 있어 본문에서는 크기와 역할로 적었습니다.