본문 바로가기
끄적/개발일기

SAFE EDIT 개발 일기 ⑤

by iwbap 2025. 12. 20.
728x90
반응형

자동 저장 / 복구 (2025-10-05)

현장에서 SAFE EDIT를 실제로 쓰는 걸 보다 보니까, 제일 자주 터지는 문제는 프로그램 버그가 아니었다.
대부분은 사용자 실수였음.

저장 안 하고 닫아버리거나, 기존 파일을 잘못 덮어쓰거나, 작업 도중 프로그램이 강제로 종료되는 상황이 생각보다 많았다.
이런 상황에서 데이터가 한 번 날아가면 툴에 대한 신뢰도도 같이 떨어진다.
“아무리 좋아도 다시 쓰기 싫다”는 말이 나오기 딱 좋은 지점임.

그래서 이 시점부터는 “사용자는 반드시 실수한다”는 전제를 깔고 기능을 설계하기로 했다.
자동 저장이랑 복구 기능은 선택이 아니라 필수라고 판단했음.

우선 자동 저장 매니저를 따로 만들었다.
단순히 일정 시간마다 무조건 저장하는 방식은 피하고 싶었다.
괜히 쓸데없는 파일만 늘어날 수도 있고, 원하지 않는 상태가 저장되는 것도 위험했음.

그래서 파일이 실제로 수정됐는지를 먼저 판단하도록 구조를 잡았다.
에디터에서 텍스트 변경 이벤트를 감지해서 “저장되지 않은 변경 사항이 있는 상태”를 내부적으로 체크함.
이 상태에서 창을 닫거나, 다른 파일을 열려고 하면 저장 여부를 묻는 흐름이 자연스럽게 이어지도록 했다.

자동 저장도 같은 기준을 사용했다.
변경 사항이 없으면 굳이 저장하지 않고, 실제로 수정이 발생했을 때만
백업 성격의 자동 저장 파일을 남기도록 처리했음.
이렇게 하니까 자동 저장 파일이 남발되는 문제도 줄어들었다.

프로그램 재실행 시에는 이전에 자동 저장된 파일이 있는지 먼저 확인하고, 있다면 복구할지 여부를 묻는 다이얼로그를 띄웠다.
이때 단순히 파일 내용만 복구하는 게 아니라, 검색 상태나 편집 중이던 커서 위치도 가능한 범위 내에서 같이 복구하도록 처리함.

이 기능이 들어가고 나니까 확실히 안정감이 달라졌다.
완벽하진 않지만, 실수했을 때 다시 돌아올 수 있는 길은 만들어졌다는 느낌이 들었음.

개인적으로도 꽤 만족스러운 작업이었다.

728x90
반응형

'끄적 > 개발일기' 카테고리의 다른 글

SAFE EDIT 개발 일기 ⑦  (0) 2025.12.20
SAFE EDIT 개발 일기 ⑥  (0) 2025.12.20
SAFE EDIT 개발 일기 ④  (0) 2025.12.19
SAFE EDIT 개발 일기 ③  (0) 2025.12.18
SAFE EDIT 개발 일기 ②  (0) 2025.12.16