async let 으로 비동기 작업들을 동시에 수행하기 (2)
·
SwiftUI
async let을 사용하면 여러 데이터를 한번에 처리할 수 있습니다 https://apple-document.tistory.com/170 async let 으로 비동기 작업들을 동시에 수행하기 (1)async let 을 사용하면 시스템이 async let  오른쪽에 있는 비동기 함수를 병렬적으로 실행시킵니다   await를 사용할 때는 시스템이 해당 비동기 함수를 실행시킬 때마다 실행을 담당하는 스레드를apple-document.tistory.com 지난번에 이미지를 예를 들어 여러 이미지를 가져올 때 딜레이를 없애고 여러 이미지를 동시에 가져오는 방법인 async let을 알아봤었습니다. 이번에는 실제로는 어떻게 사용되었는지 코드를 분석하면서 알아볼 것입니다. 사용 사례박스오피스 영화 데이터를 가져오..
AsyncPublisher (.value로 비동기적으로 데이터 처리)
·
SwiftUI
AsyncPublisher은 간단하고 비동기적으로 Publisher로부터 받는 데이터를 처리하고 싶을 때 사용합니다 코드로 이해하기우선 AsyncPublisherDataManager라는 클래스가 있고 @Published로 선언된 [String] 타입의 데이터가 존재합니다.addData 메서드를 이용하여 2초마다 데이터를 삽입하며 이것은 비동기적으로 수행됩니다.class AsyncPublisherDataManager { @Published var myData: [String] = [] func addData() async { myData.append("Apple") try? await Task.sleep(nanoseconds: 2_000_000_000) ..
custom error
·
SwiftUI
간단한 커스텀 바인딩으로 만든 코드custom binding 내용을 알면 다음 코드가 가능하다는 것을 알 수 있습니다. 에러의 값이 바뀔 때 alert의 true, false로 변환하는 코드입니다.extension Binding where Value == Bool { init(value: Binding) { self.init(get: { return value.wrappedValue != nil ? true : false }, set: { newValue in value.wrappedValue = nil }) }}struct ContentView: View { @State private var al..
네이버 지도 클러스터링
·
SwiftUI
클러스터링은 머신러닝에서 사용되는 용어로 클러스터링이란 유사한 테이터셋들 중 서로서로 찾아내고 묶어내는 것입니다 네이버 지도에서는 클러스터링 기능을 제공하고 있습니다. 지도에서 클러스터링이란 예를 들어 숙박어플 같은 경우 지도에 마커를 사용하여 모든 숙소의 정보를 보여주면 지도에 매우 지져분해 읽기 힘들 것입니다. 하지만 실제로 구현되는 경우에는 지도를 축소하게 되는 경우에 아래 그림처럼 비슷한 위치에 있는 숙소들끼리 합쳐저서 보여지는데 이렇게 합쳐지는, 하나로 묶어지는 것을 클러스터링이라고 합니다. 클러스터링이 안되는 문제 API 문서를 찾아보면서 제작을 진행했는데 시행착오가 있었습니다. 분명 문서대로 코드를 만든 것 같은데 클러스터링이 안되는 것입니다.클러스터링을 하기 위한 객체를 만들어야 한다길래 ..
싱글톤
·
SwiftUI
싱글톤이란 프로젝트 전체에서 하나밖에 존재하지 않는 유일한 클래스의 인스턴스를 의미합니다 싱글톤이란?싱글톤은 디자인 패턴에서 생성 패턴에 해당하며 프로그램 내의 하나의 인스턴스만 생성하여 어디서든 해당 인스턴스를 접근할 수 있도록 해줍니다.  싱글톤을 사용하는 이유는?싱글톤을 사용하게 된다면 하나의 인스턴스만 생성하기 때문에 메모리의 사용량이 줄어들어 메모리 사용을 최적화할 수 있습니다.여러 곳에서 같은 인스턴스를 사용하기 때문에 리소스의 사용을 줄일 수 있습니다.싱글톤을 사용했을 때 단점은?싱글톤은 전역 상태를 유지하기 때문에 테스트가 어려울 수 있습니다. 즉 하나밖에 존재하지 않는다는 장점이 단점이 될 수 있다는 뜻입니다.싱글톤을 사용하게 된다면 다른 클래스들이 싱글톤 인스턴스에 의존하게 되므로 코드..
JSON Data
·
SwiftUI
JSON 데이터는 JavaScript Object Notation으로 key:value 쌍 형식으로 이루어진 데이터입니다  JSON 데이터 만드는 방법다음은 JSON 데이터를 만드는 방법입니다. JSONSerialization을 사용하면 구현한 JSON 형식 데이터를 JSON 데이터로 바꿀 수 있습니다. 추가 설명으로 try?로 설정하면 do catch를 사용하지 않아도 됩니다. 하지만 반환되는 데이터가 optional이 되는 것을 명심합시다.func getJSONData() -> Data? { let dictionary: [String:Any] = [ "id" : "12345", "name": "Yoon", "points" : 5, "isPremi..
ytw_developer
'SWIFT' 태그의 글 목록