궁금한게 2가지가 있는데..


1. #[derive(..)] 이거는 trait 상속받는걸로 알고 있는데 어떤 구조체 위에 #[derive(Bird)] 이렇게 하면

해당 구조체는 Bird Type으로도 쓸 수 있는거 맞음??


2. 그냥 #[..] 이렇게 된게 좀 이해가 안가는데


예를 들어서 

#[program]

struct Foo {}


위 같은 코드가 있을때 지금은 Foo에 아무 field가 없잖아? 

근데 #[program]을 함으로써 field 자동 생성도 가능함?

예를들면 #[program]이 붙은 구조체들은 program_name: String, program_id: u64 이런식으로 자동 생성되게..


메서드도 자동생성되나?