app · iOS · android
LitePhoto
이미지 용량을 가볍게, 사이즈는 원하는 대로, 포맷은 필요한 만큼. 사진 한 장 / 여러 장을 빠르게 다듬는 단순한 도구.
서비스 소개
LitePhoto 는 사진을 보내거나 올리기 전에 — 용량을 줄이고, 사이즈를 맞추고, 포맷을 바꾸는 — 작은 단계를 한 화면에서 처리하는 유틸입니다. 광고를 한 번 보면 결과 이미지를 사진첩에 저장할 수 있는 구조로, 가벼운 도구가 본업을 벗어나지 않도록 단순함을 우선했습니다.
iOS 는 Swift + 클린 아키텍처, Android 는 Kotlin 네이티브로 별도 구현했습니다.
- 용량 압축퀄리티 슬라이더로 결과 용량을 미리 가늠하면서 조절.
- 사이즈 변경가로 / 세로 픽셀 / 비율 유지 — 자주 쓰는 사이즈 빠른 적용.
- 포맷 변환JPEG / PNG / HEIC 사이를 필요한 형식으로 변환.
- 다중 사진여러 장을 한 번에 올려 동일 옵션으로 일괄 처리.
- 광고 보고 다운로드광고 한 번에 결과 저장 — 가벼운 사용자도 부담 없이.
- 다국어한국어 / 영어 — Apple Localizable.strings.
Behind the scenes
지금도 못 고친 한 가지 — "예상 용량과 실제 저장 용량이 다르다" 는 문제.
-
01
정확한 용량을 알려주는 게 가장 어렵다
압축 슬라이더를 움직이면 — 결과 용량이 얼마가 될지를 화면에서 미리 보여주는 게 이 앱의 핵심 약속입니다. 그런데 그 숫자를 진짜로 정확하게 만드는 게 끝까지 안 풀렸습니다. 이유는 코드에서 뽑는 인코딩 결과의 크기와, 그걸 사진첩에 저장한 뒤 다시 들여다본 파일 크기가 일치하지 않기 때문입니다 — 작게는 몇 KB, 크게는 수십 KB까지 차이가 납니다. 원인은 한 군데가 아니라 여러 층에 흩어져 있습니다. 인코더가 압축한 raw 바이트 외에 — EXIF / GPS 같은 메타데이터, ICC 컬러 프로파일, 컨테이너 헤더 / 박스(특히 HEIC), 사진첩 시스템이 저장 시점에 다시 끼워 넣는 메타데이터까지 — 각각이 작은 차이를 더하고, 시스템 버전 / 디바이스마다 그 차이가 또 달라집니다.
막막해서 비슷한 류의 사진 압축 앱들을 살펴보니 — 정도의 차이는 있어도 다른 앱들도 같은 문제를 겪고 있었습니다. 표시 용량은 어림값이고 저장 후 실제 용량은 따로인 — 이게 사실상 이 카테고리의 고질병에 가까웠습니다. 현재는 인코딩 직후 바이트 길이를 기준으로 표시하되, 메타데이터 / 컨테이너 차이를 보수적으로 가산하는 식으로 오차를 줄이는 정도로 합의를 봤습니다. 언젠가 사진첩 저장 후 실제 파일 크기를 비동기로 다시 측정해 보정값을 학습시키는 방향이 — 이 앱이 푸는 다음 큰 숙제입니다.
Screenshots
카드를 누르면 큰 이미지로 볼 수 있습니다.
More
지나온 버전과 앞으로 들어갈 항목을 별도 페이지에서 확인할 수 있습니다.