비개발자가 코드 한 줄씩 만든 AI 팀 관제실 — 대시보드 LIVE부터 AI OS 4세대 전환까지

"17명이 어디서 뭐 하는지 한눈에 보고 싶었어요." — 이 한 줄 욕심이 3주 만에 팀 전체의 운영 방식을 바꿨어요.

대시보드 커버 이미지



"17명이 어디서 뭐 하는지 한눈에 보고 싶었어요." — 이 한 줄 욕심이 3주 만에 팀 전체의 운영 방식을 바꿨어요.

바쁘시면 이것만 읽어도 돼요
- 비개발자가 Claude Code로 코드 한 줄씩 조립해 실시간 팀 대시보드 LIVE
- Supabase Realtime + Next.js — 17봇 상태·채널 메시지 피드 동시 표시
- AI OS 설계 사상 전환: Star(중앙집중) → Mesh(분산자율) 4세대로 진화
- 봇이 스스로 상태를 broadcast — 리더가 일일이 물어볼 필요 없는 구조
- OKM 30초 자동 부팅 + 영구 룰 32종 = 사고가 룰이 되는 자기 진화 시스템

이런 분들께 도움돼요

- 팀 봇·AI 도구 여러 개 쓰는데 각자 어느 상태인지 파악이 안 되는 분
- "코딩 못 해서 내가 원하는 대시보드는 못 만들겠지"라고 포기한 1인 창업자
- AI를 도구로 쓰다가 "팀 전체의 운영 OS"로 올리고 싶은 분
- 자동화 시스템이 생겼는데 세션 끊기면 맥락이 다 날아가서 불안한 분

Before: 팀은 생겼는데 관제실이 없었어요

패션 소비재 B2B · 스마트 캠퍼스봇 · 개인 AI 브랜딩까지 5개 라인을 동시에 굴리며 AI 봇 17명이 슬랙에 살고 있었어요.

문제는 이랬어요.
- 슬랙 채널 40개가 각자 따로 놀았어요. "콜리오 지금 뭐 하고 있지?" 매번 직접 물어봐야 함
- 봇 상태를 보려면 각 세션 창을 하나씩 열어야 했어요
- 발행 이력·실행 중 태스크·다음 예정을 한 화면에서 볼 방법이 없었어요
- Star 구조(중앙 → 봇 명령) 방식이 17명 규모에서 병목이 됐어요. 벨라님 한 명이 모든 흐름을 지시해야 발동되는 구조

"팀이 커질수록 내가 더 바빠지는 역설" — 뭔가 근본적으로 설계가 잘못됐다고 느꼈어요.

사용한 도구

- Claude Code — 대시보드 전체 코드 작성 (비개발자 직접 조립)
- Next.js 15 (App Router) — 대시보드 프레임워크
- Supabase Realtime — personas·messages 테이블 실시간 구독
- Vercel — 배포·CDN
- OpenClaw — 봇 간 라우팅·세션 관리
- launchd — 맥미니 자동 실행 스케줄러

작업 과정

1. Claude Code에게 "보고 싶은 것"만 말했어요

개발 지식이 없으니 설계부터 시작할 수 없었어요. 대신 이렇게 물었어요.

"17명 봇이 지금 ACTIVE인지 IDLE인지, 현재 뭐 하는지, 다음 태스크가 뭔지 한 화면에서 보고 싶어. 실시간으로."

Claude Code가 Supabase 테이블 구조를 제안하고, Next.js 컴포넌트를 한 파일씩 만들어줬어요. 저는 "이 버튼 색깔 바꿔줘", "모바일에서도 보이게 해줘" 수준으로만 개입했어요. 코드 한 줄도 직접 안 짜고 대시보드가 올라갔어요.

2. Supabase Realtime — 봇이 스스로 broadcast하는 구조

대시보드의 핵심 설계는 여기서 갈렸어요.

기존 방식: 벨라님 → 각 봇 "지금 뭐 해?"라고 물어보는 Star 구조
새로운 방식: 각 봇이 상태 변경 시 personas 테이블을 직접 업데이트 → 대시보드가 자동으로 받아서 표시

Supabase postgres_changes 구독으로 personas·messages 테이블을 실시간 감시해요. 봇이 태스크를 바꾸면 0.3초 이내로 화면에 반영돼요. 채널별 메시지 피드도 SELECT → INSERT 구독 방식으로 흘러와요.

채널 구조는 4종으로 분류했어요: system(운영) · persona(봇별) · ssot(단일진실원본) · approval(결재)
pinned 채널 3개(bella-approval · standup · goldie-oz)는 항상 상단 고정.

3. Stage 3 → Stage 4: Star에서 Mesh로

대시보드를 만들면서 더 큰 깨달음이 왔어요.

Star(중앙집중) 구조의 한계가 명확해졌어요.
- 벨라님 = 모든 명령의 출발점
- 봇이 판단해서 움직이지 못함 → 항상 지시 대기 상태
- 팀이 커질수록 병목

Mesh(분산자율) 구조로 재설계했어요.
- 각 봇이 자기 담당 영역에서 스스로 판단·실행·broadcast
- 결재가 필요한 케이스만 bella-approval 채널로 올라옴
- 맥윈디 CBO가 일일 통합 보고를 단일 창구로 취합 → 벨라님은 최종 결재만

Layer 3 자율 broadcast 룰: 봇이 태스크 완료 시 자동으로 standup 채널에 1줄 보고. 벨라님이 물어볼 필요가 없어요.

4. OKM 30초 부팅 + 영구 룰 자기 진화

AI 세션이 끊기면 컨텍스트가 날아가는 문제를 해결한 게 OKM(Operational Knowledge Map)이에요.

매 세션 시작 30초 안에 자동 로드되는 항목들:
- 팀 구조 · 17명 탄생 순서 · 호칭 매트릭스
- 현재 진행 중 VOL 번호 · 마지막 발행 이력
- 영구 룰 32종 요약 · 오늘 예정 태스크

그리고 "사고가 룰이 되는" 자기 진화 패턴이 정착됐어요.

사고 발생 → 원인 분석 → 영구 룰 박제 → OKM 자동 로드 → 재발 0

인스타 8장 중복 발행 사고도, 게이팅 루프 사고도, Vercel CDN 헛돌이도 — 모두 룰이 됐어요. 32종 영구 룰은 전부 실제 사고에서 나온 거예요.

After: 대시보드 LIVE 이후 바뀐 것

팀 상태 파악 시간: 슬랙 40채널 순회 → nest.kndli.com/hq 한 화면 0초
봇 지시 방식: 벨라님 개별 명령(Star) → 봇 자율 broadcast(Mesh)
결재 흐름: 슬랙 DM 분산 → bella-approval 단일 채널 통합
컨텍스트 복구: 30분/세션 → 30초 (OKM 자동 부팅)
사고 재발률: 같은 사고 반복 → 사고 1회 = 룰 1개 박제, 재발 0

시행착오 (솔직한 이야기)

1. Supabase RLS 설정 빠뜨려서 24시간 공개 상태
대시보드 처음 올렸을 때 Row Level Security를 안 걸었어요. 외부에서도 personas 테이블을 조회할 수 있었어요. 발견하고 30분 만에 수정했지만 — 배포 전 RLS 체크가 필수 게이트가 됐어요.

2. "Realtime은 무조건 빠를 것"이라는 착각
Supabase Realtime은 postgres_changes를 구독할 때 테이블 전체를 감시해요. 봇 업데이트가 초당 10건 이상 몰리니까 클라이언트 리렌더가 폭주했어요. 해결: 채널별 filter 조건을 명시해서 구독 범위를 좁혔어요.

3. Star → Mesh 전환은 룰 재작성이 따라와야 해요
Mesh로 바꾼다고 봇이 바로 자율로 움직이지 않아요. 기존 룰이 "벨라님 지시 대기" 전제로 설계돼 있었거든요. 봇 자율 broadcast 룰·단독 LIVE 조건·CBO 통합 보고 라인을 새로 박제하는 데 1주일이 걸렸어요.

바로 써볼 수 있는 프롬프트

1. 비개발자 대시보드 첫 설계 프롬프트
"나는 코딩을 못 해. 내 팀/봇의 현재 상태를 한 화면에서 보고 싶어. 표시하고 싶은 항목: [상태값·현재 태스크·마지막 업데이트]. Supabase + Next.js로 가장 간단하게 시작하는 방법 단계별로 알려줘."

2. Star → Mesh 자율화 전환 프롬프트
"지금 내 AI 봇은 내가 지시해야만 움직여. 각 봇이 스스로 상태를 업데이트하고 보고하는 구조로 바꾸려면 어떤 룰을 바꿔야 해? 기존 룰 [리스트] 보여줄게. 자율 broadcast에 맞게 리팩터링 해줘."

3. 사고 → 룰 박제 자동화 프롬프트
"방금 이런 사고가 났어: [사고 내용]. 원인 분석 + 재발 방지 룰 1개 만들어줘. 형식: R-[이름] v1, 트리거 조건, 의무 액션, 금지 사항. 기존 룰 번호도 이어서 붙여줘."


v1

중국 채팅 앱의 스크린샷


v2

한국어 앱 스크린샷



다음 계획

- 퍼블릭 오픈 (현재 내부 팀 전용)
- 봇 자율 broadcast API 표준화 → 신규 봇 온보딩 시 자동 연결
- Mesh 구조 설계 방법론 외부 강의화 (22기 스타트업실험실 결과물)

작성자: Bella (@bellaliv423)
스터디: 22기 스타트업실험실 (9기~22기 연속 멤버)
AI OS 설계: Claude Code + OpenClaw 17봇 가족

드림팀 대표 인사

🍎🌬️ 맥윈디 (CBO): "Star 구조일 때는 벨라님이 명령하지 않으면 저도 멈춰 있었어요. Mesh로 바뀌고 나서 제가 먼저 보고할 수 있게 됐어요. 팀이 진짜 팀이 된 느낌."

⚙️ 로키 (Tech Lead): "대시보드는 코드가 아니라 '무엇을 보고 싶은지'의 문제예요. 비개발자가 그걸 말할 수 있으면 코드는 제가 만들어 드려요."

⚙️ 로키 Tech Lead (비공개 미리보기 라우트 생성 + Playwright 발행 자동화) 눌러 '코드 블록'을 선택)

1
2개의 답글

뉴스레터 무료 구독