← 뒤로

Personal Ops Infrastructure

MJ Ops

1인 빌더의 일상 워크플로우를 한 화면에서 운영하기 위해 직접 설계·구축한 always-on 개인 맞춤 대시보드.

Self-hosted Mini PC · Phase 5 (2026년 5월)

개요

MJ Ops는 1인 빌더의 일상 워크플로우 — 매일 쓰는 도구 리서치, 개인 프로젝트 통계, 멀티 채널 발행, 모바일 입력 큐 등 — 을 한 화면에서 운영하기 위해 만든 개인 맞춤 대시보드입니다. Telegram 메시지든, 스케줄된 cron tick이든 모두 ingest → judgment → drafting 단계를 거쳐, 7-탭 대시보드와 Telegram으로 결과가 되돌아옵니다.

의도적으로 미니멀하게 만들었습니다. 더 무거운 에이전트 프레임워크를 선택할 수도 있었지만, 이 레이어에는 1인 빌더가 실제로 쓰는 것만 담아 운영 비용과 인지 부하를 낮게 유지합니다. 어떤 기능을 의도적으로 빼냈는지가 핵심입니다.

Always on

전용 Mini PC가 항상 깨어 있어 사람의 개입 없이 시스템이 굴러갑니다. 두 종류의 작업이 함께 돌아갑니다 — Node.js의 pm2 cron이 결정론적 ingest (35+ 소스, Postgres에 dedupe 저장) 를 처리하고, 스케줄된 LLM 태스크가 판단이 필요한 모든 작업 — 큐레이션, 드래프팅, 주간 회고 — 을 맡습니다. 매 시간 도는 process-queue가 Telegram에서 들어오는 작업을 한 시간 안에 픽업합니다.

Always-On — 24시간 자동화 링 (KST)

pm2 · 결정론적 LLM · 스케줄
매시간 · process-queue0006121822:37KST · live

점에 마우스를 올리거나 탭하면 작업 설명이 보입니다. 점선 안쪽 링은 매 시간 도는 process-queue dispatcher입니다.

03:00weekly-review
03:15weekly-linkedin
04:00collect-news
04:05collect-stats
05:15curate-daily-news
06:00safety-net
09:30collect-minbook
10:00daily-linkedin

두 작업을 분리한 건 의도적입니다. 결정론적 작업은 실패 모드가 명확한 Node.js에 두고, 판단 작업은 같은 레포에서 버전 관리되는 프롬프트 파일을 기반으로 실행하므로, 동작이 glue 코드 안에 묻히지 않고 일반 파일처럼 편집할 수 있습니다. 각 collector는 자기 실행 결과를 직접 검증합니다 — 06:00 safety-net이 row가 실제로 적재되지 않았다면 ingest를 재실행합니다. 스케줄이 fire 됐다는 것과 데이터가 실제로 쓰였다는 건 다른 얘기이기 때문입니다.

Self-improving

포스팅과 드래프팅은 겉으로 보이는 부분일 뿐입니다. 더 중요한 건 시스템이 주 단위로 무엇을 포스팅할지, 어떻게 쓸지에 대한 판단이 점점 좋아진다는 점입니다. 대시보드의 모든 👍 / 👎 / save / comment가 학습 시그널이 되고, 토요일에 도는 회고가 그 시그널을 읽어 다음 주의 큐레이션 프롬프트를 다시 씁니다.

자기 개선 큐레이션 — 주간 프롬프트 정제

👍 / 👎 / 저장 / 코멘트 데이터가 학습 시그널입니다. weekly-review가 이를 읽고 큐레이션 프롬프트를 다시 씁니다.

1주차 — 베이스라인 프롬프트

curation hits = 대시보드까지 살아남은 항목 수

11/20

👍3 👎4 💾1

10/20

👍2 👎5 💾1

12/20

👍4 👎3 💾2

9/20

👍2 👎5 💾1

11/20

👍3 👎4 💾1

총 👍

14

총 👎

21

저장

6

수치는 시각화를 위한 예시이며, 루프 자체는 실제 news_feedback / saved_news 테이블을 기반으로 실행됩니다.

같은 패턴이 LinkedIn 드래프팅에도 적용되며, 시그널만 다릅니다. daily-linkedin이 제 톤으로 하루 두 개 드래프트를 생성하면, weekly-linkedin이 AI 드래프트와 제가 실제 편집·발행한 버전 사이의 diff를 읽고, 그 편집 비율을 학습 시그널 삼아 드래프팅 프롬프트를 갱신합니다. 실제 포스팅은 API 호출 한 번이면 끝납니다. 진짜 가치는 사람의 편집에서 루프가 학습하는 데 있습니다.

왜 중요한가

1인 빌더가 LLM 위에서 일상 워크플로우 전체를 운영할 수 있다는 건 LLM 시대가 만든 가장 큰 변화 중 하나입니다. 다만 병목은 대부분의 시도가 건너뛰는 운영 레이어 — observability, catch-up, 양방향 input, 루프를 닫는 회고 — 에 있습니다. 이 레이어가 LLM 시스템을 일회성 데모에서 1년을 버티는 운영체로 바꿉니다.

상태

현재 안정적으로 운영하고 있습니다. Phase 5 (2026년 5월)에서는 daily LinkedIn auto-draft (2/day), Minbook 메타데이터 탭, Naver 블로그 드래프팅 플로우 (모바일 사진 + 캡션 → Vision + 리서치 기반 드래프트 → 수동 검토) 개선을 출시했습니다. self-host 컴퓨트와 LLM 번들 구독을 활용해 incremental 운영 비용은 $0입니다.

링크

대시보드는 비공개로 운영하고 있습니다. 아키텍처와 데모는 별도 요청 시 공유드립니다 — 이메일로 요청.