gnet

docs · ko

기능정의서

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명 ─────┘              │
                                                  ↓
                                            대시보드 창이 읽고 그림

핵심 아이디어: 누구든 일기장에 쓰면, 창이 자동으로 알아보고 보여준다. 그래서 새 기능을 추가하기가 쉬워요. 일기에 적는 법만 배우면 되니까요.