임시 파일에 쓰고 rename으로 바꾸면 전원 장애 뒤에도 새 파일이 반드시 남나요?
잠깐, 답변을 보기 전에
먼저 내 말로 설명해 볼까요?
답변과 점검 포인트 펼치기답변 접기
구두 답변
정의를 외우기보다, 원리와 조건을 연결해 설명해 보세요.
원자적으로 보이는 이름 교체와 전원 장애 뒤의 내구성은 다릅니다. 파일 내용과 디렉터리 항목의 저장 순서·fsync 계약을 파일시스템과 플랫폼에 맞게 확인해야 합니다.
동작 원리와 전제
같은 파일시스템의 rename은 관찰자에게 옛 파일 또는 새 파일이 보이게 하는 데 유용할 수 있지만 메모리에만 있는 내용까지 내구화하지는 않습니다. 새 파일을 flush한 뒤 이름을 교체하고 필요하면 부모 디렉터리도 동기화하는 절차를 검토합니다.
선택과 실패 처리
파일 권한·소유자·링크와 교체 대상 버전도 확인합니다. 다른 파일시스템 사이 이동은 단일 rename 원자성과 다를 수 있습니다. 저장장치 캐시·OS·파일시스템 설정이 실제 보장을 바꾸므로 'write 성공'을 디스크 확정으로 보지 않습니다.
구체적인 사례와 검증
임시 파일의 내용이 디스크에 기록됐어도 rename한 새 이름의 디렉터리 항목이 안정적으로 남는지는 별도입니다. 목표 운영체제와 파일시스템의 권장 저장 순서를 확인하고 파일·디렉터리 동기화의 오류도 처리합니다. 원자 교체는 독자가 반쪽 파일을 보는 것을 줄이지만 마지막 전원 장애에서 옛 버전으로 돌아갈 가능성과는 다른 보장입니다. 체크섬·버전·manifest를 두면 재시작 때 유효한 파일을 선택하기 쉽습니다. 여러 파일을 하나의 논리 snapshot으로 제공한다면 완성된 집합을 가리키는 포인터를 마지막에 바꾸고 참조 중인 이전 집합은 안전하게 회수해야 합니다.
각 단계 직후 강제 중단에 준하는 시험으로 옛·새·부분 파일의 복구 결과를 확인합니다. 정상 종료만으로 crash durability를 증명하지 않습니다. 여러 파일을 함께 바꾸는 일은 단일 파일 교체보다 추가 로그·manifest·transaction 설계가 필요합니다.
득점 포인트
이해가 드러나는 지점을 확인해 보세요.
- 핵심 구분: 원자적으로 보이는 이름 교체와 전원 장애 뒤의 내구성은 다릅니다.
- 선택 조건: 파일 권한·소유자·링크와 교체 대상 버전도 확인합니다.
- 검증 기준: 각 단계 직후 강제 중단에 준하는 시험으로 옛·새·부분 파일의 복구 결과를 확인합니다.
감점 포인트
놓치기 쉬운 조건과 오해를 짚어 보세요.
- rename 성공이면 파일 내용과 이름이 모든 전원 장애에서 내구화됐다고 한다.
더 파고들 거리
하나 더 질문하며 이해의 범위를 넓혀 보세요.
- 새 파일을 부분 노출 없이 게시하면서 동시 writer와 내구성을 어떻게 따로 보호하나요?
- 성공 커밋의 내구 지점과 데이터 페이지 기록 시점은 왜 다르며 어떻게 복구하나요?
- 파일이 아니라 실제 서비스 복원으로 데이터 유실과 재개 시간을 어떻게 측정하나요?
득점·감점 포인트는 학습용 자기 점검 기준이며, 특정 회사의 실제 채점표가 아닙니다.
원리부터 공부하고 싶다면
답변을 보충하는 개념·예제·슈도코드를 읽어 보세요.