Skip to content

Refactor: 문서 미리보기 썸네일로 변환 및 성능 개선 #190

@lunarbae628

Description

@lunarbae628

📄 설명

문제

현재 미리보기는 ux가 향상되기에는 너무 빈약한 기능을 수행하고 이에 비해 비용이 높습니다.
문서 목록 조회 경로에서 현재의 미리보기 로직의 응답 시간이 데이터 양에 따라 불안정해질 수 있는 구조가 확인됐습니다.

현재 목록 조회는 Doc 페이지 조회 후 각 문서마다:

  • branch 전체 로딩
  • 최근 branch 계산
  • save / leafCommit 접근
  • preview 조립을 위한 Mongo 조회

개발 당시에도 언급되었던 것처럼 미리보기의 작업이 기능대비 너무 무겁습니다.

특히 DocListAssembler.java에서

  • doc.getBranches().stream().max(...)
  • branch.getSave() / branch.getLeafCommit()
  • saveContentRepository.findById(...)
  • commitContentAssembler.assemble(...)

를 문서별로 호출하고 있어, 목록 조회 시 JPA N+1 + Mongo N+1 형태의 비용이 발생할 가능성이 높습니다.

영향 범위

  • /api/document/sidebar
  • /api/document
  • /api/document/search

목표

  • 썸네일형식의 이미지 미리보기로 변경

작업 범위

  1. 목록 조회용 성능 시나리오 정리
  2. read benchmark로 sidebar / full list / search 응답 시간 비교(K6)
  3. 쿼리 수와 Mongo 호출 수 확인
  4. 최근 branch / preview 조립 방식 개선
  5. 개선 전후 p95 비교

✅ 리팩토링 내용

문서의 미리보기를 썸네일형식의 이미지로 변경 및 성능개선

💡 참고 자료

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