[Swift] CodingKeys로 컨벤션 지키기

CodingKeysJSONAPI
avatar
2025.03.26
·
3 min read

JSON을 다루다보면 종종 "필드 이름을 진짜 이렇게 해야 하나?" 같은 고민에 빠질 수 있다. Swift에서는 CodingKeys를 사용해 이 고민을 해결할 수 있다.

CodingKeys는 Swift의 Codable 프로토콜과 함께 사용하는 열거형으로, 우리가 직렬화와 역직렬화할 때 사용되는 JSON 키와 Swift의 프로퍼티 이름을 매핑할 수 있게 도와주는 도구이다. 좀 더 심플하게 말하자면, API에서 오는 난해한 키 이름을 내가 원하는 대로 바꿀 수 있다는 것이다.

CodingKeys의 기본 구조

기본적으로 CodingKeysEnum이고 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가 필요한 이유

  1. JSON의 난해한 이름들을 정리해 Swift에서 깔끔하고 직관적은 이름을 사용할 수 있다.

  2. 필드 이름이 바뀌거나 API가 업데이트되도, 매핑만 수정하면 된다.

  3. JSON 키를 하드코딩하지 않고 Swift 코드 내에서 안전하게 관리할 수 있다.







- 컬렉션 아티클