대응: 필드별로 직접 쓰거나 packed 제약을 문서화
바이너리 파일은 포맷 경계를 코드로 고정한다
바이트를 그대로 읽고 쓰는 순간, 파일을 해석하는 규칙도 코드가 책임집니다. 안전한 파일은 header, payload, 검증 정보를 분리합니다.
읽는 쪽이 먼저 확인할 파일 구조
Header
Payload
Guard
대응: 표준 순서를 정하고 읽을 때 변환
대응: 실제 데이터나 길이+내용으로 직렬화
대응: version과 migration 규칙을 둠
누가 읽나같은 컴파일러와 같은 구조체만 읽는 임시 파일인지 확인합니다.
얼마나 보관하나장기 보관이면 버전과 호환성 정책을 먼저 둡니다.
어디서 읽나다른 OS와 CPU까지 고려하면 endian과 정렬을 고정합니다.
struct를 그대로 쓰는 것은 파일 형식 설계가 아니라 현재 메모리 배치를 복사하는 일입니다. 오래 쓸 파일일수록 포맷 경계를 명시해야 합니다.