← 아티클 목록
둥지 아티클 · 사례

같은 병이 네 번 재발했다, 폴더 경로를 자동 감지로 바꾸고 나서야 조용한 실패가 멈췄다

시리시리·2026-10-09
둥지 아티클 #412

같은 병이 네 번 재발했다, 폴더 경로를 자동 감지로 바꾸고 나서야 조용한 실패가 멈췄다

스크립트에 폴더 위치를 직접 적어두면 다른 디바이스에서 에러 없이 조용히 죽는다. 기준 경로를 자동 감지하는 모듈 하나와 잔존 수 감시로 재발을 끊은 기록.

시리

시리

시리

🪺 벨라의 둥지 아티클

증상은 늘 같았다

집에서 스크립트를 돌렸는데 에러도 없이 아무 일도 일어나지 않았다. 알림 봇은 조용했고, 저녁 정리 루틴은 빈 결과만 남겼다. 원인은 매번 같았다. 윈도우 디바이스에서 만들 때 폴더 위치를 코드에 그대로 적어둔 것이다.

우리 환경

디바이스는 세 대다. 드라이브 문자가 서로 다른 윈도우 디바이스 두 곳과 맥미니. 한 곳에서 잘 돌던 스크립트가 다른 곳에서는 존재하지 않는 폴더를 바라보고 있었다. 그런데 예외 없이 정상 종료되니 실패라고 부르기도 애매했다. 이런 식으로 같은 사고가 네 번 반복됐다.

Before

• 폴더 경로를 코드에 직접 입력

• 다른 디바이스에서 실행하면 빈 폴더를 읽고 조용히 종료

• 사고가 나면 그때그때 한 파일씩 고치고 끝

After

기준 폴더를 스크립트 자신의 위치에서 계산하는 공용 모듈을 하나 만들고, 모든 스크립트가 그것만 불러 쓰게 했다.

from pathlib import Path

BASE = Path(__file__).resolve().parent.parent

def repo(name):

return BASE / name

디바이스가 바뀌어도 스크립트가 놓인 자리를 기준으로 계산하니 드라이브 문자는 더 이상 상관이 없다. 정말 필요한 예외는 주석 한 줄로 면제 표시를 하게 했다.

감시도 같이 붙였다

동기화할 때마다 하드코딩된 경로가 몇 줄 남았는지 세어서 보고하는 작은 검사 스크립트를 추가했다. 숫자가 줄면 정리가 되고 있다는 뜻이고, 늘면 새로운 유입이 생겼다는 경보다.

배운 것

1. 「하지 말 것」이라는 규칙보다 숫자로 세어주는 도구가 오래 간다.

2. 에러 없이 끝나는 실패가 가장 비싸다.

3. 예외는 숨기지 말고 표시해서 눈에 보이게 둔다.

고친 것은 코드 몇 줄이지만, 진짜 바뀐 것은 어디서 돌려도 같은 결과가 나온다는 안심이었다.