TECH 으로 돌아가기
TECH HACKER NEWS 오늘 7분 읽기 31 READS

터미널에서 사진 정리를 끝내는 CLI 도구 'photoc'

터미널에서 사진 정리를 끝내는 CLI 도구 'photoc'
SOURCE IMAGE · HACKER NEWS

사진가에게 촬영 뒤 작업은 촬영 못지않게 번거롭다. 수백 장을 훑어 흐릿한 컷과 중복 파일을 걸러내고, 날짜와 카메라별로 폴더를 나누고, 공유 전에 위치 정보를 지우는 일이 매번 반복된다. 대개 이런 작업은 무거운 사진 카탈로그 앱이나 여러 유틸리티를 오가며 처리하게 된다. 최근 Show HN에 공개된 photoc는 이 과정을 전부 명령줄 안에서 처리하도록 설계된 도구 모음이다. 촬영본 요약, 메타데이터 열람, 흐릿한 사진과 완전 중복 파일 탐지, 이름 변경과 폴더 분류, 컨택트 시트 및 축소본 생성, 공유 전 GPS 제거 같은 기능을 각각의 명령으로 제공한다.

스크립트 친화적인 설계

photoc의 성격을 가장 잘 보여주는 지점은 모든 명령이 셸 스크립트 안에서 동작하도록 만들어졌다는 점이다. exif, stats, timeline, query, duplicates, focus, check 등 상당수 명령은 --json 옵션으로 결과를 JSON으로 출력한다. 이때 표준출력(stdout)에는 결과만 나가고, 상태 메시지와 경고, 오류, 진행 표시는 표준오류(stderr)로 분리된다. JSON 출력에는 JSON만 담기며 값이 없는 필드는 null로 표기된다. 긴 디렉터리 작업은 stderr에 진행 상황을 보여주되 --no-progress로 끌 수 있고, -q/--quiet와 -v/--verbose로 출력 수준을 조절한다. 결과를 다른 도구로 파이프해 넘기거나 자동화 파이프라인에 끼워 넣기 좋은 구조다.

필터링도 실무를 염두에 뒀다. query 명령의 조건은 AND로 결합되고 날짜 범위는 지정한 날을 포함하며, 파일명 사이에 NUL 문자를 넣어 출력해 공백이 든 경로도 안전하게 넘길 수 있다. 디렉터리 스캔은 기본적으로 지정한 폴더만 보고 심볼릭 링크를 따라가지 않으며, 하위 폴더까지 보려면 --recursive를 붙여야 한다.

원본을 함부로 건드리지 않는다

파일 안전성은 photoc가 특히 강조하는 부분이다. 원본은 사용자가 명시적으로 --apply(이름 변경, 분류)나 --in-place(스크럽)를 지정하지 않는 한 절대 바뀌지 않으며, 기존 파일을 덮어쓰지도 않는다. 정리 계열 명령은 기본값이 미리보기여서, 예컨대 rename ./shoot --format '{date}_{camera}_{sequence}.{ext}'를 실행하면 실제 변경 없이 결과만 보여준다. 여기에 안전장치가 하나 더 있다. 계획에 필요한 메타데이터(촬영 날짜 등)가 빠진 사진이 한 장이라도 있으면 전체 작업이 막히고 아무것도 바뀌지 않으며, 미리보기가 막힌 파일을 일일이 알려준다.

선명도 점수에 대한 태도도 눈여겨볼 만하다. photoc는 흐릿한 컷을 가려내는 focus 점수를 제공하지만, 이는 판정이 아니라 검토를 돕는 보조 지표라고 분명히 선을 긋는다. 피사체 디테일, 노이즈, 의도된 흐림이 모두 점수에 영향을 주기 때문이다. 무엇보다 photoc는 어떤 파일도 삭제하지 않으며, 무엇을 지울지는 사용자가 결정한다.

지원 범위와 한계

도구의 쓸모를 판단하려면 한계를 먼저 봐야 한다. photoc는 JPEG를 읽고 쓰며, Sony ARW RAW는 메타데이터 읽기만 지원한다. ARW에 대해서는 RAW 현상, 픽셀 디코딩, 압축, GPS 재기록을 하지 않는다. CR3, NEF, RAF, DNG 같은 다른 RAW 포맷과 HEIC는 아직 지원하지 않고, 파일은 확장자(.jpg, .jpeg, .arw, 대소문자 무시)로 구분된다. 또 하나 주의할 점은 compress 명령이 기본적으로 GPS를 포함한 EXIF를 유지하므로, 위치 정보를 지우려면 압축 뒤에 scrub를 따로 돌려야 한다는 것이다. scrub의 --privacy 옵션도 불투명한 MakerNotes에 데이터를 남길 수 있어 완전한 제거를 보장하지는 않는다.

photoc는 스스로를 RAW 현상기, 이미지 편집기, 사진 카탈로그, 혹은 ExifTool 같은 심층 메타데이터 편집기의 대체재가 아니라고 규정한다. 설치는 macOS나 Linux용 Homebrew 탭, 또는 체크섬이 검증된 사전 빌드 바이너리를 내려받는 셸 설치 스크립트로 이뤄진다. 바이너리는 macOS 15 이상 또는 glibc 2.35 이상 Linux가 필요하고 서명·공증이 되어 있지 않으며, Windows는 아직 지원 대상이 아니다.

정리하면 photoc는 모든 것을 해주는 올인원 앱을 지향하지 않는다. 오히려 터미널에서 작업하는 사진가가 촬영 직후 분류와 검토, 공유 준비를 스크립트로 자동화하도록 돕는, 역할이 분명한 도구다. 원본 보호와 명시적 동작, 기계가 읽기 좋은 출력이라는 원칙은 반복 작업을 자동화하려는 실무자에게 특히 설득력이 있다. 다룰 수 있는 포맷이 아직 좁은 만큼 자신의 워크플로가 JPEG와 Sony ARW 중심인지 먼저 확인하는 것이 도입의 출발점이 될 것이다. 프로젝트는 MIT 라이선스로 공개돼 있고, 다른 카메라의 샘플 파일 제공만으로도 포맷 지원 확대에 기여할 수 있다.

SOURCE · HACKER NEWS
원문 전체 보기 → https://github.com/ahmetomerv/photoc
SHARE
NEXT · CHOOSE

변화를 읽었다면,
내가 만들 수익 구조를 고릅니다.

정보를 더 모으는 데서 멈추지 않고, 광고·외주·판매·중개·구독 중 내 상황에 맞는 출발점을 정해보세요.

21가지 수익 구조 살펴보기 →
처리 중...