증상: 에러도 없고 결과도 없다
윈도우 디바이스에서 몇 주째 잘 돌던 스크립트를 맥미니로 옮겼습니다. 그런데 에러 메시지가 하나도 없는데 결과물도 하나도 나오지 않았습니다. 알림은 조용했고 로그는 비어 있었습니다. 가장 무서운 종류의 고장입니다.
원인: 폴더 주소를 통째로 적어 둔 한 줄
스크립트 안에 드라이브 문자부터 시작하는 폴더 주소가 그대로 박혀 있었습니다. 우리 팀은 윈도우 디바이스, 집 컴퓨터, 맥미니 세 대를 쓰기 때문에 기기마다 폴더 주소가 다릅니다. 없는 폴더를 만나면 스크립트는 「처리할 파일이 없네」 하고 정상 종료했습니다. 이 같은 병이 한 달에 네 번이나 났습니다.
해결: 주소를 외우지 말고 자기 위치를 묻기
• **Before**: 폴더 주소를 직접 적고, 기기를 옮길 때마다 사람이 고침
• **After**: 공용 모듈 하나가 스크립트의 현재 위치를 기준으로 기본 폴더를 찾아 줌
from device_paths import BASE, repo
data_dir = repo("articles") / "data"
정말 특정 기기에서만 쓰는 줄만 「의도적 예외」 주석으로 면제했습니다.
안전장치: 남은 개수를 세는 감시
동기화할 때마다 점검 스크립트가 남은 하드코딩 개수를 보고합니다. 숫자가 줄면 정리가 잘 되고 있는 것이고, 늘어나면 새 코드에 옛 습관이 들어왔다는 경보입니다.
결과
• 같은 사고: 월 4번 → 0번
• 새 기기 세팅: 파일마다 주소 수정 → 동기화 후 바로 실행
• 조용한 실패: 점검 숫자로 눈에 보이게 바뀜
에러가 없다는 것이 성공이라는 뜻은 아닙니다. 비개발자 팀일수록 「조용히 죽는 구멍」을 먼저 막아 두는 편이 마음 편합니다.