맛동산이

Swift) CodingKey, API명과 codable 타입 이름이 다를때 매핑하는법 본문

앱/Swift

Swift) CodingKey, API명과 codable 타입 이름이 다를때 매핑하는법

진ddang 2024. 1. 1. 21:22

Untitled.png

CodingKey는 백엔드에서 오는 API의 이름과 Client측 앱의 Decoding, Encoding시 이름이 다른것을 서로 매핑해주는 기능이다.

예를 들어서, 백엔드에서는 스네이크타입의 이름이, 클라이언트측에서는 카멜타입의 이름이 들어온다고 할때, 이를 매핑해주는 방법이 바로 CodingKey이다.

사용하는 방법

우선 우리가 기존의 Codable을 사용하는 방법은 다음과 같다.

struct SomeDecodingType: Codable {
	let number: Int
	let name: String
	let roadAddress: String
}

이런 방법으로 타입 모델을 설정해주게 되는데, 이때 만약 백엔드에서 스네이크로 들어오면 해당 타입과 이름이 다르기 때문에 문제가 생긴다.

실제 JSON파일이 다음과 같다면

{
	number: 12
	name: "jinYong"
	road_address: "Daegu"
}

이제 타입의 이름이 달라서 문제가 발생할것이다.

이를 코딩키를 통해서 매핑해줄수있다.

CodingKey

struct SomeDecodingType: Codable {
	let number: Int
	let name: String
	let roadAddress: String

	enum CodingKey: String, CodingKey {
		case number = "number"
		case name = "name"
		case roadAddress = "road_address"
	}
}

이 방법을 통해서 자연스럽게 백엔드와의 네임 매핑이 되기 때문에 편하게 API를 사용할수 있게 된다.

반응형