[인터뷰질문 004] Codable protocol이 하는 역할이 무엇인가요?
 Cadable이란?  encodable과 decodable 프로토콜을 모두 채택한 프로토콜 입니다. 데이터를 손쉽게 Json이나 다른 구조화된 데이터로 인코딩 하거나, 파싱할 때 사용합니다.  예제  import Foundation   struct  Student : Codable  {     var  name: String      var  age: Int  }  let  studentData = """ {     "name": "leeo",     "age": 17 } """ .data(using: .utf8)!  let  student1 = try ! JSONDecoder ().decode( Student .self, from: studentData) print(student1) // Student(name: "leeo", age: 17)  print(student1.name) // leeo  print(student1.age) // 17  모델을 만들고, Codable  프로토콜을 채택하면 Decodable  프로토콜이 포함되어 있기 때문에  JSONDecoder().decode() 를 사용할 수 있습니다.  그러면 from: studentData 이 부분에 입력된 데이터와 Student.self 이 같은 타입인지 비교하고 일치하면 Student 의 객체로 만들어 줍니다.  사용할 때의 문제점1  swift 에서 사용하고 있는 변수는 camelCase 를 사용하고 있습니다. 하지만 내려오는 데이터도 같은 키로 내려오리란 보장이 없죠 그 때 사용할 수 있는것이 CodingKey 입니다. 같은 키는 알아서 찾지만, 다른 이름으로 내려왔을 때 수동으로 매칭해준다고 생각하시면 쉬울 것 같습니다.  코드로 예를 들어보면 아래와 같습니다.  struct StudentFullname: Codable {     var firstName: St...