상세 컨텐츠

본문 제목

37. if let으로 코드 단순화하기

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

by 러스트코리아 2026. 8. 21. 22:22

본문

반응형

 

안녕하세요! 러스트(Rust)라는 멋진 언어의 세계에 오신 것을 환영합니다. 오늘은 복잡한 코드를 아주 깔끔하게 다듬어주는 마법 같은 도구, **`if let`**에 대해 알아볼게요.

---

### 🎁 비유로 이해하기: "보물 상자 열기"

 

여러분 앞에 **'비밀 상자'**가 하나 있다고 상상해 보세요. 이 상자 안에는 보물이 들어있을 수도 있고, 비어있을 수도 있어요. (러스트에서는 이런 상태를 **Option(옵션: 값이 있을 수도 있고 없을 수도 있는 상태)**이라고 불러요.)

 

보통 우리는 상자를 열 때 이렇게 말하곤 합니다. > "상자를 열어봐. 만약 보물이 있으면 꺼내서 닦고, 만약 비어있으면 그냥 넘어가자.

 

" 그런데 만약 우리가 **"보물이 있을 때만"** 관심이 있고, 비어있을 때는 아무것도 하고 싶지 않다면 어떨까요? 매번 "비어있는 경우"를 일일이 확인하는 건 조금 귀찮은 일이죠.

이때 사용하는 것이 바로 **`if let`**입니다!

---

### 🛠️ 코드로 살펴보기

 

먼저, `if let`을 쓰지 않았을 때의 코드를 볼게요. (이 방식은 `match`(매치: 모든 경우의 수를 확인하는 도구)를 사용합니다.)

 

let lucky_box = Some("황금 열쇠"); // 상자 안에 '황금 열쇠'가 들어있는 상태예요.

match lucky_box {
    Some(item) => println!("{}를 찾았습니다!", item), // 보물이 있으면 출력해요.
    None => (), // (논: 값이 없는 빈 상태)일 때는 아무것도 안 한다는 뜻이에요.
}

 

위의 코드는 빈 상태(`None`)까지 신경 써야 해서 조금 길어 보이죠? 이제 **`if let`**으로 훨씬 간단하게 바꿔볼게요!

 

let lucky_box = Some("황금 열쇠"); // 상자 안에 '황금 열쇠'를 준비해요.

// 만약(if) 상자를 열었을 때 보물(Some)이 있다면(let) 그 보물을 item이라고 부를게요!
if let Some(item) = lucky_box {
    println!("{}를 찾았습니다!", item); // 보물이 있을 때만 이 줄이 실행돼요.
}

 

---

### 💡 왜 `if let`을 쓸까요?

1. **코드가 짧아져요**: 내가 관심 있는 상황(보물이 있는 경우)만 딱 집어서 코드를 짤 수 있어요.

2. **읽기 편해요**: "만약 보물이 있다면 이걸 해!"라는 의미가 한눈에 들어옵니다.

3. **귀찮음 해결**: 나머지 상황(빈 상자인 경우)을 굳이 설명하지 않아도 러스트가 알아서 이해해 줍니다. 이것을 **Syntactic sugar(문법적 설탕: 복잡한 문법을 더 쉽고 달콤하게 만들어주는 기능)**라고 부르기도 해요.

---

### 🌟 오늘의 응원

 

새로운 문법이 나올 때마다 "이걸 다 외워야 하나?" 걱정되실 수도 있어요. 하지만 괜찮습니다! `if let`은 여러분의 코드를 더 예쁘고 간결하게 만들어주기 위해 나타난 친절한 친구일 뿐이니까요.

반응형

관련글 더보기