Intro

Windows에서 그림이나 파일 등을 저장하다 보면 “파일 교환 형식” 이라는 선택 항목이 있습니다. 그냥 PNG나 JPG 저장하면 되지, 왜 굳이 “파일 교환 형식” 같은 낯선 이름이 튀어나오는 걸까요?

매번 저장할 때마다 스쳐 지나갔지만, 눌러보지도 않고 넘겼던 그 옵션. 어느 날은 “이건 대체 뭐지?” 싶다가도, 귀찮아서 그냥 닫았던 그 순간들…

이번 포스팅에서는 그 ‘파일 교환 형식’, 그 정체를 한 번 알아보겠습니다.

파일 교환 형식(File Exchange Format)

1. 주요 개념 및 정의

  • 서로 다른 시스템이나 프로그램 간에 파일을 원활하게 주고 받기 위해 만들어진 표준 형식.
  • (1) 서로 다른 환경(컴퓨터, 운영체제, 프로그램 등) 사이에서 파일을 아무 문제 없이 주고받고,
  • (2) 파일의 정보가 일관되게 유지되고 호환성을 갖추게 하는 역할

2. Interchange File Format (IFF)

개념

  • 1985년 EA 와 Commodore 가 공동 개발한 범용 디지털 컨테이너 파일 형식
  • 현대적인 컨테이너 구조의 ‘파일 교환 포맷’ 의 대표적인 사례
  • 쉽게 말해, 서로 다른 시스템/소프트웨어 간에 파일 호환성을 높이기 위한 파일 형식(포맷)
  • 범용 : 특정 프로그램이나 용도에 한정되지 않고, 보편적인 모든 시스템/소프트웨어
  • 디지털 : 디지털 데이터(바이너리) 형태
  • 컨테이너 : 내부에 여러 개의 chunk라고 불리는 여러 개의 독립 블록을 담을 수 있음. -> 확장이 용이

구조

  • IFF 는 “청크” 라는 단위로 구성된다.
  • 청크 : IFF 의 구성 단위. 각 청크는 Type ID, Size, Data 를 담는다.
  • 이 청크는 IFF 파일의 핵심 이다.
구성 설명 크기
Type ID 청크의 유형을 식별하는 Type ID
AUTH, BODY, COMM 등
4바이트
Size 이 청크의 데이터 크기 4바이트
Data 실제 내용 -
Padding Byte 청크는 호환성을 지키기 위해 데이터의 크기를 짝수 바이트로 맞춘다.
패딩 바이트는 데이터의 크기를 짝수로 맞추기 위해 존재하는 구성 요소이다.
0 혹은 1 바이트
  • 루트 청크는 IFF 파일의 시작점에 있는 최상위 청크를 이른다.
  • 루트 청크의 대표적인 예시는 FORM 청크, LIST 청크, CAT 청크가 있다.
루트 청크 설명
FORM - 가장 흔하게 볼 수 있는 루트 청크. 파일의 시작을 뜻한다.
LIST - 여러 파일이나 객체의 목록을 포함하는 데 사용된다.
CAT - 여러 개의 동일한 유형의 FORM 청크를 연결하는 데 사용된다.
- 예를 들어, 멀티페이지 문서나 여러 애니메이션 프레임

특징

  • 청크 기반 구조 : 파일 유연성과 확장성을 극대화
  • 고정된 파일 확장자 없음 : 고정된 파일 확장자를 가지지 않는다.
  • 다양한 데이터 유형 지원 : IFF는 특정 파일 확장자에 얽매이지 않는다. 대신, 파일 내부의 최상위 청크(예: FORM 청크)에 데이터가 어떤 유형인지 명시적으로 담아 다양한 종류의 데이터를 유연하게 처리할 수 있다.
  • 청크 건너뛰기 가능 : Size 에서 데이터의 크기를 알 수 있으므로, 파일을 읽는 파서는 자신이 읽을 수 없거나 관심이 없는 청크를 쉽게 건너뛸 수 있다. 이를 통해 구형 소프트웨어가 최신의 IFF 파일을 읽을 때, 자신이 이해하지 못하는 데이터는 무시하고 인식하는 부분만 처리할 수 있다.
  • 확장성/미래호환성 : 새로운 데이터 유형이나 기능이 필요할 경우, 새로운 청크를 정의하여 파일에 추가 가능
  • 다양한 타입 : 한 파일 내에 여러 타입의 데이터를 혼합해도 처리 가능
  • 이식성 : 크로스플랫폼이 가능하도록, 플랫폼 독립적으로 만들어진다.

IFF 의 의의

  • 현대적인 컨테이너 구조의 ‘파일 교환 포맷’ 의 대표적인 사례
  • 이후의 RIFF(WAV, AVI), AIFF, QuickTime, MP4 등 현대 컨테이너 포맷의 기초가 됨

대표적인 파일 교환 형식의 예시

이미지 파일

형식 설명
Exif (Exchangeable image file format) 디지털 카메라에서 촬영된 이미지에 메타데이터(사진에 대한 정보)를 기록하는 표준 형식입니다. 촬영 날짜, 카메라 모델, 설정, GPS 정보 등이 포함됩니다. Exif는 JPG, TIFF, PNG 등 다른 이미지 파일 형식 안에 포함되어 사용될 수 있습니다. 즉, JPG나 PNG가 이미지 자체의 형식이라면, Exif는 “그 이미지에 부가적인 정보를 담는 메타데이터 형식”입니다.
JPEG/JPG 높은 압축률을 제공하여 파일 크기를 줄일 수 있지만, 압축 과정에서 손실이 발생할 수 있습니다. 주로 웹에서 사진이나 이미지를 공유할 때 사용됩니다. 손실 압축 방식을 사용하며, 색상이 풍부하고 복잡한 이미지에 적합합니다.
PNG 무손실 압축을 지원하며, 투명한 배경을 사용할 수 있습니다. 웹에서 로고나 아이콘 등 디테일이 중요한 이미지를 공유할 때 유용합니다.
GIF 애니메이션 이미지를 지원하며, 무손실 압축을 제공합니다. 웹에서 간단한 애니메이션이나 작은 이미지를 공유할 때 사용됩니다.
TIFF 무손실 압축을 제공하며, 원본 이미지를 보존해야 할 때 사용됩니다. 주로 인쇄용 이미지나 전문적인 작업에 사용됩니다. 고품질 이미지 저장에 사용되며 Exif 정보가 가장 잘 보존되는 형식 중 하나입니다.
BMP 무손실 압축을 제공하지만, 파일 크기가 매우 커서 일반적으로 잘 사용되지 않습니다.

문서 파일

형식 설명
PDF (Portable Document Format) 다양한 운영체제에서 동일하게 문서를 표시할 수 있도록 설계되었습니다. 텍스트, 이미지, 폰트 등을 포함하여 문서를 공유할 때 사용됩니다. 문서의 레이아웃, 글꼴, 이미지 등을 원본 그대로 유지합니다.
DOCX/DOC 마이크로소프트 워드 문서 형식으로, 편집이 필요한 문서를 공유할 때 사용됩니다.
TXT 단순 텍스트 파일 형식으로, 서식 없이 텍스트만 저장합니다. 호환성이 높지만, 서식을 적용할 수 없습니다.
HTML 웹 페이지를 저장하는 형식입니다.
RTF (Rich Text Format) 서로 다른 워드 프로세서 간에 문서를 교환할 수 있도록 하는 형식입니다.

데이터 파일

형식 설명
XML (Extensible Markup Language) 데이터를 구조화하여 저장하고 전송하기 위한 마크업 언어로, 플랫폼이나 애플리케이션에 독립적으로 데이터를 교환할 수 있게 해줍니다.
JSON (JavaScript Object Notation) 경량의 데이터 교환 형식으로, 주로 웹 애플리케이션에서 사용됩니다.
CSV (Comma Separated Values) 간단한 표 형태의 데이터를 다양한 프로그램에서 쉽게 불러오고 저장할 수 있는 텍스트 파일 형식입니다.

오디오 파일

형식 설명
MP3 압축률이 높아 파일 크기를 줄일 수 있지만, 음질 손실이 발생할 수 있습니다. 휴대용 기기에서 음악을 재생할 때 주로 사용됩니다.
WAV 무손실 오디오 파일 형식입니다. 음질이 중요할 때 사용되지만, 파일 크기가 매우 큽니다.
AAC MP3보다 압축 효율이 높고 음질이 좋습니다.

비디오 파일

형식 설명
MP4 가장 일반적인 비디오 파일 형식입니다. 압축률과 호환성이 좋습니다.
MOV 애플에서 개발한 파일 형식으로, 주로 퀵타임 플레이어에서 사용됩니다.
AVI 윈도우에서 주로 사용되는 파일 형식입니다.
MKV 다양한 코덱과 자막을 지원하며, 고화질 비디오를 저장할 때 사용됩니다.

3D 모델링 파일

형식 설명
OBJ, FBX, STL 서로 다른 3D 모델링 소프트웨어 간에 데이터를 주고받을 때 사용됩니다.

마무리

“파일 교환 형식”은 특정 소프트웨어나 플랫폼에 얽매이지 않고 자유롭게 데이터를 공유하고 활용할 수 있도록 데이터를 표준화된 방식으로 인코딩하는 매우 중요한 개념입니다. IFF와 같은 초기 파일 형식의 발상에서부터 오늘날의 다양한 문서, 이미지, 오디오, 비디오 및 데이터 형식에 이르기까지, 이 개념은 디지털 정보의 원활한 유통과 상호 운용성을 보장하는 데 필수적인 역할을 합니다.

Reference

https://en.wikipedia.org/wiki/Interchange_File_Format

Comments