파일을 받기 전에는 카드의 안내를 읽고 받은 뒤에는 파일 안의 문구를 읽는다. 실제 자료 사이트의 카드와 생성기, 콘텐츠 형식을 함께 보며 이 두 설명이 같은 파일을 말하는지 확인하는 계약을 만들었다.

문구만 같아도 충분한 것은 아니다

카드와 파일의 안내 문장이 같아도 다른 버전의 파일을 가리키면 연결은 틀릴 수 있다. 새 notice_pair는 asset, language, version과 statement를 모두 비교한다. 각 필드가 빠지면 거절하고 차이가 있으면 어떤 필드인지 남긴다. 실제 이용 허락을 판단하기보다 같은 대상을 설명하는지 검산하는 함수다.

원래 사이트의 구체적인 사용조건을 새 문서에 복사하지 않았다. 합성 도형에 대해 수정·재사용 가능하다는 새 안내만 만들었다. 타인의 자료와 고객 수업 사진을 포함하지 않으므로 원본 권한을 추정해 공개하는 상황을 만들지 않았다. 권한의 실질과 표시의 일치는 다른 문제로 남긴다.

카드와 파일이 갈라지는 변경을 생각했다

파일을 새로 만들었는데 카드가 예전 버전을 가리키거나 번역 카드가 다른 언어의 안내를 보여 줄 수 있다. 실제 사고가 있었다고 꾸민 것은 아니다. 서로 다른 렌더링 경로를 가진 자료라면 점검할 가치가 있는 변경 조건이다. 함수는 한쪽 version만 v2로 바꾼 합성 반례를 돌려 differences에 version을 남긴다.

문장에 날짜를 넣는 경우에도 그 날짜가 파일 버전인지 확인일인지 구분해야 한다. 이번 계약은 version 문자열을 비교하며 날짜 의미를 자동 해석하지 않는다. 버전 정책을 정하는 것은 콘텐츠 운영의 책임이다. 단순 문자열 일치가 모든 변경 이력을 설명하지는 않는다.

실제 PDF의 문구도 읽었다

인쇄 모듈에서 만든 한 페이지 PDF에는 새 합성 안내가 하단에 있다. 생성한 파일을 다시 열어 텍스트를 추출하고 NOTICE 문자열이 남았는지 확인했다. 모듈의 실행 기록에도 같은 문장과 v1을 남겼다. 화면 카드의 표시만 확인하고 파일 안쪽은 보지 않은 검수가 아니다.

렌더링 이미지에서는 안내가 절취선과 본문 아래에 분리되어 있는지도 확인했다. 이 검사는 실제 고객 자료의 조건을 검토한 것이 아니며 법률 의견도 아니다. 새 예제의 문장이 사라지지 않고 읽을 위치에 남았다는 실제 파일 검수다. 파일과 함께 배포할 코드에도 같은 안내 상수를 둔다.

사용조건이 같다고 권리가 생기지는 않는다

consistent가 true여도 누가 어떤 권한으로 공개했는지 함수는 모른다. rights_certified는 false다. 두 곳에서 같은 잘못된 문구를 보여 줘도 일치 검사는 통과할 수 있다. 그래서 표시 일치와 원본 권한 검토의 완료를 다른 필드와 기록으로 관리해야 한다.

실제 사이트에 연결하면 파일 교체 때 카드와 파일의 버전, 공개 중인 링크를 함께 확인하면 좋다. 오래된 파일을 보관하는 경우에도 현재 카드가 어느 것을 받게 하는지 명확해야 한다. 자동화로 찾을 수 있는 불일치와 사람이 확인할 권한을 나눠야 도구를 과신하지 않고 재사용할 수 있다.

자료 하나를 끝까지 설명하는 구조

근거 표현 패키지의 12개 테스트 중 사용조건 일치와 버전 차이, 필드 누락을 확인했다. PDF 쪽은 별도 12개 기하 테스트와 실제 파일의 안내 추출·렌더링을 남겼다. 서로 다른 증거를 한 통과 숫자로 합쳐 권한 검토까지 완료했다고 쓰지 않는다. 각 모듈에서 확인한 범위를 읽을 수 있다.

제작자의 관점에서 다운로드는 버튼을 달면 끝나는 일이 아니다. 받기 전 기대와 받은 파일의 설명이 이어져야 한다. 나는 사용조건을 더 강하게 쓰기보다 어떤 자료에 어떤 버전의 안내가 붙었는지 추적하는 구조를 공유하고 싶었다. 다른 파일 형식에서도 같은 네 필드를 기준으로 적용을 시작할 수 있다.

번역된 안내의 동일성은 별도 검토다

language가 다르면 서로 다른 안내 쌍으로 확인해야 한다. 두 언어의 문장이 글자 단위로 같을 필요는 없지만 이용 조건의 의미가 같은지는 사람이 확인해야 한다. notice_pair는 같은 언어와 버전의 두 위치를 비교하므로 번역의 적절성을 자동 판정하지 않는다. 실제 다국어 다운로드에서는 이 차이를 검토 기록에 남기면 좋다.