Skip to content

docs(adr): convention/standards 성격 ADR 4개 재배치 (ADR-0026 적용)#2

Closed
1989v wants to merge 1 commit into
feat/adr-0025-latency-budgetfrom
feat/adr-cleanup-conventions-standards
Closed

docs(adr): convention/standards 성격 ADR 4개 재배치 (ADR-0026 적용)#2
1989v wants to merge 1 commit into
feat/adr-0025-latency-budgetfrom
feat/adr-cleanup-conventions-standards

Conversation

@1989v

@1989v 1989v commented Apr 26, 2026

Copy link
Copy Markdown
Owner

Summary

ADR-0026 (PR #1) 의 분류 정책을 첫 본격 적용. 단순 이동 4개 ADR 을 conventions/standards 로 재배치.

Base 브랜치: feat/adr-0025-latency-budget (PR #1) — stacked PR. PR #1 머지 후 자동으로 base 가 main 으로 변경됨.

처리 결과

ADR 본질 새 위치 redirect 남김
0014 code-convention 코딩 규칙 docs/conventions/code-convention.md
0016 service-local-docs 문서 조직 정책 docs/standards/service-local-docs.md (디렉토리 신설)
0021 logging-conventions 코딩 규칙 docs/conventions/logging.md
0023 doc-index-tracking 도구/자동화 정책 docs/standards/doc-index-tracking.md

각 ADR 자리에는 redirect 문서 (Status: Moved + 새 경로 + 이동 사유 + History 참조).

번호 회수 X — 외부 참조 (다른 ADR, specs, portfolio, commit history) 가 깨지지 않도록 redirect 로 처리.

갱신된 메타 문서

  • CLAUDE.md Key Conventions 표 3행 갱신 (0014/0021/0023 → 새 경로)
  • ADR-0026 §5 재판정 표 4행 적용 완료 표시
  • docs/doc-index.lock.json 갱신 (drift clean 확인)

외부 참조 정책

이전된 4개 ADR 을 참조하는 외부 문서 (다른 ADR, specs, portfolio 등) 는 그대로 두었습니다 — redirect 문서가 새 위치를 안내하므로 클릭 한 번으로 따라갈 수 있고, 외부 참조 일괄 갱신은 점진적으로 (다음 PR 들에서 같이 정리) 진행하는 게 위험 / 작업량 trade-off 상 더 안전합니다.

분해 필요 ADR (별도 PR)

ADR 처리 다음 PR
ADR-0020 transactional-usage 분해 (원칙 + 실천) 별도
ADR-0022 entity-mutation 분해 (원칙 + 실천, 까다로움) 별도

Test plan

  • redirect 문서 4개의 Status / 새 경로 / 이동 사유 검토
  • 새 위치 (docs/conventions/, docs/standards/) 의 본문이 원본과 일치하는지 (frontmatter 일부 다듬은 정도)
  • CLAUDE.md Key Conventions 표 갱신 검토
  • ADR-0026 §5 재판정 표 적용 완료 표시 확인
  • doc-index.lock drift 없음 확인 (python3 ai/plugins/hns/scripts/doc_map.py --check)

🤖 Generated with Claude Code

ADR-0026 §5 재판정 표 적용 — 단순 이동 4개:
- ADR-0014 → docs/conventions/code-convention.md
- ADR-0016 → docs/standards/service-local-docs.md (디렉토리 신설)
- ADR-0021 → docs/conventions/logging.md
- ADR-0023 → docs/standards/doc-index-tracking.md

기존 ADR 자리에는 redirect 문서 (Status: Moved + 새 경로 + 이동 사유 + History 참조).
번호 회수 X — 외부 참조 (다른 ADR / specs / portfolio / commit history) 가 깨지지 않도록.

CLAUDE.md Key Conventions 표 3행 갱신 (0014/0021/0023 → 새 경로).
ADR-0026 §5 재판정 표 갱신 (4행 적용 완료 표시).

분해 필요 ADR (0020 transactional / 0022 entity-mutation) 은 별도 PR 들에서
원칙은 ADR 좁힘, 실천은 conventions 로 분리 진행.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@1989v 1989v deleted the branch feat/adr-0025-latency-budget April 26, 2026 09:51
@1989v 1989v closed this Apr 26, 2026
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-0015 정책 코드 적용 (study verification §2 #2 갭 해소):
- 6개 서비스 KafkaConfig 에 addNotRetryableExceptions(BusinessException, IllegalArgumentException) 추가
  - order / fulfillment / product / inventory / search-consumer / seven-split
- 기존 FixedBackOff(1s × 3) / DLT recoverer 설정 유지
- 6개 Kotest BehaviorSpec 신규 테스트 (DefaultErrorHandler.removeClassification 검증)
- 6서비스 동시 빌드 PASS (41s)

ADR-0031 NetworkPolicy Phase 0 (검토 단계, overlay 미적용):
- k8s/base/network-policy/ 14 파일 (12 NetworkPolicy + kustomization + README)
- default-deny + dns/ingress→gateway/gateway→backends/order→product/mysql/redis/kafka/search/clickhouse/monitoring/외부 HTTPS
- commonLabels 함정 차단 (selector 영구 no-op 회피, kustomization.yaml 주석)
- README 에 Phase 1 활성화 절차 명시 (overlay 추가만 1줄)

ADR-0029/0032 implementation plans (코드 변경 없음, 후속 PR 가이드):
- docs/plans/ADR-0029-implementation-plan.md (889줄, 11 PR / 6.5 sprint)
  - 핵심 발견: inventory/fulfillment Flyway 미사용 (ddl-auto: validate) → Phase 2a Flyway baseline 신설
  - product 측 processed_event 테이블 부재 (Verification Follow-up §2)
- docs/plans/ADR-0032-implementation-plan.md (995줄, 4+1 PR / 5-6 sprint)
  - ADR-0029 결합 3 포인트 (helper 마이그레이션 / 복합 PK / traceparent)

학습 일지 + 검증 정정:
- study/log/ 신설 (README + template-week.md) — 회독 진도 트래커
- study/docs/00-VERIFICATION-REPORT.md R1/R2 해결 마킹
  - R1: inventory/InventoryService.kt:181-187 가 inventory.stock.received publisher (확인)
  - R2: product/CLAUDE.md SSOT 표현 정정 완료

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-0015 정책 코드 적용 (study verification §2 #2 갭 해소):
- 6개 서비스 KafkaConfig 에 addNotRetryableExceptions(BusinessException, IllegalArgumentException) 추가
  - order / fulfillment / product / inventory / search-consumer / quant
- 기존 FixedBackOff(1s × 3) / DLT recoverer 설정 유지
- 6개 Kotest BehaviorSpec 신규 테스트 (DefaultErrorHandler.removeClassification 검증)
- 6서비스 동시 빌드 PASS (41s)

ADR-0031 NetworkPolicy Phase 0 (검토 단계, overlay 미적용):
- k8s/base/network-policy/ 14 파일 (12 NetworkPolicy + kustomization + README)
- default-deny + dns/ingress→gateway/gateway→backends/order→product/mysql/redis/kafka/search/clickhouse/monitoring/외부 HTTPS
- commonLabels 함정 차단 (selector 영구 no-op 회피, kustomization.yaml 주석)
- README 에 Phase 1 활성화 절차 명시 (overlay 추가만 1줄)

ADR-0029/0032 implementation plans (코드 변경 없음, 후속 PR 가이드):
- docs/plans/ADR-0029-implementation-plan.md (889줄, 11 PR / 6.5 sprint)
  - 핵심 발견: inventory/fulfillment Flyway 미사용 (ddl-auto: validate) → Phase 2a Flyway baseline 신설
  - product 측 processed_event 테이블 부재 (Verification Follow-up §2)
- docs/plans/ADR-0032-implementation-plan.md (995줄, 4+1 PR / 5-6 sprint)
  - ADR-0029 결합 3 포인트 (helper 마이그레이션 / 복합 PK / traceparent)

학습 일지 + 검증 정정:
- study/log/ 신설 (README + template-week.md) — 회독 진도 트래커
- study/docs/00-VERIFICATION-REPORT.md R1/R2 해결 마킹
  - R1: inventory/InventoryService.kt:181-187 가 inventory.stock.received publisher (확인)
  - R2: product/CLAUDE.md SSOT 표현 정정 완료

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-0015 정책 코드 적용 (study verification §2 #2 갭 해소):
- 6개 서비스 KafkaConfig 에 addNotRetryableExceptions(BusinessException, IllegalArgumentException) 추가
  - order / fulfillment / product / inventory / search-consumer / quant
- 기존 FixedBackOff(1s × 3) / DLT recoverer 설정 유지
- 6개 Kotest BehaviorSpec 신규 테스트 (DefaultErrorHandler.removeClassification 검증)
- 6서비스 동시 빌드 PASS (41s)

ADR-0031 NetworkPolicy Phase 0 (검토 단계, overlay 미적용):
- k8s/base/network-policy/ 14 파일 (12 NetworkPolicy + kustomization + README)
- default-deny + dns/ingress→gateway/gateway→backends/order→product/mysql/redis/kafka/search/clickhouse/monitoring/외부 HTTPS
- commonLabels 함정 차단 (selector 영구 no-op 회피, kustomization.yaml 주석)
- README 에 Phase 1 활성화 절차 명시 (overlay 추가만 1줄)

ADR-0029/0032 implementation plans (코드 변경 없음, 후속 PR 가이드):
- docs/plans/ADR-0029-implementation-plan.md (889줄, 11 PR / 6.5 sprint)
  - 핵심 발견: inventory/fulfillment Flyway 미사용 (ddl-auto: validate) → Phase 2a Flyway baseline 신설
  - product 측 processed_event 테이블 부재 (Verification Follow-up §2)
- docs/plans/ADR-0032-implementation-plan.md (995줄, 4+1 PR / 5-6 sprint)
  - ADR-0029 결합 3 포인트 (helper 마이그레이션 / 복합 PK / traceparent)

학습 일지 + 검증 정정:
- study/log/ 신설 (README + template-week.md) — 회독 진도 트래커
- study/docs/00-VERIFICATION-REPORT.md R1/R2 해결 마킹
  - R1: inventory/InventoryService.kt:181-187 가 inventory.stock.received publisher (확인)
  - R2: product/CLAUDE.md SSOT 표현 정정 완료

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 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>
1989v added a commit that referenced this pull request Jun 1, 2026
#2 actuator 보호: /svc/<svc>/actuator/** → /svc/<svc>/actuator/health 로 좁혀
  metrics·env·prometheus 등 비-health 엔드포인트 외부 노출 차단. 대시보드는
  /actuator/health 만 호출하므로 영향 없음.
#3 중복 라우트 정리: product/order/auth YAML 라우트 제거 — GatewayRouteConfig.kt
  RouteLocator 가 동일 path 를 인증필터와 함께 정의(live /api/products·/api/orders
  401 확인). 무인증 shadowing 라우트 제거. member 는 admin /api/members(목록)·
  /api/members/stats 를 유일 커버하므로 유지(⚠️ 무인증 — 추후 인증화 후 이관).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant