PicScrub logoPicScrub

작동 방식

디지털 사진에는 눈에 보이는 이미지 말고도 많은 것이 담깁니다. 파일 안에는 내가 어디에 서 있었는지, 어떤 기기를 썼는지, 셔터를 정확히 언제 눌렀는지가 보이지 않게 기록돼요. 이 정보를 메타데이터라고 하는데, 원래는 사진가가 작업물을 정리하기 쉽도록 만들어진 것입니다. 하지만 사진을 온라인에 올리는 순간 프라이버시 위험이 됩니다.

선글라스를 쓴 강아지 예시 사진
GPS: 45.4642° N, 9.1900° E
2019년 10월 12일 12:42:14
Xiaomi Mi 9T
f/1.75 · 1/1179s · ISO 100

대부분의 소셜 미디어는 메타데이터를 알아서 지워 주기 때문에 늘 문제가 되는 건 아니에요. 하지만 이메일 첨부 파일, 클라우드 공유 링크, 커뮤니티 게시판, 개인 홈페이지에서는 원본 파일이 그대로 남는 경우가 많습니다. 내가 어떤 정보를 넘길지 직접 정하고 싶다면, 올리기 전에 사진을 한 번 정리해 두는 게 좋아요.

사진 속에 숨어 있는 것들

첫 화면의 도구에 사진을 올리면 메타데이터를 검사합니다. 보통 이런 것들이 발견되고, 그대로 지워집니다:

GPS 좌표

위도와 경도가 몇 미터 오차로 정확하게 기록됩니다. 사는 곳, 일하는 곳, 다녀온 곳이 드러나요.

← 집 주소잖아!

촬영 시각

사진을 찍은 시각이 초 단위까지 남습니다. 하루 일과와 생활 패턴이 노출돼요.

← 언제 나갔는지 다 보임

기기 정보

카메라 제조사, 모델, 렌즈, 때로는 일련번호까지 남습니다. 여러 사진에 걸쳐 같은 사람을 특정할 수 있어요.

← 사진마다 따라다님

편집 이력

사용한 소프트웨어, 작성자 이름, 저작권 표기가 담깁니다. Photoshop이나 Lightroom 같은 도구가 넣어 둬요.

← 여기 내 이름 있네

지우는 방법

PicScrub을 쓰면 이런 일이 일어납니다:

1

이미지는 기기 안에 그대로 있어요

모든 처리는 JavaScript로 브라우저 안에서만 이루어집니다. 인터넷 연결을 끊고 써 보면 알 수 있어요. 그래도 잘 동작합니다.

2

형식을 판별해요

형식마다 메타데이터를 저장하는 방식이 달라서, 형식에 맞는 방법을 각각 씁니다.

3

메타데이터만 정확히 도려내요

이미지를 다시 인코딩하지 않아요(그러면 화질이 떨어지니까요). 대신 메타데이터 구간만 건너뛰고 이미지 데이터만으로 파일을 다시 만듭니다.

4

깨끗해진 파일을 내려받아요

같은 이미지, 같은 화질, 더 작아진 용량(메타데이터가 10-50KB를 차지하기도 해요), 그리고 숨은 정보 없음.

화질은 그대로

대부분의 메타데이터 제거 도구는 이미지를 다시 인코딩해서, 처리할 때마다 화질이 조금씩 나빠집니다. PicScrub은 다른 방식을 씁니다.

다른 도구

다시 인코딩된 이미지

화질: 약 95%

PicScrub

원본 픽셀 그대로

화질: 100%

이렇게 생각하면 쉬워요. 다른 도구는 붙어 있는 포스트잇을 없애려고 서류를 통째로 복사합니다. PicScrub은 포스트잇만 조심스럽게 떼어 내고 원본을 그대로 돌려줍니다.

구조로 지키는 프라이버시

이미지가 기기 밖으로 나가지 않는다는 건 그냥 약속이 아니라, 도구가 그렇게 만들어져 있다는 뜻이에요. 사진을 받는 서버가 아예 없습니다. 뒤에서 몰래 업로드하는 것도 없어요. 코드는 브라우저 안에서 그대로 실행됩니다.

그래서 저희는 원한다 해도 여러분의 사진을 볼 수 없어요. 프라이버시가 정책이 아니라 구조로 보장되는 것이죠.

코드베이스 전체가 오픈 소스입니다. 이미지에 정확히 무슨 일이 일어나는지 직접 확인하고, 보안 관점에서 감사하고, 직접 돌려 볼 수도 있어요.

한계

PicScrub은 대부분의 상황을 잘 처리하지만, 알아 두면 좋은 기술적인 제약이 몇 가지 있습니다:

HEIC 파일은 용량이 그대로예요

HEIC은 ISOBMFF 컨테이너(MP4와 같은 방식)를 쓰는데, 내부의 여러 오프셋이 정확한 바이트 위치에 의존합니다. 바이트를 빼면 파일이 깨져요. 그래서 메타데이터를 0으로 덮어씁니다. 민감한 정보는 사라지지만 파일 크기는 줄지 않아요.

독점 RAW 형식은 JPEG으로 돌려줘요

CR2, NEF, ARW 같은 형식은 문서화되어 있지 않고 제조사마다 다릅니다. 파일을 망가뜨릴 위험을 감수하는 대신, 안에 들어 있는 JPEG 미리보기(대부분의 카메라가 원본 해상도로 넣어 둡니다)를 꺼내서 그걸 정리해요. DNG 파일은 문서화된 TIFF 구조를 쓰기 때문에 완전히 지원합니다.

색상 프로필은 기본적으로 유지해요

ICC 색상 프로필도 엄밀히 말하면 메타데이터지만, 지우면 색이 달라 보일 수 있어요. 이미지에 프로필이 들어 있으면 "색상 프로필 유지" 옵션이 켜진 상태로 시작합니다. 프로필까지 지우고 싶다면 체크를 해제하거나, picscrub 라이브러리의 preserveColorProfile 옵션으로 조절하세요.

직접 해 보세요

이미지를 올려 어떤 메타데이터가 나오는지 확인해 보세요.

지금 메타데이터 지우기

형식별 상세 설명

이미지 형식마다 메타데이터를 저장하는 방식이 다릅니다. JPEG에서 통하는 방법이 PNG나 SVG에는 통하지 않아요. 형식별로 자세한 가이드를 준비했습니다:

개발자를 위해

PicScrub은 오픈 소스 라이브러리로도 제공됩니다. TypeScript를 완전히 지원하니 직접 만드는 프로젝트에 가져다 쓰거나, 코드베이스에 기여해 주세요.