일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- windowScene
- Automatically manage signing
- RIBs Tutorial
- memory safety
- RxSwift
- ios
- iOS Target
- Large File Storage
- 메모리 접근 충돌
- conflicting access to memory
- rib
- RxCocoa
- in-out
- 대머리깃허브
- Github file size
- Dependency Rule
- coordinateSpace
- App Signing
- SWIFT
- iOS 버전 점유율
- swiftdocs
- 로버트마틴형
- Ribs
- 클린아키텍쳐
- Git Large File Storage
- UICoordinateSpace
- Dispatch.main.sync
- 잡초가득블로그
- Apple Certificate
- Concurrent
- Today
- Total
목록Concurrent (2)
빙수왕의 개발일지
아래 코드를 그냥 쓰면 앱이 죽는다. 그냥이라는게 맨바닥에 쓴다고 해야하나..? 아무튼 개발자가 추가한 임의의 다른 시점이 아닌, 순서대로 실행되는 앱의 기본 시점에서 쓰면 죽는다. 왜 죽는걸까? 일단 DispatchQueue class에는 대표적인 2가지 인스턴스 메소드가 있다. sync와 async이다. sync는 메소드를 부른 객체의 시점을 멈추게 해서, 이 객체(DispatchQueue)가 sync안의 블럭을 모두 수행할 때 까지 다른것은 아무것도 할 수 없는 상태가 된다. 이걸 큐를 block 한다고들 한다. async는 블럭 안의 작업을 하긴 하는데 이 작업이 수행되는동안 다른것이 수행되는걸 막지 않는다. 큐가 다른행동도 할 수 있다. Serial큐에서 이렇게 해줘도 어차피 한번에 1개의 작업..
Memory Safety 기본적으로, Swift는 코드에서 안전하지 않은 동작이 발생하는걸 방지해준다. 예를들어, Swift는 변수를 사용하기 전에 초기화하도록 하고, 할당 해제(dellocated)후 메모리에 접근하지 않도록 하며, Array indices에서 out-of-bounds error가 있는지 확인한다. → 변수 초기화를 안하면 컴파일 오류를 낸다던가, 해제된 메모리에 접근하거나 array out of index 에러 발생 시 런타임에 오류가 떨어지는 것을 말하는듯 하다. Swift는 또한 동일한 메모리에 대한 다중 접근이 충돌(conflict)하지 않도록 한다. 어떻게? 메모리의 location을 수정하는 코드가 그 메모리에 단독으로 접근할 수 있도록 하는 방법으로. → 메모리의 위치를 수..