상세 컨텐츠

본문 제목

52. 구조체 정의와 인스턴스 생성

RUST 온보딩/러스트를 배우고 만들자_초보자

by 러스트코리아 2026. 10. 1. 08:31

본문

반응형

드디어 Rust의 꽃이라고 불리는 **'구조체'**에 대해 배울 시간이 왔네요. 처음 보는 단어라고 겁먹지 마세요. 제가 아주 쉽게 설명해 드릴게요!

---

### 1. 구조체란 무엇일까요? (비유로 이해하기)

 

지금까지 우리는 이름 따로, 나이 따로 변수를 만들어 사용했어요. 하지만 만약 우리가 게임 캐릭터의 정보를 저장해야 한다면 어떨까요? 이름, 레벨, 체력... 이 정보들이 여기저기 흩어져 있으면 관리하기 힘들겠죠?

 

이때 사용하는 것이 바로 **구조체(Struct, 여러 종류의 데이터를 하나로 묶어 놓은 바구니)**입니다.

 

* **구조체 정의:** 붕어빵을 만들기 위한 **'붕어빵 틀'**을 설계하는 것과 같아요. "우리 붕어빵에는 팥이 들어가고, 크기는 이만해!"라고 정하는 거죠. 

**인스턴스 생성:** 그 틀에 반죽을 부어 **'진짜 붕어빵'**을 직접 만들어내는 과정이에요.

 

---

### 2. 구조체 정의하기 (설계도 그리기)

 

먼저, 어떤 데이터들을 묶을지 Rust에게 알려줘야 해요. `struct`라는 키워드를 사용합니다.

struct Character { // Character라는 이름의 구조체(설계도)를 만들겠다고 선언해요
    name: String,  // name이라는 이름의 필드(구조체 안에 담길 항목)는 문자열 타입이에요
    level: u32,    // level이라는 이름의 필드는 양수 형태의 숫자 타입이에요
}

 

---

### 3. 인스턴스 생성하기 (실제로 만들기)

 

설계도를 그렸으니, 이제 이 설계도를 바탕으로 실제 캐릭터를 하나 만들어 볼까요? 이것을 **인스턴스(Instance, 설계도를 바탕으로 실제로 메모리에 만들어진 실체)**라고 부릅니다.

fn main() {
    // 'my_hero'라는 이름의 인스턴스(실제 데이터)를 생성해요
    let my_hero = Character { 
        name: String::from("러스트맨"), // name 필드에 "러스트맨"이라는 값을 넣어요
        level: 1,                      // level 필드에 1이라는 값을 넣어요
    }; // 세미콜론으로 마무리를 해줍니다
}

 

--

### 💡 정리해볼까요?

1. **구조체 정의**: `struct 이름 { 필드명: 타입 }` 형태로 설계도를 그립니다.

2. **인스턴스 생성**: `let 변수명 = 구조체이름 { 필드명: 값 }` 형태로 실제 물건을 만듭니다.

 

어때요? 생각보다 복잡하지 않죠? 구조체를 사용하면 관련된 데이터들을 한데 모아 깔끔하게 관리할 수 있답니다. 여러분은 방금 Rust에서 데이터를 아주 우아하게 다루는 첫걸음을 떼신 거예요!

반응형

관련글 더보기