Rust Korea
한국 Rust 생태계의 단일 진실 공급원
rustkorea.kr
https://open.kakao.com/o/gZgpiXOi
러스트코리아(RustKorea) - @rustkorea
open.kakao.com
러스트코리아 사이트를 오픈하였습니다. 카카오톡 오픈채팅방도 열어두었습니다
저도 러스트를 잘 모르지만 같이 공부하거나 러스트를 사랑하는 분들이 많이 이용해주시면 하고 많은 내용을 같이 공유했으면 합니다.
AI 및 Vibe Coding까지 모두 러스트를 통해서 만들어 보아요
오늘 배울 내용은 **'열거형(Enum)에 데이터 저장하기'**입니다.
---
지금까지 우리가 배운 '열거형'이 단순히 **"빨강, 파랑, 노랑 중 하나를 골라!"** 하는 선택지였다면, 오늘 배울 내용은 **"각 선택지 안에 진짜 물건을 담는 법"**이에요.
비유를 들어볼까요? 여러분에게 **'마법의 선물 상자'**가 있다고 상상해 보세요. 이 상자는 세 가지 형태 중 하나로 변신할 수 있습니다.
1. **편지 형태**: 안에는 '종이 편지' 내용이 들어있어요.
2. **택배 형태**: 안에는 '물건의 무게'와 '이름'이 들어있어요.
3. **빈 상자 형태**: 아무것도 들어있지 않아요.
중요한 건, 이 모든 것이 **'선물 상자'**라는 하나의 카테고리 안에 있다는 점이에요. 러스트의 열거형은 이렇게 **상태에 따라 서로 다른 종류의 데이터를 품을 수 있답니다.**
---
본격적으로 코드를 보기 전에, 몇 가지 용어만 짚고 넘어갈게요!
* **열거형(Enum):** 여러 개의 선택지(변종) 중 하나를 가질 수 있는 특별한 타입(종류)이에요.
* **변종(Variant):** 열거형 안에 정의된 각각의 선택지들을 말해요.
* **데이터 타입(Data Type):** 숫자인지, 글자인지 등 데이터의 성격을 말해요.
---
💻 자, 이제 위에서 말한 '선물 상자'를 러스트 코드로 만들어볼까요? 아주 짧고 핵심만 담았습니다.
// '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 };
}
---
그냥 변수(데이터를 담는 바구니)를 여러 개 만들면 안 되냐고요?
열거형에 데이터를 저장하면 **"이 데이터들은 모두 '선물'이라는 하나의 목적을 위해 존재해!"**라고 컴퓨터에게 명확하게 알려줄 수 있어요. 덕분에 코드가 훨씬 깔끔해지고, 나중에 길을 잃지 않게 도와준답니다.
열거형 안에 데이터를 넣는다는 개념은 처음엔 조금 낯설 수 있어요. 하지만 **"상황에 따라 내용물이 바뀌는 똑똑한 주머니"**라고 생각하면 훨씬 편안해질 거예요.
| 57. 열거형(Enum)의 기초 (0) | 2026.10.13 |
|---|---|
| 56. 연관 함수와 생성자 (0) | 2026.10.06 |
| 55. 메서드 정의하기: impl 블록 (0) | 2026.10.06 |
| 54. 튜플 구조체 활용하기 (0) | 2026.10.06 |
| 53. 필드 초기화 축약법 (0) | 2026.10.01 |