개발/유니티

미션과 그에 대한 설명이 필요할때: 사전 vs 클래스

kimchangmin02 2025. 9. 7. 10:48

데이터 구조에 대한 답변: 사전(Dictionary) vs 클래스(Class)

언급하신 대로, 이름과 설명을 연결해야 합니다. 이 문제를 해결하는 방법은 몇 가지가 있지만, 유니티 개발 환경에서는 '클래스(Class)'를 활용하는 것이 압도적으로 좋은 방법입니다.

1. 왜 사전(Dictionary)은 최선이 아닐까?
Dictionary<string, string> (이름, 설명) 구조는 이름과 설명을 짝지을 수는 있습니다. 하지만 여기에 에너지 레벨, 요구 장소 같은 추가 정보를 넣으려면 구조가 매우 복잡해지고 관리하기 어려워집니다.

2. 가장 이상적인 방법: '미션 클래스(Class)' 활용하기
이전 기획에서 제안했던 '미션 카드' 개념을 코드로 구현하는 것입니다. 미션 하나에 대한 모든 정보를 담는 하나의 '설계도(Class)'를 만드는 방식입니다.

C# (유니티) 에서의 클래스 구조 예시 (코드가 아닌 개념 설명)

Code
 
// 이런 설계도를 하나 만듭니다.
public class MissionData
{
    public string missionName;       // 미션 이름 (예: "팔굽혀펴기 5회")
    public string missionDescription;  // 상세 설명 (예: "바닥에 엎드려...")
    public EnergyLevel energy;       // 에너지 레벨 (최소, 보통, 높음)
    // 필요하다면 다른 속성도 추가 가능
    // public int durationInSeconds; (미션 수행 시간)
}

이렇게 설계도를 만든 뒤, 이 설계도를 바탕으로 각각의 미션 '객체'를 만들어 하나의 리스트에 모두 담는 것입니다.

List<MissionData> totalMissionDeck;

이 리스트 하나만 있으면, 각 미션의 이름, 설명, 에너지 레벨 등 모든 정보에 한 번에 접근할 수 있습니다. 데이터를 관리하기 매우 쉬워지고, 실수를 줄일 수 있으며, 나중에 기능을 확장하기에도 훨씬 유리합니다.