운영체제 알림을 공통으로 다루기
Linux의 inotify, BSD와 macOS의 kqueue, Windows의 ReadDirectoryChangesW 등 서로 다른 감시 체계를 사용한다. 응용은 감시기를 만들고 경로를 추가한 뒤 이벤트와 오류를 처리한다. 실제 알림의 의미와 자원 제한은 사용하는 운영체제에 영향을 받는다.
하위 디렉터리와 네트워크 제한
디렉터리를 감시한다고 모든 하위 디렉터리까지 자동으로 재귀 감시하는 것은 아니다. 필요한 디렉터리를 개별 등록해야 한다. 네트워크 파일 시스템이나 일부 가상 파일 시스템처럼 기반 운영체제가 알림을 제공하지 않는 환경에서는 같은 방식의 변경 감지를 기대하기 어렵다.
편집기의 파일 교체
편집기가 임시 파일을 만든 뒤 원본을 교체하면 기존 파일에 걸어 둔 감시가 사라질 수 있다. 부모 디렉터리를 감시하고 이벤트의 파일 이름으로 필요한 대상을 고르는 방식이 이에 대응한다. 파일을 저장했다는 사용자 행동과 운영체제가 내보내는 개별 이벤트는 일대일로 대응하지 않을 수 있다.
관련 문서
Notify Rust / Watchman / Watchexec / Go / 파일 시스템 / 심볼릭 링크