Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

트레이트 (Traits)

이전 장에서는 Rust의 타입 시스템과 소유권(Ownership)의 기초를 살펴보았습니다. 이제 한 단계 더 깊이 들어가 볼 시간입니다. 이번 장에서는 Rust에서 인터페이스를 다루는 방식인 **트레이트(Traits)**에 대해 알아보겠습니다.

트레이트를 배우고 나면 Rust 코드 곳곳에서 그 흔적을 발견하게 될 것입니다. 사실 여러분은 이미 이전 장에서 .into() 호출이나 ==, + 같은 연산자를 사용하며 트레이트가 작동하는 모습을 간접적으로 경험했습니다.

이번 장에서는 트레이트의 기본 개념뿐만 아니라, Rust 표준 라이브러리에 정의된 핵심 트레이트들도 함께 다룰 예정입니다.

  • 연산자 트레이트: Add, Sub, PartialEq
  • 변환 트레이트: 오류 없는 타입 변환을 위한 FromInto
  • 복사 트레이트: 값의 복제를 위한 CloneCopy
  • 역참조 트레이트: Deref와 역참조 강제 변환(Deref coercion)
  • 크기 트레이트: 컴파일 타임에 크기가 알려진 타입을 나타내는 Sized
  • 정리 트레이트: 사용자 정의 리소스 정리 로직을 위한 Drop

타입 변환에 대해 배우면서 그동안 미뤄두었던 “지식의 빈틈“도 채워볼 것입니다. 예를 들어, "A title" 같은 문자열 리터럴의 정체는 무엇일까요? 이제 **슬라이스(Slices)**에 대해서도 더 자세히 알아볼 시간입니다!

Exercise

The exercise for this section is located in 04_traits/00_intro