상세 컨텐츠

본문 제목

58. 열거형에 데이터 저장하기

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

by 러스트코리아 2026. 10. 13. 08:07

본문

반응형

 

 

https://rustkorea.kr

 

Rust Korea

한국 Rust 생태계의 단일 진실 공급원

rustkorea.kr

 

https://open.kakao.com/o/gZgpiXOi

 

러스트코리아(RustKorea) - @rustkorea

 

open.kakao.com

 

러스트코리아 사이트를 오픈하였습니다. 카카오톡 오픈채팅방도 열어두었습니다

저도 러스트를 잘 모르지만 같이 공부하거나 러스트를 사랑하는 분들이 많이 이용해주시면 하고 많은 내용을 같이 공유했으면 합니다.

AI  및 Vibe Coding까지 모두 러스트를 통해서 만들어 보아요

 

 

오늘 배울 내용은 **'열거형(Enum)에 데이터 저장하기'**입니다.

---

### 1. 비유로 이해하기: "마법의 선물 상자" 🎁

 

지금까지 우리가 배운 '열거형'이 단순히 **"빨강, 파랑, 노랑 중 하나를 골라!"** 하는 선택지였다면, 오늘 배울 내용은 **"각 선택지 안에 진짜 물건을 담는 법"**이에요.

 

비유를 들어볼까요? 여러분에게 **'마법의 선물 상자'**가 있다고 상상해 보세요. 이 상자는 세 가지 형태 중 하나로 변신할 수 있습니다.

1. **편지 형태**: 안에는 '종이 편지' 내용이 들어있어요.

2. **택배 형태**: 안에는 '물건의 무게'와 '이름'이 들어있어요.

3. **빈 상자 형태**: 아무것도 들어있지 않아요.

 

중요한 건, 이 모든 것이 **'선물 상자'**라는 하나의 카테고리 안에 있다는 점이에요. 러스트의 열거형은 이렇게 **상태에 따라 서로 다른 종류의 데이터를 품을 수 있답니다.**

 

---

 

### 2. 전문 용어 쉽게 풀이하기

 

본격적으로 코드를 보기 전에, 몇 가지 용어만 짚고 넘어갈게요!

 

* **열거형(Enum):** 여러 개의 선택지(변종) 중 하나를 가질 수 있는 특별한 타입(종류)이에요.

* **변종(Variant):** 열거형 안에 정의된 각각의 선택지들을 말해요.

* **데이터 타입(Data Type):** 숫자인지, 글자인지 등 데이터의 성격을 말해요.

 

---

### 3. 코드 예제로 확인하기

 

💻 자, 이제 위에서 말한 '선물 상자'를 러스트 코드로 만들어볼까요? 아주 짧고 핵심만 담았습니다.

 

// 'Gift'라는 이름의 열거형을 만듭니다.
enum Gift {
    Empty,                      // 데이터가 없는 빈 상자
    Letter(String),             // 글자(String) 데이터를 담는 편지
    Package { weight: i32 },    // 숫자(i32) 데이터를 이름표(weight)와 함께 담는 택배
}

fn main() {
    // 1. 편지 형태의 선물을 만들고 "사랑해"라는 글자를 넣어요.
    let my_gift = Gift::Letter(String::from("사랑해")); 

    // 2. 택배 형태의 선물을 만들고 무게를 10으로 정해요.
    let my_package = Gift::Package { weight: 10 }; 
}

 

---

### 4. 왜 이렇게 쓰나요?

 

그냥 변수(데이터를 담는 바구니)를 여러 개 만들면 안 되냐고요?

 

열거형에 데이터를 저장하면 **"이 데이터들은 모두 '선물'이라는 하나의 목적을 위해 존재해!"**라고 컴퓨터에게 명확하게 알려줄 수 있어요. 덕분에 코드가 훨씬 깔끔해지고, 나중에 길을 잃지 않게 도와준답니다.

 

### 🌟 응원의 한 마디!

 

열거형 안에 데이터를 넣는다는 개념은 처음엔 조금 낯설 수 있어요. 하지만 **"상황에 따라 내용물이 바뀌는 똑똑한 주머니"**라고 생각하면 훨씬 편안해질 거예요.

반응형

관련글 더보기