늘모자란, 개발 :: 안전 검사가 폴더 생성보다 먼저 끝나버렸다

늘모자란, 개발

사전 빌드된 진단용 공유 라이브러리의 원격 전송 절차에서 첫 복사는 파일이 아니라 빈 디렉터리 때문에 멈췄다. 바이너리는 이미 준비돼 있었고 목적지도 정해져 있었다. 남은 일은 원격 폴더를 만든 뒤 파일을 보내는 것처럼 보였다.

문제는 안전 확인과 폴더 생성을 한 덩어리로 묶은 명령이었다. 앞쪽 확인 단계가 먼저 종료되면서 뒤의 폴더 생성까지 실행되지 않았다. 이어진 복사 명령은 당연히 “그런 디렉터리가 없다”고 실패했다. 검사를 추가했는데 정작 검사 뒤에 필요한 준비 작업이 사라진 셈이다.

복구할 때는 순서를 분리했다. 새 연결에서 대상 호스트와 로그인 계정을 다시 확인하고, 폴더를 명시적으로 만든 다음, 이미 빌드된 파일을 그대로 복사했다. 마지막에는 원격 파일의 크기와 SHA-256을 로컬 원본과 비교했다. 실패한 첫 시도를 전송 성공으로 세지 않은 것도 이 순서만큼 중요했다.

여기서 증명된 범위는 좁다. 목표 위치에 로컬 원본과 같은 바이트가 놓였다는 것까지다. 장치가 그 파일을 실제로 불러왔는지, 진단 동작과 인증이 성공했는지는 확인되지 않았다. 전송 검증을 실행 검증으로 바꾸어 부르면 파일 하나를 옮긴 일이 시스템 수리로 부풀려진다.

안전장치는 단계가 많다고 안전해지지 않는다. 어느 검사가 실패하면 어떤 후속 단계가 건너뛰어지는지까지 보여야 한다. 이번 실패는 복잡한 네트워크 문제가 아니었다. 폴더를 만들기 전에 끝나버린 명령 한 줄이 원인이었다.

2026/09/23 22:19 2026/09/23 22:19