docs(adr): ADR-0020 @Transactional 사용 규칙 → conventions 이전#4
Merged
Conversation
ADR-0020 분석 결과:
- 본문 자체가 "유형: Convention" 으로 라벨링되어 있었음
- 4가지 규칙 모두 코드 사용법 / 안티패턴 회피 가이드
- 원칙 ("외부 IO 는 TXN 밖 / DB 커넥션 점유 최소화") 은
ADR-0014→docs/conventions/code-convention.md §6 (TransactionalService 분리 패턴) 에 이미 존재
→ 분해 불필요, 전체 이동이 본질 적합.
처리:
- docs/conventions/transactional-usage.md 신설
- docs/adr/ADR-0020-transactional-usage.md → redirect
- CLAUDE.md Key Conventions 행 갱신
- docs/doc-index.json manual_links 의 ADR-0020 → conventions 경로
- ADR-0026 §5 재판정 표 갱신 (분해 불필요 + 적용됨)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This was referenced Apr 26, 2026
1989v
added a commit
that referenced
this pull request
Apr 28, 2026
Phase 2 신규 산출물:
- docs/specs/2026-04-26-seven-split-phase2-paper-trading/
- planning/initialization.md (Phase 1 컨텍스트 + 결정사항 + 범위)
- planning/requirements.md (US-P2-01~11, FR-P2-{WS,HUB,SIM,USE,NOTIF,RES,SEC,FE,OBS}, NFR-P2)
- planning/test-quality.md (Phase 2 테스트 영역 + INV-P2-* + nightly SLO)
- planning/spec.md (~460 lines, 20 sections)
- planning/tasks.md (16 TG + Preflight 2, 157 체크박스)
- context/open-questions.yml (OQ-P2-001~008)
ADR 신규/수정:
- ADR-0024 Errata: 빗썸 API 2.0 인증 = JWT(HS256) 정정 (HMAC-SHA512 오기 정정)
- ADR-0025: MarketDataHub (SharedFlow primary + optional Kafka fan-out)
- ADR-0026: audit_log 불변성 (ClickHouse seven_split_audit DB + RBAC + prev_hash chain + Kafka mirror)
- ADR-0027: OCI Vault KEK envelope encryption (Port 추상화 + LocalFile dev + stale-on-error)
핵심 결정:
- 시세 이벤트 버스: Coroutine SharedFlow primary + 비동기 Kafka fan-out collector
- KEK 보관: OCI Vault Service (Free Tier) + LocalFileKmsAdapter (dev) + Port 추상화
- audit: 별도 ClickHouse DB + RBAC + prev_hash + Kafka mirror best-effort
- SSE: gateway 확장 + first-message JWT 인증
- replicas=1 강제 (strategy.type=Recreate, Phase 2 단일 인스턴스 가정 보호)
Review-1 후속 정정 적용 (R-CRIT-1~4 + Should-Fix #1/#3/#4)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1989v
added a commit
that referenced
this pull request
May 2, 2026
신규 5 주제 (#14 CRDT/MRDT, #15 Connection Pool, #16 Async/NIO, #17 Spring Web, #18 gRPC) plan + deep file 약 100개. 기존 10 주제 (#2 JVM, #3 동시성, #4 DB, #5 Spring TX, #6 Kafka, #7 분산시스템, #8 시스템 설계, #9 Redis, #10 Observability, #11 K8s) deep file 일괄 추가. 흡수 처리: - 17-1 readOnly/writable TX → #5에 흡수 (06-readonly-vs-writable + 07-replica-routing-pattern) - 17-3 스레드 덤프 → #3에 흡수 (20-thread-dump-analysis dedicated) - 17-3 cross-ref → #2 (13-heap-dump-mat 섹션 7) 메타 산출물 5종: - study/docs/00-INDEX.md (660줄, 18 주제 entry + 의존 그래프 + 키워드 인덱스) - study/docs/00-INTERVIEW-INDEX.md (1028줄, ~730 카드 통합 + 모의 시나리오 5개) - study/docs/00-LEARNING-GUIDE.md (817줄, 3개월/6개월/9개월 트랙 + 1/2/3회독) - study/docs/00-ADR-CANDIDATES.md (1564줄, 34 ADR 후보 + OP 25 + 10스프린트 로드맵) - study/CLAUDE.md (155줄, study 영역 navigation) 기타 갱신: - 11 plan.md frontmatter status: completed (2026-05-02) - temp.md 학습 현황표 18 주제 모두 'completed + N deep files' - 루트 CLAUDE.md Navigation 에 study/ 영역 entry 총 18 주제 / 333 deep files / ~97K 줄 + 메타 ~4.2K 줄. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1989v
added a commit
that referenced
this pull request
May 2, 2026
ADR-0029 (Idempotent Consumer Helper): - PR-2 seven-split: 자체 헬퍼 → common 헬퍼 adapter, @deprecated 마킹 - PR-3a inventory/fulfillment: Flyway baseline + V1__baseline.sql 도입 (ddl-auto: validate 전환) - PR-3b order: processed_event Flyway V20260502_002 + 복합 PK 직접 적용 - PR-4 inventory/fulfillment: 5-step schema swap (single → 복합 PK BINARY(16)+VARCHAR(64)) - PR-5 fulfillment: helper 호출 (89→80 lines, -50% boilerplate) - PR-6 order: helper 호출 1줄 축약 - PR-7 product: Flyway baseline + processed_event 신규 + InventoryStockSyncConsumer helper 적용 (검증 §2 #4 갭 해소) - PR-8 inventory: 3/4 listener helper 이관 + UseCase 자연 멱등 검증 - PR-8a CRITICAL: ReserveStockUseCase 자연 멱등 보강 (pre-check, Option A) + onOrderCompleted helper 이관 - PR-9: 5 서비스 cleanup 활성화 (cron 분산 03:00~04:00 KST) + Grafana dashboard + 6 알람 - PR-10: seven-split 자체 헬퍼 삭제 + backup table DROP V3__ + ADR-0012 cross-ref + idempotent-consumer.md convention ADR-0032 (Order Outbox + Cancellation): - PR-2 Order Outbox: OrderEventAdapter kafkaTemplate.send 제거 → OutboxPort.save (ADR-0011 위반 해소) - PR-3 Cancellation: inventory onOrderCancelled listener + releaseStockByOrderUseCase - PR-4: outbox_pending_count Gauge + cancellation latency Histogram + Grafana + 5 알람 + runbook GC 학습 보강: - 23-g1gc-tuning-cookbook.md (674 lines, 9 주제 cookbook 형식) - 누락 4: back-to-back GC / Allocation burst / System.gc() / OS system time - 보강 5: 디폴트 옵션 / Heap size / Young 핵심 이유 / Young 시간 초과 / Old 시간 초과 - 00-preview.md 학습 순서 갱신, 22-interview-qa.md +3 카드 Convention + 문서: - docs/conventions/idempotent-consumer.md 신설 (241줄) - CLAUDE.md Key Conventions 멱등성 항목 갱신 - ADR-0012 §Refinement 섹션에 ADR-0029 cross-ref 빌드/테스트: - :common :inventory :fulfillment :order :product :seven-split build PASS - 테스트: 모든 신규/회귀 PASS (seven-split ClickHouse Testcontainer 1건은 사전 인프라 이슈, 본 PR 무관) Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1989v
added a commit
that referenced
this pull request
May 3, 2026
docs(adr): ADR-0020 @transactional 사용 규칙 → conventions 이전
1989v
added a commit
that referenced
this pull request
May 3, 2026
Phase 2 신규 산출물:
- docs/specs/2026-04-26-quant-phase2-paper-trading/
- planning/initialization.md (Phase 1 컨텍스트 + 결정사항 + 범위)
- planning/requirements.md (US-P2-01~11, FR-P2-{WS,HUB,SIM,USE,NOTIF,RES,SEC,FE,OBS}, NFR-P2)
- planning/test-quality.md (Phase 2 테스트 영역 + INV-P2-* + nightly SLO)
- planning/spec.md (~460 lines, 20 sections)
- planning/tasks.md (16 TG + Preflight 2, 157 체크박스)
- context/open-questions.yml (OQ-P2-001~008)
ADR 신규/수정:
- ADR-0024 Errata: 빗썸 API 2.0 인증 = JWT(HS256) 정정 (HMAC-SHA512 오기 정정)
- ADR-0025: MarketDataHub (SharedFlow primary + optional Kafka fan-out)
- ADR-0026: audit_log 불변성 (ClickHouse quant_audit DB + RBAC + prev_hash chain + Kafka mirror)
- ADR-0027: OCI Vault KEK envelope encryption (Port 추상화 + LocalFile dev + stale-on-error)
핵심 결정:
- 시세 이벤트 버스: Coroutine SharedFlow primary + 비동기 Kafka fan-out collector
- KEK 보관: OCI Vault Service (Free Tier) + LocalFileKmsAdapter (dev) + Port 추상화
- audit: 별도 ClickHouse DB + RBAC + prev_hash + Kafka mirror best-effort
- SSE: gateway 확장 + first-message JWT 인증
- replicas=1 강제 (strategy.type=Recreate, Phase 2 단일 인스턴스 가정 보호)
Review-1 후속 정정 적용 (R-CRIT-1~4 + Should-Fix #1/#3/#4)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1989v
added a commit
that referenced
this pull request
May 3, 2026
신규 5 주제 (#14 CRDT/MRDT, #15 Connection Pool, #16 Async/NIO, #17 Spring Web, #18 gRPC) plan + deep file 약 100개. 기존 10 주제 (#2 JVM, #3 동시성, #4 DB, #5 Spring TX, #6 Kafka, #7 분산시스템, #8 시스템 설계, #9 Redis, #10 Observability, #11 K8s) deep file 일괄 추가. 흡수 처리: - 17-1 readOnly/writable TX → #5에 흡수 (06-readonly-vs-writable + 07-replica-routing-pattern) - 17-3 스레드 덤프 → #3에 흡수 (20-thread-dump-analysis dedicated) - 17-3 cross-ref → #2 (13-heap-dump-mat 섹션 7) 메타 산출물 5종: - study/docs/00-INDEX.md (660줄, 18 주제 entry + 의존 그래프 + 키워드 인덱스) - study/docs/00-INTERVIEW-INDEX.md (1028줄, ~730 카드 통합 + 모의 시나리오 5개) - study/docs/00-LEARNING-GUIDE.md (817줄, 3개월/6개월/9개월 트랙 + 1/2/3회독) - study/docs/00-ADR-CANDIDATES.md (1564줄, 34 ADR 후보 + OP 25 + 10스프린트 로드맵) - study/CLAUDE.md (155줄, study 영역 navigation) 기타 갱신: - 11 plan.md frontmatter status: completed (2026-05-02) - temp.md 학습 현황표 18 주제 모두 'completed + N deep files' - 루트 CLAUDE.md Navigation 에 study/ 영역 entry 총 18 주제 / 333 deep files / ~97K 줄 + 메타 ~4.2K 줄. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1989v
added a commit
that referenced
this pull request
May 3, 2026
ADR-0029 (Idempotent Consumer Helper): - PR-2 quant: 자체 헬퍼 → common 헬퍼 adapter, @deprecated 마킹 - PR-3a inventory/fulfillment: Flyway baseline + V1__baseline.sql 도입 (ddl-auto: validate 전환) - PR-3b order: processed_event Flyway V20260502_002 + 복합 PK 직접 적용 - PR-4 inventory/fulfillment: 5-step schema swap (single → 복합 PK BINARY(16)+VARCHAR(64)) - PR-5 fulfillment: helper 호출 (89→80 lines, -50% boilerplate) - PR-6 order: helper 호출 1줄 축약 - PR-7 product: Flyway baseline + processed_event 신규 + InventoryStockSyncConsumer helper 적용 (검증 §2 #4 갭 해소) - PR-8 inventory: 3/4 listener helper 이관 + UseCase 자연 멱등 검증 - PR-8a CRITICAL: ReserveStockUseCase 자연 멱등 보강 (pre-check, Option A) + onOrderCompleted helper 이관 - PR-9: 5 서비스 cleanup 활성화 (cron 분산 03:00~04:00 KST) + Grafana dashboard + 6 알람 - PR-10: quant 자체 헬퍼 삭제 + backup table DROP V3__ + ADR-0012 cross-ref + idempotent-consumer.md convention ADR-0032 (Order Outbox + Cancellation): - PR-2 Order Outbox: OrderEventAdapter kafkaTemplate.send 제거 → OutboxPort.save (ADR-0011 위반 해소) - PR-3 Cancellation: inventory onOrderCancelled listener + releaseStockByOrderUseCase - PR-4: outbox_pending_count Gauge + cancellation latency Histogram + Grafana + 5 알람 + runbook GC 학습 보강: - 23-g1gc-tuning-cookbook.md (674 lines, 9 주제 cookbook 형식) - 누락 4: back-to-back GC / Allocation burst / System.gc() / OS system time - 보강 5: 디폴트 옵션 / Heap size / Young 핵심 이유 / Young 시간 초과 / Old 시간 초과 - 00-preview.md 학습 순서 갱신, 22-interview-qa.md +3 카드 Convention + 문서: - docs/conventions/idempotent-consumer.md 신설 (241줄) - CLAUDE.md Key Conventions 멱등성 항목 갱신 - ADR-0012 §Refinement 섹션에 ADR-0029 cross-ref 빌드/테스트: - :common :inventory :fulfillment :order :product :quant build PASS - 테스트: 모든 신규/회귀 PASS (quant ClickHouse Testcontainer 1건은 사전 인프라 이슈, 본 PR 무관) Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1989v
added a commit
that referenced
this pull request
May 3, 2026
docs(adr): ADR-0020 @transactional 사용 규칙 → conventions 이전
1989v
added a commit
that referenced
this pull request
May 3, 2026
Phase 2 신규 산출물:
- docs/specs/2026-04-26-quant-phase2-paper-trading/
- planning/initialization.md (Phase 1 컨텍스트 + 결정사항 + 범위)
- planning/requirements.md (US-P2-01~11, FR-P2-{WS,HUB,SIM,USE,NOTIF,RES,SEC,FE,OBS}, NFR-P2)
- planning/test-quality.md (Phase 2 테스트 영역 + INV-P2-* + nightly SLO)
- planning/spec.md (~460 lines, 20 sections)
- planning/tasks.md (16 TG + Preflight 2, 157 체크박스)
- context/open-questions.yml (OQ-P2-001~008)
ADR 신규/수정:
- ADR-0024 Errata: 빗썸 API 2.0 인증 = JWT(HS256) 정정 (HMAC-SHA512 오기 정정)
- ADR-0025: MarketDataHub (SharedFlow primary + optional Kafka fan-out)
- ADR-0026: audit_log 불변성 (ClickHouse quant_audit DB + RBAC + prev_hash chain + Kafka mirror)
- ADR-0027: OCI Vault KEK envelope encryption (Port 추상화 + LocalFile dev + stale-on-error)
핵심 결정:
- 시세 이벤트 버스: Coroutine SharedFlow primary + 비동기 Kafka fan-out collector
- KEK 보관: OCI Vault Service (Free Tier) + LocalFileKmsAdapter (dev) + Port 추상화
- audit: 별도 ClickHouse DB + RBAC + prev_hash + Kafka mirror best-effort
- SSE: gateway 확장 + first-message JWT 인증
- replicas=1 강제 (strategy.type=Recreate, Phase 2 단일 인스턴스 가정 보호)
Review-1 후속 정정 적용 (R-CRIT-1~4 + Should-Fix #1/#3/#4)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1989v
added a commit
that referenced
this pull request
May 3, 2026
신규 5 주제 (#14 CRDT/MRDT, #15 Connection Pool, #16 Async/NIO, #17 Spring Web, #18 gRPC) plan + deep file 약 100개. 기존 10 주제 (#2 JVM, #3 동시성, #4 DB, #5 Spring TX, #6 Kafka, #7 분산시스템, #8 시스템 설계, #9 Redis, #10 Observability, #11 K8s) deep file 일괄 추가. 흡수 처리: - 17-1 readOnly/writable TX → #5에 흡수 (06-readonly-vs-writable + 07-replica-routing-pattern) - 17-3 스레드 덤프 → #3에 흡수 (20-thread-dump-analysis dedicated) - 17-3 cross-ref → #2 (13-heap-dump-mat 섹션 7) 메타 산출물 5종: - study/docs/00-INDEX.md (660줄, 18 주제 entry + 의존 그래프 + 키워드 인덱스) - study/docs/00-INTERVIEW-INDEX.md (1028줄, ~730 카드 통합 + 모의 시나리오 5개) - study/docs/00-LEARNING-GUIDE.md (817줄, 3개월/6개월/9개월 트랙 + 1/2/3회독) - study/docs/00-ADR-CANDIDATES.md (1564줄, 34 ADR 후보 + OP 25 + 10스프린트 로드맵) - study/CLAUDE.md (155줄, study 영역 navigation) 기타 갱신: - 11 plan.md frontmatter status: completed (2026-05-02) - temp.md 학습 현황표 18 주제 모두 'completed + N deep files' - 루트 CLAUDE.md Navigation 에 study/ 영역 entry 총 18 주제 / 333 deep files / ~97K 줄 + 메타 ~4.2K 줄. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1989v
added a commit
that referenced
this pull request
May 3, 2026
ADR-0029 (Idempotent Consumer Helper): - PR-2 quant: 자체 헬퍼 → common 헬퍼 adapter, @deprecated 마킹 - PR-3a inventory/fulfillment: Flyway baseline + V1__baseline.sql 도입 (ddl-auto: validate 전환) - PR-3b order: processed_event Flyway V20260502_002 + 복합 PK 직접 적용 - PR-4 inventory/fulfillment: 5-step schema swap (single → 복합 PK BINARY(16)+VARCHAR(64)) - PR-5 fulfillment: helper 호출 (89→80 lines, -50% boilerplate) - PR-6 order: helper 호출 1줄 축약 - PR-7 product: Flyway baseline + processed_event 신규 + InventoryStockSyncConsumer helper 적용 (검증 §2 #4 갭 해소) - PR-8 inventory: 3/4 listener helper 이관 + UseCase 자연 멱등 검증 - PR-8a CRITICAL: ReserveStockUseCase 자연 멱등 보강 (pre-check, Option A) + onOrderCompleted helper 이관 - PR-9: 5 서비스 cleanup 활성화 (cron 분산 03:00~04:00 KST) + Grafana dashboard + 6 알람 - PR-10: quant 자체 헬퍼 삭제 + backup table DROP V3__ + ADR-0012 cross-ref + idempotent-consumer.md convention ADR-0032 (Order Outbox + Cancellation): - PR-2 Order Outbox: OrderEventAdapter kafkaTemplate.send 제거 → OutboxPort.save (ADR-0011 위반 해소) - PR-3 Cancellation: inventory onOrderCancelled listener + releaseStockByOrderUseCase - PR-4: outbox_pending_count Gauge + cancellation latency Histogram + Grafana + 5 알람 + runbook GC 학습 보강: - 23-g1gc-tuning-cookbook.md (674 lines, 9 주제 cookbook 형식) - 누락 4: back-to-back GC / Allocation burst / System.gc() / OS system time - 보강 5: 디폴트 옵션 / Heap size / Young 핵심 이유 / Young 시간 초과 / Old 시간 초과 - 00-preview.md 학습 순서 갱신, 22-interview-qa.md +3 카드 Convention + 문서: - docs/conventions/idempotent-consumer.md 신설 (241줄) - CLAUDE.md Key Conventions 멱등성 항목 갱신 - ADR-0012 §Refinement 섹션에 ADR-0029 cross-ref 빌드/테스트: - :common :inventory :fulfillment :order :product :quant build PASS - 테스트: 모든 신규/회귀 PASS (quant ClickHouse Testcontainer 1건은 사전 인프라 이슈, 본 PR 무관) Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1989v
added a commit
that referenced
this pull request
May 4, 2026
19-search-engine 의 99-catalog 패턴을 다른 18개 학습 주제로 확장. 각 catalog 는 공식 reference (Apache/JDK/IETF/RFC/cloud docs) 기준: - §1 기존 deep file 매트릭스 + 갭 진단 - §2 카테고리별 개념 트리 (✅ 커버 / 🟡 부분 / ★ 신규 / skip) - §3 우선 심화 후보 Top-N - §4 표준 deep-dive 템플릿 (19/99 §4 재사용) - §5 참고 자료 특징: - #1 AWS — VPC/PrivateLink/TGW/Route53/Network Firewall/Global Accelerator/IPAM - #2 JVM — JDK 21+ Generational ZGC/CRaC/Leyden/Lilliput/JEP 트래커 - #3 동시성 — Loom Structured Concurrency/Scoped Values/VarHandle/Flow operators - #4 DB — Window/CTE/Generated columns/Partitioning/PG MVCC/Replication - #5 Spring TX — REQUIRES_NEW connection 점유/AbstractRoutingDataSource/Reactive TX - #6 Kafka — KRaft/Tiered Storage/Streams DSL/Schema Registry/Connect SMT - #7 분산 — Quorum/Gossip/Service Mesh/Saga/CRDT cross/Chaos Engineering - #8 시스템 설계 — 30+ 표준 시나리오 + 14개 핵심 의사결정 카드 - #9 Redis — Stream Consumer Group/Functions/RESP3/Client Caching/Modules - #10 Observability — OTel Collector/Continuous Profiling/eBPF/SLO Burn Rate - #11 K8s — Gateway API/KEDA/Karpenter/Cilium/ValidatingAdmissionPolicy - #12 Latency — Tail at Scale/Little's Law/HdrHistogram/CRaC/io_uring - #13 Crypto — OAuth 2.1/DPoP/PASETO/AEAD nonce/Post-Quantum (Kyber/Dilithium) - #14 CRDT — δ-CRDT/Tree CRDT (Move op)/Loro/Local-first - #15 Pool — PgBouncer/RDS Proxy/R2DBC pool/Lettuce ClusterClientOptions - #16 Async — io_uring/Reactor Context/Netty ByteBuf/Loom vs Reactive - #17 Spring Web — VirtualThread executor/ProblemDetail/HTTP Interface clients - #18 gRPC — Buf workflow/xDS/ConnectRPC/Health protocol/Service config 19-INDEX / temp.md 의 19 주제 카드에 99-catalog 표기 동기화. Phase B: 18개 catalog 합 4,180 줄 (#19 catalog 581 줄 별도) Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1989v
added a commit
that referenced
this pull request
May 4, 2026
…og 67 ✅ 변환 신규 deep file 27건 (~22,000줄), 12 토픽 분야: #1 AWS Network (+2): - 20-ipv6-ipam-byoip.md (692줄) — IPv6 dual-stack / Egress-only IGW / IPAM / BYOIP / public IPv4 비용 회피 - 21-dns-dhcp-sg-deep.md (810줄) — DHCP options / DNS resolution 함정 / SG ↔ SG references / VPC Lattice #3 Concurrency (+1): - 25-virtual-thread-coroutine-deep.md (745줄) — Java 21 Virtual Thread (Loom) vs Kotlin Coroutine 심화 비교 / Pinning / structured concurrency #4 DB (+2): - 20-online-ddl-deep.md (754줄) — MySQL INSTANT/INPLACE/COPY / gh-ost / pt-online-schema-change / Postgres CONCURRENTLY - 21-deadlock-anti-patterns.md (800줄) — wait-for graph / SHOW ENGINE INNODB STATUS / SKIP LOCKED / 회피 패턴 #6 Kafka (+4): - 14-kraft-tiered-storage.md (699줄) — KRaft 4.0 / Tiered Storage S3 / Cruise Control - 15-rebalance-protocols.md (832줄) — Cooperative (KIP-429) / Static (KIP-345) / Consumer Group Protocol (KIP-848) - 16-log-compaction-tombstone.md (881줄) — Compaction / Tombstone / Mixed / KTable backing - 17-streams-api-kstream-ktable.md (762줄) — KStream/KTable/GlobalKTable / EOS V2 / DSL operators / State store #7 Distributed Systems (+2): - 21-consensus-raft-paxos.md (664줄) — FLP / Paxos / Raft / Multi-Raft / PBFT - 22-saga-compensation-deep.md (757줄) — Choreography vs Orchestration / TCC / Temporal / Outbox+Inbox #8 System Design (+4 시나리오 카드): - 14-realtime-search-autocomplete.md (450줄) — 한국어 자동완성 시스템 - 15-distributed-counter-impressions.md (473줄) — 광고 노출/클릭 카운팅 - 16-payment-idempotency.md (550줄) — 결제 멱등성 (Idempotency-Key + Outbox + Saga) - 17-iot-telemetry-pipeline.md (595줄) — IoT 텔레메트리 (MQTT + Kafka + ClickHouse + S3 cold tier) #10 Observability (+2): - 15-prometheus-internals.md (974줄) — TSDB / WAL / XOR compression / Federation / Mimir/Cortex/Thanos - 16-opentelemetry-deep.md (1,229줄) — OTel SDK / Collector / W3C Trace Context / OTLP / Sampling / Exemplar #11 K8s (+3): - 18-operator-pattern-crd.md (1,001줄) — Operator + CRD / Reconcile loop / Finalizer / msa Operator 6종 grounding - 19-gitops-argocd-flux.md (1,058줄) — Argo CD / Flux / ApplicationSet / SealedSecrets / SOPS / ESO - 20-canary-bluegreen-argo-rollouts.md (1,020줄) — Argo Rollouts / AnalysisTemplate / msa Tier 매트릭스 #12 Latency (+1): - 13-modern-hardware-latency.md (877줄) — NVMe / DDR5 / Cloud / Lambda cold start / DB / 벡터 / GPU 자릿수 #13 Crypto/JWT/SSO (+4): - 21-aead-nonce-key-derivation.md (753줄) — AEAD nonce 함정 / AES-GCM-SIV / HKDF / CSPRNG / Crypto-agility - 22-jwt-pitfalls-zero-trust.md (932줄) — alg=none CVE / 0-RTT replay / DPoP / mTLS-bound / token rotation - 23-mtls-mesh-cert-rotation.md (878줄) — mTLS mesh (Istio/Linkerd) / SPIFFE/SPIRE / OCSP / CT log - 24-post-quantum-crypto.md (771줄) — Kyber/Dilithium/SPHINCS+/Falcon / Hybrid TLS / 마이그레이션 전략 #14 CRDT (+1): - 20-crdt-types-deep.md (703줄) — G/PN-Counter / G/2P/OR-Set / LWW/MV-Register / RGA/Logoot/Treedoc / Y.js/Automerge #16 Async I/O (+1): - 20-reactor-netty-pipeline-deep.md (898줄) — Mono/Flux / Backpressure / Schedulers / Netty pipeline / WebFlux 내부 99-catalog 갱신 (12 토픽): - §1 매트릭스에 27 신규 deep file 행 추가 - ★ 신규 / 🟡 부분 → ✅ 커버 변환 67 행 (#13:19 / #6:22 / #1:9 / #11:10 / #10:21 / #4:1 / #7:5 / #14:2 / #3:5 / #16:6 / #8:2) ADR 후보 24건 추가 (00-ADR-CANDIDATES.md §12): - 즉시 8: A2 / K2 / O2 / C1 / C2 / D1 / D2 / CO1 - 분기 11: A1 / K1 / K3 / O1 / K5 / K6 / K7 / C3 / DS2 / IO1 / LN1 - 반기 3: K4 / CC1 / C4 - cross-cutting 결합 후보 3 (mTLS+Zero-Trust / Outbox+Saga / 3-pillar Observability) master 인덱스 동기화: - 00-INDEX: 12 토픽 카운트 갱신 + 합계 421 → 448 file / 123,720 → 145,358 line - 00-INTERVIEW-INDEX: 신규 ~150 카드 예상 (840 → 990) - temp.md: 전체 통계 동기화 (456 .md / 145,358 line) Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1989v
added a commit
that referenced
this pull request
May 17, 2026
리뷰어 지적 10건 중 9건 반영 (docs-health 는 별도 도메인이라 제외). [HIGH] #1 submodule pointer bump 감지 누락 case 'auth/*' 만 매칭하면 'auth' (bare name, submodule pointer diff path) 가 스킵됨 → submodule-bump 가 push 한 commit 으로 이미지 재빌드 안됨. fix: 'auth|auth/*)' 'gifticon|gifticon/app/*|gifticon/domain/*)' 로 확장. [HIGH] #5 tag push 의 commit-back 위험 refs/tags/v* push 는 detached HEAD → git push to main 실패. fix: commit-back step 에 if: github.ref == 'refs/heads/main' 추가. [MEDIUM] #7 조기 종료가 실제 step 만 종료, job 안 끝남 변경 없음 step 의 exit 0 다음에도 OCIR login / yq install 등 실행됨. fix: 후속 step 들에 if: steps.changes.outputs.kustomize_services != '' 추가. [MEDIUM] #2 PR 검증 약함 — compile gate 복귀 ci.yml 에 compile-gate job 추가 — ./gradlew compileKotlin compileJava. test 는 부담 커서 제외 (images.yml 에서 jib 가 빌드 검증함). kustomize-validate 와 병렬 실행. [MEDIUM] #6 hang 방지 모든 job 에 timeout-minutes 추가: - images publish: 60m - submodule-bump: 10m - ci compile-gate: 20m - ci kustomize-validate: 5m [LOW] #10 워크플로 README 갱신 옛 build/jib-build 설명 → 현재 구현 (compile-gate + incremental images + OCIR). [LOW] #3 GitHub App token scope 재활성 v3 의 repositories: 옵션으로 msa/msa-auth/msa-gifticon 만 토큰 발급. 최소권한 원칙 + App 이 위 3개에 정확히 설치돼있어야 동작 (현재 OK). [LOW] #4 create-github-app-token v1 → v3 현재 maintenance. 사용 인자 (app-id/private-key) 동일이라 무중단 migration. (별도) #8 Argo placeholder 흐름은 이미 application.yaml + install.sh 로 처리됨. (스킵) #9 docs-health 권한은 별도 도메인 — 이번 commit 범위 외. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
ADR-0026 분류 정책 적용 — ADR-0020 을
docs/conventions/transactional-usage.md로 전체 이동.분석 결과 — 분해 불필요
원래 계획은 0020 을 "원칙 (외부 IO ↔ TXN) + 실천 (사용법)" 으로 분해하는 것이었으나, 본문 정독 후:
docs/conventions/code-convention.md) §6 의 TransactionalService 분리 패턴에 명시→ 분해 불필요, 전체 이동이 본질 적합.
처리 결과
docs/conventions/transactional-usage.md신설다음 후속
ADR-0022 entity-mutation 분해 — 본 PR 다음에 진행. 분해 라인 합의 필요할 가능성 (원칙: entity 자기 보호 / 실천: 전체 동기화 vs 부분 수정 패턴).
Test plan
python3 ai/plugins/hns/scripts/doc_map.py --check)🤖 Generated with Claude Code