1. Trait 트레이트는 다른 언어에서 인터페이스라고 불리는 기능과 비슷합니다. 영어 단어 trait는 “특성, 특징”이라는 뜻을 가지고 있습니다. 특히 상속되는, 유전적인 특성을 의미합니다. 인터페이스의 역할은 인터페이스를 상속하는 클래스나 구조체에서 반드시 특정한 기능(함수)을 구현하도록 강제하는 것입니다. 인터페이스에는 함수가 구현되어 있지 않고 시그니처만 있습니다. 즉 설계도만 있습니다. 트레이트도 마찬가지의 방법으로 사용합니다. 다른 점이 있다면 Rust의 트레이트에는 바디 부분을 미리 구현해 두고 사용할 수 있습니다. Rust에서 트레이트는 데이터 타입을 대상으로 구현됩니다. 데이터 타입에는 Rust가 기본적으로 제공하는 데이터 타입 외에 사용자가 만든 struct와 enum이 포함됩니다. ..