✅ nonisolated 란?nonisolated는 이 멤버는 actor의 격리(isolation)에서 빼달라 라는 선언입니다. Actor의 멤버는 기본적으로 격리되어 있으며 await로만 접근할 수 있는데, nonisolated를 붙이면 그 격리를 풀어 어디서나 동기적으로 호출할 수 있게 됩니다. Actor는 자신의 가변상태(mutable state)를 데이터 레이스로부터 보호하기 위해 모든 멤버를 격리합니다. 그래서 Actor 밖에서 메서드나 프로퍼티에 접근하려고 하면 await가 필요하죠. 하지만 어떤 멤버는 Actor의 가변 상태를 전혀 건드리지 않았는데도 이 규칙에 묶여 불편할 때도 있습니다. 이때 우리가 사용하는게 nonisolated 입니다.nonisolated 멤버는 Actor의 격리된 가..
✅ CPU의 동작CPU는 어떤 데이터를 사용하고자 하면 L1 -> L2 -> L3 -> RAM 순으로 찾아봅니다.Cache Hit: 캐시에 이미 있음 → 바로 가져다 씀 (빠름)Cache Miss: 캐시에 없음 → 더 느린 단계(결국 RAM)까지 내려가서 가져와야 함 → 그동안 CPU는 사실상 대기이때 캐시가 무엇이냐면, CPU와 RAM 사이에는 속도 차이가 어마어마 하기 때문에 (CPU는 ns 단위로 연산하는데 RAM은 상대적으로 느림) 그 간극을 메우려고 중간에 캐시(SRAM) 를 둡니다. CPU 레지스터 → L1 캐시 → L2 캐시 → L3 캐시 → RAM(메인 메모리)빠름 ←────────────────────→ 느림작음 ←─────────────────────→ 큼 CPU는 메모리..
안녕하세요 Diana 입니다 오늘은 Structured Concurrency에 대해 알아보려고 합니다. ✅ Structured Concurrency(구조적 동시성)이란?Structured Concurrency는 비동기, 병렬 작업을 부모-자식의 계층적 범위(Scope)로 묶어 관리하는 프로그래밍 패러다임 입니다.핵심 아이디어는 "동시성에도 명확한 시작과 끝이 있어야 한다"는 것으로 GCD 시절, escaping closure 기반 비동기 코드가 가졌던 문제들(작업 수명을 추적할 수 없고 취소를 수동 관리 해야하며 에러가 클로저 안에서 사라지던 문제) 를 언어 차원에서 해결하고자 하는 시도입니다. 작업 트리(Task Tree)구조적 동시성은 부모 Task는 자식 Task가 모두 끝나기 전에는 완료될 수 ..
안녕하세요 Diana 입니다 오늘은 Swift의 Swift Concurrency에 대해 자세히 알아보며 Sendable, Actor 등에 대해 자세히 알아보도록 하겠습니다. ✅ Task에 대해Swift Concurrency에서 우리는 Task를 사용하게 됩니다.Task는 각자 자신의 자원을 가진 독립적인 일꾼으로 처음부터 끝까지 순차적으로 작업을 수행하고 Await를 만날 경우 작업이 중단될 수도 있습니다.이때 완벽히 독립적인 경우 우리는 Data Race가 없는 독립성을 보장할 수 있지만 각 Task 별로 데이터의 통신이 불가능해져 쓸모가 없어집니다. Data Race의 근본적인 원인은 하나의 메모리 주소에 실행 흐름이 같은 두 개 이상의 스레드에서 접근하는 것으로 그 중 하나 이상은 반드시 쓰기 ..
안녕하세요 Diana 입니다 오늘은 GCD와 Swift Concurrency를 알아보며 비교해보려 합니다 시작하겠습니다 ✅ GCD에 대해Swift GCD는 Queue(큐)를 기반으로 합니다.개발자가 직접 큐를 만들고 작업을 dispatch 하며, 비동기 결과는 completion handler(콜백)로 받습니다.따라서 비동기 작업이 중첩되는 경우 들여쓰기가 깊어지는 콜백지옥이 발생하며 가독성이 떨어지고 에러처리가 어려워집니다. func loadUser(completion: @escaping (Result) -> Void { DispatchQueue.global.async { fetchData { data in parse(data) { user in DispatchQ..
- Total
- Today
- Yesterday
- tuist v4
- GradientDescent
- CacheLocality
- ios
- BoxedType
- 코어데이터
- 인공신경망
- webrtc
- 스위프트
- nonisolated
- kakaomapssdk
- SocialLogin
- 경사하강법
- 역전파
- coredata
- CD/CI
- Concurrency
- Xcode
- ViewBuilder
- opaquetype
- swift
- Tuist
- opaque
- AI
- 알고리즘
- 동시성
- SwiftUI
- Actor
- iphone
- Algorithm
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
