• Feed
  • Explore
  • Ranking
/
/
    🦅 Swift

    [Swift] CodingKeys로 컨벤션 지키기

    CodingKeysJSONAPI
    지
    지성
    2025.03.26
    ·
    3 min read

    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가 필요한 이유

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

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

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







    - 컬렉션 아티클