Unity_본캠프

[내일배움캠프 56일차] PlayerPrefs와 Json저장의 차이

티백고래 2025. 6. 27. 22:07

1. 오늘의 안건

PlayerPrefs와 Json의 저장 차이는 무엇인가?

나는 무엇을 선택해야 하는가?

 

2. 결정 단계 

2-1. 발단

현재 획득한 캐릭터들을 아래와 같이 저장하고 있다.

    // 획득한 캐릭터 저장
    private void SaveAcquiredCharacters()
    {
        var saveStr = string.Join(",", acquiredCharacterIDs);
        PlayerPrefs.SetString("AcquiredCharacters", saveStr);
        PlayerPrefs.Save();
    }

보시다시피, PlayerPrefs를 이용하고 있다. PlayerPrefs는 아주 간단하고, 단순한 형태로 저장할 수 있으며, 사용하기도 (엄청) 편하다.

다만 위에서 보다시피 데이터에서 세이브하는 건 String의 형태로 저장하는 것. 저장할 수 있는 값은 int, float, string 정도가 최선이다.

지금 구조를 이야기하자면, 실질적으로는 AcquiredCharacters의 Char_01 과 같은 캐릭터 ID만 저장하여 이후 데이터에서 같은 아이디 값을 가진 정보를 찾아오는 식으로 불러오고 있다.

 

2-2. 전개

하지만 위의 방식에는 문제가 있다. 저장한 값을 가지고는 있는데, 외부 강화를 이용한 Level등의 중간에 추가된 정보값은 들고오지 못한다는 점이다. 

@: Level은 int값이잖아?
A: 그렇지만 SO는 기본 데이터값이며 Level은 Character.cs에서 따로 관리되고 있는 편이지...

 

목표: 안전하게 Character의 데이터를 저장하고 꺼내와서 불러올 수 있게 하자!