![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/6bxLf/btrXm9toJlH/O94f9Cz6DJ0kG73VcqevXK/img.png)
Protocol Type, Opaque Type 모두 얼핏 생각하면 Protocol Type은 해당 프로토콜을 채택한 타입을, Opaque Type도 해당 타입을 conform하는 세부타입을 외부에 노출되지 않게 해주는 동일 역할을 할 것으로 보여집니다. 하지만, 이 둘이 동일하다면 Opaque Type이라는 다른 명칭으로 개념이 나오지 않았을텐데요. Opaque Type은 Protocol Type과 달리, 보다 강력한 타입 보장을 하며, 타입 entity를 보존한다고 합니다. 이 특징으로인해 swift가 해당 Opaque 타입의 세부 타입을 추론할 수 있게 해준다고 하며, 일반 Protocol Type과 차이점을 갖게 됩니다. 이러한 Opaque Type, 불투명타입의 장점을 기본 Protocol ty..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/bN2Und/btrW7Tqy5K5/uP9tFkj8PtUn1r2eEsHPI1/img.png)
iOS Swift Concurrency, async await 방식의 이점과 사용 간에 생길 수 있는 고민 iOS13 부터 활용 가능한 async await, actor 등의 개념을 잘 활용하면 data racing 문제를 해결하고, 많은 thread의 생성을 야기할 수 있는 context switching을 최소화 할 수 있습니다. 또한, callback closure의 중첩으로 인한 콜벡지옥 등으로 인한 나쁜 가독성을 개선할 수도 있습니다. async await 을 사용할 때에는 일반적으로 함수 반환 타입 앞에 async, async throws를 사용하고, 호출할때에는 Task { ... }, .task { ... } 블럭 내에 await, try await 키워드와 함께 호출하여 사용하게 되는데요..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/o7USk/btrWSvctuqO/r30qKcwDAkbVji0wwK1yXk/img.png)
iOS 개발을 할때 운영하는 프로젝트에 TDD를 적용할 수 있는데요. TDD란 Test Driven Development라고 합니다. 테스트코드를 작성하고, 테스트 자동화 적용을 통해서 개발자가 작성한 코드의 신뢰도를 향상시킬 수 있습니다. 오늘은 간단하게 Xcode에서 iOS앱 테스트코드 작성을 위해 단위테스트, UI 테스트를 위해 사용할 수 있는 UnitTest, UITest Target을 생성하고, 테스트코드를 작성할 준비를 하는 방법을 알아보겠습니다. iOS 프로젝트 신규 생성 시에 Test Target 생성 하는 방법 Xcode 실행 -> Command + Shift + N 을 하면 프로젝트 생성 페이지가 나옵니다. 이후 프로젝트 이름을 설정하는 페이지 하단에 Include Tests 혹은 Te..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/v2J6Y/btrPQxPey7S/s4igGR8tfrMvVehpVjrcrk/img.png)
Swift Concurrency를 API 요청 로직에 적용할때, 단일 요청뿐만 아니라 다수의 API 요청을 수행해야할 때가 있습니다. 이때 모든 API 요청을 Concurrent하게 진행하고, feeding(요청 결과를 실제 수신하는 과정)을 순차적으로 받는 방법을 사용하면 더욱 효율적인 비동기 작업을 수행할 수 있습니다. 이러한 것을 가능하게 해주는 개념 중 하나인 Structured Concurrency, async let에 대해서 코드를 함께 작성해보면서 알아보겠습니다. structured concurrency, async let 사용하여 다수의 API 요청 concurrent하게 처리하기 // try await을 사용하였기에 equifaxUrl로부터 결과 값을 수신받을때까지 suspend 된다. ..
- Total
- Today
- Yesterday
- swift 문자열
- 자연어처리
- uikit
- 백준swift
- 프로그래머스swift
- CoreML
- swift문제
- 알고리즘문제
- swift 기초
- swift언어
- SwiftUI
- 김프매매
- Collection
- 백준알고리즘
- publisher
- 스위프트
- ios
- swift
- swift reduce
- swift string
- 프로토콜
- 알고리즘
- Swift 알고리즘
- 프로그래머스
- 컬렉션
- createML
- Protocol
- 부스트코스
- 개발자문서
- swift알고리즘
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |