
우리가 음식점에서 주문을 할 때, 외국인 손님이 영어로 주문하면 직원이 한국어로 바꿔서 주방에 전달하죠?
Decodable도 이와 비슷해요!
JSON이라는 외국어로 된 데이터를 Swift가 이해할 수 있는 말로 번역해주는 통역사 역할을 합니다.
예를 들어, 날씨 앱을 만든다고 생각해볼까요?
// 날씨 정보를 담을 그릇을 만들어요
struct Weather: Decodable {
let temperature: Double // 온도
let city: String // 도시 이름
let description: String // 날씨 설명
}
이렇게 만든 그릇에 날씨 서버가 보내준 정보를 담을 수 있어요!
{
"temperature": 23.5,
"city": "서울",
"description": "맑음"
}
편리해요
안전해요
깔끔해요
// 1. 날씨 정보 모델
struct Weather: Decodable {
let temperature: Double
let city: String
}
// 2. 서버에서 받은 데이터 변환하기
let jsonData = // 서버에서 받은 데이터
do {
let weather = try JSONDecoder().decode(Weather.self, from: jsonData)
print("오늘 \(weather.city)의 온도는 \(weather.temperature)도 입니다!")
} catch {
print("앗! 데이터를 변환하는데 실패했어요 😢")
}
"Decodable은 JSON을 Swift로 바꿔주는 우리의 든든한 통역사!"