채널톡 아이콘

우아한 Rust 중급 (3) - 문자열

Rust로 문자열을 다루다가 한글에서 길이가 다르게 나오거나, 문자열을 자르는 코드가 패닉한 적이 있나요? 이 강의에서는 String과 &str의 소유권 관계부터 UTF-8의 문자·바이트 차이까지 시각 자료와 실행 가능한 예제로 설명합니다. 문자열 생성·검색·분리·변환·유니코드 정규화를 연습하고, 불필요한 복사를 줄이면서도 안전한 문자열 API를 설계하는 기준을 익힙니다.

15명 이 수강하고 있어요.

난이도 중급이상

수강기한 무제한

시험
시험
실습 중심
실습 중심
시험
시험
실습 중심
실습 중심
당근마켓
네이버
카카오
배달의민족
여기어때컴퍼니

여기어때컴퍼니

임직원들도 이 강의를 듣고 있어요!

당근마켓
네이버
카카오
배달의민족
여기어때컴퍼니

여기어때컴퍼니

임직원들도 이 강의를 듣고 있어요!

수강 후 이런걸 얻을 수 있어요

  • String, &String, &str의 차이를 이해하고 상황에 맞는 타입을 선택하는 능력

  • UTF-8에서 문자 수와 바이트 수를 구분하고 문자열을 안전하게 자르는 능력

  • 표준 API로 문자열을 생성·수정·검색·분리·결합하는 능력

  • 문자열과 숫자·날짜를 변환하고 잘못된 입력을 알맞게 처리하는 능력

  • 한글의 서로 다른 유니코드 표현을 정규화하고 비교하는 능력

Rust 문자열, 소유권부터 UTF-8까지 제대로 다루기

문자열은 사용자 입력, 파일 경로, JSON 필드, 오류 메시지처럼 거의 모든 프로그램에서 사용됩니다. Rust에서는 문자열을 소유하는 String과 문자열의 일부를 빌리는 &str을 구분해야 합니다.

이 강의에서는 String·&str의 메모리 구조와 소유권 관계를 이해하고, 한글이 포함된 UTF-8 문자열을 문자 경계를 깨뜨리지 않고 처리하는 방법을 배웁니다. 문자열 생성·수정·검색·분리·결합부터 숫자·날짜 변환, 한글 유니코드 정규화까지 실행 가능한 예제로 확인합니다.

입력은 가능한 한 빌리고 새로운 문자열이 필요할 때만 String을 만드는 기준도 익힙니다. 강의를 마치면 문자열 처리 함수를 안전하고 호출하기 편한 형태로 설계할 수 있습니다.

이런 내용을 배워요

String과 &str: 소유하고 빌리는 기준

String, &String, &str이 각각 무엇을 가리키는지 메모리 구조와 소유권 관점에서 살펴봅니다. 배열과 Vec의 슬라이스를 복습한 뒤, 문자열 전체 또는 일부를 복사하지 않고 &str로 빌리는 방법을 익힙니다.

입력을 읽기만 하는 함수, 문자열을 저장하는 함수, 원본의 일부를 반환하는 함수에 어떤 타입을 사용해야 하는지도 구체적인 예제로 비교합니다.

원본 데이터를 복사하지 않고 시작 위치와 길이로 일부 구간을 빌리는 슬라이스의 구조

UTF-8을 이해하고 문자열을 안전하게 처리하기

Rust 문자열의 길이는 글자 수가 아니라 바이트 수를 나타냅니다. 영문과 한글이 함께 있는 문자열을 통해 len, chars, bytes의 차이를 확인하고, 바이트 인덱스로 문자열을 자를 때 왜 패닉이 발생할 수 있는지 알아봅니다.

이어서 문자열 생성·수정·검색·분리·결합, 서식 지정, 숫자·날짜 변환, 한글 유니코드 정규화를 연습합니다. 마지막에는 공백 정리, UTF-8 경계를 지키는 앞부분 추출, 설정 문자열 분리, 민감한 단어 가리기 같은 함수를 직접 구현하고 테스트합니다.

문자 수와 바이트 수가 다른 이유

수강 전 참고 사항

실습 환경

  • Windows, macOS, Linux에서 실습할 수 있습니다.

  • 최신 Rust stable 도구 체인과 Cargo가 필요합니다.

  • Rust 코드를 편집할 수 있는 VS Code, Zed 등의 편집기를 준비해 주세요.

  • 예제는 Rust 2024 에디션을 사용합니다.

  • 날짜와 유니코드 정규화 예제에 필요한 크레이트는 Cargo가 내려받으므로, 처음 빌드할 때 인터넷 연결이 필요합니다.

  • 특별한 하드웨어나 높은 PC 사양은 필요하지 않습니다.


학습 자료

  • 온라인 교재

  • 깃허브 소스코드

선수 지식 및 유의사항

  • 변수, 함수, 조건문, 반복문 같은 Rust 기본 문법을 알고 있어야 합니다.\

  • 소유권과 빌림의 기본 개념을 이해하고 있어야 합니다.


  • Vec과 슬라이스를 사용해 본 경험이 있으면 좋습니다.


  • “우아한 프로그래밍 언어 Rust 입문” 강의 수강을 권장합니다.

이런 분들께
추천드려요

학습 대상은
누구일까요?

  • Rust의 소유권은 배웠지만 String과 &str을 언제 써야 할지 헷갈리는 개발자

  • 한글 문자열의 길이 계산이나 자르기에서 예상하지 못한 결과와 패닉을 겪은 개발자

  • 문자열을 처리할 때 습관적으로 clone하거나 새로운 String을 만드는 개발자

  • 사용자 입력, 파일 내용, 설정값처럼 외부에서 들어오는 문자열을 안전하게 처리하고 싶은 개발자

선수 지식,
필요할까요?

  • Rust 기본 문법 이해

  • Rust 메모리 소유권 개념 이해

안녕하세요
김대현입니다.

커리어인증

2,169

수강생

171

수강평

27

답변

4.7

강의 평점

9

강의

함수형 프로그래밍에 관심이 많은 백엔드 개발자입니다. 카카오 개발팀장, NHN 수석, LINE+ 리드를 지내며 개발팀 리딩을 했고, 디노티시아라는 AI스타트업에서 개발팀장으로 일하며 Rust로 프로젝트를 진행했습니다.

수강평

아직 충분한 평가를 받지 못한 강의입니다.
모두에게 도움이 되는 수강평의 주인공이 되어주세요!

김대현님의 다른 강의

지식공유자님의 다른 강의를 만나보세요!

비슷한 강의

같은 분야의 다른 강의를 만나보세요!

얼리버드 할인 중 (8일 남음)

₩7,260

40%

₩12,100

평생교육이용권 지원 강의