Files
document-haness/.playwright-mcp/page-2026-08-31T09-44-03-978Z.yml

382 lines
24 KiB
YAML

- generic [ref=f104e3]:
- link "본문으로 건너뛰기" [ref=f104e4] [cursor=pointer]:
- /url: "#main-content"
- banner [ref=f104e5]:
- generic [ref=f104e6]:
- link "TechLog Studio" [ref=f104e7] [cursor=pointer]:
- /url: /studio
- text: TechLog
- generic [ref=f104e8]: Studio
- navigation "Studio 주 탐색" [ref=f104e10]:
- link "작업본" [ref=f104e11] [cursor=pointer]:
- /url: /studio/documents
- link "게시 기록" [ref=f104e12] [cursor=pointer]:
- /url: /studio/publications
- link "새 문서" [ref=f104e13] [cursor=pointer]:
- /url: /studio/documents/new
- link "주제·프로젝트" [ref=f104e14] [cursor=pointer]:
- /url: /studio/taxonomy
- link "릴리즈" [ref=f104e15] [cursor=pointer]:
- /url: /studio/releases
- link "공개 사이트 보기" [ref=f104e16] [cursor=pointer]:
- /url: /
- button "로그아웃" [ref=f104e17]
- main [ref=f104e18]:
- generic [ref=f104e19]:
- generic [ref=f104e20]:
- region [ref=f104e21]:
- generic [ref=f104e22]:
- paragraph [ref=f104e23]: REFERENCE · VERSION 4
- heading "문서 편집" [level=1] [ref=f104e24]
- paragraph [ref=f104e25]: Top-N-per-group 선택 기준
- region [ref=f104e26]:
- generic [ref=f104e27]:
- paragraph [ref=f104e28]: DOCUMENT
- heading "기본 정보" [level=2] [ref=f104e29]
- generic [ref=f104e30]:
- generic [ref=f104e31]:
- generic [ref=f104e32]: 제목
- textbox "제목" [ref=f104e33]: Top-N-per-group 선택 기준
- generic [ref=f104e34]:
- generic [ref=f104e35]: slug
- textbox "slug" [ref=f104e36]:
- /placeholder: 비우면 제목에서 만듭니다 (영문 소문자·숫자·하이픈)
- text: top-n-per-group-selection
- generic [ref=f104e37]:
- generic [ref=f104e38]: 요약
- textbox "요약" [ref=f104e39]: 부모마다 상위 N개를 뽑는 일은 LIMIT으로 표현되지 않는다. 윈도우 함수, LATERAL, 애플리케이션 그룹핑 세 가지가 같은 결과를 만들지만 읽는 행수가 다르다.
- generic [ref=f104e40]: 목록 카드에는 약 90자까지 보입니다 · 93 / 2000
- generic [ref=f104e41]:
- generic [ref=f104e42]: Topic
- combobox "Topic" [ref=f104e43]:
- option "선택하지 않음"
- option "JPA 피드 조회 성능" [selected]
- option "OAuth/OIDC 인증 경계"
- generic [ref=f104e44]:
- generic [ref=f104e45]: Project
- combobox "Project" [ref=f104e46]:
- option "미지정"
- option "Backend Clean Architecture"
- option "KeyCloak Patterns"
- option "Liner N + 1문제" [selected]
- status [ref=f104e47]
- group "관계" [ref=f104e48]:
- generic [ref=f104e50]:
- generic [ref=f104e51]:
- generic [ref=f104e52]: 관계 1 대상
- combobox "관계 1 대상" [ref=f104e53]:
- option "대상 선택"
- option
- option
- option
- option
- option
- option
- option "실제 동시 트래픽에서도 이 구조가 안정적인가"
- option "서버 세션 기반 인증 구조는 다중 인스턴스에서 어떻게 운영할 것인가"
- option "ANALYZE 이후 Cardinality Estimate는 어떻게 달라지는가"
- option "Authorization Code Flow의 Endpoint와 Credential 이동 기준"
- option "Authorization Code와 PKCE가 보호하는 구간"
- option "Bearer JWT가 인증된 principal이 되기까지"
- option "BFF 인증 구조 설계 기준"
- option "BFF가 OAuth Token을 관리하는 조건"
- option "BFF의 Session과 OAuth2AuthorizedClient를 어디에 저장할 것인가"
- option "Browser Token을 없애면서 BFF에 Session과 CSRF 책임이 생긴 과정"
- option "Collection Fetch Join Pagination의 In-memory Paging"
- option "Cookie로 인증하는 요청에서 CSRF token이 하는 일"
- option "브라우저가 credential을 보관하는 위치와 그 성질"
- option "DTO 변환 과정에서 발생한 Highlight 컬렉션 N+1"
- option "필드 접근 없이 발생한 EAGER ToOne N+1"
- option "Feed Visibility Query Pattern"
- option "feed_visible을 Production CQRS로 승격할 것인가"
- option "Fetch Join · Batch · Projection 선택 기준" [disabled]
- option "Fetch Join으로 N+1을 해결하다 만난 MultiBag과 행 폭증"
- option "Fetch Type과 Fetch Strategy 구분"
- option "Forward-Auth 구조에서 Application Authorization을 어디까지 Edge에 둘 것인가"
- option "Forward-Auth에서 Client가 보낸 Identity Header를 신뢰하면 안 되는 이유"
- option "Forward-Auth에서 Identity Header를 신뢰하기 위한 조건"
- option "Forward-Auth와 Nginx auth_request의 동작"
- option "Highlight 없는 FeedItem을 허용할 것인가"
- option "외부 IdP와의 연동이라도 별도의 인증 방식이 아니다."
- option "외부 IdP 연동과 Application 인증 구조의 경계"
- option "외부 IdP Brokering의 동작"
- option "JPA N+1 정량 진단 기준"
- option "Keyset Pagination 설계 기준"
- option "OAuth/OIDC 인증 패턴 선택 기준"
- option "OAuth Token과 Application Session을 구분하는 기준"
- option "PostgreSQL Query Plan 측정 기준" [disabled]
- option "Projection 이후에도 1,509행을 읽은 Row Over-fetch" [selected]
- option "Public Client와 Confidential Client 구분 기준"
- option "Query Plan은 실제 PostgreSQL에서 측정한다"
- option "Refresh Token 관리만 서버로 이전, Access Token은 여전히 Browser에 노출"
- option "Refresh Token Rotation과 다중 Replica 경쟁을 어떻게 처리할 것인가"
- option "Round Trip과 Row Volume을 독립 측정할 것인가"
- option "SPA에서 토큰을 직접 관리하면서 드러난 Browser Credential 경계"
- option "Top-N-per-group 선택 기준"
- option "Visibility OR이 Keyset Index를 깨뜨린 문제"
- generic [ref=f104e54]:
- generic [ref=f104e55]: 관계 1 이유
- textbox "관계 1 이유" [ref=f104e56]: 이 기준이 풀려던 문제다.
- generic [ref=f104e57]:
- button "위로" [disabled] [ref=f104e58]
- button "아래로" [ref=f104e59]
- button "삭제" [ref=f104e60]
- generic [ref=f104e61]:
- generic [ref=f104e62]:
- generic [ref=f104e63]: 관계 2 대상
- combobox "관계 2 대상" [ref=f104e64]:
- option "대상 선택"
- option
- option
- option
- option
- option
- option
- option "실제 동시 트래픽에서도 이 구조가 안정적인가"
- option "서버 세션 기반 인증 구조는 다중 인스턴스에서 어떻게 운영할 것인가"
- option "ANALYZE 이후 Cardinality Estimate는 어떻게 달라지는가"
- option "Authorization Code Flow의 Endpoint와 Credential 이동 기준"
- option "Authorization Code와 PKCE가 보호하는 구간"
- option "Bearer JWT가 인증된 principal이 되기까지"
- option "BFF 인증 구조 설계 기준"
- option "BFF가 OAuth Token을 관리하는 조건"
- option "BFF의 Session과 OAuth2AuthorizedClient를 어디에 저장할 것인가"
- option "Browser Token을 없애면서 BFF에 Session과 CSRF 책임이 생긴 과정"
- option "Collection Fetch Join Pagination의 In-memory Paging"
- option "Cookie로 인증하는 요청에서 CSRF token이 하는 일"
- option "브라우저가 credential을 보관하는 위치와 그 성질"
- option "DTO 변환 과정에서 발생한 Highlight 컬렉션 N+1"
- option "필드 접근 없이 발생한 EAGER ToOne N+1"
- option "Feed Visibility Query Pattern"
- option "feed_visible을 Production CQRS로 승격할 것인가"
- option "Fetch Join · Batch · Projection 선택 기준" [disabled]
- option "Fetch Join으로 N+1을 해결하다 만난 MultiBag과 행 폭증"
- option "Fetch Type과 Fetch Strategy 구분"
- option "Forward-Auth 구조에서 Application Authorization을 어디까지 Edge에 둘 것인가"
- option "Forward-Auth에서 Client가 보낸 Identity Header를 신뢰하면 안 되는 이유"
- option "Forward-Auth에서 Identity Header를 신뢰하기 위한 조건"
- option "Forward-Auth와 Nginx auth_request의 동작"
- option "Highlight 없는 FeedItem을 허용할 것인가"
- option "외부 IdP와의 연동이라도 별도의 인증 방식이 아니다."
- option "외부 IdP 연동과 Application 인증 구조의 경계"
- option "외부 IdP Brokering의 동작"
- option "JPA N+1 정량 진단 기준"
- option "Keyset Pagination 설계 기준"
- option "OAuth/OIDC 인증 패턴 선택 기준"
- option "OAuth Token과 Application Session을 구분하는 기준"
- option "PostgreSQL Query Plan 측정 기준" [selected]
- option "Projection 이후에도 1,509행을 읽은 Row Over-fetch" [disabled]
- option "Public Client와 Confidential Client 구분 기준"
- option "Query Plan은 실제 PostgreSQL에서 측정한다"
- option "Refresh Token 관리만 서버로 이전, Access Token은 여전히 Browser에 노출"
- option "Refresh Token Rotation과 다중 Replica 경쟁을 어떻게 처리할 것인가"
- option "Round Trip과 Row Volume을 독립 측정할 것인가"
- option "SPA에서 토큰을 직접 관리하면서 드러난 Browser Credential 경계"
- option "Top-N-per-group 선택 기준"
- option "Visibility OR이 Keyset Index를 깨뜨린 문제"
- generic [ref=f104e65]:
- generic [ref=f104e66]: 관계 2 이유
- textbox "관계 2 이유" [ref=f104e67]: 세 방식을 실행계획으로 비교한 기준이다.
- generic [ref=f104e68]:
- button "위로" [ref=f104e69]
- button "아래로" [ref=f104e70]
- button "삭제" [ref=f104e71]
- generic [ref=f104e72]:
- generic [ref=f104e73]:
- generic [ref=f104e74]: 관계 3 대상
- combobox "관계 3 대상" [ref=f104e75]:
- option "대상 선택"
- option
- option
- option
- option
- option
- option
- option "실제 동시 트래픽에서도 이 구조가 안정적인가"
- option "서버 세션 기반 인증 구조는 다중 인스턴스에서 어떻게 운영할 것인가"
- option "ANALYZE 이후 Cardinality Estimate는 어떻게 달라지는가"
- option "Authorization Code Flow의 Endpoint와 Credential 이동 기준"
- option "Authorization Code와 PKCE가 보호하는 구간"
- option "Bearer JWT가 인증된 principal이 되기까지"
- option "BFF 인증 구조 설계 기준"
- option "BFF가 OAuth Token을 관리하는 조건"
- option "BFF의 Session과 OAuth2AuthorizedClient를 어디에 저장할 것인가"
- option "Browser Token을 없애면서 BFF에 Session과 CSRF 책임이 생긴 과정"
- option "Collection Fetch Join Pagination의 In-memory Paging"
- option "Cookie로 인증하는 요청에서 CSRF token이 하는 일"
- option "브라우저가 credential을 보관하는 위치와 그 성질"
- option "DTO 변환 과정에서 발생한 Highlight 컬렉션 N+1"
- option "필드 접근 없이 발생한 EAGER ToOne N+1"
- option "Feed Visibility Query Pattern"
- option "feed_visible을 Production CQRS로 승격할 것인가"
- option "Fetch Join · Batch · Projection 선택 기준" [selected]
- option "Fetch Join으로 N+1을 해결하다 만난 MultiBag과 행 폭증"
- option "Fetch Type과 Fetch Strategy 구분"
- option "Forward-Auth 구조에서 Application Authorization을 어디까지 Edge에 둘 것인가"
- option "Forward-Auth에서 Client가 보낸 Identity Header를 신뢰하면 안 되는 이유"
- option "Forward-Auth에서 Identity Header를 신뢰하기 위한 조건"
- option "Forward-Auth와 Nginx auth_request의 동작"
- option "Highlight 없는 FeedItem을 허용할 것인가"
- option "외부 IdP와의 연동이라도 별도의 인증 방식이 아니다."
- option "외부 IdP 연동과 Application 인증 구조의 경계"
- option "외부 IdP Brokering의 동작"
- option "JPA N+1 정량 진단 기준"
- option "Keyset Pagination 설계 기준"
- option "OAuth/OIDC 인증 패턴 선택 기준"
- option "OAuth Token과 Application Session을 구분하는 기준"
- option "PostgreSQL Query Plan 측정 기준" [disabled]
- option "Projection 이후에도 1,509행을 읽은 Row Over-fetch" [disabled]
- option "Public Client와 Confidential Client 구분 기준"
- option "Query Plan은 실제 PostgreSQL에서 측정한다"
- option "Refresh Token 관리만 서버로 이전, Access Token은 여전히 Browser에 노출"
- option "Refresh Token Rotation과 다중 Replica 경쟁을 어떻게 처리할 것인가"
- option "Round Trip과 Row Volume을 독립 측정할 것인가"
- option "SPA에서 토큰을 직접 관리하면서 드러난 Browser Credential 경계"
- option "Top-N-per-group 선택 기준"
- option "Visibility OR이 Keyset Index를 깨뜨린 문제"
- generic [ref=f104e76]:
- generic [ref=f104e77]: 관계 3 이유
- textbox "관계 3 이유" [ref=f104e78]: 앞 단계에서 왕복과 적재를 푼 기준이다.
- generic [ref=f104e79]:
- button "위로" [ref=f104e80]
- button "아래로" [disabled] [ref=f104e81]
- button "삭제" [ref=f104e82]
- button "관계 추가" [ref=f104e83]
- region [ref=f104e84]:
- generic [ref=f104e85]:
- paragraph [ref=f104e86]: REFERENCE
- heading "재사용할 기준" [level=2] [ref=f104e87]
- generic [ref=f104e88]:
- generic [ref=f104e89]: 이 기준을 쓰는 이유
- textbox "이 기준을 쓰는 이유" [ref=f104e90]
- group "판단 기준" [ref=f104e91]:
- paragraph [ref=f104e93]: 아직 입력한 판단 기준이 없습니다.
- button "판단 기준 추가" [ref=f104e94]
- group "적용할 때" [ref=f104e95]:
- paragraph [ref=f104e97]: 아직 입력한 항목이 없습니다.
- button "적용할 때 추가" [ref=f104e98]
- group "예외와 주의" [ref=f104e99]:
- paragraph [ref=f104e101]: 아직 입력한 항목이 없습니다.
- button "예외와 주의 추가" [ref=f104e102]
- group "예시" [ref=f104e103]:
- generic [ref=f104e105]:
- generic [ref=f104e106]:
- generic [ref=f104e107]: 예시 1
- textbox "예시 1" [ref=f104e108]: "순진 LIMIT 3 : 전체에 적용, 부모 1개만 채워짐"
- generic [ref=f104e109]:
- button "위로" [disabled] [ref=f104e110]
- button "아래로" [ref=f104e111]
- button "삭제" [ref=f104e112]
- generic [ref=f104e113]:
- generic [ref=f104e114]:
- generic [ref=f104e115]: 예시 2
- textbox "예시 2" [ref=f104e116]: "윈도우 : 부모별 순번 뒤 상위 K, 파티션 전량 읽음"
- generic [ref=f104e117]:
- button "위로" [ref=f104e118]
- button "아래로" [ref=f104e119]
- button "삭제" [ref=f104e120]
- generic [ref=f104e121]:
- generic [ref=f104e122]:
- generic [ref=f104e123]: 예시 3
- textbox "예시 3" [ref=f104e124]: "LATERAL : 부모마다 인덱스에서 K개 읽고 멈춤"
- generic [ref=f104e125]:
- button "위로" [ref=f104e126]
- button "아래로" [ref=f104e127]
- button "삭제" [ref=f104e128]
- generic [ref=f104e129]:
- generic [ref=f104e130]:
- generic [ref=f104e131]: 예시 4
- textbox "예시 4" [ref=f104e132]: "2단계 : 자식 전량 전송 뒤 코드에서 그룹핑"
- generic [ref=f104e133]:
- button "위로" [ref=f104e134]
- button "아래로" [ref=f104e135]
- button "삭제" [ref=f104e136]
- generic [ref=f104e137]:
- generic [ref=f104e138]:
- generic [ref=f104e139]: 예시 5
- textbox "예시 5" [ref=f104e140]: "인덱스 없는 LATERAL : 부모마다 Seq Scan, buffers 급증"
- generic [ref=f104e141]:
- button "위로" [ref=f104e142]
- button "아래로" [ref=f104e143]
- button "삭제" [ref=f104e144]
- generic [ref=f104e145]:
- generic [ref=f104e146]:
- generic [ref=f104e147]: 예시 6
- textbox "예시 6" [ref=f104e148]: "선택 : 작은 K는 LATERAL, K가 그룹 크기에 근접하면 윈도우"
- generic [ref=f104e149]:
- button "위로" [ref=f104e150]
- button "아래로" [disabled] [ref=f104e151]
- button "삭제" [ref=f104e152]
- button "예시 추가" [ref=f104e153]
- generic [ref=f104e154]:
- generic [ref=f104e155]: 마지막 검증일
- textbox "마지막 검증일" [ref=f104e156]
- region [ref=f104e157]:
- generic [ref=f104e158]:
- paragraph [ref=f104e159]: LIVE
- heading "즉시 미리보기" [level=2] [ref=f104e160]
- generic [ref=f104e163]:
- generic [ref=f104e164]:
- navigation "문서 경로" [ref=f104e165]:
- link "Reference" [ref=f104e166] [cursor=pointer]:
- /url: /explore/references
- generic [ref=f104e167]: /
- generic [ref=f104e168]: JPA 피드 조회 성능
- generic [ref=f104e169]: /
- generic [ref=f104e170]: Liner N + 1문제
- heading "Top-N-per-group 선택 기준" [level=1] [ref=f104e171]
- paragraph [ref=f104e172]: 부모마다 상위 N개를 뽑는 일은 LIMIT으로 표현되지 않는다. 윈도우 함수, LATERAL, 애플리케이션 그룹핑 세 가지가 같은 결과를 만들지만 읽는 행수가 다르다.
- generic [ref=f104e173]:
- generic [ref=f104e174]:
- term [ref=f104e175]: 유형
- definition [ref=f104e176]: Reference
- generic [ref=f104e177]:
- term [ref=f104e178]: 프로젝트
- definition [ref=f104e179]: Liner N + 1문제
- generic [ref=f104e180]:
- term [ref=f104e181]: 게시
- definition [ref=f104e182]: 게시 전
- region [ref=f104e183]:
- paragraph [ref=f104e184]: Purpose
- heading "이 기준을 쓰는 이유" [level=2] [ref=f104e185]
- article [ref=f104e186]:
- region [ref=f104e187]:
- heading "판단 기준" [level=2] [ref=f104e188]
- list
- region [ref=f104e189]:
- heading "적용할 때" [level=2] [ref=f104e190]
- list
- region [ref=f104e191]:
- heading "예외와 주의" [level=2] [ref=f104e192]
- list
- region [ref=f104e193]:
- heading "예시" [level=2] [ref=f104e194]
- list [ref=f104e195]:
- listitem [ref=f104e196]:
- paragraph [ref=f104e197]: "순진 LIMIT 3 : 전체에 적용, 부모 1개만 채워짐"
- listitem [ref=f104e198]:
- paragraph [ref=f104e199]: "윈도우 : 부모별 순번 뒤 상위 K, 파티션 전량 읽음"
- listitem [ref=f104e200]:
- paragraph [ref=f104e201]: "LATERAL : 부모마다 인덱스에서 K개 읽고 멈춤"
- listitem [ref=f104e202]:
- paragraph [ref=f104e203]: "2단계 : 자식 전량 전송 뒤 코드에서 그룹핑"
- listitem [ref=f104e204]:
- paragraph [ref=f104e205]: "인덱스 없는 LATERAL : 부모마다 Seq Scan, buffers 급증"
- listitem [ref=f104e206]:
- paragraph [ref=f104e207]: "선택 : 작은 K는 LATERAL, K가 그룹 크기에 근접하면 윈도우"
- paragraph [ref=f104e208]: 마지막 검증
- complementary [ref=f104e209]:
- heading "작업 상태" [level=2] [ref=f104e210]
- status "편집 상태" [ref=f104e211]: 저장됨
- generic [ref=f104e212]:
- generic [ref=f104e213]:
- term [ref=f104e214]: 저장 버전
- definition [ref=f104e215]: "4"
- generic [ref=f104e216]:
- term [ref=f104e217]: 종류
- definition [ref=f104e218]: Reference
- paragraph [ref=f104e219]: 불완전한 초안도 저장할 수 있습니다. Ctrl+S 로도 저장합니다. 게시를 누르면 채워야 할 칸을 그 자리에 표시합니다.
- generic [ref=f104e220]:
- button "저장" [disabled] [ref=f104e221]
- button "게시" [ref=f104e222]
- paragraph [ref=f104e223]: 버전 4으로 저장했습니다.