Skip to content

Refactor: 문서 목록 최신 저장 정보 조회 리팩토링 #200

@lunarbae628

Description

@lunarbae628

📄 설명

문서 목록 응답 조립 과정에서 최신 저장 정보를 계산하는 로직을 리팩토링합니다.

현재 DocListAssembler#getMostRecentBranch()가 각 Doc마다 doc.getBranches()를 호출하고 있으며, Doc.branchesLAZY @OneToMany 연관입니다. 이로 인해 문서 페이지 조회 이후 페이지에 포함된 문서 수만큼 branch 조회가 추가로 발생할 수 있습니다.(N+1)

현재 브랜치는 항상 save를 가지는 구조이므로, 문서 목록 응답에서는 문서마다 최신 save id만 제공하면 됩니다.

✅ 리팩토링 내용

  • 문서 목록 조회에서 DocListAssembler#getMostRecentBranch()doc.getBranches()를 통해 lazy collection을 로딩하는지 확인
  • GET /api/document, sidebar 목록, 검색 목록에서 문서 수에 비례한 추가 SQL 발생 여부 확인
  • 문서 목록 응답에 필요한 최신 저장 정보가 최신 save id뿐인지 확인
  • 문서 수 및 문서별 branch 수 증가 시 쿼리 수와 응답 시간 영향 측정
  • 개선 전후 쿼리 수와 응답 시간 기준으로 성능 개선 여부 검증

💡 참고 자료

No response

Metadata

Metadata

Assignees

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions