논리적 사고

JSON 속성 순서가 바뀌면 파일 해시도 달라질까요?

JSON 객체가 같은 값을 담아도 직렬화된 바이트 순서가 다르면 해시가 달라질 수 있습니다.

키 순서가 다른 두 JSON이 같은 객체 의미와 다른 파일 바이트를 가질 수 있음을 보여 주는 그림.
키 순서가 다른 두 JSON이 같은 객체 의미와 다른 파일 바이트를 가질 수 있음을 보여 주는 그림.
그림 크게 열기 ↗SVG 저장

그림에서 무엇을 볼까요?

키 순서가 다른 두 JSON이 같은 객체 의미와 다른 파일 바이트를 가질 수 있음을 보여 주는 그림.

{"a":1,"b":2}와 {"b":2,"a":1}은 많은 프로그램에서 같은 키와 값을 가진 객체로 읽힙니다. 하지만 문자 순서가 달라 파일 바이트열은 다릅니다.

함께 확인할 점

두 JSON을 문자열과 파싱한 객체로 각각 비교하고 정규화 전후를 확인합니다.

생각해 볼 질문

지금 비교하려는 것은 데이터의 의미인가요, 파일의 정확한 바이트인가요?

← 논리적 사고 그림 더 보기