콘텐츠로 이동

위키 백로그

다른 PC·다른 세션에서 위키 작업을 이어가기 위한 상태 인계 파일.

새 세션 시작 시 가장 먼저 읽어야 함: 1. 이 페이지 2. guide-wiki-authoring-standards 3. wiki/log.md (최근 작업 시간순) 4. wiki/index.md (전체 페이지 카탈로그)


📅 마지막 업데이트

2026-07-12

🎯 현재 위키의 큰 줄기 (Strategy)

이 위키는 4개 카테고리로 누적 중:

  1. 위키·지식관리 — Obsidian·Memex·LLM Wiki 패턴 (메타·인프라)
  2. 하네스·AI 에이전트 — Claude Code 하네스 5모듈 실습 + AI 도구 비용 관리
  3. Java·Spring·DDD — Spring 7.0, JVM, OOP, 디자인 패턴, DDD 모델링
  4. DB·운영·인프라 — DB 운영 함정, 네트워크, K8s, "기본값 사고" 패턴 누적

핵심 인사이트가 두 가지로 자라는 중: - "복리 지식" (Karpathy/Hashimoto) — 위키가 누적될수록 페이지 간 교차참조 가치 ↑ - "기본값과 가정의 함정" — 인프라/프레임워크 기본값이 그대로 사고로 이어진다는 패턴 (6+ 페이지에 비교표)

✅ 최근 완료 작업 (2026-06~07 누적)

2026-07-12 — harness Before/After 검증 방식 전환: revert 재실행 → 같은 유형 새 태스크 (전부 배포 완료)

사용자 피드백("Step 5-1에서 되돌리면 CLAUDE.md도 초기화되니까 그냥 address를 추가하는 게 좋을 것 같아")이 출발점. 2026-07-04에 신설했던 revert 출발선 방식 자체를 폐기하고 전 계층(위키 M1·M2·M5 → 표준 가이드 → raw 원본) 소탕.

  • M2 Step 5 revert 폐기 → 태스크 D 신설git revert 출발선 되돌리기는 태스크 커밋에 섞인 CLAUDE.md 변경(git add -A)까지 초기화하는 함정. 대신 태스크 A(phone)와 요구 구조가 같은 태스크 D — address 필드(행안부 도로명주소: roadAddress·detailAddress(선택)·zipCode 5자리, 필수 누락·형식 오류 400)를 새로 실행해 비교. 커밋 규약 harness(M2-A)harness(M2-D).
  • M5 연쇄 수정 → 태스크 E 신설 — M2-A revert 단계 제거, 태스크 E — birthDate 필드(YYYY-MM-DD·실존 날짜)로 5모듈 누적 측정. 비교표 "필드 추가 태스크 비교 — M1: phone / M2: address / M5: birthDate". 커밋 harness(M5-E).
  • 비교 유효성 논리 교체 — "동일 태스크를 같은 표현으로 재실행" → "요구 구조(필드 추가·형식 검증·필수 처리·web 반영·테스트)와 측정 7항목 고정". M1 4곳(Step 3 목적·[베이스라인 측정 중] 해설·Step 4 리드인·baseline.md 템플릿 꼬리 주석) 갱신, §7-8 예시 커밋명 동기화.
  • raw 원본 교정 주석 2곳 (원본 불신 검증 정책) — harness-kit/module1/02_baseline_prompt.md·module2/02_before_after_prompt.md에 재실행 불성립 이유와 위키 대체 방식 주석. 강의교안류 3곳의 한 줄 개념 서술은 원문 유지.
  • M2 Step 3 정비 — 프롬프트 중첩 펜스 이스케이프(\```) 제거(4-backtick 외부 펜스), 출력 형식 트리를 실제 playground(api/+web/)로 교체, "web/api 분리 모노레포 명시 + 양쪽에 걸치는 변경은 함께 수정" 원칙 추가.
  • nav 정리 — 좌측 메뉴 괄호 부연 3건 제거(Loop 실습·Advisor–Worker 실습·심화), 날짜·정식 명칭 괄호는 유지.
  • 태스크 D·E 실습 실행 검증 + M2·M5 배너 — playground 복사본(원본 무변경)에서 헤드리스 실행: 태스크 D(Zod Address·400 검증·api/web 동시 수정·테스트 5→11), 태스크 E(실존 날짜 refine·자기검증 루프 4단계 작동·테스트 17). 커밋 체인 baseline(M1-A)→harness(M2-D)→harness(M5-E) 새 규약 재현.
  • Advisor–Worker 심화편 4장면 실행 검증 완료 (Pending 종결) — 헤드리스 stream-json 감사로 전 장면 재현 + 배너 부착. 핵심 수확: ① 오버헤드 예외를 "한두 줄" 크기 기준으로 적으면 장면 1이 재현 안 됨(2/2 직접 수정) → Step 0 규율·raw 원본 2곳을 동작 변경 기준으로 교정 ② CLAUDE_CODE_SUBAGENT_MODEL이 frontmatter 고정을 덮어씀을 실측(haiku 0건) — 원본 경고에 "실측 확인" 주석 ③ 장면 1 판정 문구 결함(PASS — 4개 케이스는 출력될 수 없음) → 추가 블록에 4번째 케이스 로그 신설 ④ CLI 2.1.197 stream-json에선 Task가 Agent로 표기.

2026-07-06 — Advisor–Worker ingest + 실습 신설 + 실행 검증 (전부 배포 완료)

  • raw/ai-engineering/ai-advisor/ ingest — advisor/worker 에이전트 정의 + 프로젝트 CLAUDE.md 템플릿 (판단·구현 분리, 역할별 이종 모델). src-ai-advisor-worker 신설, concept-multi-agent-pattern에 "2-역할 변형" 절, 빈 파일 a.md 삭제.
  • guide-advisor-worker-demo 실습 신설~/advisor-demo cart 할인 테스트를 완료 기준으로 축약판 에이전트 설치 → claude --agent advisor → 관찰 포인트 4장면·차이 표·역할 분리 체크리스트. "보고를 믿지 말고 재검증하라" 패턴 비교표 4행.
  • 실행 검증 — 헤드리스(claude --agent advisor -p + stream-json 도구 호출 감사)로 4장면 전부 재현: 6항목 브리프 위임 / Write는 Worker만 / Advisor가 diff·테스트 직접 재실행 / 검증 후 Advisor 커밋. 1사이클 3/3 통과. 페이지에 "✅ 실행 검증됨" 배너.
  • concept-advisor-worker 개념 페이지 신설 — 사용자 지적("개념에도 내용이 있어야지")으로 src·guide에 빠져 있던 개념층 보완: 구성 요소 4가지·모델 티어링·적용 기준·"검증 주체의 독립성" 비교표 5행.
  • guide-advisor-worker-advanced 심화편 작성 — Pending 4장면 그대로: 장면 1 요구 변경(20% 할인 케이스 추가)으로 확정 실패 → 수정 브리프 재위임, 장면 2 coupon+shipping 병렬 위임, 장면 3 worker frontmatter model: 고정 + CLAUDE_CODE_SUBAGENT_MODEL 덮어쓰기 grep 실측 절차, 장면 4 오타(Step 0에 "모둘" 심기) 직접 Edit 관찰. "규율이 없으면 생기는 일" 표 4행. 실행 검증은 Pending으로 이월.

2026-07-05 — "§2-6 코드블록 ASCII 대응표 금지" 정책 신설 + 전면 소탕

사용자 피드백 3연타("변환 공식이 왜 나오는거야" → "줄이 안 맞아 보기 안 좋아" → "대응표면 표로, 정책에 적용해" → "스텝별로 맥락이 중요")가 정책이 된 세션.

  • harness M2 Step 2 개연성 보강 — "변환 공식"→"변환 예시" 개명 + "왜 그대로 복사하지 않고 변환하는가" 절 신설(M1 표의 STOP은 회고 메모, 섹션 7은 판정 조건 — 읽는 주체 차이).
  • §2-6 정책 신설 — 대응·비교는 마크다운 표로(한글은 고정폭에서도 폭이 안 맞아 코드블록 정렬 불가). 예외: 명령·로그·트리·diff. 전환 지침 표: 비교형=열이 대안 / 진행형=행이 단계 / 대응형=조건|결과 — 원래 배치가 담던 의미 축 보존. CLAUDE.md 요약·셀프체크 반영.
  • 전면 소탕 36곳/35파일 (4계열 에이전트 병렬 + 직접 4곳) — lecture "0.2 큰 그림" 가족 32곳, entity-jvm·spring-boot 2곳, 복붙 템플릿 2곳은 예외 유지+정렬 공백 축소. 재스캔 잔존 0. 검출 스크립트 방법론은 log 참조(펜스 추적 + [가-힣]…3+공백…[가-힣] 2줄 이상).
  • ✅ 부수: 프로젝트 이동(Documents/→VsCodeProjects/)으로 깨진 .venv 재생성, tdd-ch29 곡선따옴표 2건.

2026-07-04 — "불쑥 등장 제거 + 원본 결손 완전 소거" 세션 (전부 배포 완료)

하루 흐름: harness 실습 정비 → §7-8 정책 신설·전 챕터 적용 → 결손 복구·원본 전수 감사 → 글쓰기 2차 → 책 기반 concept 11개 신설(EJ 4 + Clean Code 3 + 오브젝트 4). 사용자 피드백("리스트가 한 줄로 붙음", "원본 배너 노출", "불쑥 등장", "베이스라인 측정 중이 뭔지 모르겠음", "raw도 틀릴 수 있음")이 각 단계의 출발점. 위키 187→198페이지.

  • harness 가이드 8편 실습 정비!!! example "실습 위치·실행" 박스 44개 이식, 붙은 리스트 25건+ 분리, > 원본: raw/... 배너 제거, 도입 "왜"+"진행 흐름"·Step 연결문으로 개연성 보강. 부수 수확(실습이 실제로 안 되던 모순): demo guard.sh exit 1→2, M2 태스크 A 재실행 불가 → revert 출발선 신설 + M2→M5 revert 연쇄(harness(M2-A) 커밋 규약 — 2026-07-12에 revert 함정 확인으로 태스크 D·E 방식으로 대체), module3 시간·차단 종수 교정.
  • §7-8 "불쑥 등장 금지(선행 소개)" 신설 — 4규칙(블록 리드인·표기 첫 등장 정의·태스크 의도 문장·산출물 반문장 재소개)을 표준 §7-8 + CLAUDE.md 셀프체크에 명문화. harness 8편 70여 곳 + java-study 12챕터 약 120곳 적용. module1 [베이스라인 측정 중]은 사용자 문답 끝에 "프롬프팅상 의미(상태 통보+행동 지시) 있음 → 유지 + 설명 확정".
  • 붙은 리스트 렌더 버그 89건 일괄 수정 — 실제 렌더러로 실증(문단·펜스·표 직후 리스트는 한 줄로 붙고 헤딩 직후만 정상) 후 자동 스크립트 수정. ch00 daybyspring 잔재도 demo 기준 정합.
  • Notion 변환 결손 완전 소거 (raw+wiki 동시) — ch01 C/C++ 비교표, ch11 11.90 잘림·11.23 코드 유실· 10건·11.25 비교 표 8개, raw 마커 23건(ch07 22·ch08 1) 역이식. 저장소 전체 <!-- table -->··펜스 불균형 잔존 0.
  • 원본 블록 수 전수 대조 (97개 문서) — 블록 수·꼬리·커버리지 3단 감사: 이상 없음 65 / 의도된 차이 12 / 실누락 17건 병합(최대: ch10 10.2 §8~11 통째, ch11 11.23 §11~17, ch05 5.8 원문 전체·5.9 문제 23개). ch03 3.9 링크 4건도 링크 주석(annotation) 추출로 복원 — 감사 보류 0건 종결.
  • Clean Code 3 + 오브젝트 4 concept 신설 (책 기반 즉시 가능 항목 전부 종결)concept-naming-conventions·concept-tdd-laws-and-first(3법칙 귀속 오류 교정: Beck 표기→Martin 정식화, 원전 확인)·concept-simple-design-rules(Fowler 순서 논쟁 병기)·concept-solid(LSP 원문 인용)·concept-grasp(Larman 원전)·concept-design-by-contract(Meyer·상표 사실 확인)·concept-domain-model-kinds. EJ 4개와 함께 책 기반 concept 11개 완성, 역링크 25곳+ 양방향.
  • EJ concept 4개 신설 (즉시 가능 항목 종결)concept-jpa-enum-mapping(@Enumerated ORDINAL 함정 — "기본값과 가정" 7번째 사례)·concept-functional-interfaces(표준 6종+Spring)·concept-generics-pecs(PECS·JDK 시그니처 실검증)·concept-java-serialization-risk(Item 85·88·90 + Commons Collections 사건, 방어 관점). 전부 공식 문서 검증(Jakarta javadoc·Oracle API·JEP 290·CVE), nav·index·양방향 역링크 12곳 반영.
  • 글쓰기 스타일 2차 확장 (Pending 종결) — 5권 entity·concept-oop·concept-design-patterns·guide-code-authoring 8편. 장면+매핑 2문단 3곳(concept-oop 극장 장면·EJ "정비사의 매뉴얼"·TDD 거부 신호) + 명사구 단편 약 35곳 완결문화. 비유가 원래 없는 4편은 과잉 금지로 신설 안 함.
  • 원본 불신 검증 정책 신설·적용 (CLAUDE.md 보강 정책 6) — 원본 오류 교정: ch01 C/C++ 표 3건("C는 함수형"→절차적 등), ch06 Boot 3.x 로그 문구·순서(소스 코드 대조), ch10 UseContainerSupport 기본 활성 부기(JDK 21 매뉴얼), ch11 중복 인덱스·static 캐시 부기, URL 17건 실접속 확인.

재사용 기법 (log 상세 참조): Notion published API 복구 3종 세트 — ① loadPageChunk 커서 페이지네이션(chunkNumber만 올리면 같은 청크 반복) ② 접힌 토글은 토글 블록 ID로 재요청 ③ 표는 format.table_block_column_order로 셀 추출, 링크는 annotation(['a', url])에서. queryCollection은 spaceId 필수·value.value 중첩.

2026-07-03

  • 실습 스캐폴드 전면 적용 (plan-practice-scaffold Phase B~D, 배포 완료) — 사용자 피드백("따라 해보니 클래스명부터 고민") 기반. §7-7 표준 명문화(4요소: 파일 리드인·package·한 블록=한 파일·실행 명령+예상 결과) + scripts/scaffold-lint.sh 게이트(규칙 4종). 11개 챕터 전체 적용: ch02 Main 18개 개명·충돌 해소, ch03 전면 실행형화(Demo 10개), ch05 컴파일 버그 수정+예제 25개, ch06 demo 승격(자족형), ch07 "7.4-1 Querydsl 실습 환경" 신설, ch11 블로그 빌드·실행 신설 등.
  • 컴파일 스모크 + 적대적 검수 (Phase D) — 실제 Maven 프로젝트에 문서 그대로 생성·실행(20체크). 치명 2건 발견·수정: ch01 archetype pom 1.7 고정(Java 21 컴파일 불가 — Core 실습 전체 차단), ch07 Q타입 미생성(Boot 4.x annotationProcessorPaths). 실측 중 원본 코드 실버그 2건(5.8-1 BufferedReader 재사용, JSON 풀이 Jackson getter 6클래스)도 발견·수정. 11챕터 scaffold-lint·style-lint 0건.
  • day_by_spring 시크릿 스캔 — gitleaks+수동 전 히스토리(126커밋): 실유출 0건(검출 78건 전부 플레이스홀더/더미 오탐), 유일 주의점은 .env.example의 Supabase 호스트 노출. 공개는 보류(아래 결정 사항).

2026-07-02

  • 톤앤매너 정합 전면 완료 (plan-tone-consistency, 배포 완료) — §7 문체 표준 명문화 + scripts/style-lint.sh 게이트. 챕터 6개 정합(적대적 검수 REJECT 반영 포함) 후, 사용자 "군대식" 지적으로 §7-1 개정 — guide-·concept-·entity-* 58개 파일도 한다체→합니다체 통일. 총 64개 파일 style-lint 0건.
  • 위키 콘텐츠에서 Notion(소스 도구) 언급 제거 — "Notion은 자료 담아둔 도구일 뿐 독자에 노출 불필요". 12챕터 원본: Notion...·notion 태그·HTML 주석 48건, index/src 개요, ch00 0.1 출판용 Notion 뷰 가이드 문서 삭제(ch01 계정 안내는 유지). backlog Notion 보류 노트도 "공개 DB=curl published-site API, 비공개=토큰" 한 줄로 정리. (log/backlog/raw 추적층은 유지)
  • ch01 "1.2 첫 프로젝트 만들기" 신설 — 빈약하던 프로젝트 셋업 보강: 생성→구조→빌드·실행→의존성→git. Maven·Gradle 둘 다 병기, IDE 최소·커맨드 중심, Mac/Windows 분기(래퍼·줄바꿈·파일생성).
  • 셋업/실행 전 챕터 보강 (에이전트 5병렬 진단 → 빈약순 보강) — ch05 소켓 2터미널·JDBC(H2) 실행, ch06 6.1 Spring 생성(start.spring.io)·6.2 의존성·6.3 .env, ch08 8.0 Tomcat·8.2 용어표·8.3 인증 curl 왕복(로그인→토큰→401/403), ch09 9.1·9.2 테스트 실행·9.3 서버 띄우기. 모두 실제 커맨드+Mac/Win+포그라운드/2터미널+성공확인 통일.
  • ch07 빈 스키마 표 20개 복구 — 4월 ingest의 Notion 표 블록 변환 손실(<!-- table -->)을 라이브 재수집 + 표 대응 렌더러(render_tbl) 신작으로 복구, 시나리오1 중복판 제거. (렌더러 재사용 가능)

2026-07-01

  • Java 스터디 변환 아티팩트·URL·번호 대정비 — Notion published-site API(loadPageChunk/queryCollection)로 본문 직접 수집한 자료의 후처리: ```plain text 깨진 펜스 134건→text, notion.so 내부 깨진 링크 65건→(→ N.N), 헤딩 **·본문 **** 굵게 아티팩트, 챕터 파일명 URL 영문화(java-study-chNN.md).
  • 챕터 내부 문서번호 학습순 통일 (wiki+raw) — 다른 PC의 챕터 회전(입출력 ch10→05) 후 파일번호↔내부 문서번호 불일치를, Notion 원번호 폐기하고 학습순으로. 회전 매핑(cycle) 동시치환, ##### 지역 소제목·코드펜스·ch00 예시 제외. 고아참조 0.
  • 코드·표 표시 통일 — "글머리에서 빼낸다(top-level)" 규칙 [[guide-wiki-authoring-standards]] §2-5 명문화(리스트엔 굵은 리드인). 위키 전체 99.8% 이미 top-level, 어긋난 6개 정규화. bash 블록 160개 전부 top-level 확인.
  • bash 명령 정확성·복붙 안정성 전수 점검 (에이전트 5병렬) — 🔴 module5 Step3-2 펜스 4-backtick + 🟡 7건: ch10 -Xlog:'gc*'(zsh nomatch), deploy 하드코딩 경로→플레이스홀더·firebase 대화형 분리, project-docs REPL 블록 text 재라벨, prerequisites A-3 분리, module3/4 cd 추가, module5 maxdepth 3.

2026-06-30

  • Java 스터디 3단계 로드맵 재편 — 외부 AI 지적(nav 비유기성) 검증 후 "언어→프레임워크→고급" 3단계로. nav 그룹화 + 챕터 11편 절대번호 제거·"다음 장" 체인 학습순 재배선 + [[guide-java-learning-path]] 3단계 재작성. (에이전트 3병렬)
  • 챕터 번호 학습순 재부여 (raw+wiki) — 입출력 ch10→05 회전(번호=학습순서). raw 6 + wiki 6 git mv + 링크·sources·tags·nav 회전 치환. Notion 원본 장번호는 raw/java-study/README.md 매핑표로 보존. (zsh 단어분리 함정으로 while read·명시 치환 사용)
  • Java·Spring nav 학습/레퍼런스 분리 — 개념·도구·소스를 「📚 레퍼런스 (찾아보기)」 그룹으로 묶어 학습(3단계·트랙)과 역할 분리. → 외부 AI 지적 3건(주객전도·순서·메뉴중첩) 모두 종결.
  • GSC 사이트 인증overrides/main.html(google-site-verification) + mkdocs custom_dir: overrides. (원격 sitemap/robots 작업과 짝)
  • 멀티-PC 동기화 — 원격 14커밋(다른 PC Java 스터디 트랙/챕터, 변환 아티팩트 정리, sitemap/robots) fast-forward pull. 작업 전 git pull --ff-only 습관을 메모리 [[project_overview]]에 기록.
  • ✅ 라이브 확인(wiki.wonslab.dev) — 3단계·체인·카피라이트 정상.

2026-06-29

  • harness module 1~5 정밀 검증 + 후속 전부 종결 (에이전트 5병렬 검증 → 수정):
  • Module 3 hooks 사양 3건 교정 (wiki+raw 동시) — 실습이 실제로 안 돌던 결함: ① 차단 exit 1exit 2 ② 입력 argv→stdin JSON jq -r '.tool_input.command' ③ PostToolUse 파일경로 CLAUDE_TOOL_OUTPUT_FILE(없는 변수)→jq -r '.tool_input.file_path'. jq 설치 안내·Step5 검증을 stdin 방식으로. 실측 검증 완료.
  • M1↔M5 Before/After 비교 정합 — M2·M5 태스크 A 재실행 프롬프트가 M1 원문과 달라(web/ 누락) 비교 무효였던 것 → api/+web/ 모노레포 원문 복원, 측정 7항목 일치, in-memory에 없는 "마이그레이션 처리" 행 제거.
  • Module 4 AGENTS.md 개념 정정 — "Claude Code가 AGENTS.md 자동 로드/우선순위"는 거짓(공식: CLAUDE.md만 자동) → 정정 + @AGENTS.md import·심링크·/init 워크어라운드 + /clear·네이티브 서브에이전트(.claude/agents/) FAQ.
  • 경미: M2/4/5 시작 cd ~/harness-playground 추가, M5 README 중첩 펜스 4-backtick, M1 산출물 표 커밋명 실제화.
  • sitemap.xml 자동화 확인 + robots.txt 신설 — sitemap은 MkDocs가 빌드마다 자동 생성(166 URL, wiki.wonslab.dev 자동 교정) → firebase site/ 자동 배포. wiki/robots.txt 추가로 크롤러에 sitemap 위치 명시.
  • CLAUDE.md 규칙 #1 갱신(사용자) — "raw 불변" → "단 내용에 오류가 있을 경우 수정 가능" (위 Module 3 raw 교정의 근거).
  • Loop 실습 후속 3종 종결 ([[guide-loop-engineering-demo]]):
  • 실행 검증(Node v26 실측) — 후보 (A)(B)실패·(C)통과, 메아리방 13/20≈⅔, 검증 루프 정상 종료, "약4%"=이론 (2/3)⁸=3.9% 정확. demo에 "✅실행 검증됨" 노트.
  • 1차 출처 검증·보존raw/ai-engineering/loop-engineering/primary-sources.md 신설. Osmani(✅)·Sonar(✅)·arXiv 3편 verbatim, Steinberger "650만 조회"는 2차 주장·OpenAI 소속 교정. src 페이지 반영.
  • 토큰 비용 심화 — demo "Step 6.5" 신설(비용모델·무료 게이트 우선·종료조건 3종 goal/resource/budget).
  • 커밋·배포 완료ea49634·b98b6cc (Firebase wiki.wonslab.dev 라이브). (Loop 후속분은 별도 커밋 예정)

2026-06-28

  • harness module1 Step 2 실습 흐름 정비 — "반복 문제 분석" 프롬프트가 신규 실습 프로젝트엔 빈 표가 정상임을 프롬프트 앞 맥락 박스로 명시 + claude 실행 블록 분리. (사용자가 따라하다 "갑자기 나온다" 지적)
  • harness 가이드 7편 톤앤매너·흐름 통일 (에이전트 7병렬) — H2 Step 시간표기 대시형(— N분), 커밋 코드블록만(→ git commit 화살표 제거), 단계 간 연결문 보강, module3 설명-코드 불일치(신규=새로 만들기/기존=머지) 수정, demo 정리→Step6 편입. (※ 별개로 다른 PC가 2026-06-29 module1~5 hooks 사양 검증 수행 — 영역 다름)

2026-06-27

  • 글쓰기 스타일 1차 일괄 13편 — 비유 괄호 매핑·명사구 단편 → 장면+매핑 2문단 완결 문장(에이전트 13병렬). 규칙: 메모리 feedback-wiki-writing-style, 모범: ch6 "회의 vs 사람".
  • 커스텀 도메인 wiki.wonslab.dev 반영site_url·guide 참조 URL·backlog 운영표 갱신(기본 도메인 web.app 병기).
  • 카피라이트 wonslab-hub 와 통일© 2026 wonslab · blog · wiki · club(링크 포함).

2026-06-26

  • Loop 엔지니어링 실습 신설 — [[guide-loop-engineering-demo]] (Node mock 메아리방 vs 거부 신호 루프 + claude -p 헤드리스 + 외부 1차 출처). 진행 상태: 메모리 loop-engineering-demo-progress.
  • harness 가이드 전체 복붙 안정성 점검 — prerequisites(A-3 분리·A-4 3블록·A-5 git log 정정), module3(eslint --init 분리)·module5($WEEK 전개 2건), demo(경로 견고화).
  • 코드 가이드 대정비guide-code-authoring-and-review 5권 강조 톤다운 + 표 3.1~3.4 완전화 + 4·7장 통합 + lecture-object-ch5 GRASP 9패턴 동기화.
  • index.md 점검 — 카테고리 구조(Synthesis 중복→Guides)·src-*-lecture 중복 제거.
  • 후속 (Loop 실습) — 2026-06-29 종결: ① 실행 검증 완료 ② 1차 출처 raw 저장(primary-sources.md) 완료 ③ 토큰 비용 심화(Step 6.5) 완료.

2026-06-21

  • 📚 5권 도서 강의 교재 모두 완성 — 오브젝트 18편 + EJ 11편 + 리팩터링 12편 + Clean Code 17편 + TDD 35편 = 93편
  • 5권 entity 모두 동일 5권 오각형 비교표 + "이 책의 자리" 한 문장 통일
  • 오브젝트 강의 교재 18편 작성 (사용자 1·2·3장 + 본 세션 4~15장 + 부록 A·B·C)
  • TDD 1부 4~16장 풍성하게 재작성 (각 200~240줄급)
  • ✅ Q/A 토글 → **Q.** + **A.** 일괄 변환 (47편) + scripts/convert_quiz.py

2026-06-20

  • TDD (Kent Beck) ingest — entity + 강의 교재 35편 (1·2·3부 + 부록·마치는 글)
  • Clean Code ingest — entity + 강의 교재 17편
  • 리팩터링 2판 ingest — entity + 강의 교재 12편
  • Effective Java 강의 교재 wiki 노출 11편
  • 오브젝트 entity 책 카드

2026-06-13

  • Loop 엔지니어링 ingest (2026-06 Steinberger 발화) — concept-loop-engineering + src + 하네스 4단 진화 확장
  • "거부 신호 없는 자동화는 폭주한다" 패턴 비교표 6행 누적

2026-06-07

  • 부실 페이지 9개 공식 문서 기반 대폭 보강 (concept-spring-core, entity-jvm, concept-oop, concept-design-patterns, entity-spring-framework, entity-spring-boot, entity-querydsl, concept-api-versioning, concept-jspecify-null-safety)
  • 위키 작성 표준 가이드 신설 ([[guide-wiki-authoring-standards]])
  • 이 백로그 페이지 신설
  • ✅ Firebase 배포 (wons-wiki.web.app 정상화)

2026-06-06

  • 2분코딩 영상 8편 ingest (raw/ai-engineering/2bun-coding/)
  • getConnection / Copilot 토큰 / 502 Keep-Alive / VARCHAR / 크론잡 / @Transactional / API 호환성 / HTTP HOL
  • mkdocs.yml에 "DB·운영·인프라" 카테고리 신규
  • "기본값과 가정의 함정" 인사이트 패턴 비교표 누적 (6개 페이지에 양방향 연결)

2026-05-31 ~ 06-05

  • ✅ MkDocs Material + Firebase Hosting 셋업
  • ✅ 하네스 5모듈 가이드 Node 친화 step-by-step 재작성
  • ✅ guide-harness-demo (5분 데모) 신설
  • ✅ guide-deploy-mkdocs-firebase 다이어그램 HTML+텍스트 2채널 정착

2026-05-30

  • ✅ 하네스 엔지니어링 자료 ingest + raw/ 주제별 디렉터리 재편
  • ✅ Spring/Java 페이지들 첫 보강 (4월 작업 기반)

🔄 진행 중·다음 단계 후보

다음 세션 최우선 (Pending)

(비어 있음 — Advisor–Worker 심화편 실행 검증은 2026-07-12 완료, 위 완료 섹션 참고)

자율 진행 후보가 필요하면: ① 아이디어 섹션의 "원본 재감사 루틴" 스크립트 영구화(scripts/notion-audit.py) ② 보강 후보 표의 concept-memex·concept-compounding-knowledge 외부 자료 보강.

입력·필요 증명 대기

  • 5권 코드 가이드 — 다른 언어 분기 페이지 — 필요 시 신설 (현재 Java/Spring 가정, 다른 언어 학습자 등장 시)
  • 우선순위 순: Kotlin (Java 친화 99%) → TypeScript (리팩터링 책이 JS) → Python (OO·TDD·리팩터링 적용) → Go·Rust (OO 패러다임 다름)
  • 각 언어 매핑: record → data class/dataclass/struct, Optional → null safety, Stream → 언어별 함수형, try-with-resources → use/with/defer
  • EJ 동시성·직렬화 (11·12장) 만 언어별 다름. 나머지 원칙은 거의 모두 통용
  • 옵션: guide-code-authoring-kotlin.md·guide-code-authoring-python.md 등 분기 페이지. 단, 위키 비대화 위험 — 필요 증명 후 진행
  • 또는 현 guide-code-authoring-and-review.md 에 "언어별 매핑" 섹션 추가도 가능 (가성비 우위)
  • 2분코딩 추가 영상 — 사용자가 새 영상 요약 보내면 같은 패턴으로 ingest
  • 본인 프로젝트 GCP 배포 학습 — 하네스 5모듈 후 단계
  • playground (api/ + web/) → Cloud Run 또는 Cloud Functions
  • 결정 보류: 현재 위키는 Firebase 그대로, GCP 다른 서비스 이전은 안 함 (2026-06-07 확정)
  • 외부 DB ingest (선택) — 필요 시. 방법 확립됨: 공개된 DB는 MCP 없이 published-site API(loadPageChunk+queryCollection curl)로 추출 → md 변환(java-study 97문서로 검증). 비공개 DB는 API 토큰/통합 권한 필요.

보강 후보 (낮은 우선순위)

여전히 부실한 페이지 — 외부 자료가 적거나 위키 운영용:

페이지 줄 수 보강 가치
concept-lint 30 낮음 (위키 운영 내부 개념)
concept-ingest 32 낮음 (위키 운영 내부 개념)
concept-memex 33 중간 (역사 자료 보강 가능)
concept-compounding-knowledge 38 중간
entity-claude-design 43 중간 (Anthropic 도구)

→ 우선순위 낮음. 외부 자료 부재 또는 위키 자체 메타 콘텐츠.

아이디어 (구체화 안 됨)

  • 원본 재감사 루틴 — 2026-07-04 감사에서 Notion 원본이 4월 이후 개정된 사실 확인(꼬리 절 추가 등). 블록 대조 스크립트(블록 수·꼬리·커버리지 3단)를 scripts/notion-audit.py로 영구화하고 분기 1회쯤 재실행하면 원본 개정을 자동 감지 가능. 현재 스크립트는 세션 스크래치패드에만 있음 — 필요해지면 log 2026-07-04 기록의 방법론으로 재작성.
  • 하네스 5모듈을 실제 playground에 적용한 후기 페이지 (synthesis)
  • DDD 실전 적용 비교 페이지 (carrot/카카오페이/지방계약 비교)
  • Spring Boot 4.x → 4.1 마이그레이션 노트 (출시 후)

⚠️ 주의사항·결정 사항

  • 원본 불신 검증 원칙 (2026-07-04): raw/원본(Notion·개인 정리)도 틀릴 수 있다 — ingest·복구 시 기술 사실은 공식 문서·정평 있는 도서와 대조해 교정하고 raw에 교정 근거 주석을 남긴다 (CLAUDE.md 보강 정책 6번 명문화). 첫 적용: ch01 Java vs C/C++ 표 원본 오류 3건 교정("C는 함수형"→절차적, C++11 std::thread, JIT 반영).
  • 새 자료 트랙도 동일 구성 규칙 (2026-07-04): 앞으로 Python·C 등 자료 트랙을 계속 추가할 예정 — 새 트랙은 처음부터 기존 구성 규칙을 그대로 따른다: §7 문체(합니다체) + §7-7 실습 스캐폴드 4요소(언어 무관 원칙 명시됨, 실행 명령 표준형만 언어별 추가) + §7-8 불쑥 등장 금지(선행 소개) + 붙은 리스트·top-level 펜스 규칙. nav는 java-study처럼 "학습 트랙 vs 레퍼런스" 분리 구조.
  • 불쑥 등장 금지 §7-8 신설 (2026-07-04): 사용자 피드백("태스크 B가 왜 만드는지 설명 없이 등장, [베이스라인 측정 중]이 갑자기 튀어나옴") → 선행 소개 4규칙(블록 리드인·표기 첫 등장 정의·태스크 의도 문장·산출물 반문장 재소개)을 guide-wiki-authoring-standards §7-8 + CLAUDE.md 셀프체크에 명문화. 판정 기준: "절만 떼어 읽어도 '이게 뭐지?'가 없는가".
  • day_by_spring 공개 불필요 확정 (2026-07-03): 수업은 저장소 공개 없이 진행 — 독자 콘텐츠에서 day_by_spring·day-by-java 저장소명 자체를 제거(42곳 일반화)하고, 직접 만드는 실습 프로젝트 2개(ch01 1.2 Java + ch06 6.1 Spring demo)로 완결. Notion 계보 배너(📘 원본 교재 본문)도 12챕터에서 제거. 시크릿 스캔 결과(실유출 0건)는 보존 — 향후 공개하고 싶어지면 .env.example Supabase 호스트 플레이스홀더 커밋 1개 + URL 1줄.
  • 실습 스캐폴드 표준 (2026-07-03): 새 코드 예제는 §7-7 4요소 필수 — bash scripts/scaffold-lint.sh <파일> 게이트 통과. 예상 결과는 실측 원칙.
  • 문체 표준 (2026-07-02): 독자 콘텐츠(챕터·guide·concept·entity) 합니다체, lecture-*만 개조식 — bash scripts/style-lint.sh <파일> 게이트.
  • 메모리 동기화 안 함 (2026-06-30): Claude 메모리(~/.claude/projects/.../memory/)는 git 저장소 바깥 PC별 로컬 파일 → push 대상 아님. 멀티-PC 공유 인계는 이 backlog가 전담(메모리는 각 PC 보조 캐시). 다른 PC에서 "메모리도 push?"는 No.
  • GCP 배포 결정 (2026-06-07): Firebase Hosting 그대로 유지. Cloud Storage+CDN/Cloud Run 이전 안 함.
  • 다이어그램 표준 (2026-06-06): subgraph + 외부 연결은 무조건 HTML+flexbox. mermaid 사용 X.
  • commit 메시지 (2026-05-31): 학생용 가이드 안의 git commit 예시는 한글. 위키 자체 commit 메시지는 한글+영어 prefix 자유.
  • raw 구조 (2026-05-30): 모든 원본은 raw/<주제>/. 단일 파일도 디렉터리화. PDF/DOCX는 같은 폴더에 .md 변환본 동봉.
  • wiki 구조 = flat 유지 (2026-06-23): wiki/는 raw처럼 디렉터리로 쪼개지 않는다. 모든 페이지는 wiki/ 바로 아래 평평하게 둔다.
  • 이유: raw는 분류 수단이 물리 디렉터리뿐(PDF·DOCX라 prefix·태그·검색 불가)이라 디렉터리화가 불가피. wiki는 전부 .md라 ① 파일명 prefix(concept-/lecture-...) ② frontmatter type:·tags: ③ mkdocs nav[[wikilink]] 그래프 — 4개 분류 수단을 이미 가짐. 디렉터리는 더 약한 분류(폴더 한 겹)이면서 링크만 깨뜨림.
  • 기술적 제약: scripts/wikilinks.py[[name]]같은 폴더 상대링크(name.md)로 변환 → 디렉터리로 쪼개면 디렉터리 넘는 교차참조 전부 깨짐.
  • 이미지·첨부: wiki/ 안에 두지 않고 raw/assets/ 한 곳에 모은다(빌드가 raw/assets/만 docs로 복사, Obsidian 첨부 경로도 동일). 페이지 .md는 균질 .md로 유지.
  • 번복 조건: 정말 디렉터리화가 필요하면 wikilinks.py를 파일명(stem) 전역 해석으로 개조(작업 ~30분)하면 가능. 단 실익(폴더 한 겹) < 무경로 링크 손실 → 현재는 안 함.

🛠️ 운영 환경

항목 현재 상태
호스팅 Firebase Hosting → 커스텀 도메인 wiki.wonslab.dev (연결됨, 정식) / 기본 도메인 wons-wiki.web.app·wons-wiki.firebaseapp.com
빌드 bash scripts/build-site.sh (wiki/→docs/→site/)
로컬 프리뷰 .venv/bin/mkdocs serve (docs/만 watch)
배포 firebase deploy --only hosting
Git 원격 git@github.com:goodjwon/my-wiki.git
로컬 path PC별 상이 (예: /Users/jungwonpark/VsCodeProjects/my-wiki/, /Users/jwon/VsCodeProjects/my-wiki/)
품질 게이트 scripts/style-lint.sh(§7 문체) · scripts/scaffold-lint.sh(§7-7 실습 스캐폴드) — 토큰 0

📊 위키 규모 (2026-07-04 기준)

# 빠른 통계 (다른 PC에서 확인)
wc -l wiki/*.md | tail -1
ls wiki/*.md | wc -l
find raw -type f | wc -l
git log --oneline | wc -l
구분
wiki 페이지 198개 (entity·concept·src·guide·lecture·plan·index·log·backlog 종합)
5권 도서 강의 교재 93편 (lecture-*)
raw 원본 159 파일 (14개 주제 디렉터리)
nav 카테고리 5개 (위키관리·하네스·Java/Spring·DB운영·📚도서)
커밋 162 (5월 30일~)

🗺️ 새 세션 시작 가이드

다른 PC에서 처음 열었을 때:

# 1. 클론 + 진입
git clone git@github.com:goodjwon/my-wiki.git
cd my-wiki

# 2. 최신 상태 확인
git log --oneline -10
cat wiki/log.md | tail -50

# 3. 백로그 (이 페이지)와 표준 가이드 확인
cat wiki/backlog.md
cat wiki/guide-wiki-authoring-standards.md

# 4. 로컬 환경 준비 (필요 시)
python3 -m venv .venv
source .venv/bin/activate
pip install mkdocs-material pymdown-extensions mkdocs-glightbox mkdocs-roamlinks-plugin

# 5. 빌드 + 프리뷰
bash scripts/build-site.sh
.venv/bin/mkdocs serve   # http://127.0.0.1:8000

# 6. Claude Code 실행
claude
# 첫 메시지로: "backlog 읽고 현재 상태 요약해줘"

관련 페이지