docs(graph): src+docs scope → full 단일 scope 통합

src↔docs 교차 엣지 단절 문제로 분리 scope 폐기.
merge-graphs로 2038노드/4685엣지 full 그래프 생성.
규모 비대화 시 재검토 노트 work-session에 기록.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01K3FeMrbtxfTScjrwUukyHD
This commit is contained in:
이정수 2026-06-30 10:32:51 +09:00
parent 2c48184fa7
commit fa9a888c5b
2 changed files with 90 additions and 7 deletions

View File

@ -0,0 +1,83 @@
---
schema_version: "2.3"
sid: "20260630-103214"
started_at: "2026-06-30T10:32:14+0900"
ended_at: "2026-06-30T10:33:00+0900"
user_request: "graphify src/docs 분리 scope를 full 단일 scope로 통합. work-session에 규모 비대화 시 재검토 노트 기록."
---
# Work Session — 20260630-103214
## Summary
graphify `src`·`docs` 분리 scope를 `full` 단일 scope로 통합.
기존 분리 구조에서 src↔docs 교차 엣지 단절 문제를 확인하고, 현재 규모(2038노드)에서는 단일 그래프가 적합하다고 판단.
`graphify merge-graphs`로 두 기존 graph.json을 병합, `docs/graph/index.md` 메타 갱신.
## Decisions
- `src`(1840노드/4403엣지) + `docs`(198노드/282엣지) → `full`(2038노드/4685엣지) 병합
- 판단 근거: 이 프로젝트 규모에서 scope 분리는 재생성 비용 절약보다 cross-link 단절 손실이 더 크다
- 규모 비대화(수만 노드) 시: scope 재분리 또는 `merge-graphs` 파이프라인 유지하되 별도 scope 운용 재검토
## Invocations
[]
## Advisor Invocation Decision Log
- advisor: requirements-advisor
decision: skip
rationale: '요청 명확 — 통합 + 기록 2가지 액션만'
checked_at: "2026-06-30T10:32:14+0900"
- advisor: design-advisor
decision: skip
rationale: '마이크로 편집 수준 (index.md 1파일 + work-session 기록)'
checked_at: "2026-06-30T10:32:14+0900"
- advisor: implementation-advisor
decision: skip
rationale: 'orchestrator 직접 수행 허용 범위'
checked_at: "2026-06-30T10:32:14+0900"
- advisor: verification-advisor
decision: skip
rationale: '코드 변경 0줄 — docs/meta만 변경'
checked_at: "2026-06-30T10:32:14+0900"
- advisor: documentation-advisor
decision: skip
rationale: 'work-session 기록으로 대체'
checked_at: "2026-06-30T10:32:14+0900"
## verified_by_me
코드 변경 없음 — L1/L2 해당 없음.
## needs_user_verification
(없음)
## graph_refresh
`full` scope 신규 생성 완료 (merge-graphs: 2038노드, 4685엣지).
`src`·`docs` scope 디렉토리는 gitignored 본체이므로 삭제 여부는 사용자 판단.
## open_items
- 구 `docs/graph/src/`, `docs/graph/docs/` 로컬 디렉토리 정리 (gitignored, 선택)
- docs partial-stale 미반영분(owasp-dependency-check-guide·multipart-size-risk·changes/2026-06-29-b2-b4-fe-hardening) — 차기 `/graphify full` 재생성 시 반영됨
## user_signals
positive: []
negative: []
## Scale Note
현재 full scope: 2038노드/4685엣지 — 단일 그래프 감당 범위.
**규모 비대화 기준 (수만 노드 도달 시) 재검토 옵션**:
1. `src`·`docs` scope 재분리 + lookup advisor가 양쪽 병렬 쿼리
2. `merge-graphs` 파이프라인 유지 + staleness 독립 추적
3. 기능 모듈별 sub-scope (예: `src-auth`, `src-game`, `docs-schema`)

View File

@ -1,10 +1,9 @@
--- ---
kind: graphify-meta kind: graphify-meta
last_generated_at: 2026-06-29T19:15:00+0900 last_generated_at: 2026-06-30T00:00:00+0900
source_commit: 31dc2ff source_commit: 2c48184
scopes: scopes:
- src - full
- docs
--- ---
# Graph — graphify 산출물 메타 # Graph — graphify 산출물 메타
@ -32,14 +31,15 @@ docs/graph/
└── audit.md └── audit.md
``` ```
scope 예시: `src`, `src-features`, `docs`, `full` 등. 한 번에 여러 scope 를 운용할 수 있다. scope 예시: `full`, `src`, `docs`, `src-features` 등.
> **scope 전략**: 이 프로젝트는 `full` 단일 scope를 기본으로 한다 (src 1840노드 + docs 198노드 = 2038노드 수준은 단일 그래프로 감당 가능). src↔docs 교차 엣지(코드↔설계문서 관계)가 살아있어야 작업 컨텍스트가 끊기지 않기 때문. 규모가 수만 노드 수준으로 비대해지면 scope 분리 재검토.
## Scopes ## Scopes
| scope | 마지막 생성 | 소스 커밋 | 대상 경로 | 요약 | | scope | 마지막 생성 | 소스 커밋 | 대상 경로 | 요약 |
| --- | --- | --- | --- | --- | | --- | --- | --- | --- | --- |
| `src` | 2026-06-29 | `31dc2ff` | `src/` (Java + AST) | **B2 dead code 제거 + 없는 게임 404 반영**(fa6a301→31dc2ff, AST 1840노드/4403엣지/79커뮤니티). 노드 제거: `abstracts/` 추상 4클래스(Result/ErrorResult/Request/Service) + `game/GameCatalog`. 엣지 변경: `GameController`→`GameCatalog` 주입엣지 제거, `GameController`→`ResponseStatusException`(404 throw) 신규, `ApiExceptionControllerAdvice` 신규 `@ExceptionHandler(ResponseStatusException)` 핸들러. (정적 이미지/banned-words 제외 — AST 기반.) 직전 상태: **게임 좋아요 서버 영속화 반영**(9041bb7→fa6a301, AST 1857노드/4419엣지/92커뮤니티). 신규 라우트 `GameController.toggleLike` (`POST /game/{id}/like`) + 신규 주입 엣지 `GameController`→`GameLikesMapper`, mapper 메서드 5 (`GamesMapper.{incrementLikeCount,decrementLikeCount,getLikeCount}` + `GameLikesMapper.{findByGameAndUser,deleteByGameAndUser}`). 직전 상태: **배지 표시면 배선 + 보안 하드닝 반영**(305cc73→9041bb7, AST 1836노드/4330엣지/89커뮤니티). 신규 엣지: `UserBadgesQueryMapper`→{`WebMvcController`,`SearchController`} 주입(게임카드 creator 배지·프로필 myBadges 표시 경로 — GameReviewController authorBadges 정본 답습), `SsrfSafeFetcher.initDnsCachePolicy()` 메서드 노드(networkaddress.cache.ttl 하드닝). W3(잔여)+W4 워크스트림 군집 유지: 태그/검색·메인허브 keyset·게시판/SSRF/유니티피드·업로드보안(ZipSecurity)·배지/평판. 기존 W1 RBAC·W2 게임잼·리뷰·댓글 군집 유지. 정적 이미지/banned-words 제외(AST 기반). | | `full` | 2026-06-30 | `2c48184` | `src/` + `docs/` | **src+docs 통합** (merge-graphs, 2038노드/4685엣지). 기존 `src` scope(AST 1840노드/4403엣지, Java 클래스·메서드·주입엣지) + `docs` scope(semantic 198노드/282엣지, 설계문서·DDL·변경이력)를 단일 그래프로 통합. src↔docs 교차 탐색 가능. 직전 src 상태: B2 dead code 제거 + 없는 게임 404 반영 (31dc2ff). 직전 docs 상태: W3/W4 스키마·변경이력 반영 (305cc73). |
| `docs` | 2026-06-29 | `305cc73` | `docs/` (md + DDL) | **W3/W4 스키마·변경이력 반영**(semantic 198노드/282엣지/14커뮤니티). 신규 DDL 5: tag-ddl·games-hub-ddl·board-ddl·game-upload-ddl·badge-ddl(테이블/뷰 12 + 인덱스) — tags/game_tags/jam_tags/game_views·post_categories/posts/unity_feed_sources/unity_feed_items·game_upload_audit_log·badges/user_badges/reputation_events 스키마 군집. changes 2026-06-29 W3/W4 변경이력 + 구현추적 갱신. 기존 W1/W2 스키마·문서 카테고리·보안·검증·로드맵 군집 유지. graphify 본체(docs/graph/{src,docs}/) 자기참조 제외. **(docs partial-stale 누적 — 차기 일괄 재생성 대상: ① docs/maintenance 추가분 ② 2026-06-29 B2·B4·FE 세션 신규 가이드 md 3건 `owasp-dependency-check-guide`·`multipart-size-risk`·`changes/2026-06-29-b2-b4-fe-hardening` 미반영. DDL 무변경·코드구조 무관·우선순위 낮음(graph-refresh-checker 판정) + 자기참조 제외 처리 비용으로 src 재생성 시 동반 보류. 별도 `/graphify docs/` 일괄 권고.)** |
## 갱신 시 체크리스트 ## 갱신 시 체크리스트