From 2395c7c20840db33edc2e4b3a88d6dab055456cd Mon Sep 17 00:00:00 2001 From: Klaus Date: Sat, 20 Jun 2026 00:05:56 +0900 Subject: [PATCH] =?UTF-8?q?docs(osiv):=20lazy=20loading=20=EC=9A=94?= =?UTF-8?q?=EA=B5=AC=EC=82=AC=ED=95=AD=EC=9D=84=20=EA=B8=B0=EB=A1=9D?= =?UTF-8?q?=ED=95=9C=EB=8B=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../prd.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/docs/20260618_유저크리에이터채팅_WebSocket전환/prd.md b/docs/20260618_유저크리에이터채팅_WebSocket전환/prd.md index affbc69d..ade3bb2e 100644 --- a/docs/20260618_유저크리에이터채팅_WebSocket전환/prd.md +++ b/docs/20260618_유저크리에이터채팅_WebSocket전환/prd.md @@ -235,6 +235,20 @@ - 관리자/크리에이터/사용자 API가 서로 다른 controller 패키지에 흩어져 있으므로 특정 패키지 검색만으로 점검을 끝내지 않는다. - OSIV off 적용 후 일부 API가 실패하면 WebSocket 전환과 섞어 수정하지 않고, lazy loading 제거 task로 분리해 먼저 처리한다. +### Feature H. OSIV off lazy loading 회귀 보완 + +#### Requirements +- 운영에서 확인된 `LazyInitializationException` 발생 지점을 우선 수정한다. +- `ChatCharacterController.getCharacterDetail` 응답 조립에 필요한 `ChatCharacter.tagMappings.tag`는 OSIV off 상태에서도 접근 가능해야 한다. +- `HomeService.fetchData`의 크리에이터 랭킹 응답 조립에 필요한 `Member.tags.tag`는 OSIV off 상태에서도 접근 가능해야 한다. +- 동일 변환 메서드(`toExplorerSectionCreator`)를 쓰는 기존 랭킹 조회도 같은 쿼리 선로딩 정책을 공유해야 한다. +- 공개 API 응답 스키마는 변경하지 않는다. + +#### Edge Cases +- 컬렉션 크기만 접근하면 nested LAZY proxy(`mapping.tag`)는 초기화되지 않을 수 있다. +- 조회 테스트에 `@Transactional`이 붙어 있으면 서비스 반환 후 lazy 접근 실패를 가릴 수 있다. +- fetch join으로 one-to-many를 가져오면 중복 row가 생길 수 있으므로 결과 중복 여부를 검증한다. + --- ## 8. UX / UI Expectations