트레이트 (Traits)
이전 장에서는 Rust의 타입 시스템과 소유권(Ownership)의 기초를 살펴보았습니다. 이제 한 단계 더 깊이 들어가 볼 시간입니다. 이번 장에서는 Rust에서 인터페이스를 다루는 방식인 **트레이트(Traits)**에 대해 알아보겠습니다.
트레이트를 배우고 나면 Rust 코드 곳곳에서 그 흔적을 발견하게 될 것입니다. 사실 여러분은 이미 이전 장에서 .into() 호출이나 ==, + 같은 연산자를 사용하며 트레이트가 작동하는 모습을 간접적으로 경험했습니다.
이번 장에서는 트레이트의 기본 개념뿐만 아니라, Rust 표준 라이브러리에 정의된 핵심 트레이트들도 함께 다룰 예정입니다.
- 연산자 트레이트:
Add,Sub,PartialEq등 - 변환 트레이트: 오류 없는 타입 변환을 위한
From및Into - 복사 트레이트: 값의 복제를 위한
Clone및Copy - 역참조 트레이트:
Deref와 역참조 강제 변환(Deref coercion) - 크기 트레이트: 컴파일 타임에 크기가 알려진 타입을 나타내는
Sized - 정리 트레이트: 사용자 정의 리소스 정리 로직을 위한
Drop
타입 변환에 대해 배우면서 그동안 미뤄두었던 “지식의 빈틈“도 채워볼 것입니다. 예를 들어, "A title" 같은 문자열 리터럴의 정체는 무엇일까요? 이제 **슬라이스(Slices)**에 대해서도 더 자세히 알아볼 시간입니다!
Exercise
The exercise for this section is located in 04_traits/00_intro