chore: 이전 세션이 남긴 변경을 커밋한다
이번 파이프라인 작업과 무관하게 작업 트리에 남아 있던 것을 그대로 올린다. 사용자가 「전부 커밋」으로 정했고, 이번 작업과 섞이지 않게 커밋만 나눴다. 대부분은 clean-architecture-backend-template 의 그림 정본 재배치다 — final/assets/diagrams/<이름>/ 에 있던 것이 CLAUDE.md 가 적은 배치인 final/assets/<이름>/ 로 옮겨졌고 .techviz/<이름>/ 이 함께 들어왔다. 삽입 줄의 대부분(3.15M)이 그 .techviz context.json 이다. 그 밖에 ca-tmpl·document-haness 의 정리, .claude/agents/ 열한 개, writing-practitioner-guides 스킬, .playwright-mcp 세션 산출물, scripts/check-ssot-facts.py 와 그 시험이 들어 있다. 이 커밋의 내용은 내가 만든 것이 아니라 이전 세션이 남긴 것이고 검증하지 않았다. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
2109f726fe
commit
ab59130196
-1
@@ -4,7 +4,6 @@ kind: CASE
|
||||
slug: collection-fetch-join-in-memory-paging
|
||||
title: Collection Fetch Join Pagination의 In-memory Paging
|
||||
topic: jpa-feed-query-performance
|
||||
topicName: JPA 피드 조회 성능 — N+1 진단과 조회 전략의 진화
|
||||
topicName: JPA 피드 조회 성능
|
||||
project: Liner N + 1문제
|
||||
status: 게시 전
|
||||
|
||||
-1
@@ -4,7 +4,6 @@ kind: CASE
|
||||
slug: eager-toone-nplus1-without-access
|
||||
title: Fetch 타입이 아니라 조회 방식이 만든 ToOne N+1
|
||||
topic: jpa-feed-query-performance
|
||||
topicName: JPA 피드 조회 성능 — N+1 진단과 조회 전략의 진화
|
||||
topicName: JPA 피드 조회 성능
|
||||
project: Liner N + 1문제
|
||||
status: 게시 전
|
||||
|
||||
-1
@@ -4,7 +4,6 @@ kind: CASE
|
||||
slug: fetch-join-multibag-and-row-explosion
|
||||
title: Fetch Join으로 N+1을 해결하다 만난 MultiBag과 행 폭증
|
||||
topic: jpa-feed-query-performance
|
||||
topicName: JPA 피드 조회 성능 — N+1 진단과 조회 전략의 진화
|
||||
topicName: JPA 피드 조회 성능
|
||||
project: Liner N + 1문제
|
||||
status: 게시 전
|
||||
|
||||
-1
@@ -4,7 +4,6 @@ kind: CASE
|
||||
slug: projection-row-over-fetch
|
||||
title: Projection 이후에도 1,509행을 읽은 Row Over-fetch
|
||||
topic: jpa-feed-query-performance
|
||||
topicName: JPA 피드 조회 성능 — N+1 진단과 조회 전략의 진화
|
||||
topicName: JPA 피드 조회 성능
|
||||
project: Liner N + 1문제
|
||||
status: 게시 전
|
||||
|
||||
-1
@@ -4,7 +4,6 @@ kind: CASE
|
||||
slug: visibility-or-breaks-keyset-index
|
||||
title: Visibility OR이 Keyset Index를 깨뜨린 문제
|
||||
topic: jpa-feed-query-performance
|
||||
topicName: JPA 피드 조회 성능 — N+1 진단과 조회 전략의 진화
|
||||
topicName: JPA 피드 조회 성능
|
||||
project: Liner N + 1문제
|
||||
status: 게시 전
|
||||
|
||||
-1
@@ -4,7 +4,6 @@ kind: PROJECT_DECISION
|
||||
slug: batch-fetch-for-entity-graph
|
||||
title: Entity Graph 조회에는 Batch Fetch를 사용한다
|
||||
topic: jpa-feed-query-performance
|
||||
topicName: JPA 피드 조회 성능 — N+1 진단과 조회 전략의 진화
|
||||
topicName: JPA 피드 조회 성능
|
||||
project: Liner N + 1문제
|
||||
status: 게시 전
|
||||
|
||||
-1
@@ -4,7 +4,6 @@ kind: PROJECT_DECISION
|
||||
slug: keep-read-model-as-cqrs-lite
|
||||
title: 현재 Read Model은 CQRS-lite로 유지한다
|
||||
topic: jpa-feed-query-performance
|
||||
topicName: JPA 피드 조회 성능 — N+1 진단과 조회 전략의 진화
|
||||
topicName: JPA 피드 조회 성능
|
||||
project: Liner N + 1문제
|
||||
status: 게시 전
|
||||
|
||||
-1
@@ -4,7 +4,6 @@ kind: PROJECT_DECISION
|
||||
slug: keyset-for-feed-pagination
|
||||
title: Feed Pagination은 Keyset을 사용한다
|
||||
topic: jpa-feed-query-performance
|
||||
topicName: JPA 피드 조회 성능 — N+1 진단과 조회 전략의 진화
|
||||
topicName: JPA 피드 조회 성능
|
||||
project: Liner N + 1문제
|
||||
status: 게시 전
|
||||
|
||||
-1
@@ -4,7 +4,6 @@ kind: PROJECT_DECISION
|
||||
slug: measure-plan-on-real-postgresql
|
||||
title: Query Plan은 실제 PostgreSQL에서 측정한다
|
||||
topic: jpa-feed-query-performance
|
||||
topicName: JPA 피드 조회 성능 — N+1 진단과 조회 전략의 진화
|
||||
topicName: JPA 피드 조회 성능
|
||||
project: Liner N + 1문제
|
||||
status: 게시 전
|
||||
|
||||
-1
@@ -4,7 +4,6 @@ kind: PROJECT_DECISION
|
||||
slug: no-collection-fetch-join-with-pagination
|
||||
title: Collection Fetch Join과 Pagination을 같이 사용하지 않는다
|
||||
topic: jpa-feed-query-performance
|
||||
topicName: JPA 피드 조회 성능 — N+1 진단과 조회 전략의 진화
|
||||
topicName: JPA 피드 조회 성능
|
||||
project: Liner N + 1문제
|
||||
status: 게시 전
|
||||
|
||||
-1
@@ -4,7 +4,6 @@ kind: PROJECT_DECISION
|
||||
slug: query-strategy-behind-port
|
||||
title: Query Strategy는 FeedQueryPort 뒤에서 소유한다
|
||||
topic: jpa-feed-query-performance
|
||||
topicName: JPA 피드 조회 성능 — N+1 진단과 조회 전략의 진화
|
||||
topicName: JPA 피드 조회 성능
|
||||
project: Liner N + 1문제
|
||||
status: 게시 전
|
||||
|
||||
-1
@@ -4,7 +4,6 @@ kind: PROJECT_DECISION
|
||||
slug: read-projection-for-screen-query
|
||||
title: 화면 조회는 Read Projection을 사용한다
|
||||
topic: jpa-feed-query-performance
|
||||
topicName: JPA 피드 조회 성능 — N+1 진단과 조회 전략의 진화
|
||||
topicName: JPA 피드 조회 성능
|
||||
project: Liner N + 1문제
|
||||
status: 게시 전
|
||||
|
||||
-1
@@ -4,7 +4,6 @@ kind: QUESTION
|
||||
slug: cardinality-estimate-after-analyze
|
||||
title: ANALYZE 이후 Cardinality Estimate는 어떻게 달라지는가
|
||||
topic: jpa-feed-query-performance
|
||||
topicName: JPA 피드 조회 성능 — N+1 진단과 조회 전략의 진화
|
||||
topicName: JPA 피드 조회 성능
|
||||
project: Liner N + 1문제
|
||||
status: 게시 전
|
||||
|
||||
+1
-3
@@ -4,7 +4,6 @@ kind: QUESTION
|
||||
slug: concurrency-stability
|
||||
title: 실제 동시 트래픽에서도 이 구조가 안정적인가
|
||||
topic: jpa-feed-query-performance
|
||||
topicName: JPA 피드 조회 성능 — N+1 진단과 조회 전략의 진화
|
||||
topicName: JPA 피드 조회 성능
|
||||
project: Liner N + 1문제
|
||||
status: 게시 전
|
||||
@@ -20,8 +19,6 @@ source:
|
||||
|
||||
지금까지의 측정은 단일 스레드 퍼시스턴스 통합 테스트에서 아이템 수 N을 키울 때 쿼리 수와 읽는 행수가 얼마나 늘어나는지만 확인했다. 여러 요청이 겹칠 때의 처리량과 커넥션 풀 안정성은 이 테스트가 재지 않았으므로, 조회 구조가 실제 부하를 견디는지는 아직 모른다.
|
||||
|
||||
한 요청만 놓고 보면 왕복 수는 페이지 크기에 묶여 있다. 그 요청당 왕복이 트래픽에 곱해진 값은 요청을 동시에 보내야 나오고, 그 측정은 하지 않았다.
|
||||
|
||||
## 관계
|
||||
|
||||
- **PostgreSQL Query Plan 측정 기준**
|
||||
@@ -36,6 +33,7 @@ source:
|
||||
- 표본이 5개뿐이어서 p50·p99 대신 중앙값과 최댓값으로 적었다.
|
||||
- N=1,000에서 왕복 수는 2,022개에서 23개로, 엔티티 로드는 1,569개에서 0개로, 자식 전송은 1,509행에서 최대 60행으로 줄었다.
|
||||
- 100번째 페이지에서 OFFSET은 20행을 만들려고 2,000행을 읽었고 keyset은 20행만 읽었다.
|
||||
- 한 요청만 놓고 보면 왕복 수는 페이지 크기에 묶여 있다. 그 왕복이 트래픽에 곱해진 값은 요청을 동시에 보내야 나오고, 그 측정은 하지 않았다.
|
||||
- 고트래픽 처리량과 커넥션 풀 안정성, 동시성은 이 측정의 범위 밖이라고 문서 첫머리에 적어 두었다.
|
||||
- 커넥션 풀과 Little's Law는 이번 조회 문제를 해결한 뒤 별도 주제로 검증할 수 있다고 다음 단계에 함께 적어 두었다.
|
||||
|
||||
|
||||
-1
@@ -4,7 +4,6 @@ kind: QUESTION
|
||||
slug: isolate-round-trip-and-row-volume
|
||||
title: Round Trip과 Row Volume을 독립 측정할 것인가
|
||||
topic: jpa-feed-query-performance
|
||||
topicName: JPA 피드 조회 성능 — N+1 진단과 조회 전략의 진화
|
||||
topicName: JPA 피드 조회 성능
|
||||
project: Liner N + 1문제
|
||||
status: 게시 전
|
||||
|
||||
-1
@@ -4,7 +4,6 @@ kind: QUESTION
|
||||
slug: nullable-first-highlighted-at
|
||||
title: Highlight 없는 FeedItem을 허용할 것인가
|
||||
topic: jpa-feed-query-performance
|
||||
topicName: JPA 피드 조회 성능 — N+1 진단과 조회 전략의 진화
|
||||
topicName: JPA 피드 조회 성능
|
||||
project: Liner N + 1문제
|
||||
status: 게시 전
|
||||
|
||||
-1
@@ -4,7 +4,6 @@ kind: QUESTION
|
||||
slug: promote-feed-visible-to-cqrs
|
||||
title: feed_visible을 Production CQRS로 승격할 것인가
|
||||
topic: jpa-feed-query-performance
|
||||
topicName: JPA 피드 조회 성능 — N+1 진단과 조회 전략의 진화
|
||||
topicName: JPA 피드 조회 성능
|
||||
project: Liner N + 1문제
|
||||
status: 게시 전
|
||||
|
||||
-1
@@ -4,7 +4,6 @@ kind: REFERENCE
|
||||
slug: feed-visibility-query-pattern
|
||||
title: Feed Visibility Query Pattern
|
||||
topic: jpa-feed-query-performance
|
||||
topicName: JPA 피드 조회 성능 — N+1 진단과 조회 전략의 진화
|
||||
topicName: JPA 피드 조회 성능
|
||||
project: Liner N + 1문제
|
||||
status: 게시 전
|
||||
|
||||
-1
@@ -4,7 +4,6 @@ kind: REFERENCE
|
||||
slug: fetch-strategy-selection
|
||||
title: Fetch Join · Batch · Projection 선택 기준
|
||||
topic: jpa-feed-query-performance
|
||||
topicName: JPA 피드 조회 성능 — N+1 진단과 조회 전략의 진화
|
||||
topicName: JPA 피드 조회 성능
|
||||
project: Liner N + 1문제
|
||||
status: 게시 전
|
||||
|
||||
-1
@@ -4,7 +4,6 @@ kind: REFERENCE
|
||||
slug: fetch-type-vs-fetch-strategy
|
||||
title: Fetch Type과 Fetch Strategy 구분
|
||||
topic: jpa-feed-query-performance
|
||||
topicName: JPA 피드 조회 성능 — N+1 진단과 조회 전략의 진화
|
||||
topicName: JPA 피드 조회 성능
|
||||
project: Liner N + 1문제
|
||||
status: 게시 전
|
||||
|
||||
-1
@@ -4,7 +4,6 @@ kind: REFERENCE
|
||||
slug: keyset-pagination-design
|
||||
title: Keyset Pagination 설계 기준
|
||||
topic: jpa-feed-query-performance
|
||||
topicName: JPA 피드 조회 성능 — N+1 진단과 조회 전략의 진화
|
||||
topicName: JPA 피드 조회 성능
|
||||
project: Liner N + 1문제
|
||||
status: 게시 전
|
||||
|
||||
-1
@@ -4,7 +4,6 @@ kind: REFERENCE
|
||||
slug: nplus1-quantitative-diagnosis
|
||||
title: JPA N+1 정량 진단 기준
|
||||
topic: jpa-feed-query-performance
|
||||
topicName: JPA 피드 조회 성능 — N+1 진단과 조회 전략의 진화
|
||||
topicName: JPA 피드 조회 성능
|
||||
project: Liner N + 1문제
|
||||
status: 게시 전
|
||||
|
||||
-1
@@ -4,7 +4,6 @@ kind: REFERENCE
|
||||
slug: postgresql-query-plan-measurement
|
||||
title: PostgreSQL Query Plan 측정 기준
|
||||
topic: jpa-feed-query-performance
|
||||
topicName: JPA 피드 조회 성능 — N+1 진단과 조회 전략의 진화
|
||||
topicName: JPA 피드 조회 성능
|
||||
project: Liner N + 1문제
|
||||
status: 게시 전
|
||||
|
||||
-1
@@ -4,7 +4,6 @@ kind: REFERENCE
|
||||
slug: top-n-per-group-selection
|
||||
title: Top-N-per-group 선택 기준
|
||||
topic: jpa-feed-query-performance
|
||||
topicName: JPA 피드 조회 성능 — N+1 진단과 조회 전략의 진화
|
||||
topicName: JPA 피드 조회 성능
|
||||
project: Liner N + 1문제
|
||||
status: 게시 전
|
||||
|
||||
Reference in New Issue
Block a user