본문 바로가기

전체 글

사진 용량 줄일 때 해상도를 줄일까 화질을 낮출까, 무엇이 더 효율적인지 실측 사진 용량을 줄이는 방법은 크게 두 갈래입니다.하나는 가로세로 크기(해상도)를 줄이는 것이고,다른 하나는 크기는 그대로 두고 화질(quality)을 낮추는 것입니다. 둘 다 파일을 가볍게 만들지만,결과물의 성격은 꽤 다릅니다.어느 쪽이 더 많이 줄어드는지, 그리고 언제 무엇을 골라야 하는지 궁금해서 같은 사진 한 장으로 두 방법을 각각 적용해 용량을 재 봤습니다. 3000x2000 사진 한 장으로 실험했습니다가로 3000, 세로 2000, 약 600만 화소짜리 사진(스마트폰 사진과 비슷한 크기)을 원본으로 두고, 두 방식을 따로따로 적용했습니다. 측정 환경은 윈도우 11, 파이썬 3.14.3, 이미지 라이브러리 Pillow입니다.먼저 화질만 단계별로 낮춘 결과입니다. 크기(3000x2000)는 그대로 두.. 더보기
ZIP 압축을 풀었더니 파일명이 ║╕░φ╝¡ 처럼 깨질 때, 원인과 해결 받은 압축 파일을 풀었더니 안에 든 한글 파일명이 ║╕░φ╝¡.txt 같은 외계어나 물음표(???)로 바뀌어 있는 경우가 있습니다. 정작 파일을 열면 내용은 멀쩡한데 이름만 알아볼 수 없습니다.파일이 망가진 것이 아닙니다. ZIP이 파일명을 저장하는 방식과, 압축을 푸는 프로그램이 그 이름을 읽는 방식이 어긋났을 뿐입니다. 윈도우 11과 파이썬 3.14.3 표준 라이브러리 zipfile로 직접 만들어 확인한 결과를 근거로 풀어 보겠습니다. ZIP은 파일명을 어떻게 저장하나ZIP 안에는 각 파일의 이름이 바이트로 적혀 있고, "이 이름이 어떤 인코딩이냐"를 알려 주는 작은 표식이 따로 있습니다. ZIP 규격에서 이 표식은 일반 목적 플래그의 11번째 비트, 값으로는 0x800입니다.이 비트가 켜져 있으면 .. 더보기
같은 사진을 WebP, AVIF, JPG로 저장하면 용량이 얼마나 차이 날까 (직접 측정 후기) 웹에 사진을 올릴 때 형식 하나만 바꿔도 용량이 크게 줄어든다는 말을 자주 듣습니다. WebP가 좋다, 이제는 AVIF다, 하는 이야기 속에서 정작 "내 사진은 얼마나 줄어드는가"는 손에 잡히지 않습니다.그래서 같은 이미지 한 장을 JPG, WebP, AVIF로 똑같이 저장해 파일 크기를 직접 재 봤습니다. 측정 환경은 윈도우 11, 파이썬 3.14.3, 이미지 라이브러리 Pillow 12.2.0입니다. 결과는 흥미로웠고, 동시에 "이 숫자를 그대로 믿으면 안 되는 이유"도 함께 드러났습니다. 측정 방법부터실제 사진과 비슷하게, 색이 부드럽게 번지는 1280x853 그라데이션 이미지를 만들고 약한 노이즈를 섞은 뒤 살짝 흐림을 줬습니다. 이 한 장을 세 형식으로 같은 품질값(quality) 70, 80,.. 더보기
같은 폴더를 ZIP, 7Z, TAR.GZ로 압축하면 용량이 얼마나 다를까, 3종 직접 측정 파일 여러 개를 하나로 묶어 보낼 때 ZIP으로 할지 7Z로 할지, 아니면 개발자들이 자주 쓰는 TAR.GZ로 할지 고민한 적이 있을 것입니다. 다들 "7Z가 더 작다"고 하는데, 정말 그런지, 차이가 얼마나 나는지는 막상 숫자로 보기 어렵습니다.그래서 성격이 다른 파일을 한 폴더에 모아 세 형식으로 직접 압축해 봤습니다. 결과부터 말하면 7Z가 가장 작긴 했지만, 차이는 파일 종류에 따라 크게 흔들렸습니다. 일부러 성격이 다른 파일을 섞었습니다압축률은 묶는 파일이 무엇이냐에 따라 천차만별입니다. 그래서 한쪽으로 치우치지 않게, 잘 줄어드는 파일과 거의 안 줄어드는 파일을 일부러 함께 담았습니다. 측정 환경은 윈도우 11, 파이썬 3.14.3이며 ZIP은 표준 라이브러리 zipfile, TAR.GZ는 t.. 더보기
XML로 받은 데이터를 JSON으로 바꾸고 싶을 때, 표준 라이브러리만으로 해결하기 API나 설정 파일을 XML로 받았는데, 쓰려는 라이브러리나 프런트엔드는 JSON만 받는 상황을 만나신 적이 있을 것입니다. 둘 다 데이터를 담는 형식인데 모양이 달라서, 어떻게 옮겨야 깔끔한지 막연하게 느껴집니다.변환 자체는 파이썬 표준 라이브러리만으로 충분히 됩니다. 다만 XML에는 JSON에 없는 개념이 두 가지 있어서, 그 부분을 어떻게 처리하느냐가 결과 품질을 가릅니다. 한글이 섞인 실제 XML을 직접 변환해 가며 짚어 보겠습니다. 먼저 알아야 할 두 가지 걸림돌XML과 JSON은 닮았지만 다음 두 지점에서 1대1로 떨어지지 않습니다. 이 둘만 정리하면 나머지는 단순 매핑입니다.XML의 개념JSON에는?이 글의 처리 방식속성 (attribute), 예: id="b1"없음키 앞에 @를 붙여 보존속.. 더보기
SVG를 PNG로 변환하는 법, 출력 크기는 어떻게 정해야 할까 SVG 파일을 받았는데 막상 문서나 발표 자료에 넣으려니 PNG가 필요한 상황이 있습니다. 그런데 변환 도구를 열면 거의 항상 "너비"나 "배율" 같은 숫자를 물어봅니다. 사진을 다른 형식으로 바꿀 때는 묻지 않던 질문이라 당황스럽습니다.이 숫자를 왜 정해야 하는지부터 알면 변환이 훨씬 쉬워집니다. 결론부터 말하면 SVG는 정해진 픽셀 크기가 없는 형식이라, PNG로 바꾸는 순간 "몇 픽셀짜리로 그릴지"를 사람이 알려 줘야 하기 때문입니다. 왜 PNG로 바꿀 때만 크기를 물을까PNG 같은 사진 형식은 작은 점(픽셀)을 격자에 채워 그림을 만듭니다. 그래서 파일 안에 이미 "가로 800, 세로 600" 같은 픽셀 수가 들어 있습니다. JPG를 PNG로 바꿀 때 크기를 안 물어보는 이유가 여기 있습니다. 원.. 더보기
앱이 만든 .db 파일, 안에 든 데이터를 들여다보는 단계별 방법 스마트폰 앱이나 프로그램 폴더를 뒤지다 보면 확장자가 .db인 파일이 종종 나옵니다. 메모장으로 열면 알아볼 수 없는 글자가 잔뜩 보이고, 정작 안에 어떤 기록이 들어 있는지는 보이지 않습니다.이런 .db는 대부분 SQLite라는 작은 데이터베이스 파일입니다. 표 형태의 데이터가 여러 개 담겨 있어서, 메모장 같은 텍스트 편집기로는 제대로 읽히지 않습니다. 안을 들여다보려면 표를 꺼내 주는 도구가 필요합니다. 코드 없이 클릭으로 여는 방법과, 파이썬으로 직접 꺼내는 방법을 차례로 정리하겠습니다. 들여다본다는 건 결국 세 가지를 본다는 뜻입니다.db 안을 본다고 할 때 실제로 확인하게 되는 것은 보통 다음 셋입니다. 이 순서대로 보면 처음 보는 파일도 구조가 잡힙니다.보는 것무엇을 알 수 있나테이블 목록이.. 더보기
PNG를 JPG로 바꾸면 용량이 얼마나 줄까, 두 종류 이미지로 직접 재 봤습니다 스크린샷이나 사진을 PNG로 저장해 두면 한 장에 1MB를 훌쩍 넘기는 경우가 흔합니다. 메일에 첨부하거나 블로그에 올릴 때 무거워서, JPG로 바꾸면 가벼워진다는 말을 듣고 변환을 떠올리게 됩니다.그런데 JPG로 바꾼다고 항상 작아지지는 않습니다. 같은 변환인데 어떤 그림은 5분의 1로 줄고, 어떤 그림은 오히려 5배 넘게 불어납니다. 그 갈림길이 어디인지, 두 종류 이미지를 실제로 만들어 저장해 본 용량으로 보여 드리겠습니다. 사진형과 그래픽형, 두 장을 만들어 쟀습니다측정 환경은 윈도우 11, 파이썬 3.14.3, 이미지 라이브러리 Pillow 12.2.0입니다. 800x600 크기로 두 종류를 만들었습니다. 하나는 색이 미세하게 다 다른 사진형(그라데이션에 잡음을 섞은 그림), 다른 하나는 같은 .. 더보기