Technote

개발 워크플로우 심화

연재 이미지가 사이트를 느리게 하지 않으려면 8부 중 8부

미디어 라이브러리에서 안 쓰는 파일 찾아내기

지우는 것보다 어려운 일은 "안 쓰인다" 를 증명하는 것입니다. 참조가 숨어 있는 자리를 알면 안전한 순서가 생깁니다.

연재의 마지막 회차입니다. 포맷을 고르고, 업로드 크기를 정하고, 생성되는 크기를 정리하고, 반응형과 지연 로딩을 맞추고, 벡터와 영상까지 다뤘습니다. 그런데 몇 년을 운영하면 그 모든 규칙을 지켜도 어디에도 쓰이지 않는 파일이 쌓입니다. 시안, 교체된 배너, 한 번 쓰고 만 자료들입니다.

어려운 것은 삭제가 아니라 증명입니다

“이 파일은 안 쓰인다” 를 확신하기가 생각보다 어렵습니다. 참조가 여러 곳에 흩어져 있기 때문입니다.

참조가 사는 자리 — 위 두 줄은 쉽게 찾히고 아래는 잘 놓친다

본문에 삽입된 이미지는 찾기 쉽습니다. 문제는 아래쪽입니다 — 특히 CSS 안의 주소와 페이지 빌더가 자기 데이터 구조 안에 저장한 참조는 일반적인 검색으로 잘 잡히지 않습니다. 여기에 하나 더, 뉴스레터나 다른 사이트에서 파일을 직접 링크해 둔 경우도 있습니다. 사이트 안에서는 안 쓰이지만 지우면 남의 화면이 깨집니다.

안전한 순서 — 지우지 말고 먼저 격리합니다

되돌릴 수 있는 상태를 만들고 시작한다 — 관찰 기간이 이 절차의 핵심이다

백업이 먼저입니다. 업로드 폴더와 데이터베이스를 함께 받아 두고, 가능하면 복구가 되는지 한 번 확인합니다. 복구해 본 적 없는 백업은 백업이 아닙니다.

다음은 후보 목록입니다. 도구를 쓰든 직접 조회하든, “참조가 발견되지 않은 파일” 목록을 만듭니다. 이 목록은 삭제 목록이 아니라 의심 목록입니다 — 위 표의 아래쪽 자리들 때문에 오탐이 반드시 섞입니다.

그래서 격리합니다. 바로 지우지 않고 별도 폴더로 옮긴 뒤 몇 주간 사이트를 관찰합니다. 이미지가 사라진 자리는 눈에 띄고, 서버 로그에는 그 파일을 찾는 404 요청이 남습니다. 이 관찰 기간이 이 절차 전체에서 가장 중요한 단계입니다. 아무 문제가 없으면 그때 삭제합니다.

다시 쌓이지 않게 하는 규칙

정리는 한 번으로 끝나지 않습니다. 다시 쌓이지 않게 하려면 습관 쪽을 손봐야 합니다. 시안은 미디어 라이브러리에 올리지 않고 팀 저장소에서 검토합니다. 이미지를 교체할 때는 새로 올리는 대신 같은 파일을 갱신하면 주소가 유지되고 옛 파일도 남지 않습니다. 그리고 파일 이름 규칙을 정해 두면 몇 년 뒤에도 무엇인지 알아볼 수 있습니다.

연재를 마치며

여덟 회차를 지나오며 확인한 것은 하나입니다 — 이미지를 가볍게 하는 일은 화질을 포기하는 일이 아닙니다. 포맷을 성질에 맞게 고르고, 필요한 크기만 만들고, 브라우저가 고를 재료를 정확히 주고, 첫 화면 한 장만 예외로 다루는 것 — 전부 품질을 지키면서 무게를 줄이는 결정들입니다. 워드프레스는 이미 반응형 이미지와 지연 로딩을 기본으로 제공합니다. 우리가 할 일은 그 기본값이 제대로 작동할 재료를 주는 것뿐입니다.

더 넓은 성능 주제는 성능 최적화 아카이브에, 정리 작업의 운영 절차는 개발 워크플로우 아카이브에 이어집니다. 이미지 파이프라인 · 캐시 · 서버 설정까지 한 번에 정비하려면 최적화 지원 사업이 있고, 우리가 어떤 순서로 작업하고 무엇을 전후로 측정하는지는 작업 과정에 그대로 공개돼 있습니다.

이 주제의 다른 글

노하우 목록으로

개발 워크플로우 심화

배포 전 디자인 QA 체크리스트

배포 후에 발견하는 디자인 문제의 대부분은 배포 전에 순서대로 확인하면 잡힙니다. 규칙 · 상태 · 실기기의 세 단계로 정리했습니다.

디자이너 3분 읽기

개발 워크플로우 심화

되돌릴 계획 없이 배포하지 않습니다

롤백은 버튼 하나가 아니라 코드와 데이터베이스 두 갈래이고, 되돌리는 순서가 있습니다. 그 순서를 배포 전에 적어 두는 것까지가 준비입니다.

디자이너 5분 읽기

₩270,000 · 신청하기