처리중입니다. 잠시만 기다려주세요.
TTJ 코딩클래스
정규반 단과 자료실 테크 뉴스 코딩 퀴즈
테크 뉴스
Hacker News 2026.06.18 22

JPEG는 어떻게 사진을 10분의 1로 줄일까요? — 이미지 압축의 원리 완전 정복

Hacker News 원문 보기

왜 이걸 알아야 할까요

우리가 매일 보는 웹페이지, 메신저로 주고받는 사진, 인스타그램 피드. 이 모든 게 '이미지 압축' 덕분에 돌아가요. 만약 압축이 없었다면 사진 한 장이 수십 메가바이트씩 나가서 인터넷이 마비됐을 거예요. 그런데 정작 우리는 ".jpg로 저장" 버튼만 누르고 그 안에서 무슨 일이 벌어지는지는 잘 몰라요. 이번 글에서는 그 마법 같은 과정을 차근차근 풀어볼게요. 한 번 이해하고 나면, 왜 어떤 사진은 깨끗하고 어떤 사진은 지글지글한지, 포맷을 어떻게 골라야 하는지가 보이거든요.

무손실 vs 손실, 두 갈래 길

압축에는 크게 두 종류가 있어요. 무손실 압축(lossless)은 원본을 1비트도 안 버리고 그대로 복원할 수 있는 방식이에요. PNG가 대표적이죠. 반대로 손실 압축(lossy)은 사람 눈이 잘 못 알아채는 정보를 과감히 버려서 용량을 확 줄이는 방식이고, JPEG가 대표예요. 사진처럼 색이 부드럽게 변하는 이미지는 손실 압축이 유리하고, 로고나 글자, 스크린샷처럼 경계가 또렷한 이미지는 무손실(PNG)이 더 깔끔해요.

JPEG는 사람 눈의 허점을 노려요

JPEG의 핵심은 "사람 눈은 의외로 둔하다"는 사실을 이용하는 거예요. 단계별로 볼게요.

먼저 색 공간 변환을 해요. 우리가 흔히 아는 RGB(빨강·초록·파랑) 대신, 밝기(Y)와 색감(Cb, Cr)을 분리한 YCbCr로 바꿔요. 왜냐면 사람 눈은 밝기 변화에는 민감하지만 색의 미세한 변화에는 둔하거든요. 그래서 다음 단계인 크로마 서브샘플링(chroma subsampling)에서 색 정보만 절반 이하로 줄여버려요. '4:2:0'이라는 표기가 바로 이거예요. 밝기는 그대로 두고 색 해상도만 깎으니, 우리 눈은 거의 차이를 못 느끼는데 데이터는 확 줄어요.

그 다음이 진짜 핵심인 DCT(이산 코사인 변환)예요. 이게 뭐냐면, 이미지를 8x8 픽셀 작은 블록으로 쪼갠 뒤, 각 블록을 '여러 주파수 패턴의 조합'으로 바꾸는 거예요. 비유하자면, 어떤 그림이든 굵직한 큰 무늬(저주파)와 자잘한 디테일(고주파)의 합으로 표현하는 거죠. 사람 눈은 자잘한 고주파 디테일을 잘 못 봐요. 그래서 다음 단계인 양자화(quantization)에서 이 고주파 성분들을 거칠게 반올림해 버려요. 바로 여기서 '손실'이 일어나요. JPEG 저장할 때 '품질 80%' 같은 슬라이더가, 사실은 이 양자화를 얼마나 세게 할지 정하는 값이에요. 품질을 너무 낮추면 8x8 블록 경계가 보이는 '블록 노이즈'가 생기는 이유도 이거고요.

마지막으로 남은 데이터를 엔트로피 부호화로 한 번 더 무손실 압축해요. 0이 잔뜩 이어지는 부분을 '0이 몇 개'라는 식으로 묶는 런렝스 인코딩과, 자주 나오는 값엔 짧은 코드를 주는 허프만 코딩을 써서 알뜰하게 마무리하죠.

PNG와 차세대 포맷들

PNG는 전혀 다른 길을 가요. 색을 버리는 대신, 옆 픽셀과의 '차이값'만 기록하는 필터링을 거친 뒤 DEFLATE라는 무손실 압축(zip과 같은 계열)을 써요. 그래서 글자나 단색 영역이 많은 이미지에서 강력하죠.

요즘은 더 똑똑한 포맷도 나왔어요. WebP는 같은 화질에 JPEG보다 더 작고, AVIF는 최신 영상 코덱(AV1) 기술을 사진에 적용해 압축률이 더 뛰어나요. JPEG XL은 기존 JPEG와의 호환성까지 챙긴 차세대 후보예요. 다만 브라우저·앱 호환성은 아직 포맷마다 차이가 있어서, 무조건 최신이 답은 아니에요.

한국 개발자에게는요

웹 서비스 만들 때 이미지 최적화는 성능에 직결돼요. 사진은 JPEG나 WebP, 로고·아이콘은 PNG나 SVG, 이런 식으로 콘텐츠 성격에 맞게 포맷을 고르는 것만으로도 페이지 로딩 속도가 눈에 띄게 빨라져요. <picture> 태그로 AVIF/WebP를 우선 주고 안 되면 JPEG로 떨어뜨리는 방식도 실무에서 바로 써먹을 수 있고요. DCT나 양자화의 원리를 알면, 왜 이미지를 두 번 세 번 다시 저장하면 화질이 점점 망가지는지(세대 손실)도 이해돼서, 원본 관리를 더 신경 쓰게 돼요.

마무리

결국 JPEG의 비밀은 "사람 눈이 못 보는 정보를 똑똑하게 버리는 것"이에요. 압축 원리를 알면 포맷 선택이 감이 아니라 근거가 되죠. 여러분은 프로젝트에서 이미지 최적화에 가장 애를 먹은 순간이 언제였나요?


🔗 출처: Hacker News

이 뉴스가 유용했나요?

TTJ 코딩클래스 정규반

월급 외 수입,
코딩으로 만들 수 있습니다

17가지 수익 모델을 직접 실습하고, 1,300만원 상당의 자동화 도구와 소스코드를 받아가세요.

144+실전 강의
17개수익 모델
4.9수강생 평점
정규반 자세히 보기

"비전공 직장인인데 반년 만에 수익 파이프라인을 여러 개 만들었습니다"

실제 수강생 후기
  • 비전공자도 6개월이면 첫 수익
  • 20년 경력 개발자 직강
  • 자동화 프로그램 + 소스코드 제공

매일 AI·개발 뉴스를 받아보세요

주요 테크 뉴스를 매일 아침 이메일로 전해드립니다.

스팸 없이, 언제든 구독 취소 가능합니다.