10기 KG(Knowledge Graph) 스터디 레포입니다. 각자 공부한 내용(notes)과 실습 코드(labs)를 자기 폴더 아래에 정리합니다.
현황판: https://cloud-club.github.io/10th-KG-study/ — 누가 뭘 공부했고 어디까지 왔는지 한눈에.
10th-KG-study/
├── README.md
├── CONTRIBUTING.md # 참여 방법, 네이밍 규칙
├── CLAUDE.md # 스터디 위키 스키마 — LLM 에이전트가 wiki/ 를 어떻게 쓰는지
├── .gitignore
├── docker-compose.yml # 로컬 인프라: Postgres(pgvector) + Elasticsearch(nori) + Neo4j(APOC)
├── .env.example # 인프라 비밀번호·포트 (cp .env.example .env)
├── infra/ # 인프라 설정, 사용법 (infra/README.md)
├── data/ # 각자 받아온 데이터셋 (git 무시, 컨테이너에 마운트됨)
├── members/ # 멤버별 개인 작업 공간
│ ├── cohorts.json # 반(A반/B반…) 명단 — 현황판 지식그래프를 반별로 나눠 그림
│ ├── names.json # GitHub 아이디 → 이름. 현황판에 아이디 대신 이름을 보여줌
│ └── <github-id>/
│ ├── README.md # 자기소개, 목표
│ ├── readings.md # 주차별 읽을거리·참고자료 (현황판에 모아서 표시)
│ ├── notes/ # 학습 정리 (01-topic.md ...)
│ └── labs/ # 실습 (01-topic/README.md + src/)
├── templates/ # notes / labs / readings 템플릿
│ ├── note-template.md
│ ├── lab-template.md
│ └── readings-template.md
├── shared/ # 공용 작업 공간
│ └── cloudclub-agent/
├── wiki/ # 스터디 위키 (LLM 이 members/ 를 읽어 주제별로 합성). 옵시디언 볼트
│ ├── index.md # 카탈로그 — 여기서부터 읽는다
│ ├── log.md # 활동 로그
│ ├── concepts/ entities/ comparisons/ sources/ inbox/
│ └── _templates/
├── dashboard/ # 현황판 정적 사이트 (GitHub Pages)
├── scripts/ # 현황판 데이터 빌드 스크립트
└── .github/workflows/ # Pages 배포
members/<github-id>/폴더를 만듭니다. (아래 명령 참고)README.md에 간단한 자기소개와 스터디 목표를 적습니다.notes/,labs/에 공부한 내용을 쌓아갑니다.- 주차별 참고자료는
readings.md에## 1주차제목 아래 링크로 적습니다. 현황판이 멤버 전체 것을 모아 보여줍니다. - PR로 올립니다. 자세한 규칙은 CONTRIBUTING.md를 참고하세요.
GH_ID=<your-github-id>
mkdir -p members/$GH_ID/notes members/$GH_ID/labs
cp templates/note-template.md members/$GH_ID/notes/01-topic.md
cp templates/readings-template.md members/$GH_ID/readings.md실습용 DB 세 개를 한 번에 띄웁니다. 자세한 건 infra/README.md.
cp .env.example .env
docker compose up -d # PostgreSQL 17 + pgvector, Elasticsearch 9 + nori, Neo4j 5.26 + APOC
bash infra/check.sh # 정상 기동 확인| 서비스 | 접속 |
|---|---|
| PostgreSQL + pgvector | postgresql://kg:kg@localhost:5432/kg |
| Elasticsearch + nori | http://localhost:9200 |
| Neo4j + APOC | bolt://localhost:7687, Browser http://localhost:7474 (neo4j / kgstudy2026) |
받아온 데이터셋은 data/<github-id>/ 아래에 두면 컨테이너에서 바로 읽을 수 있고 git 에는 올라가지 않습니다.
members/에 흩어진 노트·실습을 주제별로 합성한 위키입니다. LLM 에이전트(Claude Code 등)가 규칙
CLAUDE.md에 따라 쓰고 유지합니다. 사람은 읽고, 질문하고, 자기 노트를 고칩니다.
- 시작점은 wiki/index.md. 개념 페이지(
concepts/)마다 "멤버들이 확인한 것"에 누가 어떤 조건에서 무엇을 측정했는지 모여 있고, 노트끼리 다르게 말하는 지점은⚠️ Contradiction으로 표시됩니다. - 내 노트가 어느 페이지에 반영됐는지는 wiki/sources/스터디-노트-지도.md.
wiki/아래를 직접 고치지 마세요. 틀린 게 있으면 자기 노트를 고치고 PR 을 올리면 다음 ingest 때 반영됩니다. 급하면 이슈나wiki/inbox/에 메모를 남기세요.- 옵시디언으로 보려면
wiki/폴더를 볼트로 엽니다. 그래프 뷰가 주제 사이의 연결을 보여줍니다. - 갱신(ingest)은 매주 월요일 아침 GitHub Actions 가 자동으로 돌려 PR 로 올립니다
(wiki-ingest.yml). 급하면 이 저장소에서 Claude Code 를 열고
"PR #n 머지됐어, ingest 해줘" 또는 "위키 린트"라고 요청하면 됩니다. 밀린 소재는
python3 scripts/wiki_backlog.py. 규칙과 절차는 CLAUDE.md에 있고,.claude/hooks/의 훅이 규칙을 강제합니다.
main에 푸시하면 GitHub Actions가 members/를 스캔해 노트·실습·커밋·활동 히트맵을 뽑고,
GPT가 멤버별 칭호·요약·태그와 스터디 소식을 붙여 GitHub Pages로 배포합니다.
- 노트/실습 맨 위 프론트매터의
tags가 지식그래프의 주제 노드가 됩니다. 비워두면 GPT가 채워줍니다. - 현황판에는 GitHub 아이디 대신 이름이 뜹니다.
members/names.json에{"github-id": "이름"}으로 적어 두면 카드·그래프·중계석·읽을거리·최근 활동과 GPT 문구까지 이름으로 부릅니다. 본인README.md맨 위 프론트매터에name: 이름을 적으면 그게 우선입니다. - 지식그래프는 반(cohort) 단위로 따로 그립니다.
members/cohorts.json에{"A": ["id", ...]}처럼 반별 명단을 적고, 명단에 없는 새 멤버는 자동으로 마지막 반 다음 반(지금은 B반)에 들어갑니다. 반마다 색 계열이 달라(A반 하늘, B반 노을, C반 풀밭) 멤버 카드·피드·읽을거리에서도 어느 반인지 보입니다. B반이 다 찼으면"B": [...]를 추가해 닫고, 그다음 합류자는 C반으로 갑니다. - "주차별 읽을거리"는 각자
members/<id>/readings.md의## N주차아래 불릿을 모아 주차별로 보여줍니다.[제목](링크) — 메모형식이면 링크·도메인·메모까지 뽑히고, 링크 없는 책 제목도 됩니다. - "중계석"은 최근 커밋의 diff를 GPT가 읽고 무슨 작업인지 캐스터 톤으로 중계합니다. 같은 멤버가 같은 날 올린 커밋은 한 사건으로 묶이고, 한 멤버는 피드에서 커밋 사건을 최대 3개까지만 차지합니다 (한 명이 도배하지 않도록).
members/,shared/어디든 스터디 작업 커밋이면 잡히고, 3일 이상 연속 출석과 레벨 업도 사건으로 올라갑니다. 현황판 코드나 템플릿만 바꾼 커밋은 제외합니다. - 커밋은 멤버 폴더 경로, GitHub 로그인, 이메일 순으로 멤버에 연결됩니다.
shared/커밋도 히트맵과 최근 활동에 포함됩니다. - 로컬 미리보기:
python3 scripts/build_dashboard.py # LLM 없이
OPENAI_API_KEY=sk-... python3 scripts/build_dashboard.py # GPT 요약 포함
python3 -m http.server -d dashboard 8000 # http://localhost:8000- GPT 요약을 켜려면 레포 Settings → Secrets and variables → Actions에
OPENAI_API_KEY를 등록합니다. 키가 없어도 규칙 기반 요약으로 빌드됩니다. 모델은OPENAI_MODEL변수로 바꿀 수 있습니다 (기본gpt-5-mini).
| GitHub ID | 폴더 |
|---|---|
| sese2204 | members/sese2204 |
| heebindev | members/heebindev |
| lys0611 | members/lys0611 |
| e0ng | members/e0ng |
| do-dop | members/do-dop |
| kdyann | members/kdyann |
| kungbi | members/kungbi |
| sdunge | members/sdunge |
| Yeongeunn | members/Yeongeunn |