번들 계층 중복 제거
계층 중복 제거(Bundle layer deduplication)는 특정 대상 허브에 이미 보낸 데이터를 추적하여 이후 번들에서 중복 전송을 줄입니다. 대상마다 보유 데이터가 다르므로 같은 빌드에서도 대상별 다운로드 내용이 달라질 수 있습니다.
이 기능은 Experimental 지원 정책을 따릅니다. 동작이 변경될 수 있고 내보내기나 가져오기 실패를 유발할 수 있습니다. 문제가 생기면 기능을 끄고 더 큰 번들을 전송합니다.
대상과 중복 제거 설정
- Export에서 파이프라인을 엽니다.
- Transfer settings → Target Hubs에 대상 허브와 허브별 전송 방식을 추가합니다.
- Advanced settings → Enable layer deduplication을 켭니다.
- 같은 허브로 보내는 여러 파이프라인 사이에서도 중복을 줄이려면 Do not resend layers that have already been sent by other Pipelines to the same Target Hub를 켭니다.
반드시 대상을 선택하여 다운로드
번들을 빌드한 뒤 Download Bundle에서 특정 대상 허브를 선택합니다. Any Hub 다운로드에는 계층 중복 제거가 없습니다. 청크 분할을 사용하면 Downloads에서 해당 대상의 모든 청크를 받습니다.
전체 Any Hub 번들도 다운로드할 수 있지만, 그 다운로드와 확인을 대상별 중복 제거 기록으로 대신할 수는 없습니다. 이후 번들의 크기 절감에 필요한 대상별 다운로드와 전송 확인 절차를 사용합니다.
전송 완료 확인
다운로드한 파일을 대상 허브의 Import에 업로드합니다. 업로드가 끝나고 번들이 대상 허브에 존재하는 것을 확인한 뒤, 원본 허브의 Export로 돌아와 수동 전송을 확인합니다.
대상에서 성공을 확인하기 전에 전송 완료를 표시하면 이후 번들에서 아직 전달되지 않은 데이터를 생략하여 파이프라인이 실패할 수 있습니다. 완료 확인은 다른 사용자에게 전달 상태를 알리는 동시에, 내보내기 애플리케이션이 대상에 어떤 데이터가 있는지 계산하는 근거가 됩니다. 이 계산은 파이프라인과 전송 대상의 조합별로 관리합니다.
다음 경우에는 수동 완료를 확인해도 계층 중복 제거를 적용하지 않습니다.
- 특정 대상 허브용 번들을 다운로드하지 않았습니다.
- 해당 다운로드가 7일보다 오래되었습니다.
- 파이프라인에서 계층 중복 제거를 활성화하지 않았습니다.
실제로 전달되지 않았거나 대상 허브에서 번들을 삭제했다면 원본 허브에서 기존 전송 확인을 철회합니다. 철회한 번들은 전송되지 않은 것으로 취급합니다.
CLI 다운로드
대상별 번들은 일반 bundle download에 대상 식별자를 추가하여 받습니다. 대상 식별자와 사용 중인 CLI의 정확한 옵션을 반영하려면 다음 경로로 명령을 복사합니다.
- Export 파이프라인에서 번들을 엽니다.
- Download Bundle을 선택합니다.
- 드롭다운에서 대상 허브를 지정합니다.
- Copy CLI command를 선택합니다.
- 해당 허브에서 받은
apollo-cli가 있는 터미널에서 명령의 대상과 저장 위치를 검토한 뒤 사용합니다.
대상은 Export의 Target Hubs 탭에서 찾을 수 있습니다. 대상 옵션의 명칭을 임의로 바꾸지 말고 복사한 명령과 해당 바이너리의 bundle download -h를 기준으로 사용합니다. 다운로드 후에는 UI 방식과 동일하게 대상 업로드를 확인하고 원본 허브에서 전송 완료를 기록해야 합니다.