Struct는 상속을 할 수 없고, init()을 사용하지 않고도 초기화를 진행 할 수 있다.
Class는 상속을 할 수 있고, Class 안에 프로퍼티가 초기화가 되어있지 않는 상태라면 무조건 init()을 통해 초기화를 진행해야 한다.
Enum은 모르겠다 야..
Struct와 Enum은 값 타입, Class 참조 타입이다.
구조체로 열거형의 기능적인 요소는 대응할 수는 있지만, 구조체 내에 또 구조체를 생성할 경우에는 init()을 해야 하기 때문에 번거롭다. 반면에 열거형은 생성하지 않고 상수로 접근할 수 있도록 만들어져있기 때문에 실수의 여지가 줄어들게 된다.