리뷰: ⭐ "게임 재밌었는데 데이터 날아가서 삭제함. 환불해주세요."
개발자의 악몽. 저장 시스템 버그. 앱스토어 리뷰 폭탄의 1순위 원인.
"PlayerPrefs만 쓰면 되는 거 아니에요? → 이거 쓰다가 다 망합니다."
PlayerPrefs는 간단하지만 한계가 명확하다. 대용량 데이터 처리 불가, 보안 취약, 플랫폼 이동 시 손실 위험.
Rookiss 강사님이 넥슨, 크래프톤 프로젝트에서 검증된 저장 시스템 설계법을 알려준다.
간단한 키-값 저장. 초기 프로토타입용.
장점
구현 쉬움, 즉시 사용 가능
단점
대용량 불가, 보안 취약, 타입 제한
적합한 용도: 튜토리얼 완료 여부, 설정값, 간단한 플래그
유연한 데이터 구조. 중소형 게임 표준.
장점
구조화된 데이터, 백업 용이, 디버깅 쉬움
단점
암호화 필수, 파일 경로 관리 필요
적합한 용도: 플레이어 인벤토리, 퀘스트 진행도, 게임 세이브
서버 연동. 대규모 게임 필수.
장점
기기 변경 동기화, 해킹 방지, 분석 가능
단점
서버 구축 필요, 네트워크 의존
적합한 용도: 랭킹, 멀티플레이 데이터, 크로스 플랫폼
실제 강의에서 만드는 AI 활용 클리커 게임
[System.Serializable]
public class SaveData {
public int gold;
public int level;
public List<Item> inventory;
}string json = JsonUtility.ToJson(saveData);
string encrypted = Encrypt(json);
File.WriteAllText(savePath, encrypted);string encrypted = File.ReadAllText(savePath);
string json = Decrypt(encrypted);
SaveData data = JsonUtility.FromJson<SaveData>(json);중요한 이벤트마다 자동 저장
예: 레벨업, 아이템 획득, 결제 완료 시
최근 3개 세이브 파일 유지
예: save.json, save_backup1.json, save_backup2.json
불러온 데이터 유효성 체크
예: 골드 < 0, 레벨 > 999 등 이상치 필터링
세이브 파일 조작 방지
예: AES 암호화 또는 난독화 적용
세이브 데이터 버전 호환성
예: v1.0 데이터를 v2.0에서도 읽을 수 있게
저장 실패 시 재시도 로직
예: 최대 3회 재시도 + 사용자 알림
"Unity C#으로 JSON 기반 저장 시스템 만들어줘.
필요한 기능:
- SaveData 클래스 (골드, 레벨, 인벤토리)
- SaveManager 싱글톤 클래스
- 자동 저장 (3분마다)
- 암호화/복호화 함수
- 백업 파일 3개 관리
- 불러오기 실패 시 기본값 반환"이 프롬프트로 AI가 SaveManager.cs, EncryptionHelper.cs, BackupManager.cs를 한 번에 생성.
강의에서는 50개 이상의 저장 시스템 프롬프트 + 검증된 코드 템플릿 제공.
왜 문제? 디스크 I/O 과부하로 게임 렉 발생
✅ 해결법: 3~5분 간격 자동 저장 + 중요 이벤트 시에만 즉시 저장
왜 문제? 유저가 메모장으로 골드 999999999 조작 가능
✅ 해결법: 최소한 Base64 인코딩 또는 AES 암호화 적용
왜 문제? 잘못된 경로에 저장해서 OS가 파일 삭제
✅ 해결법: Unity 권장 경로 사용 필수
왜 문제? 저장 중 앱 종료 시 파일 손상 → 데이터 전부 손실
✅ 해결법: 임시 파일에 먼저 쓰고 검증 후 원본 파일 교체
PlayerPrefs, JSON, 클라우드 저장 완전 정복
암호화/복호화 보안 시스템 구현
자동 저장 + 백업 시스템 설계
크로스 플랫폼 데이터 동기화
AI로 저장 시스템 자동 생성
실전 디버깅 및 에러 처리
"PlayerPrefs만 쓰다가 데이터 날아가서 악플 받았는데, 강의 보고 JSON 시스템으로 갈아탔어요. 이제 백업까지 되니까 안심이에요."
"AI 프롬프트로 저장 시스템 코드 뽑아내는 거 진짜 신세계. 3일 걸릴 거 2시간 만에 끝냈습니다."