C# 개발 공부 4일

규수·2026년 2월 26일

개발 공부 일지

목록 보기
4/44

오늘은 동일한 타입의 데이터를 효율적으로 묶어서 관리할 수 있는 배열(Array)에 대해 정리해 보겠습니다. 유니티 개발에서 인벤토리 슬롯이나 스테이지 정보처럼 고정된 데이터를 다룰 때 필수적인 개념입니다.

1) 배열(Array)의 개념과 특징

배열은 메모리 공간에 데이터를 연속적으로 나열하여 고정시켜 놓고 사용하는 자료구조입니다. 가장 큰 특징은 한 번 크기를 정하면 나중에 늘리거나 줄일 수 없다는 점입니다.

배열 안의 각 칸을 요소(Element)라고 부르며, 각 칸에는 타입별로 기본값이 자동으로 들어갑니다.

ex) 타입별 기본값 설정

int 배열 = 0
float 배열 = 0f
bool  배열 = false
string 배열 = null

2) 인덱스(Index) 규칙과 접근

배열은 번호표인 인덱스를 통해 데이터에 접근합니다. 여기서 주의할 점은 숫자가 1이 아닌 0부터 시작한다는 것입니다.

첫 번째 칸: 인덱스 0 

마지막 칸: 배열 길이(Length) - 1 

접근 방식: 배열이름[인덱스] 형태 

자주 하는 실수 중 하나가 마지막 요소에 접근할 때 arr[arr.Length]라고 쓰는 것인데, 인덱스는 0부터 시작하므로 반드시 arr[arr.Length - 1]로 접근해야 에러를 방지할 수 있습니다.

3) 배열의 선언과 초기화

배열을 만드는 방법은 크게 두 가지가 있습니다.

  1. 크기만 지정하기: new 타입[길이]를 사용하여 칸의 개수를 고정합니다.

  2. 값으로 바로 만들기: 중괄호 {} 안에 초기값을 넣어 선언과 동시에 값을 채웁니다.

// 1. 크기만 지정하여 선언 (내부는 기본값인 0으로 채워짐)
int[] scores = new int[5];

// 2. 선언과 동시에 중괄호를 이용해 초기값 할당 (칸 개수는 자동으로 3개가 됨)
string[] monsters = { "슬라임", "고블린", "오크" };

// 3. 선언 후 나중에 새로운 배열 객체를 할당하는 경우
float[] speeds;
speeds = new float[] { 1.5f, 2.0f, 3.5f };

4) 데이터 수정 패턴

배열의 값을 수정할 때는 크게 세 가지 패턴이 자주 쓰입니다.

  1. 덮어쓰기: 특정 인덱스에 새로운 값을 대입합니다 (예: 인벤토리 아이템 교체).

  2. 누적: 기존 값에 숫자를 더합니다 (예: 스테이지 점수 합산).

  3. 토글(반전): bool 값을 반대로 바꿉니다 (예: 퀘스트 클리어 여부 스위치).

5) 예시: 인벤토리 확인 및 아이템 획득

using UnityEngine;

public class MyInventory : MonoBehaviour
{
    // 크기가 5인 문자열 배열 선언
    string[] inventory = new string[5];
    
    // 초기 아이템 목록
    string[] fieldItems = { "물약", "녹슨 검", "금화" };

    void Start()
    {
        // 1. 배열 초기화 (모든 슬롯을 비어있음으로 설정)
        for (int i = 0; i < inventory.Length; i++)
        {
            inventory[i] = "비어있음";
        }

        // 2. 특정 인덱스에 데이터 쓰기 (덮어쓰기 패턴)
        inventory[0] = fieldItems[0]; // 0번 슬롯에 물약 넣기
        
        // 3. 배열 순회하며 출력 (읽기)
        Debug.Log("--- 현재 인벤토리 상태 ---");
        for (int i = 0; i < inventory.Length; i++)
        {
            // 인덱스는 0부터지만 사용자에게는 1번부터 보여주기 위해
            Debug.Log((i + 1) + "번 슬롯: " + inventory[i]);
        }
    }
}

오늘은 데이터를 묶음으로 관리하는 배열의 기초를 배웠습니다.
배열은 고정된 크기를 가지며 인덱스가 0부터 시작한다는 점이 핵심입니다. 강사님이 익숙해지면 숫자를 0부터 세게 될거라고 했는데 그만큼 익숙해질 수 있도록 복습을 자주해겠다고 느꼈습니다 ㅎㅎ

0개의 댓글