데이터와 동작 결합
구조체와 열거형은 데이터를 담고, `impl` 블록은 같은 타입의 메서드를 제공한다.
struct + impl
데이터와 동작, 캡슐화, 다형성은 강하게 지원하지만 클래스 상속은 트레이트 중심으로 우회한다.
구조체와 열거형은 데이터를 담고, `impl` 블록은 같은 타입의 메서드를 제공한다.
필드는 기본 비공개이고 `pub`으로 공개 표면만 열어 내부 불변식을 지킨다.
부모 클래스 상속 대신 기본 트레이트 메서드와 트레이트 객체로 코드 공유와 다형성을 나눈다.