Intro

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

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

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

파일 교환 형식(File Exchange Format)

1. 주요 개념 및 정의

  • 서로 다른 시스템이나 프로그램 간에 파일을 원활하게 주고 받기 위해 만들어진 표준 형식.
  • 서로 다른 환경(컴퓨터, 운영체제, 프로그램 등) 사이에서 파일을 아무 문제 없이 주고받고,
  • 파일의 정보가 일관되게 유지되고 호환성을 갖추는 요건을 충족하는 파일 형식(포맷)을 의미.
  • 특정한 하나의 포맷을 가리키는 건 아니며, 위 요건을 만족한다면 교환 파일 형식 범주에 포함됨

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 청크를 연결하는 데 사용된다.
- 예를 들어, 멀티페이지 문서나 여러 애니메이션 프레임
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Offset 0x0000
┌────────────────────────────────────────────────────────────┐
 'FORM'                    ; Root-chunk ID (4 bytes)        │
 24070                     ; Size   (4 bytes, big-endian)   │
 'ILBM'                    ; Form-type ID (4 bytes)         │
                                                            
 ┌───────── BMHD Sub-chunk ─────────┐                       
  'BMHD'        ; Type ID          │                       │
  20            ; Size             │                       │
  …20 bytes…    ; Data (bitmap hdr)│                       │
 └──────────────────────────────────┘                       
                                                            
 ┌───────── CMAP Sub-chunk ─────────┐                       
  'CMAP'        ; Type ID          │                       │
  21            ; Size             │                       │
  …21 bytes…    ; Data (colour map)│                       │
  00            ; Padding (1 byte) │   ← 짝수 맞춤          │
 └──────────────────────────────────┘                       
                                                            
 ┌───────── BODY Sub-chunk ─────────┐                       
  'BODY'        ; Type ID          │                       │
  24000         ; Size             │                       │
  …24000 bytes… ; Data (raster)    │                       │
 └──────────────────────────────────┘                       
└────────────────────────────────────────────────────────────┘

특징

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

IFF 의 의의

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

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

이미지 포맷

형식 특성 주 용도
JPEG/JPG 손실 압축, 24 bit color 사진 · 웹 게시 이미지
PNG 무손실 압축, 알파(투명) 지원 로고 · 아이콘 · UI 그래픽
GIF LZW 무손실 압축 + 256색 팔레트 제한 → 색 밴딩 가능 짧은 애니메이션·스티커
TIFF 무손실(또는 무압축), 다중 페이지 지원 인쇄·스캔 원본 보존
BMP 대부분 무압축(옵션: RLE 무손실 압축) 레거시 Windows 호환

이미지 메타데이터 포맷

형식 특성 비고
Exif 촬영 정보·GPS·카메라 설정 등을 기록하는 메타데이터 규격 JPEG·TIFF·PNG 파일 내부에 삽입

문서 포맷

형식 특성·장점 비고
PDF 플랫폼 독립·레이아웃 고정 전자문서 배포 표준
DOCX/DOC 서식·매크로·추적 기능 Microsoft Word
RTF 경량 서식 텍스트 다양한 워드프로세서 호환
TXT 순수 텍스트, 인코딩 중요 로그·스크립트 등
HTML 하이퍼텍스트 마크업 웹 페이지

구조화 데이터 포맷

형식 특성 비고
CSV 쉼표 구분 텍스트, 간단·가벼움 스프레드시트·DB 교환
JSON 사람이 읽기 쉬운 경량 구조 REST API·웹 서비스
XML 태그 기반 계층 구조, 스키마 지원 문서·산업용 데이터

오디오 포맷

구분 형식 특성
컨테이너 WAV (RIFF 기반) 주로 무압축 LPCM 저장 – 그러나 ADPCM·MP3 등도 담을 수 있는 컨테이너
코덱 MP3 손실 압축, 범용 휴대 기기
  AAC 손실 압축, MP4/M4A 컨테이너에 주로 저장

비디오

형식 특성 비고
MP4 (ISO BMFF) 압축 효율·호환성 우수 H.264/H.265 등 다양한 코덱
MOV Apple QuickTime 컨테이너 macOS·iOS 친화
AVI (RIFF) 레거시 Windows, 코덱 다양  
MKV (Matroska) 자막·오디오 트랙 다중 포함, 오픈소스 고화질 영상 배포

3D 모델

형식 특성·용도
OBJ 단순 메시·재질 정보, 광범위 호환
FBX 메시·애니메이션·스켈레톤, DCC 교환
STL 삼각형 메시, 3D 프린팅 표준

마무리

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

Reference

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

Comments