상세 컨텐츠

본문 제목

53. 필드 초기화 축약법

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

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

본문

반응형

오늘은 코드를 훨씬 더 깔끔하고 보기 좋게 만들어주는 **'필드 초기화 축약법'**에 대해 알아볼 거예요. 어렵지 않으니 저와 함께 차근차근 살펴봐요!

 

---

### 1. 🍎 이름표가 똑같을 땐 한 번만 말해요! (비유)

 

여러분이 도시락 가게 사장님이라고 상상해 보세요. 손님이 주문한 음식을 도시락 통(구조체: 데이터를 담는 가방)에 담아야 합니다.

도시락 통에는 **'김밥'** 칸과 **'불고기'** 칸(필드: 가방 안의 작은 구역)이 있어요. 마침 요리사님이 **'김밥'**과 **'불고기'**를 만들어 주셨네요.

 

원래는 이렇게 말해야 해요.

> "도시락의 **김밥** 칸에는 요리사님이 주신 **김밥**을 넣고, **불고기** 칸에는 **불고기**를 넣어주세요!"

 

하지만 너무 길죠? 어차피 칸 이름과 음식 이름이 똑같으니까, 센스 있는 사장님은 이렇게 말합니다.

> "**김밥**이랑 **불고기** 넣어서 도시락 완성해 주세요!"

이것이 바로 Rust의 **필드 초기화 축약법**입니다!

 

---

### 2. 전문 용어 살펴보기

시작하기 전에, 오늘 나올 어려운 단어들을 쉬운 말로 풀어서 알려드릴게요.

 

* **구조체(Struct):** 여러 가지 정보를 하나로 묶어주는 '데이터 가방'이에요.

* **필드(Field):** 가방 안에 들어가는 '각각의 항목(이름, 나이 등)'을 말해요.

* **초기화(Initialization):** 가방을 처음 만들 때 안에 '실제 값'을 넣어주는 과정이에요.

 

---

### 3. 코드로 직접 확인하기

 

자, 이제 코드를 살펴볼까요? 얼마나 간단해지는지 비교해 보세요.

 

#### [기존 방식: 하나하나 다 말하기]

변수 이름과 가방 칸 이름이 같아도 다 써줘야 했어요.

struct User {
    name: String, // '이름'이라는 칸
    age: u32,     // '나이'라는 칸
}

fn main() {
    let name = String::from("철수"); // 'name'이라는 변수에 "철수" 저장
    let age = 20; // 'age'라는 변수에 20 저장

    let user = User {
        name: name, // 'name' 칸에 변수 'name'을 넣어요 (반복!)
        age: age,   // 'age' 칸에 변수 'age'를 넣어요 (반복!)
    };
}

 

#### [축약법 사용: 이름이 같으면 쏙! 줄이기]

변수 이름과 필드 이름이 같으면 한 번만 써도 Rust가 똑똑하게 알아들어요.

fn main() {
    let name = String::from("철수"); // 변수 이름이 'name'
    let age = 20; // 변수 이름이 'age'

    // 필드 초기화 축약법 사용!
    let user = User {
        name, // 'name: name'을 줄여서 'name'만 써도 돼요!
        age,  // 'age: age'를 줄여서 'age'만 써도 돼요!
    };
    // 코드가 훨씬 깔끔해졌죠?
}

 

---

### 4. 기억할 점! 이 마법 같은 축약법을 쓰려면 딱 한 가지만 기억하세요.

 

**"가방 칸 이름(필드 이름)과 내가 넣으려는 변수 이름이 토씨 하나 안 틀리고 똑같아야 한다!"**는 점이에요.

- **이름이 같으면?** `name` (축약 가능!)

- **이름이 다르면?** `name: user_name` (축약 불가능, 원래대로 써야 해요.)

 

---

### 🎉 축하합니다!

여러분은 방금 Rust의 코드를 더 간결하게 만드는 유용한 기술 하나를 마스터하셨어요! 이렇게 작은 것부터 하나씩 익히다 보면, 어느새 멋진 프로그램을 만들고 있는 자신을 발견하게 될 거예요.

반응형

관련글 더보기