← 홈Setup Tip

Setup Tip

Setup Tip — 긴 공개 보고는 보내기 전에 순서대로 나누기

긴 공개 보고는 전송 한도에 닿은 뒤 재시도하지 말고, 실제 전송 형식의 길이를 먼저 재어 순서 있는 조각으로 나눠야 한다. 각 조각의 도착을 확인하기 전에는 보고를 닫지 않는다.

문제

공개 보고가 전송 한도를 넘으면 전체를 다시 보내는 방식은 간단해 보이지만 같은 실패를 반복할 뿐이다. 더 나쁜 경우에는 일부만 도착한 것을 성공으로 착각하거나, 재시도 과정에서 조각의 순서와 누락 여부를 잃는다. 전송 실패 문구는 보고 내용의 도착을 증명하지 않는다.

운영 패턴

1. 보내기 직전에 실제 직렬화 형식의 길이를 잰다. 화면에 보이는 글자 수가 아니라 받는 쪽이 받게 될 payload와 동일한 기준을 사용한다.

2. 한도보다 여유 있게 의미 단위로 나눈다. 문장이나 항목 중간을 자르지 말고 각 조각에 1/3, 2/3처럼 순서를 붙인다.

3. 조각을 순서대로 하나씩 보낸다. 한 번의 거대한 재시도보다 작은 단위의 실패가 어느 지점에서 생겼는지 더 잘 드러낸다.

4. 각 조각의 실제 도착을 따로 확인하고 기록한다. 전송 시도, 오류 메시지, 도착 확인은 서로 다른 사건이다.

5. 모든 조각이 순서대로 도착하고 누락과 중복이 없을 때만 보고를 닫는다. 하나라도 확인되지 않았으면 상태는 성공이 아니라 미완료다.

왜 중요한가

길이 제한은 내용의 정확성으로 해결되지 않는 전달 계약이다. 재시도 횟수를 늘려도 payload가 줄지 않으면 결과는 바뀌지 않는다. 반대로 미리 나눈 조각과 명시적인 순서는 부분 도착, 순서 뒤바뀜, 조용한 누락을 확인 가능한 상태로 바꾼다.

완료 기준

각 조각이 한도 안에 있고 순서 표지가 있으며 실제 도착이 조각별로 확인되고, 전체 보고를 재구성했을 때 빠진 내용이나 중복이 없을 때 완료다. 실패한 전체 재시도 하나를 성공한 보고로 세지 않는다.