CSV로 내보내기
GitLab v19.4요약
이 문서에서는 GitLab 코드베이스의 CSV 내보내기 구현 방식을 나열합니다. *로 표시된 내보내기 유형은 현재 작업 진행 중입니다.
이 문서에서는 GitLab 코드베이스의 CSV 내보내기 구현 방식을 나열합니다.
| 내보내기 유형 | 구현 방식 | 장점 | 단점 | 기존 사용 예 |
|---|---|---|---|---|
| 스트리밍 | - 데이터를 배치 단위로 조회하여 응답 스트림에 전달합니다. - 다운로드가 즉시 시작됩니다. |
- 보고서를 즉시 확인할 수 있습니다. | - 진행 표시기가 없습니다. - 안정적인 연결이 필요합니다. |
감사 이벤트 로그 내보내기 |
| 다운로드 | - 데이터를 배치 단위로 조회하여 임시 파일에 기록합니다. - 파일을 메모리에 로드합니다. - 파일을 클라이언트에 전송합니다. |
- 보고서를 즉시 확인할 수 있습니다. | - 데이터가 많으면 요청 타임아웃이 발생할 수 있습니다. - 메모리 사용량이 많습니다. - 사용자가 다른 페이지로 이동하면 요청이 만료됩니다. |
- 관리 연속성 보고서 내보내기 - 라이선스 사용 파일 내보내기 |
| 이메일 첨부 파일 | - 백그라운드 job으로 쿼리를 비동기 처리합니다. - 이메일에 내보낸 파일을 첨부합니다. |
- 비동기로 처리합니다. | - 사용자가 CSV를 내려받으려면 별도 앱(이메일)을 사용해야 합니다. - 이메일 제공업체가 첨부 파일 크기를 제한할 수 있습니다. |
- 이슈 내보내기 - 머지 리퀘스트 내보내기 |
| 이메일 내 다운로드 링크 (*) | - 백그라운드 job으로 쿼리를 비동기 처리합니다. - 이메일에 내보내기 링크를 사용합니다. |
- 비동기로 처리합니다. - 이메일 제공업체의 첨부 파일 크기 제한을 우회합니다. |
- 사용자가 별도 앱(이메일)을 사용해야 합니다. - 추가 스토리지와 정리 작업이 필요합니다. |
사용자 권한 내보내기 |
| 폴링 (비영속 상태) | - 백그라운드 job으로 쿼리를 비동기 처리합니다. - 프론트엔드(FE)가 몇 초마다 CSV 파일 준비 여부를 폴링합니다. |
- 비동기로 처리합니다. - 완료 시 로컬 머신에 자동으로 내려받습니다. - 인앱 솔루션입니다. |
- 영속되지 않는 요청이므로 사용자가 다른 페이지로 이동하면 요청이 만료됩니다. - 폴링 요청마다 API가 처리됩니다. |
취약점 내보내기 |
| 폴링 (영속 상태) (*) | - 백그라운드 job으로 쿼리를 비동기 처리합니다. - 백엔드(BE)가 내보내기 상태를 유지합니다. - FE가 몇 초마다 상태를 폴링합니다. - 내보내기가 준비되면 FE가 'Download link' 를 표시합니다. - 사용자가 내려받거나 새 보고서를 다시 생성할 수 있습니다. |
- 비동기로 처리합니다. - 폴링 요청 중에는 데이터베이스 호출이 없습니다(내보내기 상태가 바뀔 때까지 HTTP 304 상태를 반환합니다). - 내보내기가 끝날 때까지 사용자가 페이지에 머물 필요가 없습니다. - 인앱 솔루션입니다. - 범용 CSV 기능(대시보드 / CSV API 등)으로 확장할 수 있습니다. |
- 데이터베이스(DB)에서 내보내기 상태를 유지해야 합니다. - CSV 내보내기가 로컬 머신에 자동으로 내려받아지지 않으므로 사용자가 'Download' 를 선택해야 합니다. |
머지 커밋 보고서 내보내기 |
Note
*로 표시된 내보내기 유형은 현재 작업 진행 중입니다.