싱글톤 패턴(Singleton pattern) 하나의 클래스에 오직 하나의 인스턴스만 가지는 패턴 class NetworkService { static let shared = NetworkService() private init() {} } 스위프트에서는 static let으로 객체의 인스턴스를 할당해주면 끝. 그리고 인스턴스가 추가로 생성되는 것을 방지하기 위해 init()함수의 접근제어자를 private로 선언한다. 보통 데이터베이스나 네트워크등 서비스 모듈에 많이 사용합니다. 싱글톤 패턴의 장단점 장점 인스턴스를 최초 1회만 생성하므로 메모리와 성능 측면에서 효율이 좋다. 전역 인스턴스로 다른 모듈 및 클래스간 데이터 공유가 쉽고 접근이 쉽다. 단점 전역으로 어디서든 접근 하여 안티패턴으로 불릴수 ..
이전 포스트는 Codable의 Encodable에 대해 알아 보았습니다. 이번 포스트는 Codable의 Decodable에 대해 알아보도록 하겠습니다. Decodable JSON 데이터를 디코딩 하는 방법에 대해 알아보도록 하겠습니다. Decodable을 이용하면 JSON을 쉽게 처리할 수 있습니다. # 디코딩 방법 decode 메서드는 두개의 파라미터가 필요합니다. 첫번째 파라미터는 디코딩할 타입을 정의한다. 반드시 Decodable이나 Codable 프로토콜을 채택해야됩니다. struct Person: Codable { var name: String var age: Int var birthDate: String var address: String? } 두번째 파라미터에는 json이 저장되어있는 dat..
이번 포스트는 Codable의 Encodable에 대해 알아 보도록 하겠습니다. 먼저 애플의 문서를 확인해보면 💡 A type that can convert itself into and out of an external representation. 외부 표현으로 변환하거나 외부 표현으로 변환할 수 있는 유형이라고 하는데 쉽게 이야기하자면, 자신을 외부 표현으로 인코딩할 수 있고, 자신을 외부 표현으로 부터 디코딩할 수 있다는 이야기입니다. 주로 JSON을 이용할 때 사용되기 때문에 외부 표현을 JSON데이터로 생각하면 더 쉽게 이해가 될것 같습니다. public typealias Codable = Decodable & Encodable Codable은 Encodable과 Decodable로 이루어져 있습..