상세 컨텐츠

본문 제목

48. 문자열 슬라이스 활용

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

by 러스트코리아 2026. 9. 23. 09:36

본문

반응형

 

오늘은 문자열의 '일부분'만 쏙 골라서 사용하는 아주 유용한 기술인 **'문자열 슬라이스'**에 대해 알아볼 거예요.

---

 

### 🥖 비유로 이해하기: "길다란 김밥과 투명 창문"

 

여러분 앞에 아주 긴 **김밥 한 줄**이 있다고 상상해 보세요. 이 김밥 전체가 우리가 배운 `String`(메모리에 저장된 실제 문자열 데이터)이에요.

 

그런데 여러분은 이 긴 김밥을 다 먹고 싶은 게 아니라, **"3번째 조각부터 5번째 조각까지만"** 딱 보고 싶어요. 이때 김밥을 실제로 칼로 썰어서 따로 담는 게 아니라, 그 부분만 보이도록 **투명한 카드보드지(창문)**를 갖다 대는 것이 바로 **'슬라이스(Slice)'**랍니다.

 

슬라이스는 원본을 건드리지 않고, "여기서부터 여기까지만 잠깐 빌려서 볼게!"라고 말하는 것과 같아요.

 

---

### 💡 핵심 개념 정리

 

* **슬라이스(Slice):** 데이터 전체가 아니라 일부분을 가리키는 도구예요.

* **참조(&):** 슬라이스는 진짜 물건을 새로 만드는 게 아니라, 원본을 '빌려(Reference)' 오는 것이기 때문에 앞에 `&` 기호를 붙여요.

* **범위(Range):** `[시작..끝]` 처럼 써서 어디부터 어디까지 볼지 정해요. (이때 '끝' 번호 바로 직전까지만 포함한다는 점을 주의하세요!)

 

---

### 💻 코드 예제로 배워보기

 

아주 짧고 쉬운 예제를 볼게요. "Hello Rust"라는 문자열에서 "Hello"만 쏙 뽑아볼까요?

fn main() {
    // 1. 전체 문자열(긴 김밥)을 만듭니다.
    let greeting = String::from("Hello Rust");

    // 2. 0번째 글자부터 5번째 글자 직전까지 슬라이스(창문)를 만듭니다.
    // & 기호는 '잠깐 빌린다'는 뜻이고, [0..5]는 '0, 1, 2, 3, 4' 위치를 뜻해요.
    let hello = &greeting[0..5]; 

    // 3. 결과 출력! "Hello"가 출력됩니다.
    println!("{}", hello); // 화면에 슬라이스한 부분을 보여줘요.
}

 

### ⚠️ 꼭 기억해야 할 주의사항 (친절한 팁!)

 

러스트는 아주 꼼꼼한 친구예요. 그래서 슬라이스를 쓸 때 한 가지 조심할 점이 있어요.

 

1. **인덱스(Index, 순서 번호):** 컴퓨터는 숫자를 **0**부터 센다는 걸 잊지 마세요! 첫 번째 글자는 0번이에요.

2. **한글 조심:** 영어는 한 글자가 1바이트지만, 한글은 한 글자가 **3바이트**를 차지해요. 그래서 한글 문자열을 슬라이스할 때 글자 중간을 뚝 끊으려고 하면 러스트가 "아야! 글자가 깨져요!"라며 에러(프로그램 오류)를 낼 수 있어요. 처음에는 영어로 먼저 연습해 보는 걸 추천드려요!

 

---

 

### 🌟 응원의 한마디

 

문자열 슬라이스는 메모리를 아끼면서도 필요한 부분만 효율적으로 사용할 수 있게 해주는 러스트의 마법 같은 도구예요. 처음에는 `[0..5]` 같은 숫자가 헷갈릴 수 있지만, 몇 번만 창문을 대보는 연습을 하면 금방 익숙해질 거예요.

반응형

관련글 더보기