Technote

개발 워크플로우 심화

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

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

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

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

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

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

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

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

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

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

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

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

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

다시 쌓이지 않게 하는 규칙

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

연재를 마치며

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

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

이 주제의 다른 글

노하우 목록으로

개발 워크플로우 실무

워드프레스를 GitHub 에 올릴 때의 .gitignore

워드프레스 저장소에서 커밋해야 할 것과 절대 커밋하면 안 되는 것의 경계는 명확합니다. wp-config.php 한 파일이 저장소에 들어가는 순간 DB 비밀번호와 인증 솔트가 통째로 유출됩니다.

개발자 · 운영 · 관리자 5분 읽기

개발 워크플로우 실무

취향 논쟁을 규칙 확인으로 바꾸는 디자인 리뷰

"좀 답답해 보인다" 는 반박할 수 없고 고칠 수도 없습니다. 간격 척도 밖의 값, 팔레트 밖의 색, 기준 미달 대비, 빠진 상태 — 네 항목만 규칙으로 바꿔도 리뷰의…

디자이너 4분 읽기

₩270,000 · 신청하기