📄 설명
문서 목록 응답 조립 과정에서 최신 저장 정보를 계산하는 로직을 리팩토링합니다.
현재 DocListAssembler#getMostRecentBranch()가 각 Doc마다 doc.getBranches()를 호출하고 있으며, Doc.branches는 LAZY @OneToMany 연관입니다. 이로 인해 문서 페이지 조회 이후 페이지에 포함된 문서 수만큼 branch 조회가 추가로 발생할 수 있습니다.(N+1)
현재 브랜치는 항상 save를 가지는 구조이므로, 문서 목록 응답에서는 문서마다 최신 save id만 제공하면 됩니다.
✅ 리팩토링 내용
💡 참고 자료
No response
📄 설명
문서 목록 응답 조립 과정에서 최신 저장 정보를 계산하는 로직을 리팩토링합니다.
현재
DocListAssembler#getMostRecentBranch()가 각Doc마다doc.getBranches()를 호출하고 있으며,Doc.branches는LAZY @OneToMany연관입니다. 이로 인해 문서 페이지 조회 이후 페이지에 포함된 문서 수만큼 branch 조회가 추가로 발생할 수 있습니다.(N+1)현재 브랜치는 항상 save를 가지는 구조이므로, 문서 목록 응답에서는 문서마다 최신 save id만 제공하면 됩니다.
✅ 리팩토링 내용
DocListAssembler#getMostRecentBranch()가doc.getBranches()를 통해 lazy collection을 로딩하는지 확인GET /api/document, sidebar 목록, 검색 목록에서 문서 수에 비례한 추가 SQL 발생 여부 확인💡 참고 자료
No response