사전

바이트 순서는 무엇을 의미하나요?

바이트 오더는 메타데이터를 확인할 때 파일에서 찾을 수 있는 숨겨진 정보 중 하나입니다. 그것이 무엇을 의미하는지, 그리고 파일이 어떻게 작성되었는지에 대해 무엇을 알려 주는지 알아보세요.

byte-order

Byte Order(바이트 순서)는 endianness라고도 하며, 더 큰 값의 바이트들이 어떤 순서로 저장되는지를 나타냅니다. 컴퓨터는 이 바이트들을 어느 쪽 끝에서부터든 기록할 수 있고, 파일은 나중에 이를 읽는 쪽에서도 같은 숫자를 얻을 수 있도록 어느 쪽 끝부터 사용했는지 표시해야 합니다.

두 가지 바이트 순서

하나의 바이트만으로는 해석에 혼동이 없습니다. 하나의 바이트로 표현하기에는 너무 큰 숫자는 여러 바이트로 나누어야 하며, 이때 두 가지 방식이 갈립니다.

  • Big-endian: 저장 또는 전송이 가장 상위 비트가 들어 있는 바이트부터 시작하며, 이후 바이트로 갈수록 중요도가 낮아집니다.
  • Little-endian: 저장 또는 전송이 가장 하위 비트가 들어 있는 바이트부터 시작하며, 이후 바이트로 갈수록 중요도가 높아집니다.

두 바이트가 필요한 숫자 4660을 예로 들어 봅시다. Big-endian 파일은 이를 12 34로 기록하고, Little-endian 파일은 34 12로 기록합니다. 같은 숫자지만 순서는 반대입니다. 혼합 방식도 존재하며, mixed-endian 또는 middle-endian이라고 부르지만 드뭅니다. 두 가지 주요 순서는 모두 일상적으로 사용되며, 어느 쪽을 보게 될지는 파일을 만든 기기나 프로그램에 따라 달라집니다.

어떤 파일에 포함되어 있는지

이 필드는 TIFF와 TIFF 구조를 기반으로 한 모든 형식에서 가장 잘 알려져 있습니다. 여기에는 JPEG 사진 안의 Exif 메타데이터 블록과 NEF, CR2, ARW, DNG 같은 카메라 RAW 형식이 포함됩니다. 이러한 파일은 모두 두 글자의 마커로 시작하는데, Intel 프로세서에서 흔한 형식인 II 또는 Motorola 프로세서에서 흔한 형식인 MM입니다. 보고서에서는 보통 이를 Little-endian (Intel, II) 또는 Big-endian (Motorola, MM)처럼 풀어서 표시합니다. 어떤 방식을 사용할지는 메타데이터를 기록한 카메라, 스캐너 또는 프로그램이 결정합니다.

오디오 컨테이너 형식도 전체 포맷 수준에서 같은 선택을 했습니다. WAV는 값을 Little-endian으로 저장하고 AIFF는 Big-endian으로 저장합니다. 이 때문에 동일한 음원 샘플을 담고 있어도 두 포맷을 바이트 단위로 그대로 교환해 사용할 수는 없습니다.

내 파일에 왜 중요한지

바이트 순서 때문에 한 기기에서 쓴 메타데이터가 다른 기기에서는 엉뚱하게 보일 수 있습니다. 마커를 무시하거나 잘못된 순서를 가정하는 리더는 조용히 실패하지 않습니다. 존재할 수 없는 날짜, 말이 안 되는 노출 값, 파일 끝을 넘어가는 길이 값을 만들거나, 아예 메타데이터를 읽을 수 없다고 표시합니다. 순서를 알면 파일을 어떻게 열고 처리해야 하는지 알 수 있습니다.

메타데이터를 편집하는 경우에는 바이트 순서가 두 배로 중요합니다. 새 값도 파일에 선언된 순서대로 다시 기록해야 하기 때문입니다. 그리고 그 마커 자체가 손상되면, 파일 안의 이미지나 오디오는 멀쩡하더라도 메타데이터 블록 전체를 읽을 수 없게 되는 경우가 많습니다. 이 필드는 파일이 어떻게 배치되어 있는지만 설명할 뿐이며, 사용자나 기기에 대한 개인적인 정보는 담고 있지 않습니다.

메타 키