feat: 문서 구조 변경 및 tech-visual 스킬 추가
This commit is contained in:
@@ -0,0 +1,323 @@
|
||||
- generic [ref=f77e3]:
|
||||
- link "본문으로 건너뛰기" [ref=f77e4] [cursor=pointer]:
|
||||
- /url: "#main-content"
|
||||
- banner [ref=f77e5]:
|
||||
- generic [ref=f77e6]:
|
||||
- link "TechLog Studio" [ref=f77e7] [cursor=pointer]:
|
||||
- /url: /studio
|
||||
- text: TechLog
|
||||
- generic [ref=f77e8]: Studio
|
||||
- navigation "Studio 주 탐색" [ref=f77e10]:
|
||||
- link "작업본" [ref=f77e11] [cursor=pointer]:
|
||||
- /url: /studio/documents
|
||||
- link "게시 기록" [ref=f77e12] [cursor=pointer]:
|
||||
- /url: /studio/publications
|
||||
- link "새 문서" [ref=f77e13] [cursor=pointer]:
|
||||
- /url: /studio/documents/new
|
||||
- link "주제·프로젝트" [ref=f77e14] [cursor=pointer]:
|
||||
- /url: /studio/taxonomy
|
||||
- link "릴리즈" [ref=f77e15] [cursor=pointer]:
|
||||
- /url: /studio/releases
|
||||
- link "공개 사이트 보기" [ref=f77e16] [cursor=pointer]:
|
||||
- /url: /
|
||||
- button "로그아웃" [ref=f77e17]
|
||||
- main [ref=f77e18]:
|
||||
- generic [ref=f77e19]:
|
||||
- generic [ref=f77e20]:
|
||||
- region [ref=f77e21]:
|
||||
- generic [ref=f77e22]:
|
||||
- paragraph [ref=f77e23]: REFERENCE · VERSION 3
|
||||
- heading "문서 편집" [level=1] [ref=f77e24]
|
||||
- paragraph [ref=f77e25]: Top-N-per-group 선택 기준
|
||||
- region [ref=f77e26]:
|
||||
- generic [ref=f77e27]:
|
||||
- paragraph [ref=f77e28]: DOCUMENT
|
||||
- heading "기본 정보" [level=2] [ref=f77e29]
|
||||
- generic [ref=f77e30]:
|
||||
- generic [ref=f77e31]:
|
||||
- generic [ref=f77e32]: 제목
|
||||
- textbox "제목" [ref=f77e33]: Top-N-per-group 선택 기준
|
||||
- generic [ref=f77e34]:
|
||||
- generic [ref=f77e35]: slug
|
||||
- textbox "slug" [ref=f77e36]:
|
||||
- /placeholder: 비우면 제목에서 만듭니다 (영문 소문자·숫자·하이픈)
|
||||
- text: top-n-per-group-selection
|
||||
- generic [ref=f77e37]:
|
||||
- generic [ref=f77e38]: 요약
|
||||
- textbox "요약" [ref=f77e39]: 부모마다 상위 N개를 뽑는 일은 LIMIT으로 표현되지 않는다. 윈도우 함수, LATERAL, 애플리케이션 그룹핑 세 가지가 같은 결과를 만들지만 읽는 행수가 다르다.
|
||||
- generic [ref=f77e40]: 목록 카드에는 약 90자까지 보입니다 · 93 / 2000
|
||||
- generic [ref=f77e41]:
|
||||
- generic [ref=f77e42]: Topic
|
||||
- combobox "Topic" [ref=f77e43]:
|
||||
- option "선택하지 않음"
|
||||
- option "JPA 피드 조회 성능" [selected]
|
||||
- option "OAuth/OIDC 인증 경계"
|
||||
- generic [ref=f77e44]:
|
||||
- generic [ref=f77e45]: Project
|
||||
- combobox "Project" [ref=f77e46]:
|
||||
- option "미지정"
|
||||
- option "Backend Clean Architecture"
|
||||
- option "KeyCloak Patterns"
|
||||
- option "Liner N + 1문제" [selected]
|
||||
- status [ref=f77e47]
|
||||
- group "관계" [ref=f77e48]:
|
||||
- generic [ref=f77e50]:
|
||||
- generic [ref=f77e51]:
|
||||
- generic [ref=f77e52]: 관계 1 대상
|
||||
- combobox "관계 1 대상" [ref=f77e53]:
|
||||
- option "대상 선택"
|
||||
- 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 "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=f77e54]:
|
||||
- generic [ref=f77e55]: 관계 1 이유
|
||||
- textbox "관계 1 이유" [ref=f77e56]: 이 기준이 풀려던 문제다.
|
||||
- generic [ref=f77e57]:
|
||||
- button "위로" [disabled] [ref=f77e58]
|
||||
- button "아래로" [ref=f77e59]
|
||||
- button "삭제" [ref=f77e60]
|
||||
- generic [ref=f77e61]:
|
||||
- generic [ref=f77e62]:
|
||||
- generic [ref=f77e63]: 관계 2 대상
|
||||
- combobox "관계 2 대상" [ref=f77e64]:
|
||||
- option "대상 선택"
|
||||
- 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 "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=f77e65]:
|
||||
- generic [ref=f77e66]: 관계 2 이유
|
||||
- textbox "관계 2 이유" [ref=f77e67]: 세 방식을 실행계획으로 비교한 기준이다.
|
||||
- generic [ref=f77e68]:
|
||||
- button "위로" [ref=f77e69]
|
||||
- button "아래로" [ref=f77e70]
|
||||
- button "삭제" [ref=f77e71]
|
||||
- generic [ref=f77e72]:
|
||||
- generic [ref=f77e73]:
|
||||
- generic [ref=f77e74]: 관계 3 대상
|
||||
- combobox "관계 3 대상" [ref=f77e75]:
|
||||
- option "대상 선택"
|
||||
- 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 "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=f77e76]:
|
||||
- generic [ref=f77e77]: 관계 3 이유
|
||||
- textbox "관계 3 이유" [ref=f77e78]: 앞 단계에서 왕복과 적재를 푼 기준이다.
|
||||
- generic [ref=f77e79]:
|
||||
- button "위로" [ref=f77e80]
|
||||
- button "아래로" [disabled] [ref=f77e81]
|
||||
- button "삭제" [ref=f77e82]
|
||||
- button "관계 추가" [ref=f77e83]
|
||||
- region [ref=f77e84]:
|
||||
- generic [ref=f77e85]:
|
||||
- paragraph [ref=f77e86]: REFERENCE
|
||||
- heading "재사용할 기준" [level=2] [ref=f77e87]
|
||||
- generic [ref=f77e88]:
|
||||
- generic [ref=f77e89]: 이 기준을 쓰는 이유
|
||||
- textbox "이 기준을 쓰는 이유" [ref=f77e90]
|
||||
- group "판단 기준" [ref=f77e91]:
|
||||
- paragraph [ref=f77e93]: 아직 입력한 판단 기준이 없습니다.
|
||||
- button "판단 기준 추가" [ref=f77e94]
|
||||
- group "적용할 때" [ref=f77e95]:
|
||||
- paragraph [ref=f77e97]: 아직 입력한 항목이 없습니다.
|
||||
- button "적용할 때 추가" [ref=f77e98]
|
||||
- group "예외와 주의" [ref=f77e99]:
|
||||
- paragraph [ref=f77e101]: 아직 입력한 항목이 없습니다.
|
||||
- button "예외와 주의 추가" [ref=f77e102]
|
||||
- group "예시" [ref=f77e103]:
|
||||
- paragraph [ref=f77e105]: 아직 입력한 항목이 없습니다.
|
||||
- button "예시 추가" [ref=f77e106]
|
||||
- generic [ref=f77e107]:
|
||||
- generic [ref=f77e108]: 마지막 검증일
|
||||
- textbox "마지막 검증일" [ref=f77e109]
|
||||
- region [ref=f77e110]:
|
||||
- generic [ref=f77e111]:
|
||||
- paragraph [ref=f77e112]: LIVE
|
||||
- heading "즉시 미리보기" [level=2] [ref=f77e113]
|
||||
- generic [ref=f77e116]:
|
||||
- generic [ref=f77e117]:
|
||||
- navigation "문서 경로" [ref=f77e118]:
|
||||
- link "Reference" [ref=f77e119] [cursor=pointer]:
|
||||
- /url: /explore/references
|
||||
- generic [ref=f77e120]: /
|
||||
- generic [ref=f77e121]: JPA 피드 조회 성능
|
||||
- generic [ref=f77e122]: /
|
||||
- generic [ref=f77e123]: Liner N + 1문제
|
||||
- heading "Top-N-per-group 선택 기준" [level=1] [ref=f77e124]
|
||||
- paragraph [ref=f77e125]: 부모마다 상위 N개를 뽑는 일은 LIMIT으로 표현되지 않는다. 윈도우 함수, LATERAL, 애플리케이션 그룹핑 세 가지가 같은 결과를 만들지만 읽는 행수가 다르다.
|
||||
- generic [ref=f77e126]:
|
||||
- generic [ref=f77e127]:
|
||||
- term [ref=f77e128]: 유형
|
||||
- definition [ref=f77e129]: Reference
|
||||
- generic [ref=f77e130]:
|
||||
- term [ref=f77e131]: 프로젝트
|
||||
- definition [ref=f77e132]: Liner N + 1문제
|
||||
- generic [ref=f77e133]:
|
||||
- term [ref=f77e134]: 게시
|
||||
- definition [ref=f77e135]: 게시 전
|
||||
- region [ref=f77e136]:
|
||||
- paragraph [ref=f77e137]: Purpose
|
||||
- heading "이 기준을 쓰는 이유" [level=2] [ref=f77e138]
|
||||
- article [ref=f77e139]:
|
||||
- region [ref=f77e140]:
|
||||
- heading "판단 기준" [level=2] [ref=f77e141]
|
||||
- list
|
||||
- region [ref=f77e142]:
|
||||
- heading "적용할 때" [level=2] [ref=f77e143]
|
||||
- list
|
||||
- region [ref=f77e144]:
|
||||
- heading "예외와 주의" [level=2] [ref=f77e145]
|
||||
- list
|
||||
- region [ref=f77e146]:
|
||||
- heading "예시" [level=2] [ref=f77e147]
|
||||
- list
|
||||
- paragraph [ref=f77e148]: 마지막 검증
|
||||
- complementary [ref=f77e149]:
|
||||
- heading "작업 상태" [level=2] [ref=f77e150]
|
||||
- status "편집 상태" [ref=f77e151]: 저장됨
|
||||
- generic [ref=f77e152]:
|
||||
- generic [ref=f77e153]:
|
||||
- term [ref=f77e154]: 저장 버전
|
||||
- definition [ref=f77e155]: "3"
|
||||
- generic [ref=f77e156]:
|
||||
- term [ref=f77e157]: 종류
|
||||
- definition [ref=f77e158]: Reference
|
||||
- paragraph [ref=f77e159]: 불완전한 초안도 저장할 수 있습니다. Ctrl+S 로도 저장합니다. 게시를 누르면 채워야 할 칸을 그 자리에 표시합니다.
|
||||
- generic [ref=f77e160]:
|
||||
- button "저장" [disabled] [ref=f77e161]
|
||||
- button "게시" [ref=f77e162]
|
||||
- paragraph [ref=f77e163]: 버전 3으로 저장했습니다.
|
||||
Reference in New Issue
Block a user