Wiki Log

위키 변경 사항을 시간순으로 기록하는 로그. 최신 항목이 위에 위치한다.


[2026-07-31] update | Testing 카테고리 구조 재정리 - TDD와 일반 테스트 주제 분리

  • 문제: testing/ 카테고리의 하위를 tdd/ 하나로만 두어, TDD가 아닌 일반 테스트 문서 3개가 /docs/testing/tdd/ 경로에 들어가 있었음
    • 특히 self-testing-code.md는 “TDD와 같은 것이 아니다"가 문서의 핵심 주장인데 URL이 /docs/testing/tdd/self-testing-code/로 자기 주장과 모순
    • test-pyramid-and-scope.md, self-testing-code.md는 작성 시점에 이미 tdd 태그를 붙이지 않았음 (분류 불일치의 신호)
  • 이동: testing/tdd/{test-pyramid-and-scope, self-testing-code, test-double}.mdtesting/ 카테고리 루트
    • 판단 기준: TDD라는 실천법 자체를 다루면 tdd/, 테스트 일반의 개념·전략·어휘면 카테고리 루트
    • test-double.md는 Meszaros의 일반 테스트 어휘이므로 루트로 이동. frontmatter에서 tdd 태그 제거
  • weight 재배정: 루트 test-pyramid-and-scope(1) / self-testing-code(2) / test-double(3), 서브섹션 tdd/_index.md(10). 기초 → 특정 실천법 순서
  • 업데이트: 크로스 링크 7개 파일 경로 갱신, testing/tdd/_index.md description에서 “테스트 더블” 제거
  • 업데이트: content/docs/wiki-index.md - Testing 카테고리를 루트 3개 + TDD 서브섹션 3개로 분리
  • 비고: content/docs/testing/이 아직 미커밋 상태여서 공개된 URL 변경 없음

[2026-07-31] ingest | 미사용 TDD 소스 소진 - 테스트 피라미드 / Self-testing Code

  • 배경: 직전 수집한 raw/tdd/ 14개 중 4개가 위키에 반영되지 않은 채 남아 있었음. 해당 소스를 읽고 문서 2개 신규 작성
  • 소스: raw/tdd/fowler-test-pyramid.md, fowler-unit-test.md, fowler-self-testing-code.md, fowler-refactoring.md
  • 생성: testing/tdd/test-pyramid-and-scope.md - 피라미드 구조와 Cohn 어원, 아이스크림 콘 안티패턴, UI 테스트의 4가지 문제, Subcutaneous Test 중간층, 고수준 테스트 = 2차 방어선, 피라미드가 성립하지 않는 조건(Fowler 각주), end-to-end/UI/customer-facing 직교성, “단위” 정의 24가지 일화와 공통 요소 3가지, solitary vs sociable(Jay Fields), compile suite / commit suite 분리와 실무자별 속도 기준
  • 생성: testing/tdd/self-testing-code.md - 버그 탐지기 모형, Dave Thomas·JUnit 유래, TDD와의 구분(TDD는 경로이고 self-testing code는 상태), 진짜 이득은 변경에 대한 자신감, 두려움→기술부채 악순환 vs 안전망→선순환, 리팩터링 정의(명사/동사)와 전제 조건 관계, CI의 기둥, 프로덕션 버그 대응 프로토콜, 프로덕션 모니터링 차원
  • 업데이트: testing/tdd/tdd-overview.md - 오해 절에 “TDD와 Self-testing Code는 같은 말이 아니다” 추가, 통합 테스트 절에 피라미드 링크
  • 업데이트: testing/tdd/red-green-refactor.md, classicist-vs-mockist.md, test-double.md - 신규 문서 2개로 향하는 인바운드 링크 추가
  • 업데이트: content/docs/wiki-index.md - Testing 카테고리 6개 문서로 확장
  • 결과: Testing 섹션 4개 → 6개 문서. raw/tdd/ 미사용 소스 0개

[2026-07-31] ingest | TDD Raw Sources 수집 (소급)

  • 사유: 아래 create | Test-Driven Development 항목은 raw 소스 없이 작성됨. 3계층 아키텍처의 진실의 원천 레이어를 소급 보강
  • 소스 (신규 수집, raw/tdd/):
    • fowler-mocks-arent-stubs.md - Martin Fowler, Mocks Aren’t Stubs (2007). Classicist/Mockist 구분과 테스트 더블 분류의 정본
    • fowler-is-tdd-dead.md - Beck·DHH·Fowler 대담 5회분 전체 기록
    • fowler-test-driven-development.md, fowler-unit-test.md, fowler-test-double.md, fowler-self-testing-code.md, fowler-test-pyramid.md, fowler-refactoring.md - Martin Fowler bliki
    • dhh-tdd-is-dead.md - David Heinemeier Hansson, TDD is dead. Long live testing. (2014)
    • uncle-bob-three-rules-of-tdd.md - Robert C. Martin, The Three Rules of TDD. 원 사이트(butunclebob.com) 접속 불가로 web.archive.org 경유 수집
    • xunitpatterns-test-double.md, xunitpatterns-mock-object.md, xunitpatterns-test-stub.md, xunitpatterns-fake-object.md - Gerard Meszaros, xUnit Test Patterns 온라인판. 테스트 더블 5분류의 정본
    • 미수집: Beck TDD by Example, Meszaros 서적판, Freeman&Pryce GOOS, Khorikov Unit Testing (모두 저작권 서적으로 공개 원문 없음)
  • 대조 후 수정: testing/tdd/classicist-vs-mockist.md - Fowler의 Classicist 선호 근거를 “습관에 가깝다"로 서술한 부분이 원문과 불일치. 원문이 제시한 두 근거(결과에 집중하게 됨 / 구현 결합 우려)와 Mockist를 시도할 두 조건, 캐시 예외 사례, 용어에 대한 유보를 반영
  • 대조 후 보강: testing/tdd/red-green-refactor.md - Robert C. Martin의 세 가지 금지 규칙 원문 반영

[2026-07-31] create | Test-Driven Development

  • 신규 카테고리: testing/ (weight 7) - TDD, 테스트 더블, 단위/통합 테스트 범위. CLAUDE.md 카테고리 테이블 갱신
  • 신규 서브섹션: testing/tdd/
  • 생성: testing/tdd/tdd-overview.md - TDD 정의(설계 기법), Beck의 두 규칙, Red-Green-Refactor 사이클, 얻는 것 4가지, 흔한 오해 4가지, “TDD is dead” 논쟁 정리
  • 생성: testing/tdd/red-green-refactor.md - 각 단계의 규칙, Green 전략 3가지(Fake It / Triangulation / Obvious Implementation), 테스트 목록 운영, 실패 패턴 6가지
  • 생성: testing/tdd/classicist-vs-mockist.md - 상태 검증 vs 행위 검증, Inside-Out vs Outside-In, 리팩터링 내성 비교, 상황별 선택 가이드
  • 생성: testing/tdd/test-double.md - Meszaros 5분류(Dummy·Fake·Stub·Spy·Mock), Mockito 매핑, 대체 판단 기준, 과용 문제 3가지
  • 업데이트: content/docs/wiki-index.md - Testing 카테고리 및 4개 문서 등재
  • 크로스 링크: architecture/ddd/repository-and-service, architecture/ddd/ddd-overview로 아웃바운드 연결

[2026-07-30] ingest | Domain-Driven Design

  • 소스 (신규 수집, raw/ddd/):
    • evans-ddd-reference.pdf / .txt - Eric Evans, Domain-Driven Design Reference (2015, 60p, CC BY 4.0). 패턴 정의의 정본
    • vernon-aggregate-part1~3.pdf / .txt - Vaughn Vernon, Effective Aggregate Design 3부작 (2011). Aggregate 크기 결정의 정본
    • fowler-domain-driven-design.md, fowler-bounded-context.md, fowler-ddd-aggregate.md, fowler-ubiquitous-language.md, fowler-anemic-domain-model.md, fowler-value-object.md, fowler-cqrs.md - Martin Fowler bliki
    • mslearn-tactical-ddd.md, mslearn-domain-analysis.md, mslearn-ddd-oriented-microservice.md, mslearn-domain-model-design.md, mslearn-domain-model-validations.md - Microsoft 아키텍처 가이드
  • 생성: architecture/ddd/ 섹션 신규 (_index.md + 7개 문서)
    • ddd-overview.md - Evans의 3점 요약, 핵심 용어 5개 정의, 전략적/전술적 설계 구분, 원서 6부 구조, 흔한 오해 3가지
    • bounded-context.md - 여러 모델이 불가피한 이유, 다의어(polyseme) 사례, 경계를 긋는 요인, Continuous Integration, 마이크로서비스 크기 기준
    • ubiquitous-language.md - 언어가 파편화되는 방식, 언어 변경 = 모델 변경, 검증 방법, Hands-on Modelers, Model-Driven Design
    • context-map.md - upstream-downstream 등 기본 용어, 9가지 관계 패턴(Partnership / Shared Kernel / Customer-Supplier / Conformist / ACL / Open-host Service / Published Language / Separate Ways / Big Ball of Mud), 선택 가이드 Mermaid
    • aggregate.md - Vernon의 4가지 규칙, ProjectOvation 대형 Aggregate 실패 사례, 70/30 통계, 식별자 참조, 결과적 일관성과 “누구의 일인지” 판별법, 규칙을 어길 4가지 이유, BOTE 크기 검증
    • entity-value-object.md - 동일성 기준, 식별자 전략(자연 키 vs 대리 키), Value Object 불변성, sealed 계층으로 표현 불가능한 상태 차단, JPA data class 주의, Domain Event
    • repository-and-service.md - Repository는 Aggregate Root당 하나, Factory, Domain Service vs Application Service 경계, Module 패턴
    • anemic-domain-model.md - 증상, “비용은 다 치르고 이득은 없다” 논거, Service Layer와의 혼동, 자가 진단 5항목, 벗어나는 방법
  • 업데이트: wiki-index.md - Architecture 카테고리 카탈로그 신규 작성 (8개 항목)
  • 비고: Architecture 카테고리의 첫 문서 묶음. 관련 블로그 글 /posts/architecture/ddd-aggregate-boundary-ticketing/aggregate.md 예제 절에서 참조

[2026-04-12] ingest | Dependency Injection

  • 소스: raw/Dependency Injection Spring Framework.md
  • 생성: spring/dependency-injection.md — DI 정의, 생성자/Setter 기반 DI, 인자 해결 3가지 방식(타입/인덱스/이름), 생성자 vs Setter 비교, 의존성 해결 프로세스, 순환 의존성, DI 예제(Setter/생성자/팩토리)
  • 업데이트: spring/core-technologies.md, spring/ioc-container-and-beans.md, spring/bean-overview.md — Dependency Injection 크로스 링크 추가

[2026-04-11] ingest | Bean Overview

  • 소스: raw/Bean Overview Spring Framework.md
  • 생성: spring/bean-overview.md — BeanDefinition 메타데이터, Bean 오버라이딩, 네이밍/앨리어싱, 인스턴스화 3가지 방식(생성자/정적 팩토리/인스턴스 팩토리), 런타임 타입 결정
  • 업데이트: spring/ioc-container-and-beans.md, spring/container-overview.md, spring/core-technologies.md — Bean Overview 크로스 링크 추가

[2026-04-11] ingest | Container Overview

  • 소스: raw/Container Overview Spring Framework.md
  • 생성: spring/container-overview.md — ApplicationContext 역할, 설정 메타데이터 3가지 방식, 컨테이너 사용법
  • 업데이트: spring/ioc-container-and-beans.md, spring/core-technologies.md — Container Overview 크로스 링크 추가

[2026-04-11] ingest | Spring Framework Overview

  • 소스: raw/Spring Framework Overview Spring Framework.md
  • 생성: spring/spring-framework-overview.md — Spring 전체 소개, 역사, 설계 철학 5원칙

[2026-04-11] ingest | Spring Core Technologies

  • 소스: raw/Core Technologies Spring Framework.md
  • 생성: spring/core-technologies.md — IoC, AOP, AspectJ, AOT 핵심 기술 개요

[2026-04-11] ingest | Introduction to the Spring IoC Container and Beans

  • 소스: raw/Introduction to the Spring IoC Container and Beans Spring Framework.md
  • 생성: spring/ioc-container-and-beans.md — IoC/DI 원리, BeanFactory vs ApplicationContext, Bean 정의

[2026-04-09] create | Wiki 초기 설정

  • LLM Wiki 패턴 적용: CLAUDE.md 스키마 생성
  • Raw Sources 계층 설정: raw/ 디렉토리 생성
  • 카탈로그 파일 생성: wiki-index.md
  • 변경 이력 파일 생성: log.md
  • 기존 7개 카테고리에 description 추가
  • 기존 문서: 옵저버 패턴, 전략 패턴 (Design Patterns / Head-First)