- generic [ref=f4e3]: - link "본문으로 건너뛰기" [ref=f4e4] [cursor=pointer]: - /url: "#main-content" - banner [ref=f4e5]: - generic [ref=f4e6]: - link "TechLog Studio" [ref=f4e7] [cursor=pointer]: - /url: /studio - text: TechLog - generic [ref=f4e8]: Studio - navigation "Studio 주 탐색" [ref=f4e10]: - link "작업본" [ref=f4e11] [cursor=pointer]: - /url: /studio/documents - link "게시 기록" [ref=f4e12] [cursor=pointer]: - /url: /studio/publications - link "새 문서" [ref=f4e13] [cursor=pointer]: - /url: /studio/documents/new - link "주제·프로젝트" [ref=f4e14] [cursor=pointer]: - /url: /studio/taxonomy - link "릴리즈" [ref=f4e15] [cursor=pointer]: - /url: /studio/releases - link "공개 사이트 보기" [ref=f4e16] [cursor=pointer]: - /url: / - button "로그아웃" [ref=f4e17] - main [ref=f4e18]: - generic [ref=f4e19]: - generic [ref=f4e20]: - generic [ref=f4e21]: - paragraph [ref=f4e22]: WORKING COPIES - heading "작업본" [level=1] [ref=f4e23] - paragraph [ref=f4e24]: 세션에 있는 검증 기록·동작 원리·적용 기준·열린 질문·설계 결정을 찾고 다음 작업으로 이동합니다. - link "새 문서" [ref=f4e25] [cursor=pointer]: - /url: /studio/documents/new - region "작업본 검색과 필터" [ref=f4e26]: - search [ref=f4e27]: - generic [ref=f4e28]: 검색 - generic [ref=f4e29]: - searchbox "검색" [ref=f4e30] - button "검색" [ref=f4e31] - generic [ref=f4e32]: - text: 종류 - combobox "종류" [ref=f4e33]: - option "전체" [selected] - option "검증 기록" - option "동작 원리" - option "적용 기준" - option "열린 질문" - option "설계 결정" - generic [ref=f4e34]: - text: 상태 - combobox "상태" [ref=f4e35]: - option "전체" [selected] - option "게시 전" - option "게시 중" - option "게시 취소" - paragraph [ref=f4e36]: - generic [ref=f4e37]: 48개 중 20개 표시 중 - generic [ref=f4e38]: · 1 / 3 쪽 - alert [ref=f4e39]: 이 기록을 참조하는 곳이 있어 삭제할 수 없습니다 - generic [ref=f4e40]: - article [ref=f4e41]: - paragraph [ref=f4e42]: 검증 기록 - generic [ref=f4e43]: - heading [level=2] [ref=f4e44]: - link "SPA에서 OAuth Token을 JavaScript Memory에 보관한 경우" [ref=f4e45] [cursor=pointer]: - /url: /studio/documents/bf675775-4f3e-4744-8014-f0efff51422a/edit - paragraph [ref=f4e46]: KeyCloak Patterns - generic [ref=f4e47]: - generic [ref=f4e48]: - term [ref=f4e49]: 상태 - definition [ref=f4e50]: 게시 중 - generic [ref=f4e51]: - term [ref=f4e52]: 다음 - definition [ref=f4e53]: - link "검증하기" [ref=f4e54] [cursor=pointer]: - /url: /studio/documents/bf675775-4f3e-4744-8014-f0efff51422a/validation - generic [ref=f4e55]: - term [ref=f4e56]: 수정 - definition [ref=f4e57]: - time [ref=f4e58]: 2026. 9. 8. - generic [ref=f4e59]: - link "편집" [ref=f4e60] [cursor=pointer]: - /url: /studio/documents/bf675775-4f3e-4744-8014-f0efff51422a/edit - button "삭제" [ref=f4e61] - article [ref=f4e62]: - paragraph [ref=f4e63]: 검증 기록 - generic [ref=f4e64]: - heading [level=2] [ref=f4e65]: - link "Forward-Auth에서 Client가 보낸 Identity Header를 신뢰하면 안 되는 이유" [ref=f4e66] [cursor=pointer]: - /url: /studio/documents/a0e1cc05-92b3-4dac-bce1-513ab8cd862b/edit - paragraph [ref=f4e67]: KeyCloak Patterns - generic [ref=f4e68]: - generic [ref=f4e69]: - term [ref=f4e70]: 상태 - definition [ref=f4e71]: 게시 중 - generic [ref=f4e72]: - term [ref=f4e73]: 다음 - definition [ref=f4e74]: - link "검증하기" [ref=f4e75] [cursor=pointer]: - /url: /studio/documents/a0e1cc05-92b3-4dac-bce1-513ab8cd862b/validation - generic [ref=f4e76]: - term [ref=f4e77]: 수정 - definition [ref=f4e78]: - time [ref=f4e79]: 2026. 9. 8. - generic [ref=f4e80]: - link "편집" [ref=f4e81] [cursor=pointer]: - /url: /studio/documents/a0e1cc05-92b3-4dac-bce1-513ab8cd862b/edit - button "삭제" [ref=f4e82] - article [ref=f4e83]: - paragraph [ref=f4e84]: 적용 기준 - generic [ref=f4e85]: - heading [level=2] [ref=f4e86]: - link "패턴 검증을 실제로 돌릴 때의 안전한 순서" [ref=f4e87] [cursor=pointer]: - /url: /studio/documents/036563a1-3a43-4931-a017-0e693b591e89/edit - paragraph [ref=f4e88]: KeyCloak Patterns - generic [ref=f4e89]: - generic [ref=f4e90]: - term [ref=f4e91]: 상태 - definition [ref=f4e92]: 게시 전 - generic [ref=f4e93]: - term [ref=f4e94]: 다음 - definition [ref=f4e95]: - link "검증하기" [ref=f4e96] [cursor=pointer]: - /url: /studio/documents/036563a1-3a43-4931-a017-0e693b591e89/validation - generic [ref=f4e97]: - term [ref=f4e98]: 수정 - definition [ref=f4e99]: - time [ref=f4e100]: 2026. 9. 7. - generic [ref=f4e101]: - link "편집" [ref=f4e102] [cursor=pointer]: - /url: /studio/documents/036563a1-3a43-4931-a017-0e693b591e89/edit - button "삭제" [ref=f4e103] - article [ref=f4e104]: - paragraph [ref=f4e105]: 검증 기록 - generic [ref=f4e106]: - heading [level=2] [ref=f4e107]: - link "Collection Fetch Join Pagination의 In-memory Paging" [ref=f4e108] [cursor=pointer]: - /url: /studio/documents/c1158754-e3d2-47b8-bb41-81787c0ca84b/edit - paragraph [ref=f4e109]: Liner N + 1문제 - generic [ref=f4e110]: - generic [ref=f4e111]: - term [ref=f4e112]: 상태 - definition [ref=f4e113]: 게시 중 - generic [ref=f4e114]: - term [ref=f4e115]: 다음 - definition [ref=f4e116]: - link "검증하기" [ref=f4e117] [cursor=pointer]: - /url: /studio/documents/c1158754-e3d2-47b8-bb41-81787c0ca84b/validation - generic [ref=f4e118]: - term [ref=f4e119]: 수정 - definition [ref=f4e120]: - time [ref=f4e121]: 2026. 9. 7. - generic [ref=f4e122]: - link "편집" [ref=f4e123] [cursor=pointer]: - /url: /studio/documents/c1158754-e3d2-47b8-bb41-81787c0ca84b/edit - button "삭제" [ref=f4e124] - article [ref=f4e125]: - paragraph [ref=f4e126]: 검증 기록 - generic [ref=f4e127]: - heading [level=2] [ref=f4e128]: - link "Projection 이후에도 1,509행을 읽은 Row Over-fetch" [ref=f4e129] [cursor=pointer]: - /url: /studio/documents/4c9c3b90-bc89-4300-9334-088ea95d37d8/edit - paragraph [ref=f4e130]: Liner N + 1문제 - generic [ref=f4e131]: - generic [ref=f4e132]: - term [ref=f4e133]: 상태 - definition [ref=f4e134]: 게시 전 - generic [ref=f4e135]: - term [ref=f4e136]: 다음 - definition [ref=f4e137]: - link "검증하기" [ref=f4e138] [cursor=pointer]: - /url: /studio/documents/4c9c3b90-bc89-4300-9334-088ea95d37d8/validation - generic [ref=f4e139]: - term [ref=f4e140]: 수정 - definition [ref=f4e141]: - time [ref=f4e142]: 2026. 9. 7. - generic [ref=f4e143]: - link "편집" [ref=f4e144] [cursor=pointer]: - /url: /studio/documents/4c9c3b90-bc89-4300-9334-088ea95d37d8/edit - button "삭제" [ref=f4e145] - article [ref=f4e146]: - paragraph [ref=f4e147]: 검증 기록 - generic [ref=f4e148]: - heading [level=2] [ref=f4e149]: - link "Fetch 타입이 아닌 조회 방식으로 인한 N+1" [ref=f4e150] [cursor=pointer]: - /url: /studio/documents/32d0be7d-d88e-4760-8d91-35d3a233a99a/edit - paragraph [ref=f4e151]: Liner N + 1문제 - generic [ref=f4e152]: - generic [ref=f4e153]: - term [ref=f4e154]: 상태 - definition [ref=f4e155]: 게시 중 - generic [ref=f4e156]: - term [ref=f4e157]: 다음 - definition [ref=f4e158]: - link "검증하기" [ref=f4e159] [cursor=pointer]: - /url: /studio/documents/32d0be7d-d88e-4760-8d91-35d3a233a99a/validation - generic [ref=f4e160]: - term [ref=f4e161]: 수정 - definition [ref=f4e162]: - time [ref=f4e163]: 2026. 9. 7. - generic [ref=f4e164]: - link "편집" [ref=f4e165] [cursor=pointer]: - /url: /studio/documents/32d0be7d-d88e-4760-8d91-35d3a233a99a/edit - button "삭제" [ref=f4e166] - article [ref=f4e167]: - paragraph [ref=f4e168]: 검증 기록 - generic [ref=f4e169]: - heading [level=2] [ref=f4e170]: - link "Collection Fetch Join으로 N+1을 해결하다 만난 MultiBag예외와 행 폭증 문제" [ref=f4e171] [cursor=pointer]: - /url: /studio/documents/7ed75172-fd56-42bf-956a-8f9fc1cca235/edit - paragraph [ref=f4e172]: Liner N + 1문제 - generic [ref=f4e173]: - generic [ref=f4e174]: - term [ref=f4e175]: 상태 - definition [ref=f4e176]: 게시 중 - generic [ref=f4e177]: - term [ref=f4e178]: 다음 - definition [ref=f4e179]: - link "검증하기" [ref=f4e180] [cursor=pointer]: - /url: /studio/documents/7ed75172-fd56-42bf-956a-8f9fc1cca235/validation - generic [ref=f4e181]: - term [ref=f4e182]: 수정 - definition [ref=f4e183]: - time [ref=f4e184]: 2026. 9. 7. - generic [ref=f4e185]: - link "편집" [ref=f4e186] [cursor=pointer]: - /url: /studio/documents/7ed75172-fd56-42bf-956a-8f9fc1cca235/edit - button "삭제" [ref=f4e187] - article [ref=f4e188]: - paragraph [ref=f4e189]: 동작 원리 - generic [ref=f4e190]: - heading [level=2] [ref=f4e191]: - link "Forward-Auth와 Nginx auth_request의 동작" [ref=f4e192] [cursor=pointer]: - /url: /studio/documents/a3493786-d3fb-4b01-b1c5-ecb23c3d5497/edit - paragraph [ref=f4e193]: KeyCloak Patterns - generic [ref=f4e194]: - generic [ref=f4e195]: - term [ref=f4e196]: 상태 - definition [ref=f4e197]: 게시 전 - generic [ref=f4e198]: - term [ref=f4e199]: 다음 - definition [ref=f4e200]: - link "검증하기" [ref=f4e201] [cursor=pointer]: - /url: /studio/documents/a3493786-d3fb-4b01-b1c5-ecb23c3d5497/validation - generic [ref=f4e202]: - term [ref=f4e203]: 수정 - definition [ref=f4e204]: - time [ref=f4e205]: 2026. 9. 7. - generic [ref=f4e206]: - link "편집" [ref=f4e207] [cursor=pointer]: - /url: /studio/documents/a3493786-d3fb-4b01-b1c5-ecb23c3d5497/edit - button "삭제" [ref=f4e208] - article [ref=f4e209]: - paragraph [ref=f4e210]: 동작 원리 - generic [ref=f4e211]: - heading [level=2] [ref=f4e212]: - link "Cookie로 인증하는 요청에서 CSRF token이 하는 일" [ref=f4e213] [cursor=pointer]: - /url: /studio/documents/5c8f12d5-1ead-469b-8e91-2de69401df48/edit - paragraph [ref=f4e214]: KeyCloak Patterns - generic [ref=f4e215]: - generic [ref=f4e216]: - term [ref=f4e217]: 상태 - definition [ref=f4e218]: 게시 전 - generic [ref=f4e219]: - term [ref=f4e220]: 다음 - definition [ref=f4e221]: - link "검증하기" [ref=f4e222] [cursor=pointer]: - /url: /studio/documents/5c8f12d5-1ead-469b-8e91-2de69401df48/validation - generic [ref=f4e223]: - term [ref=f4e224]: 수정 - definition [ref=f4e225]: - time [ref=f4e226]: 2026. 9. 7. - generic [ref=f4e227]: - link "편집" [ref=f4e228] [cursor=pointer]: - /url: /studio/documents/5c8f12d5-1ead-469b-8e91-2de69401df48/edit - button "삭제" [ref=f4e229] - article [ref=f4e230]: - paragraph [ref=f4e231]: 검증 기록 - generic [ref=f4e232]: - heading [level=2] [ref=f4e233]: - link "Browser Token을 없애면서 BFF에 Session과 CSRF 책임이 생긴 과정" [ref=f4e234] [cursor=pointer]: - /url: /studio/documents/d85bd6af-7599-4ef7-9407-6609927d5b5c/edit - paragraph [ref=f4e235]: KeyCloak Patterns - generic [ref=f4e236]: - generic [ref=f4e237]: - term [ref=f4e238]: 상태 - definition [ref=f4e239]: 게시 중 - generic [ref=f4e240]: - term [ref=f4e241]: 다음 - definition [ref=f4e242]: - link "검증하기" [ref=f4e243] [cursor=pointer]: - /url: /studio/documents/d85bd6af-7599-4ef7-9407-6609927d5b5c/validation - generic [ref=f4e244]: - term [ref=f4e245]: 수정 - definition [ref=f4e246]: - time [ref=f4e247]: 2026. 9. 7. - generic [ref=f4e248]: - link "편집" [ref=f4e249] [cursor=pointer]: - /url: /studio/documents/d85bd6af-7599-4ef7-9407-6609927d5b5c/edit - button "삭제" [ref=f4e250] - article [ref=f4e251]: - paragraph [ref=f4e252]: 검증 기록 - generic [ref=f4e253]: - heading [level=2] [ref=f4e254]: - link "Refresh Token 관리만 서버로 이전, Access Token은 여전히 Browser에 노출" [ref=f4e255] [cursor=pointer]: - /url: /studio/documents/488ce49b-afa4-42a5-a2ce-de2e0653cd82/edit - paragraph [ref=f4e256]: KeyCloak Patterns - generic [ref=f4e257]: - generic [ref=f4e258]: - term [ref=f4e259]: 상태 - definition [ref=f4e260]: 게시 중 - generic [ref=f4e261]: - term [ref=f4e262]: 다음 - definition [ref=f4e263]: - link "검증하기" [ref=f4e264] [cursor=pointer]: - /url: /studio/documents/488ce49b-afa4-42a5-a2ce-de2e0653cd82/validation - generic [ref=f4e265]: - term [ref=f4e266]: 수정 - definition [ref=f4e267]: - time [ref=f4e268]: 2026. 9. 7. - generic [ref=f4e269]: - link "편집" [ref=f4e270] [cursor=pointer]: - /url: /studio/documents/488ce49b-afa4-42a5-a2ce-de2e0653cd82/edit - button "삭제" [ref=f4e271] - article [ref=f4e272]: - paragraph [ref=f4e273]: 열린 질문 - generic [ref=f4e274]: - heading [level=2] [ref=f4e275]: - link "ANALYZE 이후 Cardinality Estimate는 어떻게 달라지는가" [ref=f4e276] [cursor=pointer]: - /url: /studio/documents/e1e0e2a0-c6b6-45bf-be42-f697ba5e2fff/edit - paragraph [ref=f4e277]: Liner N + 1문제 - generic [ref=f4e278]: - generic [ref=f4e279]: - term [ref=f4e280]: 상태 - definition [ref=f4e281]: 게시 전 - generic [ref=f4e282]: - term [ref=f4e283]: 다음 - definition [ref=f4e284]: - link "검증하기" [ref=f4e285] [cursor=pointer]: - /url: /studio/documents/e1e0e2a0-c6b6-45bf-be42-f697ba5e2fff/validation - generic [ref=f4e286]: - term [ref=f4e287]: 수정 - definition [ref=f4e288]: - time [ref=f4e289]: 2026. 9. 4. - generic [ref=f4e290]: - link "편집" [ref=f4e291] [cursor=pointer]: - /url: /studio/documents/e1e0e2a0-c6b6-45bf-be42-f697ba5e2fff/edit - button "삭제" [ref=f4e292] - article [ref=f4e293]: - paragraph [ref=f4e294]: 열린 질문 - generic [ref=f4e295]: - heading [level=2] [ref=f4e296]: - link "Round Trip과 Row Volume을 독립 측정할 것인가" [ref=f4e297] [cursor=pointer]: - /url: /studio/documents/5159c415-232d-424a-970a-b0db52746767/edit - paragraph [ref=f4e298]: Liner N + 1문제 - generic [ref=f4e299]: - generic [ref=f4e300]: - term [ref=f4e301]: 상태 - definition [ref=f4e302]: 게시 전 - generic [ref=f4e303]: - term [ref=f4e304]: 다음 - definition [ref=f4e305]: - link "검증하기" [ref=f4e306] [cursor=pointer]: - /url: /studio/documents/5159c415-232d-424a-970a-b0db52746767/validation - generic [ref=f4e307]: - term [ref=f4e308]: 수정 - definition [ref=f4e309]: - time [ref=f4e310]: 2026. 9. 4. - generic [ref=f4e311]: - link "편집" [ref=f4e312] [cursor=pointer]: - /url: /studio/documents/5159c415-232d-424a-970a-b0db52746767/edit - button "삭제" [ref=f4e313] - article [ref=f4e314]: - paragraph [ref=f4e315]: 적용 기준 - generic [ref=f4e316]: - heading [level=2] [ref=f4e317]: - link "JPA N+1 정량 진단 기준" [ref=f4e318] [cursor=pointer]: - /url: /studio/documents/b0b55ac9-c0a3-4c01-ba84-0aa478923ace/edit - paragraph [ref=f4e319]: Liner N + 1문제 - generic [ref=f4e320]: - generic [ref=f4e321]: - term [ref=f4e322]: 상태 - definition [ref=f4e323]: 게시 전 - generic [ref=f4e324]: - term [ref=f4e325]: 다음 - definition [ref=f4e326]: - link "검증하기" [ref=f4e327] [cursor=pointer]: - /url: /studio/documents/b0b55ac9-c0a3-4c01-ba84-0aa478923ace/validation - generic [ref=f4e328]: - term [ref=f4e329]: 수정 - definition [ref=f4e330]: - time [ref=f4e331]: 2026. 9. 4. - generic [ref=f4e332]: - link "편집" [ref=f4e333] [cursor=pointer]: - /url: /studio/documents/b0b55ac9-c0a3-4c01-ba84-0aa478923ace/edit - button "삭제" [ref=f4e334] - article [ref=f4e335]: - paragraph [ref=f4e336]: 설계 결정 - generic [ref=f4e337]: - heading [level=2] [ref=f4e338]: - link "Query Plan은 실제 PostgreSQL에서 측정한다" [ref=f4e339] [cursor=pointer]: - /url: /studio/documents/ae6c9bea-d3a3-46e1-bbd4-8d580d336394/edit - paragraph [ref=f4e340]: Liner N + 1문제 - generic [ref=f4e341]: - generic [ref=f4e342]: - term [ref=f4e343]: 상태 - definition [ref=f4e344]: 게시 전 - generic [ref=f4e345]: - term [ref=f4e346]: 다음 - definition [ref=f4e347]: - link "검증하기" [ref=f4e348] [cursor=pointer]: - /url: /studio/documents/ae6c9bea-d3a3-46e1-bbd4-8d580d336394/validation - generic [ref=f4e349]: - term [ref=f4e350]: 수정 - definition [ref=f4e351]: - time [ref=f4e352]: 2026. 9. 4. - generic [ref=f4e353]: - link "편집" [ref=f4e354] [cursor=pointer]: - /url: /studio/documents/ae6c9bea-d3a3-46e1-bbd4-8d580d336394/edit - button "삭제" [ref=f4e355] - article [ref=f4e356]: - paragraph [ref=f4e357]: 동작 원리 - generic [ref=f4e358]: - heading [level=2] [ref=f4e359]: - link "외부 IdP Brokering의 동작" [ref=f4e360] [cursor=pointer]: - /url: /studio/documents/d99fdec9-fe9e-4e0f-a50b-6fb9b9ed5719/edit - paragraph [ref=f4e361]: KeyCloak Patterns - generic [ref=f4e362]: - generic [ref=f4e363]: - term [ref=f4e364]: 상태 - definition [ref=f4e365]: 게시 중 - generic [ref=f4e366]: - term [ref=f4e367]: 다음 - definition [ref=f4e368]: - link "검증하기" [ref=f4e369] [cursor=pointer]: - /url: /studio/documents/d99fdec9-fe9e-4e0f-a50b-6fb9b9ed5719/validation - generic [ref=f4e370]: - term [ref=f4e371]: 수정 - definition [ref=f4e372]: - time [ref=f4e373]: 2026. 9. 1. - generic [ref=f4e374]: - link "편집" [ref=f4e375] [cursor=pointer]: - /url: /studio/documents/d99fdec9-fe9e-4e0f-a50b-6fb9b9ed5719/edit - button "삭제" [ref=f4e376] - article [ref=f4e377]: - paragraph [ref=f4e378]: 적용 기준 - generic [ref=f4e379]: - heading [level=2] [ref=f4e380]: - link "Top-N-per-group 선택 기준" [ref=f4e381] [cursor=pointer]: - /url: /studio/documents/bf5f2462-0e94-4723-bdc8-f7dd709b2dbb/edit - paragraph [ref=f4e382]: Liner N + 1문제 - generic [ref=f4e383]: - generic [ref=f4e384]: - term [ref=f4e385]: 상태 - definition [ref=f4e386]: 게시 전 - generic [ref=f4e387]: - term [ref=f4e388]: 다음 - definition [ref=f4e389]: - link "검증하기" [ref=f4e390] [cursor=pointer]: - /url: /studio/documents/bf5f2462-0e94-4723-bdc8-f7dd709b2dbb/validation - generic [ref=f4e391]: - term [ref=f4e392]: 수정 - definition [ref=f4e393]: - time [ref=f4e394]: 2026. 8. 31. - generic [ref=f4e395]: - link "편집" [ref=f4e396] [cursor=pointer]: - /url: /studio/documents/bf5f2462-0e94-4723-bdc8-f7dd709b2dbb/edit - button "삭제" [ref=f4e397] - article [ref=f4e398]: - paragraph [ref=f4e399]: 적용 기준 - generic [ref=f4e400]: - heading [level=2] [ref=f4e401]: - link "PostgreSQL Query Plan 측정 기준" [ref=f4e402] [cursor=pointer]: - /url: /studio/documents/e8c2e9ea-cd87-46f8-9469-849dbd433d86/edit - paragraph [ref=f4e403]: Liner N + 1문제 - generic [ref=f4e404]: - generic [ref=f4e405]: - term [ref=f4e406]: 상태 - definition [ref=f4e407]: 게시 전 - generic [ref=f4e408]: - term [ref=f4e409]: 다음 - definition [ref=f4e410]: - link "검증하기" [ref=f4e411] [cursor=pointer]: - /url: /studio/documents/e8c2e9ea-cd87-46f8-9469-849dbd433d86/validation - generic [ref=f4e412]: - term [ref=f4e413]: 수정 - definition [ref=f4e414]: - time [ref=f4e415]: 2026. 8. 31. - generic [ref=f4e416]: - link "편집" [ref=f4e417] [cursor=pointer]: - /url: /studio/documents/e8c2e9ea-cd87-46f8-9469-849dbd433d86/edit - button "삭제" [ref=f4e418] - article [ref=f4e419]: - paragraph [ref=f4e420]: 적용 기준 - generic [ref=f4e421]: - heading [level=2] [ref=f4e422]: - link "Keyset Pagination 설계 기준" [ref=f4e423] [cursor=pointer]: - /url: /studio/documents/06788903-3dfa-4f70-b159-f1224384fd0b/edit - paragraph [ref=f4e424]: Liner N + 1문제 - generic [ref=f4e425]: - generic [ref=f4e426]: - term [ref=f4e427]: 상태 - definition [ref=f4e428]: 게시 전 - generic [ref=f4e429]: - term [ref=f4e430]: 다음 - definition [ref=f4e431]: - link "검증하기" [ref=f4e432] [cursor=pointer]: - /url: /studio/documents/06788903-3dfa-4f70-b159-f1224384fd0b/validation - generic [ref=f4e433]: - term [ref=f4e434]: 수정 - definition [ref=f4e435]: - time [ref=f4e436]: 2026. 8. 31. - generic [ref=f4e437]: - link "편집" [ref=f4e438] [cursor=pointer]: - /url: /studio/documents/06788903-3dfa-4f70-b159-f1224384fd0b/edit - button "삭제" [ref=f4e439] - article [ref=f4e440]: - paragraph [ref=f4e441]: 적용 기준 - generic [ref=f4e442]: - heading [level=2] [ref=f4e443]: - link "Fetch Type과 Fetch Strategy 구분" [ref=f4e444] [cursor=pointer]: - /url: /studio/documents/51095f6e-2cc8-439c-8648-065033614215/edit - paragraph [ref=f4e445]: Liner N + 1문제 - generic [ref=f4e446]: - generic [ref=f4e447]: - term [ref=f4e448]: 상태 - definition [ref=f4e449]: 게시 전 - generic [ref=f4e450]: - term [ref=f4e451]: 다음 - definition [ref=f4e452]: - link "검증하기" [ref=f4e453] [cursor=pointer]: - /url: /studio/documents/51095f6e-2cc8-439c-8648-065033614215/validation - generic [ref=f4e454]: - term [ref=f4e455]: 수정 - definition [ref=f4e456]: - time [ref=f4e457]: 2026. 8. 31. - generic [ref=f4e458]: - link "편집" [ref=f4e459] [cursor=pointer]: - /url: /studio/documents/51095f6e-2cc8-439c-8648-065033614215/edit - button "삭제" [ref=f4e460] - navigation "작업본 페이지" [ref=f4e461]: - button "이전 페이지" [disabled] [ref=f4e462]: ‹ - list [ref=f4e463]: - listitem [ref=f4e464]: - button "1 페이지" [ref=f4e465]: "1" - listitem [ref=f4e466]: - text: "|" - button "2 페이지" [ref=f4e467]: "2" - listitem [ref=f4e468]: - text: "|" - button "3 페이지" [ref=f4e469]: "3" - button "다음 페이지" [ref=f4e470]: › - paragraph [ref=f4e471]