Metlivi 블로그

통합 사진 보관함에서 손상된 파일을 검사하는 방법

통합 사진 보관함을 검사하려면 이미지 데이터를 읽는 디코더로 모든 이미지를 스캔하고, 실패하거나 경고를 발생시키는 파일의 보고서를 저장한 다음, 파일을 교체하거나 복원하기 전에 해당 파일들을 개별적으로 점검하세요. 썸네일이나 파일 크기를 빠르게 확인하는 것으로도 명백한 문제는 찾을 수 있지만, 전체 이미지를 정상적으로 읽을 수 있는지는 확인할 수 없습니다. 이 워크플로는 ImageMagick의 magick identify를 사용하며, 로컬 드라이브나 마운트된 드라이브에 저장된 보관함을 대상으로 합니다.

2026년 10월 15일읽는 시간 6분작성: Metlivi Editorial Team
섹션 1

손상 검사로 알 수 있는 것과 알 수 없는 것

파일 확장자가 익숙하고 크기가 적절해 보이더라도 이미지 데이터가 잘려 있거나 손상되어 있을 수 있습니다. 반대로 특정 뷰어에서는 열리는 파일이 다른 디코더에서는 경고를 발생시키거나 실패할 수도 있습니다. 스캔은 특정 도구가 파일을 어떻게 읽는지 기록할 뿐이며, 모든 픽셀이 시각적으로 올바른지 또는 모든 애플리케이션이 파일을 동일하게 해석할 것인지를 증명하지는 않습니다.

ImageMagick의 magick identify는 이미지 특성을 보고하며 불완전하거나 손상된 파일을 감지할 수 있습니다. 유의미한 검사를 수행하려면 +ping을 사용하여 전체 읽기를 요청하세요. ImageMagick에 따르면 기본 ping 모드는 기본 식별에 필요한 정보만 읽으므로 전체 이미지를 읽지 않을 수 있습니다. 경고가 명령의 종료 상태 코드(exit status)에 영향을 미치도록 -regard-warnings를 추가하세요. ImageMagick Identify 문서, ImageMagick 기본 사용법

결과는 선별(트리아지) 용도로 활용하세요. 보고된 경고는 검토해 볼 가치가 있지만, 그 자체만으로 사진을 사용할 수 없다는 증거는 아닙니다. 오류 없이 깨끗하게 완료된 스캔은 해당 디코더가 문제를 보고하지 않고 작업을 마쳤음을 의미할 뿐, 사진이 시각적으로 완벽하게 보이거나 모든 파일 형식 고유의 세부 사항이 유효하다는 뜻은 아닙니다.

섹션 2

스캔 전 보관함 준비하기

안정적인 복사본이나 백업부터 준비하세요. 단 하나뿐인 원본 파일에 바로 복구나 변환을 실행해서는 안 됩니다. 일부 복구 시도는 데이터를 변경할 수 있으며, 쓰기 작업이 중간에 중단되면 손상된 파일이 더 악화될 수 있습니다. 통합 보관함이 여러 드라이브나 폴더에 걸쳐 있다면 포함하려는 모든 루트 디렉터리를 기록해 두세요.

컬렉션을 활발히 가져오기, 편집 또는 동기화하고 있는 소프트웨어를 모두 닫으세요. 이렇게 하면 스캔 중에 파일이 변경될 가능성을 줄일 수 있습니다. 마운트된 드라이브에 접근할 수 있는지, 스캔을 실행하는 계정에 읽기 권한이 있는지 확인하세요. 권한 오류나 연결이 끊긴 볼륨은 문제가 없는 정상 결과가 아니라 '스캔되지 않은 영역'으로 처리해야 합니다.

사용 중인 운영체제에 맞는 공식 배포판에서 ImageMagick을 설치한 다음, 터미널에서 magick 명령을 사용할 수 있는지 확인하세요. 먼저 정상 작동이 확인된 몇 개의 이미지로 테스트해 보세요. ImageMagick의 해당 명령어 표기법은 버전 7 기준이며, 구버전 설치 환경에서는 다른 명령 이름을 사용할 수 있습니다. 명령어가 없거나 형식을 지원하지 않는다는 오류를 파일이 손상되었다는 증거로 해석하지 마세요.

섹션 3

전체 스캔 실행 및 보고서 저장

macOS나 Linux 환경의 Bash를 사용하면 보관함을 재귀적으로 탐색하면서 실패 및 경고 내역을 별도의 로그에 기록할 수 있습니다. /path/to/photo-library와 보고서 경로를 실제 위치로 바꾸세요. 스캔 중에 보고서 자체를 이미지 파일로 인식하지 않도록 검사 대상 보관함 외부 경로에 저장해야 합니다.

: > "$HOME/photo-scan-errors.log"
find "/path/to/photo-library" -type f -print0 |
while IFS= read -r -d '' file; do
  if ! magick identify +ping -regard-warnings "$file" >/dev/null 2>>"$HOME/photo-scan-errors.log"; then
    printf '%s\n' "$file"
  fi
done

터미널에는 검사에서 실패를 반환한 파일 경로가 출력되며, 로그 파일에는 ImageMagick의 진단 메시지가 저장됩니다. 루프가 모든 파일을 순회하므로 이미지가 아닌 파일도 인식할 수 없는 형식으로 보고될 수 있습니다. 보관함에 사이드카 파일, 문서 또는 기타 이미지가 아닌 콘텐츠가 포함되어 있다면 이는 정상적인 결과입니다. 다양한 파일이 섞인 아카이브의 경우 "알 수 없는 형식" 오류는 디코더 오류와 별개로 처리하고, 필요한 경우 스캔 대상을 알려진 이미지 확장자로 좁히세요. 단, 확장자 필터링을 적용하면 특이한 확장자를 사용하거나 확장자가 없는 이미지를 놓칠 수 있습니다.

로그가 비어 있고 출력된 경로가 없다면, 이번 실행에서는 이 디코더의 검사 기준에 따른 진단 메시지나 실패가 발생하지 않은 것입니다. 루트 경로가 올바른지, 스캔이 정상적으로 끝까지 완료되었는지 확인하세요. 오타, 접근할 수 없는 드라이브, 명령 중단 등으로 인해 생성된 빈 보고서는 정상 통과를 의미하지 않습니다. 보관함 용량이 매우 크다면 한 번에 폴더나 드라이브를 하나씩 실행하고 각 보고서에 라벨을 붙여 실제로 검사된 범위를 명확히 파악할 수 있도록 하세요.

섹션 4

플래그가 지정된 파일 안전하게 검토하기

출력된 경로를 확인하여 원본 파일을 찾은 다음, 해당 파일에 대해서만 magick identify +ping -regard-warnings "/full/path/to/file.jpg" 명령을 실행해 더 명확한 진단 정보를 확인하세요. 표시된 메시지를 기록하고 다른 뷰어나 편집기에서 어떻게 열리는지 비교해 보세요. 파일이 전체적으로 표시되는지, 일부분만 표시되는지, 아니면 전혀 열리지 않는지 확인합니다. 메인 이미지 데이터가 손상되었더라도 애플리케이션에서 내장 미리보기 이미지를 대신 표시할 수 있다는 점에 유의하세요.

기록할 때는 디코드에 실패하는 파일, 경고와 함께 디코드되는 파일, 디코드는 되지만 불완전하게 보이거나 시각적으로 손상되어 보이는 파일의 세 가지 경우로 구분하세요. 이렇게 하면 모든 경고를 동일하게 취급하는 것보다 훨씬 유용하게 후속 조치를 취할 수 있습니다. GIF나 TIFF와 같은 다중 프레임 형식은 한 파일 내에 여러 이미지를 포함할 수 있으므로, 첫 번째 프레임 이후에만 문제가 발생하는지 확인하려면 관련 프레임이나 페이지를 점검하세요.

섹션 5

원본을 덮어쓰지 않고 복구 방법 선택하기

다른 복사본이 있다면 복구를 시도하기 전에 먼저 비교해 보세요. 파일 해시를 비교하면 두 복사본의 내용이 정확히 일치하는지 확인할 수 있습니다. Microsoft 문서에 따르면 일치하는 해시는 동일한 파일 내용임을 증명하며, 파일 이름이나 확장자가 다르더라도 해시에는 영향을 주지 않습니다. 예를 들어 PowerShell의 Get-FileHash는 기본적으로 SHA-256을 사용합니다. Microsoft Learn: Get-FileHash

해시가 일치한다는 것은 두 복사본이 바이트 단위까지 완벽하게 동일하다는 것을 의미할 뿐, 어느 한쪽이 정상 파일임을 보장하지는 않습니다. 두 복사본이 모두 동일한 방식으로 실패한다면 다른 백업이나 원본 소스를 찾아보세요. 하나는 통과하고 다른 하나는 실패한다면 정상 복사본을 보존하고, 두 파일이 의도했던 동일한 사진인지 확인한 후에만 손상된 복사본을 교체하세요. 교체된 파일의 검증이 끝날 때까지 플래그가 지정되었던 원본 파일은 그대로 보관하세요.

사용 가능한 양호한 복사본이 없다면, 형식별 전용 복구 도구를 사용하기 전에 플래그가 지정된 파일의 사본을 따로 만들어 두세요. 복구된 결과물은 처음부터 다시 검사하고, 뷰어에서 열어보며, 해상도나 기타 예상되는 특성을 비교해 보세요. ExifTool 측 설명에 따르면 해당 도구는 이미지 유효성 검사기(validator)로 설계된 것이 아닙니다. ExifTool의 -validate 옵션은 주로 JPEG 및 TIFF에 대한 추가 검사를 제공하므로, 전반적인 합격/불합격 판정 테스트가 아닌 보조 진단 수단으로 활용해야 합니다. ExifTool FAQ: Can ExifTool be used as an image validator?

섹션 6

검사 범위 확인 및 유용한 기록 유지

점검을 완료했다고 판단하기 전에, 검사하려던 모든 폴더가 포함되었는지, 스캔이 끝까지 완료되었는지, 보고서가 정상적으로 저장되었는지 확인하세요. 읽을 수 없는 드라이브, 권한 문제, 지원되지 않는 형식, 디코더 누락을 나타내는 메시지는 확인된 이미지 읽기 실패 오류와 분리하여 검토해야 합니다. 복원된 파일에 대해 검사를 다시 실행하고, 플래그가 지정되었던 항목과 다중 프레임 파일에 특히 주의를 기울여 이미지 뷰어로 컬렉션을 샘플링 검사하세요.

스캔 날짜, ImageMagick 버전, 스캔한 폴더, 오류 로그를 유지 관리 기록과 함께 보관하세요. 이러한 기록이 있으면 향후 스캔 결과와 비교하기 쉽고, 이전부터 있던 경고와 새로운 읽기 문제를 구분하는 데 도움이 됩니다. 꼼꼼한 검사는 디코더를 통한 전체 읽기, 대상에 맞춘 시각적 검토, 교체된 복사본의 철저한 검증이 결합되어야 합니다. 어떤 단일 명령어도 이러한 판단을 대신 내려줄 수는 없습니다.

섹션 7

참고 자료

관련 글

이 주제 더 살펴보기