본문 바로가기
모바일앱/Swift

Codable

by GeekCode 2022. 2. 11.
반응형

오늘의 회사업무에서는 처음으로 Codable을 사용했습니다.

 

Codable은 Encodable과 Decodable이라는 두가지를 가지고 있습니다.

조금 친숙한 단어로 말하자면, 인코딩, 디코딩을 말합니다.

 

그러면 무엇을 인코딩 디코딩 하느냐? Apple 공식 문서에 따르면 외부 표현(external representation) 이라고 하는데 그냥 json이라고 생각하면 된다.  json은 우리가 무언가를 인터넷에서 할 때, 사용할 특정 정보를 담고 있다. 예를 들어 내가 사이트에 로그인을 입력한다고 가정해보면. 로그인을 하는 순간그냥 뿅 끝나는 것이아니라. 사이트에 나의 정보들이 담기기 시작한다. 내 컴퓨터엔 내 정보가 항상 저장되어있는게 아니다.

사이트는 빈껍데기였다가 내가 로그인 하는 순간. 아~ 기꼬라는 녀석이 로그인했네 그럼 기꼬라는 녀석의 정보를 사이트 여기저기에 채워야겠다~ 하면서 서버에서 json이라는 박스 안에  기꼬라는아이의 이름 나이 비밀번호 취미 등등 암튼 필요한 정보들을 다 저장해서 보내주는 것이다. 아무튼 그게 json이라는 것인데.

 

ios에서는 json이라는 박스안에 있는 정보를 꺼내기 위한 여러가지 방법을 가지고 있다. 

jsonserialization이라는 방법과 codable이다. 

나중에 차차 얘기하겠지만 

간단히 말하자면 jsonserialization은 자 이안에 뭐가 있나 볼까? "이름"이라는 항목이 있네, 또 "나이"라는 항목도 있네. 뭐가 필요해? 아 이름? 자 여깄다. 이름은 기꼬야   그리고 뭐가 궁금해?? 이런방법으로 하나하나 낱개로 하는 것이라면

codable은 자 이상자안에는 이름 나이 생년월일 취미 집주소 등등이 들어있단다. 다 들었지? 자 그 순서대로 주루루룩 내가 정리해줄게. 알아서거기서 꺼내봐. 하며 일목요연하게 미리 세팅해준 분류대로 들어가는 것이다. 

 

하지만 codable에서 정말 주의 할 점은.... 들어올 정보들을 정의할 때, 타입을 정확히 해줘야한다는 것이다. 그런줄도 모르고.. 디코딩하는 방법이 잘못된줄 알고 나처럼 2시간동안 삽질할수도......

반응형