
Advanced Backups — Minecraft Java Edition 1.7.10 – 1.21.4
종속성: · 로더: Forge, NeoForge, Fabric, Quilt, Spigot, Paper · Minecraft 버전: 1.7.10 - 1.21.4 · 모드 버전: 3.7.1 Minecraft Java Edition의 기본 백업…
종속성: · 로더: Forge, NeoForge, Fabric, Quilt, Spigot, Paper · Minecraft 버전: 1.7.10 - 1.21.4 · 모드 버전: 3.7.1 Minecraft Java Edition의 기본 백업 메커니즘에는 심각한 제약이 있습니다. 바닐라 게임에서는 백업 생성을 메뉴를 통해 수동으로 수행하거나, 파일을 복사하기 위해 서버를 중지해야 합니다. 이러
종속성:
· 로더: Forge, NeoForge, Fabric, Quilt, Spigot, Paper
· Minecraft 버전: 1.7.10 - 1.21.4
· 모드 버전: 3.7.1
Minecraft Java Edition의 기본 백업 메커니즘에는 심각한 제약이 있습니다. 바닐라 게임에서는 백업 생성을 메뉴를 통해 수동으로 수행하거나, 파일을 복사하기 위해 서버를 중지해야 합니다. 이러한 작업은 게임의 메인 스레드에서 실행되므로, 수 기가바이트의 데이터를 디스크에 기록하는 동안 게임 진행이 멈추거나 랙이 발생하거나 서버가 일시적으로 사용 불가능한 상태가 됩니다. 또한 기본 방식은 월드의 전체 사본만 생성하므로, 중복된 데이터로 저장 장치가 빠르게 가득 찹니다. Advanced Backups 모드는 차분 및 증분 압축 모델을 지원하는 예약된 비동기 백업, 오래된 아카이브에 대한 유연한 정리, 그리고 데이터 복원을 위한 내장 유틸리티를 제공하여 이러한 문제를 해결합니다.
백업 메커니즘: Zip, Differential 및 Incremental
이 유틸리티는 월드 파일을 처리하는 세 가지 모드를 제공하며, 이들은 실행 속도, 사용되는 디스크 공간의 양, 복원의 신뢰성 사이의 균형을 결정합니다:
· Zip(전체 사본): 작동 원리는 전체 월드 폴더를 하나의 .zip 파일로 압축하는 것입니다. 이 방식은 가장 리소스를 많이 소모하며, 변경 여부와 관계없이 각 백업이 모든 파일을 포함하므로 저장 장치에 가장 많은 여유 공간을 필요로 합니다. 장점은 복원이 간단하다는 것으로, 필요한 파일의 압축을 풀기만 하면 됩니다.
· Differential(차분 백업): 하나의 전체 기준 아카이브("full")와 그 이후의 부분 아카이브("partial")를 생성하는 것에 기반합니다. 부분 아카이브에는 전체 기준 아카이브가 생성된 시점 이후 변경된 파일만 기록됩니다. 중간 백업의 용량이 상당히 줄어듭니다. 특정 시점의 월드 상태를 복원하려면 전체 기준 아카이브와 해당 날짜 직전의 마지막 부분 아카이브, 단 두 개의 파일만 있으면 됩니다.
· Incremental(증분 백업): 이 역시 전체 아카이브와 부분 아카이브의 개념을 사용합니다. 다만 각 부분 아카이브에는 직전의 마지막 부분 아카이브가 생성된 시점 이후 발생한 변경 사항만 포함됩니다. 이는 디스크 하위 시스템에 가해지는 부하를 최소화하고 최대한의 여유 공간을 절약합니다. 단점은 데이터 손실 위험이 높다는 점입니다. 증분 사본 체인에서 단 하나의 파일이라도 손상되면, 새로운 전체 백업이 생성될 때까지 이후의 사본들을 복원하는 것이 불가능합니다. 복원 과정 또한 가장 느린데, 전체 파일 체인을 순차적으로 병합해야 하기 때문입니다.
새로운 체인의 생성은 매개변수 config.advancedbackups.chains.length 및 config.advancedbackups.chains.maxpercent에 의해 조절됩니다. 첫 번째 매개변수는 새로운 전체 아카이브를 강제로 생성하기 전까지 체인에 포함될 수 있는 부분 사본의 최대 개수를 정의합니다. 두 번째 매개변수는 크기 검사를 수행합니다. 부분 아카이브에 누적된 변경 용량이 전체 아카이브 크기 대비 설정된 백분율을 초과하면, 시스템은 자동으로 체인을 초기화하고 새로운 전체 백업을 생성합니다.
자동 정리(Purging) 시스템 및 체인 작업
디스크가 가득 차는 것을 방지하기 위해, 모드에는 오래된 데이터를 자동으로 삭제하는 세 가지 기준이 구현되어 있습니다:
· 보관 일수 기준(config.advancedbackups.purge.days).
· 백업 폴더의 총 용량(기가바이트) 기준(config.advancedbackups.purge.size).
· 사본 파일의 총 개수 기준(config.advancedbackups.purge.count).
차분 또는 증분 사본을 사용할 때는 체인에서 개별 파일을 삭제하는 것이 불가능한데, 이렇게 하면 데이터 무결성이 손상되기 때문입니다. 모드는 전체 체인(chains) 단위로 동작합니다. 체인은 그 모든 구성 요소(전체 기준 백업과 연관된 모든 부분 아카이브 포함)가 정리 기준을 충족할 때에만 오래된 것으로 간주되어 삭제됩니다. 매개변수 config.advancedbackups.purge.incrementalchains를 사용하면 다른 정리 제한과 무관하게 시스템이 반드시 보관해야 하는 전체 체인의 최소 개수를 설정할 수 있습니다. 또한 사용자는 "snapshot(스냅샷)"을 생성할 수 있는데, 이는 자동 삭제로부터 보호되는 월드의 정적 사본입니다.
AdvancedBackups.properties 구성 파일 설정
백업 시스템의 작동 매개변수는 AdvancedBackups.properties 파일에 저장되며, 이 파일은 최초 실행 시 config 디렉터리에 생성됩니다. 주요 구성 키:
매개변수 | 기본값 | 설명 |
| true | 자동 백업 생성을 완전히 활성화(true) 또는 비활성화(false)할 수 있습니다. |
| true | 복사를 수행하기 전에 월드를 디스크에 강제로 저장할지 여부를 결정합니다. |
| true | 사본을 생성하는 동안 기본 자동 저장을 비활성화하고, 작업이 완료된 후 다시 활성화합니다. |
| 1048576 | 입출력 버퍼의 크기(바이트). RAM 한도를 초과하는 값은 OutOfMemoryError 충돌을 일으킬 수 있습니다. |
| false | 디스크 쓰기 캐시의 강제 비우기. 1.16 이전의 Minecraft 버전에서는 사용되지 않습니다. |
| true | 플레이어 활동 확인. 마지막 백업 이후 서버에 플레이어가 없었다면, 사본 생성을 건너뜁니다. |
| differential | 백업 유형. 가능한 값: zip(전체 사본), differential(차분 백업), incremental(증분 백업). |
| session.lock,*_old | 아카이브에 추가되지 않는 월드 폴더 내 파일을 위한 쉼표로 구분된 제외 목록(* 와 같은 마스크 허용). |
| ./backups | 완성된 백업이 저장되는 디렉터리 경로(상대 또는 절대). |
| 0.25 | 백업 사이에 허용되는 최소 간격(시간). 중복을 방지합니다. 0 — 비활성화. |
| 24.0 | 다른 성공한 사본이 없을 경우 그 이후 백업이 강제로 시작되는 최대 간격(시간). |
| true | 스케줄러의 기준: 서버 가동 시간 계산(true) 또는 운영 체제의 실제 천문 시간(false). |
| 1:00 | 사본 생성 간격 목록(예: 매시간 백업을 위한 1:00, 또는 정확한 실제 시각 04:00,16:00). |
| false | 서버를 중지하거나 종료할 때 월드 백업을 강제로 생성합니다. frequency.min 한도를 준수합니다. |
| false | 서버를 시작할 때 월드 백업을 생성합니다. frequency.min 한도를 준수합니다. |
| 30 | 서버를 켠 후 시작 백업이 실행되기까지의 지연 시간(초). 최솟값은 5초입니다. |
| ops | 게임 내 아카이브 작업 과정에 대한 toast 알림의 수신 대상 범주(ops — 운영자, all — 전체, none — 없음). |
| 500 | 진행 상황 패킷을 플레이어에게 전송하는 주기(밀리초). 값이 낮을수록 네트워크 부하가 증가합니다. |
| true | 상세한 백분율 아카이브 진행 상황을 서버 시스템 콘솔에 출력하도록 허용합니다. |
| 5000 | 백업 진행 상황을 콘솔에 기록하는 간격(밀리초). |
| 50.0 | 사본 폴더의 총 용량 한도(기가바이트). 초과 시 가장 오래된 사본이 삭제됩니다. 0 — 비활성화. |
| 0 | 백업 보관 기간(일). 더 오래된 것은 삭제됩니다. 0 — 비활성화. |
| 0 | 디스크에 허용되는 최대 사본 개수. 더 오래된 것은 삭제됩니다. 0 — 비활성화. |
| true | 용량 기준 정리 시 증분 체인 삭제를 허용합니다. false인 경우 증분 사본은 절대 정리되지 않습니다. |
| 1 | 정리가 어떤 경우에도 디스크에 반드시 남겨두어야 하는 증분 체인의 최소 개수. |
| 4 | ZIP 아카이브의 압축 수준(1부터 9까지). 값이 클수록 공간을 절약하지만 CPU에 부하를 줍니다. |
| 50 | 새로운 전체 아카이브를 생성하기 전까지의 부분 백업(차분/증분) 최대 개수. |
| true | 체인 내부의 전체 기준 사본과 그 이후의 중간 사본의 압축을 허용합니다. |
| true | 지능형 체인 초기화. 월드의 모든 파일이 변경된 경우, 사본은 자동으로 전체 사본이 됩니다. |
| 50.0 | 전체 대비 부분 백업의 크기 한도(백분율). 초과되면 완전한 백업이 생성됩니다. |
백업 관리 명령어
모드의 관리는 운영자 접근 수준을 요구하는 콘솔 명령어로 이루어집니다(명령어 옵션은 커맨드 블록과의 호환성 향상을 위해 권한 수준 요구 사항을 값 2로 낮추는 방식으로 3.7 버전에서 업데이트되었습니다):
· /backup start — 백업 과정을 비동기 모드로 시작합니다. 이 명령은 모든 일정, 최소 간격, 플레이어 활동 설정을 고려합니다.
· /backup force — 플레이어 활동 확인과 다음 시간 한도를 무시하고 복사 과정을 강제로 시작합니다: frequency.min.
· /backup snapshot <name> — 지정한 이름으로 snapshots 하위 폴더에 전체 백업(스냅샷)을 생성합니다. 이 아카이브는 오래된 백업의 자동 정리 시 고려되지 않으며 시스템에 의해 절대 자동으로 삭제되지 않습니다.
· /backup reload-config — 서버나 게임 클라이언트를 재시작할 필요 없이 AdvancedBackups.properties 파일에서 매개변수를 다시 불러옵니다. 2.2 이전 모드 버전에서는 이를 위해 대체 명령어인 /advancedbackups reload.
· /backup check — 스케줄러의 현재 상태를 분석하고 일정에 따른 다음 예약 백업까지 남은 시간에 대한 정보를 출력합니다.
· /backup reset — 현재 증분 또는 차분 사본 체인의 카운터를 초기화합니다. 다음 예약 백업 또는 수동으로 실행한 백업은 전체 아카이브("full")로 강제 생성됩니다.
명령어의 권한 수준을 값 2로 낮추면, 서버를 대신하여 콘솔 명령어를 호출하는 Command Blocks 및 서드파티 스케줄러 플러그인을 사용해 사본 생성을 자동화할 수 있습니다.
콘솔 복원 유틸리티(Command Line Restoration)
차분 및 증분 백업은 서로 연관된 수많은 변경 파일로 구성되어 있어, 이를 수동으로 복원하는 것은 복잡한 과정입니다. 이 작업을 해결하기 위해 모드의 JAR 파일에는 전용 콘솔 유틸리티가 내장되어 있습니다.
사본을 처음 생성할 때 모드는 백업이 있는 디렉터리에 보조 스크립트를 자동으로 생성합니다:
· restore-bootstrap.bat Windows 운영 체제용.
· restore-bootstrap.sh Linux 및 macOS 운영 체제용.
이 스크립트들은 JAR 파일에 내장된 복원 마법사를 실행합니다. 터미널을 통해 복원 인터페이스를 수동으로 실행하려면 다음 명령어를 사용합니다:
|
(JAR 파일 이름은 설치된 모드의 버전과 정확히 일치해야 합니다).
유틸리티의 콘솔 인터페이스는 대화형 모드로 작동합니다:
1. 사용 가능한 체인과 스냅샷을 분석하기 위한 백업 폴더 스캔 시작.
2. 날짜, 시각, 사본 유형(Full, Diff, Inc)을 표시한 사용 가능한 복원 지점 목록 표시.
3. 선택한 아카이브의 체인 무결성 검사. 증분 사본인 경우, 유틸리티는 전체 기준 백업부터 선택한 지점까지 모든 중간 부분이 존재하는지 자동으로 확인합니다.
4. 압축 해제를 위한 대상 폴더 요청. 유틸리티는 파일을 순차적으로 병합하고 교체하여, 선택한 사본이 생성된 시점의 월드 상태를 정확하게 재구성합니다.
복원을 시작하기 전에 Minecraft 서버를 완전히 중지해야 합니다. 실행 중인 서버에서 파일을 복원하려고 하면 월드 데이터베이스와 영역 파일(.mca)이 손상됩니다.
여러 플랫폼에서의 동작 특성 및 최적화
모드는 선택한 설치 플랫폼에 따라 아키텍처적 차이가 있습니다:
· 클라이언트 측 toast 알림: 백업 생성의 시작과 완료에 대한 시각적 팝업 알림은 바닐라 toast 시스템을 통해 구현됩니다. 이를 클라이언트 측에서 표시하려면 호환되는 모드(Forge, NeoForge 또는 Fabric)가 설치되어 있어야 합니다. Spigot 또는 Paper 서버에서 모드를 사용할 경우, 모드가 설치되지 않은 클라이언트는 시각적 알림을 보지 못하며, 로깅 설정이 허용하는 경우 채팅에서 일반 텍스트 메시지만 받게 됩니다.
· 버전 1.7.10: 게임 엔진의 구버전이 가진 기술적 제약으로 인해, Minecraft 1.7.10용 모드 버전은 그래픽 toast 알림 시스템을 지원하지 않습니다. 대신 복사 진행 상황이 게임 화면 위에 단순한 텍스트 오버레이 형태로 직접 표시됩니다.
· RAM 할당 제어: 비동기 압축 작업은 JVM에서 메모리 버퍼 할당을 필요로 합니다. RAM 용량이 제한적인 서버(예: 2-4 GB)에서 매개변수 config.advancedbackups.buffer의 크기를 너무 크게(10-20 MB 초과) 설정하고 압축 수준 config.advancedbackups.zips.compression을 높게(수준 8-9) 설정하면, 힙 오버플로(JVM Heap)가 발생하고 서버가 OutOfMemoryError 오류와 함께 비정상적으로 종료될 수 있습니다. 리소스가 제한된 서버에서 안정적으로 작동하려면 기본 버퍼 크기인 1 MB와 4 이하의 압축 수준을 유지하는 것이 권장됩니다.
결론
Advanced Backups는 Minecraft Java Edition에서 게임 월드의 보존을 보장하기 위한 종합적인 도구 솔루션입니다. Simple Backups와 같은 단순한 대안이나 바닐라 도구와 달리, 이 모드는 증분 체인을 활용하여 최소한의 디스크 공간 소모로 완전한 백업 전략을 구축할 수 있게 해 줍니다. 이 모드의 주요 제약은 아카이브를 외부 저장소(예: 모드에서 직접 Google Drive나 FTP 서버로)에 자동으로 업로드하는 내장 클라우드 공급자가 없다는 점이며, 이로 인해 ./backups 폴더를 동기화하기 위한 외부 스크립트 설정이 필요합니다. 이 모드는 게임 진행을 중단하지 않고 데이터 손실로부터의 보호를 보장하는 것이 매우 중요한 중간 규모의 공개 및 비공개 서버에 설치할 것을 권장합니다.
설치
일반적인 설치는 약 5 분 정도 걸려요. 과정은 동일하고, Loader 와 그에 맞는 빌드만 달라요.
- 1Stop your Minecraft server.
- 2Drop the plugin .jar into the server /plugins folder.
- 3Start the server once so the plugin generates its config files.
- 4Edit /plugins/<name>/config.yml as needed, then run /reload confirm or restart.








