파일 교환 형식 - 파일을 저장할 때 가끔 보이는 이것, 정체가 뭘까?
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 파일 내부에 삽입 |
문서 포맷
| 형식 | 특성·장점 | 비고 |
|---|---|---|
| 플랫폼 독립·레이아웃 고정 | 전자문서 배포 표준 | |
| 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
// reading compass
이 글과 이어지는 경로
시리즈, 카테고리, 태그 겹침, 최신도를 점수화해 가까운 글일수록 중심에 배치합니다.
댓글 남기기