trait Summary처럼 필요한 동작의 이름과 시그니처를 선언합니다.
traits
트레이트가 공통 동작을 계약으로 묶는 방식
트레이트는 여러 타입이 공유해야 할 메서드 시그니처를 정의하고, 각 타입은 자신의 데이터에 맞게 그 동작을 구현합니다.
impl Summary for NewsArticle은 특정 타입에 동작을 붙입니다.
트레이트 안에 기본 메서드를 두어 필요한 부분만 재정의할 수 있습니다.
T: Summary는 함수 안에서 summarize를 호출할 수 있다는 계약입니다.