사진을 JPG로 저장할 때 화질 값을 묻는 프로그램이 많습니다.
보통 0부터 100 사이의 숫자인데, 이 값을 얼마로 두느냐에 따라 파일 크기가 몇 배씩 달라집니다.
무작정 100으로 두면 용량이 커지고, 너무 낮추면 사진이 지저분해집니다.
그렇다면 화질과 용량이 가장 균형 잡히는 지점은 어디일까요.
같은 사진을 화질만 단계별로 바꿔 저장하며 용량이 어떻게 변하는지 재 봤습니다.

화질 100부터 20까지 저장해 봤습니다
1920x1280 크기의 사진 한 장을 화질만 바꿔 가며 저장했습니다.
측정 환경은 윈도우 11, 파이썬 3.14.3, 이미지 라이브러리 Pillow입니다.
| 화질(quality) | 용량 | 화질 100 대비 | 직전 단계 대비 |
|---|---|---|---|
| 100 | 1658 KB | 100% | 기준 |
| 95 | 825 KB | 50% | 50% 감소 |
| 90 | 484 KB | 29% | 41% 감소 |
| 80 | 264 KB | 16% | 46% 감소 |
| 70 | 180 KB | 11% | 32% 감소 |
| 60 | 131 KB | 8% | 27% 감소 |
| 40 | 89 KB | 5% | 완만 |
| 20 | 65 KB | 4% | 완만 |
화질을 조금만 낮춰도 용량이 확 줄어듭니다
표에서 가장 눈에 띄는 지점은 초반의 급락입니다.
화질을 100에서 95로 딱 한 단계 낮췄을 뿐인데 용량이 절반으로 줄었고,
90에서는 원본의 29%까지 내려갔습니다. 육안으로는 거의 구분이 안 되는 변화입니다.
반대로 화질을 60 아래로 계속 내리면, 줄어드는 양은 점점 작아집니다.
40에서 20으로 반이나 낮춰도 용량은 89KB에서 65KB로 조금 줄 뿐입니다.
화질을 낮출수록 용량은 줄지만, 낮은 구간에서는 얻는 것이 적고 화질 손상만 커집니다.
그래서 얼마로 두면 될까
이 곡선을 보면 답이 자연스럽게 나옵니다.
용량이 크게 줄면서도 화질 손상이 눈에 안 띄는 구간,
즉 화질 80에서 90 사이가 대부분의 상황에서 가장 무난합니다.
| 용도 | 권장 화질 |
|---|---|
| 인화, 원본 보관 등 화질 최우선 | 95 이상 |
| 블로그, 쇼핑몰 등 화면용 일반 사진 | 80에서 90 |
| 썸네일, 미리보기 등 작게 쓰는 이미지 | 60에서 70 |
화면에서 볼 사진이라면 화질 85 근처가 용량과 화질의 균형점입니다.
이 값만 기억해도 대부분의 사진 저장에서 손해를 보지 않습니다.
직접 저장해 비교하기
Pillow에서는 quality 값만 바꿔 여러 벌 저장한 뒤 눈으로 비교할 수 있습니다.
from PIL import Image
im = Image.open("photo.jpg")
for q in [95, 85, 70, 50]:
im.save(f"photo_q{q}.jpg", quality=q)
저장된 파일들을 같은 크기로 확대해 하늘이나 매끈한 면을 비교하면,
화질이 낮을수록 얼룩덜룩한 자국이 보이기 시작합니다.
사진마다 이 한계가 다르니 몇 벌 저장해 눈으로 확인하는 편이 가장 정확합니다.
자주 묻는 질문
Q. 화질 100은 완전 무손실인가요?
아닙니다. JPG는 100으로 두어도 압축 과정에서 미세한 손실이 생기는 형식입니다. 손실이 전혀 없어야 하면 PNG나 무손실 WebP를 써야 합니다.
Q. 한 번 낮춰 저장한 사진을 다시 100으로 올리면 화질이 돌아오나요?
돌아오지 않습니다. 낮은 화질로 저장하며 버려진 정보는 복구되지 않으니, 원본은 따로 보관하는 편이 안전합니다.
Q. 같은 화질인데 사진마다 용량이 다른 이유는요?
디테일이 복잡한 사진일수록 압축할 여지가 적어 용량이 큽니다. 위 수치도 사진 내용에 따라 달라지지만, 화질을 낮출수록 줄어드는 방향과 초반 급락 후 완만해지는 흐름은 대체로 같습니다.
JPG 화질은 높을수록 좋은 값이 아니라, 용도에 맞춰 고르는 값입니다.
화면에서 볼 사진이라면 85 근처, 크게 인화할 사진이라면 95 이상으로 두는 것부터 시작해 보세요.
지금 저장하려는 사진이 어디에 쓰일지 떠올리면 적당한 값이 금세 잡힙니다.
'파일 형식 백과사전' 카테고리의 다른 글
| 큰 CSV를 엑셀 대신 SQL로 다루기, SQLite에 불러와 조회하는 방법 (0) | 2026.07.25 |
|---|---|
| 커진 CSV를 gzip으로 압축하기, 얼마나 줄고 압축한 채로 바로 읽을 수 있을까? (0) | 2026.07.24 |
| 투명 배경 PNG를 JPG로 저장했더니 배경이 새까맣게, 원인과 깔끔한 해결법 (0) | 2026.07.23 |
| 중첩된 JSON을 엑셀에서 열리는 CSV로, 배열까지 한 줄씩 펼쳐 변환하기 (0) | 2026.07.22 |
| Parquet 저장할 때 compression만 바꿨을 뿐인데 용량이 갈립니다, 코덱 3종 실측 비교 (1) | 2026.07.21 |