gnet 기능 정의서 (쉽게 풀어쓴 버전)
초등학생도 알아보기 쉽게 설명한 문서예요. 진짜로 만들어져서 동작하는 기능만 적었어요. (아직 계획만 있는 건 맨 아래 "아직 안 만든 것" 칸에 모아뒀어요.)
1. gnet이 뭐예요?
한 줄 요약: 내가 만들고 있는 프로그램의 상태를 한눈에 보여주고, AI 전문가 여러 명을 불러서 내 코드를 같이 봐주게 도와주는 도구예요.
비유하면 이래요:
- 🏥 병원에 가면 의사 한 명만 보는 게 아니라, 내과·외과·치과 선생님이 각각 봐주잖아요? gnet도 내 코드를 내과(아키텍처), 외과(보안), 치과(테스트) 선생님에게 나눠 맡겨요.
- 📺 그리고 그 선생님들이 뭘 하고 있는지 TV 화면(대시보드)으로 다 보여줘요.
2. 크게 세 덩어리로 되어 있어요
┌──────────────────────┐ ┌──────────────────────┐ ┌────────────────────┐
│ 1. 명령어 모음 │ → │ 2. 자동 감시병 │ → │ 3. 보여주는 창 │
│ (터미널에서 실행) │ │ (뒤에서 계속 돌아감)│ │ (Electron 앱) │
└──────────────────────┘ └──────────────────────┘ └────────────────────┘
사람이 시킴 일기장에 적어둠 그림으로 보여줌
모든 칸은 일기장 하나(.gnet/events.jsonl)를 같이 써요.
누가 뭘 했는지 줄줄이 적혀 있고, 창은 그걸 읽어서 그림을 그려요.
3. 만들어진 기능들
🖥️ 덩어리 1: 터미널 명령어
| 명령어 | 하는 일 | 비유 |
|---|---|---|
| gnet | 내 코드를 살펴보고, AI 전문가 팀을 꾸려서, 각자 창을 띄우고 일 시작 | "의사 팀 소집!" |
| gnet resume | 어제 하다 만 팀을 다시 불러냄 | "어제 그 팀 그대로 오세요" |
| gnet attach | 지금 일하고 있는 팀 창에 다시 들어감 | 회의실 문 다시 열기 |
| gnet ask <누구> "<할말>" | 특정 전문가에게 메시지 전달 | 쪽지 전달 |
| gnet synth | 모든 전문가 의견을 하나의 보고서로 합쳐줌 | 종합 소견서 |
| gnet savings | 돈 얼마 아꼈는지 계산 | 가계부 |
| gnet status | 지금 누가 일하고 있는지 목록 보기 | 출석부 |
| gnet kill | 팀 해산 | 회의 종료 |
| gnet mcp | Claude Code 같은 다른 도구랑 연결 | 다른 앱과 전화 연결 |
| gnet gui | 옛날 웹 칸반 화면 열기 | 구식 화이트보드 |
| gnet voice | 마이크로 말하면 글자로 바꿔줌 | 받아쓰기 비서 |
| gnet-knowledge features | 이 프로젝트 기능 지도를 AI가 그려서 저장 | 도감 만들기 |
| gnet-knowledge security | 보안 상태를 AI가 점검해서 저장 | 안전 점검 |
| gnet-observe | 감시병 3명(git·db·logs)을 백그라운드에서 계속 돌림 | 초인종 켜기 |
👀 덩어리 2: 자동 감시병 (gnet-observe)
뒤에서 계속 돌면서, 프로젝트에 뭐가 바뀌었는지 훔쳐보고 일기장에 적어줘요. 감시병은 세 명이 있어요.
① Git 감시병 (lib/state/git.sh)
- 지금 **어느 가지(branch)**에 있는지
- 마지막으로 **뭘 저장(commit)**했는지
- 고쳤는데 아직 저장 안 한 파일이 몇 개인지
- 원격이랑 얼마나 떨어져 있는지 (ahead / behind)
- 최근 커밋 10개
- 뭔가 바뀌면 "커밋됐어요!" / "가지 바꿨어요!" 같이 알려줌
② 데이터베이스 감시병 (lib/state/db.sh)
- 프로젝트에 DB가 있는지 자동으로 찾아냄 (Postgres, MySQL, SQLite 다 지원)
- 테이블이 몇 개 있고, 어떤 컬럼이 있고, 어떻게 연결되어 있는지(관계) 알아냄
- 비밀번호는 절대 저장하지 않음 (보안!)
③ 로그 감시병 (lib/state/logs.sh)
- 앱이 만든 로그 파일(
logs/*.log같은 것)을 자동으로 찾음 - 로그에서 "API 요청", "에러", "느린 응답"을 뽑아냄
- Apache/NGINX/JSON 로그 형식을 다 읽을 수 있음
- 같은 줄을 두 번 읽지 않게 읽은 위치를 기억함
📺 덩어리 3: 대시보드 창 (Electron 앱)
electron/dashboard/ 안에 있는 진짜 앱이에요. 메뉴가 왼쪽에 있어요.
◆ Overview (한눈에 보기)
- 4개 큰 카드: git · schema · security · agents
- 최근에 일어난 일 목록 (미니 피드)
- 카드를 누르면 상세 화면으로 이동
⎇ Git
- 내 저장소 상태를 예쁘게 보여줌
- 고친 파일 목록 + 최근 커밋 목록
- 자동으로 실시간 업데이트 (감시병이 알려주니까)
▦ Schema (데이터베이스 그림)
- 테이블을 동그라미/네모로 그림
- 표끼리 화살표로 연결 (누가 누구를 참조하는지)
- 테이블 종류에 따라 색깔이 달라요
- 파랑 = 보통 표
- 보라 = 로그인 관련 (users, sessions)
- 노랑 = 연결 표
- 초록 = 콘텐츠 (posts, comments)
- 빨강 = 기록 로그
- 테이블을 클릭하면 컬럼·인덱스·관계가 오른쪽에 펼쳐짐
- 배치 방식(force/dagre) 바꿀 수 있음
◈ Features (기능 지도)
- 이 프로젝트에 어떤 기능이 들어있고, 그 기능이 서로 어떻게 얽혀있는지 그래프로 보여줌
gnet-knowledge features를 돌리면 AI가 실제 코드를 훑어.gnet/knowledge/features.json에 저장, 그래프가 실제 데이터로 갱신됨- 분석 결과가 없으면 샘플 데이터 9개로 폴백
◉ Security (보안 상태)
- 인증 방식, 공개된 API 주소, 취약점을 그래프로 보여줌
gnet-knowledge security를 돌리면 AI가 실제 코드를 점검해.gnet/knowledge/security.json에 저장, 결과가 실제로 반영됨- 분석 결과가 없으면 샘플 데이터로 폴백
✦ Live (실시간 수치)
- 4개 그래프: 로그인 지연, 작업 지연, DB 지연, 에러율
- 1초마다 움직이는 실시간 선 그래프
- 로그 감시병(
lib/state/logs.sh)이logs.request/logs.latency_sample/logs.error이벤트를 방출하면 그래프가 실제 수치로 반영됨 - 로그 소스가 없으면 비어있는 상태로 유지
▲ Agents (일하는 AI들)
- 지금 돌아가고 있는 AI 전문가 카드 목록
- 각 카드에는: 이름, 역할, 모델, 지금 쓰고 있는 도구(Tool) 실시간 표시
- 카드 누르면 상세 정보 팝업
- 키보드 화살표로 이동 가능
🖥️ 터미널 (창 아래쪽 트레이)
- 대시보드 안에서 바로 진짜 터미널을 쓸 수 있음
- 프로젝트 폴더 밖으로는 못 나감 (보안!)
- xterm + node-pty 사용
📝 이벤트 피드 (창 아래쪽 트레이)
- 일기장을 실시간 스크롤로 보여줌
- 필터: observer(감시병) · agent(AI) · system(시스템) · user(나)
- 한 번에 최대 600개까지 저장
⌘K 커맨드 팔레트
- Cmd+K / Ctrl+K로 바로 명령 검색
- 화면 이동, 새로고침, 에이전트 호출 다 가능
- VS Code처럼 편함
4. 공통 뼈대 (보이지 않지만 중요한 것)
일기장 = .gnet/events.jsonl
- 모든 기능이 여기 한 줄씩 적어요
- 한 줄 = 한 사건
- 형식:
\{시간, 누가, 무슨일, 세션, 자세한내용\} - 감시병·AI·사람이 쓴 글이 다 섞여 있지만
src칸으로 구분
안전장치
- 비밀번호/토큰은 절대 저장 안 함
- 로그·경로는 프로젝트 바깥으로 새지 않게 검사
- 메시지는 200자로 잘라서 저장 (너무 길면 잘림)
- 이상한 글자(제어 문자)는 지우고 저장
5. 스코프 밖 (의도적으로 안 만든 것)
| 기능 | 상태 | |---|---| | 타임머신 기능 (과거 상태 스크럽) | 스코프 밖 (Phase 5 이후) | | Mermaid 내보내기 | 스코프 밖 — ERD 뷰어는 구현됐지만 파일 export는 안 함 | | 자가수정 패널 | 스코프 밖 |
6. 한눈 정리
사람 ──→ gnet ──→ AI 전문가 팀 ──┐
├──→ 일기장(.gnet/events.jsonl)
gnet-observe ──→ 감시병 3명 ─────┘ │
↓
대시보드 창이 읽고 그림
핵심 아이디어: 누구든 일기장에 쓰면, 창이 자동으로 알아보고 보여준다. 그래서 새 기능을 추가하기가 쉬워요. 일기에 적는 법만 배우면 되니까요.