드디어 Rust의 꽃이라고 불리는 **'구조체'**에 대해 배울 시간이 왔네요. 처음 보는 단어라고 겁먹지 마세요. 제가 아주 쉽게 설명해 드릴게요!
---
지금까지 우리는 이름 따로, 나이 따로 변수를 만들어 사용했어요. 하지만 만약 우리가 게임 캐릭터의 정보를 저장해야 한다면 어떨까요? 이름, 레벨, 체력... 이 정보들이 여기저기 흩어져 있으면 관리하기 힘들겠죠?
이때 사용하는 것이 바로 **구조체(Struct, 여러 종류의 데이터를 하나로 묶어 놓은 바구니)**입니다.
* **구조체 정의:** 붕어빵을 만들기 위한 **'붕어빵 틀'**을 설계하는 것과 같아요. "우리 붕어빵에는 팥이 들어가고, 크기는 이만해!"라고 정하는 거죠.
**인스턴스 생성:** 그 틀에 반죽을 부어 **'진짜 붕어빵'**을 직접 만들어내는 과정이에요.
---
먼저, 어떤 데이터들을 묶을지 Rust에게 알려줘야 해요. `struct`라는 키워드를 사용합니다.
struct Character { // Character라는 이름의 구조체(설계도)를 만들겠다고 선언해요
name: String, // name이라는 이름의 필드(구조체 안에 담길 항목)는 문자열 타입이에요
level: u32, // level이라는 이름의 필드는 양수 형태의 숫자 타입이에요
}
---
설계도를 그렸으니, 이제 이 설계도를 바탕으로 실제 캐릭터를 하나 만들어 볼까요? 이것을 **인스턴스(Instance, 설계도를 바탕으로 실제로 메모리에 만들어진 실체)**라고 부릅니다.
fn main() {
// 'my_hero'라는 이름의 인스턴스(실제 데이터)를 생성해요
let my_hero = Character {
name: String::from("러스트맨"), // name 필드에 "러스트맨"이라는 값을 넣어요
level: 1, // level 필드에 1이라는 값을 넣어요
}; // 세미콜론으로 마무리를 해줍니다
}
--
1. **구조체 정의**: `struct 이름 { 필드명: 타입 }` 형태로 설계도를 그립니다.
2. **인스턴스 생성**: `let 변수명 = 구조체이름 { 필드명: 값 }` 형태로 실제 물건을 만듭니다.
어때요? 생각보다 복잡하지 않죠? 구조체를 사용하면 관련된 데이터들을 한데 모아 깔끔하게 관리할 수 있답니다. 여러분은 방금 Rust에서 데이터를 아주 우아하게 다루는 첫걸음을 떼신 거예요!
| 54. 튜플 구조체 활용하기 (0) | 2026.10.06 |
|---|---|
| 53. 필드 초기화 축약법 (0) | 2026.10.01 |
| 51. 구조체란 무엇인가? (0) | 2026.10.01 |
| 50. 따라하며 배우기: 단어 개수 세기 (0) | 2026.09.28 |
| 49. 소유권 개념 총정리 퀴즈 (0) | 2026.09.28 |