"'내 머신에 없음' 은 '존재 안 함' 이랑 같지 않아. 하나는 사실이고; 다른 건 네 dev mirror 에 대한 추측이야."
두 머신, 하나가 권위 있음
엔진은 두 곳에서 돌아: 권위 있는 모델 저장소이자 serving 호스트인 server, 그리고 local 작업을 위해 모델을 mirror 하는 개발 머신. 같은 하드웨어지만, 다른 역할을 해. server 가 ground truth — 모델이 실제로 사는 곳. dev 머신은 mirror — 주어진 순간에 완전할 수도 안 할 수도 있는 복사본.
sync 는 한 방향으로 흘러
이걸 안전하게 만드는 룰: 모델 파일이 정확히 한 방향으로 흘러. 새 모델이 server 에 먼저 착륙하고, 그다음 dev mirror 로 전파돼. 절대 반대 X 아님. 이 한방향 흐름은 server 가 늘 가장 완전하고 가장 최신인 저장소고, dev 머신이 늘 '비어있음' 이랑 '완전히 따라잡음' 사이 어딘가라는 뜻이야. 방향을 알면 둘이 모순될 때 어느 머신을 믿을지 알려줘.
이게 막는 버그
룰이 막으려고 존재하는 실수가 이거야. dev 머신에 있고, 모델을 찾는데, 없고, '이 모델 존재 안 함' 결론짓고 — 그다음 그 거짓 결론 기반으로 코드 쓰거나, 버그 올리거나, 결정해. 근데 dev 머신은 그냥 sync 중이야; 모델은 server, ground truth 에 존재하고, 그냥 아직 전파 안 됐어. dev mirror 가 적은 모델 보이는 건 정상이지, 부재의 증거가 아니야.
그냥 항상 다 sync 하면 왜 안 돼?
mirror 가 완벽한, 즉각 복사본이길 원할 수도 있어 — 근데 모델 파일이 거대해서, full 전파가 진짜 시간이 걸려. 그 시간 동안 mirror 가 정당하게 불완전해. mirror 가 늘 완벽한 척(그리고 그 틈에 데이기)하는 대신, 규율은 mirror 가 지연된다는 걸 받아들이고 부재 결론 전에 ground truth 확인하는 습관을 지어. 지연을 받아들이고 고려하는 게 없는 척하는 걸 이겨.