전체 글55 [Swift]비동기(Async) ≠ 동시성(Concurrency) feat. 병렬성(Parallel) 비동기(async) ≠ 동시성(concurrency)다시 한번 강조 !!비동기(async)와 동시성(concurrency)은 다르단다..뭐지?? 단어가 다른건 알겠는데 거기서 거기 아닌가..? 전 처음 들었을 때 무슨 말장난인줄 알았습니다.. 비동기와 동시성 이름만 두고보면 정말 뭐가 다른지 너무 헷갈려서 정리를 한번 하고가고자 합니다. 저와 같았던 분들도 이 글을 통해서 어느정도 정리가 되셨으면 하네요 간단히 말하면 비동기는 작업 하나에 대한 처리 방법이고, 동시성은 여러 작업들에 대한 처리 방법입니다.비동기는 작업을 Dispatch Queue에 보낸 후에 바로 신경을 끄고 다음 일을 하는 것을 말하고 동시성은 Queue에 있는 작업들을 여러개의 스레드에서 처리하는 것을 말합니다. 이렇게 끝내면 아쉬우.. 2023. 3. 16. [iOS] 메모리 뜯어보기 (힙할당 줄이기 및 누수 해결하기) WWDC의 메모리 디버깅을 보고 문득 호기심이 생겨서 프로젝트에서 구현했던 메인홈에서의 메모리가 궁금했습니다. 궁금했던 이유는 거기에 Airbnb에서 만든 라이브러리인 lottie-ios의 라이브러리의 기능 AnimationView를 이용한 무한재생 로티가 있고(얘가 얼마나 메모리를 잡아먹을지), 여러가지 정보가 종합해서 보여지는 메인홈이였기에 한번 메모리를 Instruments로 찍어보고 싶었습니다. 그리고 내가 직접 구현한 화면이니까 그냥 궁금했던 점이 컸습니다ㅎ 한번 살펴볼까요??🚀🚀🚀 어라?? 근데 이게 뭐지🤔 4분 2초간 profile 아래 칸에 첫번째, 두번째줄을 보시면 빨간색 overhead가 잔뜩 표시되고, 힙 할당이 로티가 반복재생되는 순간을 기점으로 계속 증가하고 있었습니다 위의 사진은.. 2023. 3. 11. [WWDC16] Understanding Swift Performance 2부 Protocol Oriented Programming (POP) 상속이나 참조 semantics없이 다형성 구현 protocol Drawable { func draw() } struct Point: Drawable { var x, y: Double func draw() { } } struct Line: Drawable { var x1, y1, x2, y2: Double func draw() {} } var drawables: [Drawable] = [] for d in drawables { d.draw() } class SharedLine: Drawable { var x1, y1, x2, y2: Double func draw() { // ... } } class도 물론 프로토콜을 사용할 수 있지만, re.. 2023. 3. 3. Queue 구현 (feat. Swift) https://github.com/kodecocodes/swift-algorithm-club/tree/master/Queue 해당 문서를 직접 번역하면서 공부한 내용입니다. BFS를 공부하면서 Queue를 쓰고싶었는데, built-in swift에서의 removieFirst()함수는 배열에서 맨 앞단의 요소를 제거하는 것이기 때문에 O(n)의 시간복잡도가 생긴다. 파이썬에서 deque라이브러리를 통해 O(1)로 맨 앞단의 요소를 제거하는 것처럼 하기 위해서 Swift의 Queue에 대해서 공부해보았다. 단순한 Queue의 구현 public struct Queue { fileprivate var array = [T]() public var isEmpty: Bool { return array.isEmpty .. 2023. 2. 7. 이전 1 ··· 10 11 12 13 14 다음