JSON을 다루다보면 종종 "필드 이름을 진짜 이렇게 해야 하나?" 같은 고민에 빠질 수 있다. Swift에서는 CodingKeys
를 사용해 이 고민을 해결할 수 있다.
CodingKeys
는 Swift의 Codable
프로토콜과 함께 사용하는 열거형으로, 우리가 직렬화와 역직렬화할 때 사용되는 JSON 키와 Swift의 프로퍼티 이름을 매핑할 수 있게 도와주는 도구이다. 좀 더 심플하게 말하자면, API에서 오는 난해한 키 이름을 내가 원하는 대로 바꿀 수 있다는 것이다.
CodingKeys의 기본 구조
기본적으로 CodingKeys
는 Enum
이고 String
타입을 따르며, CodingKeys
프로토콜을 채택해야 한다.
struct User: Codable {
let id: Int
let fullName: String
let emailAddress: String
enum CodingKeys: String, CodingKey {
case id
case fullName = "full_name"
case emailAddress = "email_address"
}
}
여기서 핵심은, CodingKeys
를 통해 JSON의 키(full_name
, email_address
)와 프로퍼티 이름(fullName
, emailAddress
)를 명확히 매핑한다는 것이다.
id
처럼 JSON 키와 프로퍼티 이름이 같은 경우, 그냥 이름만 나열fullName = "full_name"
처럼 JSON 키와 프로퍼티 이름이 다를 경우,=
을 사용해 지정
만약 모든 JSON 키와 프로퍼티 이름이 동일하다면 CodingKeys
는 생략할 수 있다.
CodingKeys가 필요한 이유
JSON의 난해한 이름들을 정리해 Swift에서 깔끔하고 직관적은 이름을 사용할 수 있다.
필드 이름이 바뀌거나 API가 업데이트되도, 매핑만 수정하면 된다.
JSON 키를 하드코딩하지 않고 Swift 코드 내에서 안전하게 관리할 수 있다.