
안녕하세요~ 개발자 멍구입니다. ✨저는 현업에서 개발을 하면서 비동기적으로 중복 호출을 방지하고, 예외처리 하는등의 다소 복잡한 로직을 구현해본적이 있는데요. 그렇게 자주 사용하지는 않다보니, 한번씩 리마인딩을 하지 않으면 얼마 안가서 까먹게 되더라고요... ㅠㅠ근데 사용할일이 생기면 굉장히 중요하고, 많은 테스트가 필요한 작업이다보니, 리마인딩의 필요성을 느꼈습니다.. 그래서 이 리마인딩 공부 겸... Swift Concurrency의 Task를 활용해서 Debouncer를 구현해봤습니다. 초기구현이라 부족한 점 많을 수 있으니, 감안해서 보고 많은 피드백 부탁드립니다! 근데 그전에... Debounce가 머임?debounce는 일정 시간 동안 특정 이벤트가 다수 발생했을때, 마지막 하나의 이벤트만 ..

안녕하세요. 개발자 멍구입니다! iOS 개발을 하다 보면 "동시성", "데이터 경쟁(data race)", "스레드 안전성" 같은 말들이 자주 들리죠? 처음 들으면 어렵게 느껴질 수 있지만, 오늘은 그런 개념들을 단번에 정리해주는 핵심 키워드 두 가지를 소개해드릴게요.바로 Actor와 Sendable입니다. 앱이 복잡해지고, 멀티태스킹이 많아질수록 중요해지는 이 개념들, 오늘 알아보겠습니다. Actor? 데이터 경합 문제를 깔끔하게 해결하는 방법먼저 Actor부터 볼게요."Actor는 일종의 안전한 방입니다." 여러 사람이 동시에 들어와서 방 안의 물건을 엉망으로 만들지 않도록, 한 명씩만 차례대로 들어와서 방 안의 상태를 변경할 수 있도록 해요.Swift에서 actor는 class처럼 참조 타입이지만,..

Sendable 프로토콜 개요Sendable이 뭐길래 Swift 6에서 강조될까?Swift를 쓰는 개발자라면, 최근 자주 보게 되는 키워드 중 하나가 Sendable 프로토콜일 거예요. 애플 공식 문서에서는 Sendable을 이렇게 설명하고 있습니다:Sendable 프로토콜은 데이터 레이스 없이 다양한 컨텍스트에서 안전하게 전달될 수 있는 타입을 나타낸다.즉, 여러 스레드나 Task 간에 데이터를 주고받을 때 충돌 없이 안전하게 다룰 수 있는 타입인지를 보장해주는 약속 같은 개념입니다.Swift6부터는 이 개념이 더 엄격하고 자주 쓰이게 되니, 지금 정확히 이해해두는 것이 앞으로의 개발에 큰 도움이 될 거예요! 개념이 어렵게 느껴지신다고요? 괜찮아요. 지금부터 하나하나 아주 쉽게 설명드릴게요 🙂 왜 ..

안녕하세요~ 개발자 멍구입니다! 오늘은 Swift6, Swift concurrency 런타임 동작 관련 내용을 번역한 내용을 정리해서 공유드립니다. Swift Concurrency, 런타임 동작(Runtime Behavior)Swift의 동시성 모델은 async/await, actor, task 등에 초점을 맞추고 있습니다. 기존의 동시성 라이브러리나 런타임이 Swift의 새로운 동시성 모델로 직접 변환되지 않을 수도 있습니다. 이번 글에서는 런타임 동작에서 주의해야 할 공통 패턴과 차이점을 살펴보고, 기존 코드를 Swift Concurrency로 마이그레이션할 때 이를 어떻게 해결할 수 있는지 알아보겠습니다.Task Group을 사용한 동시성 제한많은 양의 작업을 처리해야 하는 상황에서 아래와 같이 ..
- Total
- Today
- Yesterday
- 백준알고리즘
- SwiftUI
- ios
- 김프매매
- 프로그래머스swift
- 컬렉션
- Protocol
- 자연어처리
- 프로그래머스
- 스위프트
- swift string
- swift 문자열
- 부스트코스
- 프로토콜
- Collection
- createML
- Swift 알고리즘
- 알고리즘
- 알고리즘문제
- swift알고리즘
- swift언어
- 개발자문서
- uikit
- 백준swift
- swift reduce
- swift concurrency
- CoreML
- swift
- swift 기초
- 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 | 29 | 30 |
31 |