GIF

GIF 포맷 — 256색 팔레트와 움직이는 이미지

1987년 CompuServe가 만든 GIF 포맷의 역사(87a·89a)와 256색 팔레트, LZW 무손실 압축, 한 가지 색만 투명한 방식, 애니메이션 원리와 파일 구조, GIF 대신 WebP·동영상을 쓰면 좋은 경우를 정리했습니다.

확장자.gif
MIMEimage/gif
표준CompuServe GIF87a(1987) · GIF89a(1989)
압축무손실 LZW(단, 256색 제한)
투명도한 가지 색만 투명(켜짐/꺼짐)
애니메이션있음(프레임 지연 1/100초 단위)
색 수프레임당 최대 256색
최대 크기65,535 × 65,535 px

GIF(Graphics Interchange Format)는 미국 온라인 서비스 CompuServe가 1987년 발표한 포맷으로, 1989년 개정판 GIF89a에서 투명색과 애니메이션에 쓰이는 확장 블록이 추가되었습니다. 인터넷 초창기부터 쓰였고 지금도 "움짤"의 대명사로 불리지만, 기술적으로는 가장 오래된 축에 속하는 포맷입니다.

256색 팔레트와 LZW 압축

GIF는 픽셀마다 색을 직접 저장하지 않고, 최대 256색 팔레트(색상표) 중 몇 번째 색인지를 저장합니다. 명세상 색상표는 2의 거듭제곱 크기로 최대 256개 항목까지 둘 수 있습니다. 이 번호 배열을 LZW 알고리즘으로 무손실 압축합니다.

압축 자체는 무손실이지만, 1,600만 색이 넘는 사진을 256색으로 줄이는 과정에서 큰 손실이 생깁니다. 하늘이나 피부처럼 부드러운 그라데이션은 점무늬(디더링)나 띠 모양으로 표현됩니다. 반대로 색이 적은 픽셀 아트·단순 도형은 작고 선명하게 저장됩니다.

LZW 알고리즘에는 한때 특허 문제가 있었고, 이것이 1990년대 PNG가 개발된 계기 중 하나가 되었습니다. 해당 특허는 이미 만료되었습니다.

투명도

GIF89a의 그래픽 제어 확장(Graphic Control Extension)에는 투명색 번호 하나를 지정하는 칸이 있습니다. 해당 번호의 픽셀은 화면에 그리지 않고 배경을 그대로 둡니다. 즉 투명은 "완전히 투명하거나 완전히 불투명하거나" 둘 중 하나이며, 반투명 그림자나 부드러운 가장자리는 표현할 수 없습니다. 그래서 투명 GIF를 다른 색 배경에 올리면 가장자리에 흰 테두리(헤일로)가 보이는 경우가 많습니다.

애니메이션

GIF 애니메이션은 여러 장의 이미지를 순서대로 보여 주는 방식이며, 프레임 사이의 지연 시간은 명세상 1/100초 단위로 지정합니다. 반복 횟수는 이후 널리 쓰인 확장 블록(NETSCAPE2.0)으로 정합니다.

파일 구조

GIF 파일은 GIF87a 또는 GIF89a라는 6바이트 서명으로 시작하고, 이어서 다음 블록들이 옵니다.

  1. 논리 화면 서술자: 전체 캔버스의 가로·세로와 배경색 번호
  2. 전역 색상표: 파일 전체에서 쓰는 팔레트(선택)
  3. 그래픽 제어 확장: 다음 프레임의 지연 시간, 투명색 번호, 프레임 처리 방식(89a)
  4. 이미지 서술자와 이미지 데이터: 프레임의 위치·크기, 필요하면 지역 색상표, LZW 압축 데이터
  5. 3~4가 프레임 수만큼 반복되고, 마지막에 종료 바이트(3B)가 옵니다.

프레임마다 지역 색상표를 둘 수 있어 이론상 전체로는 256색보다 많은 색을 쓸 수 있지만, 한 프레임 안에서는 256색 제한이 그대로입니다.

장점과 한계

  • 호환성: 모든 브라우저와 메신저, 거의 모든 프로그램이 애니메이션까지 재생합니다.
  • 용량 비효율: 프레임마다 256색으로 따로 압축하므로 사진 같은 영상을 담으면 파일이 매우 커집니다. Google은 애니메이션 WebP가 GIF·APNG보다 작은 크기를 제공할 수 있다고 설명합니다.
  • 색과 투명도 제약: 256색, 1비트 투명만 가능합니다.

주 용도와 대체 포맷

짧은 반응 이미지, 로딩 아이콘, 픽셀 아트처럼 어디서나 재생되는 것이 가장 중요한 경우에 여전히 쓰입니다. 웹사이트에 올릴 움직이는 이미지라면 애니메이션 WebP·AVIF나 짧은 동영상(MP4·WebM)이 훨씬 작고 선명합니다.

변환할 때 주의점

  • GIF → JPG·PNG: 대부분의 도구는 첫 프레임만 정지 이미지로 저장합니다.
  • PNG·JPG → GIF: 256색으로 줄어들어 사진은 화질이 크게 떨어집니다. 로고·도형이 아니라면 권하지 않습니다.
  • 정지 이미지를 여러 포맷으로 바꾸는 방법은 이미지 포맷 변환을 참고하세요.

기준일: 2026-09-23

출처

← 포맷 사전으로