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

SAFE EDIT 개발 일기 ⑧

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

업데이트 시스템 구현 시작 (2025-10-18)

이날부터 자동 업데이트 기능을 실제로 구현하기 시작했다.
개념 자체는 단순하게 생각했음.

"서버에 있는 파일이랑 로컬 파일 비교해서 달라진 것만 바꾸면 되지 않을까?” 정도였다.

근데 막상 손대보니까 이건 단순한 기능 추가가 아니라 아예 하나의 시스템을 만드는 작업에 가까웠음.

우선 서버 쪽에서 “이번 버전에 뭐가 바뀌었는지”를 알려줄 방법이 필요했다.
그래서 제일 먼저 떠올린 게 manifest 파일이었다.
각 파일의 이름, 크기, 해시값 같은 정보를 모아서 서버에 하나의 메타데이터로 올리는 구조를 만들었음.

로컬에서는 이 manifest를 받아서 현재 설치된 파일들과 하나씩 비교하도록 했다.
여기까지는 생각보다 수월했는데, 문제는 비교 결과를 어떻게 처리하느냐였다.

파일 하나만 잘못 판단해도 정상 파일이 덮어씌워지거나, 필요한 파일이 삭제되는 상황이 나올 수 있었음.
특히 업데이트 도중에 오류가 나면 프로그램 자체가 실행 불가능해질 위험도 있었다.

그래서 “전체 파일 교체” 같은 방식은 처음부터 제외했다.
대신 변경된 파일만 정확하게 집어내서 그 파일만 업데이트하는 쪽으로 방향을 잡았음.
이 로직을 만드는 데 생각보다 시간이 많이 들었다.
비교 기준을 바꿔가면서 여러 번 테스트를 반복함.

업데이트 도중 문제가 생겼을 때를 대비해서 백업 구조도 같이 설계했다.
기존 파일을 그대로 덮어쓰는 방식은 너무 위험하다고 판단했음.
그래서 업데이트를 시작하기 전에 변경 대상 파일만 따로 백업하도록 했다.
이렇게 하면 문제가 생겼을 때 최소한 원래 상태로 되돌아갈 수 있음.

이날 작업하면서 느낀 건, 자동 업데이트는 단순히 “편의 기능”이 아니라 프로그램의 생존성과 직결된 시스템이라는 거였다.
한 번 잘못 만들면 사용자 PC에서 프로그램 하나를 망가뜨릴 수도 있음.

그래서 이 시점부터는 “일단 된다”보다 “절대 망가지면 안 된다”를 기준으로 업데이트 로직을 계속 다듬게 됐다.

이날은 코드도 많이 썼지만, 그보다 더 많은 시간을 생각하고, 지우고, 다시 설계하는 데 쓴 하루였음.

728x90
반응형

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

SAFE EDIT 개발 일기 ⑩  (0) 2025.12.23
SAFE EDIT 개발 일기 ⑨  (0) 2025.12.22
SAFE EDIT 개발 일기 ⑦  (0) 2025.12.20
SAFE EDIT 개발 일기 ⑥  (0) 2025.12.20
SAFE EDIT 개발 일기 ⑤  (0) 2025.12.20