Swift Concurrency(3)
-
[iOS] defer가 뭐에요?
defer 현재 스코프(함수, 메서드, 클로저 등)가 종료되기 직전에 실행될 코드를 예약하는 역할을 합니다. defer의 작동 방식defer 블록은 해당 블록이 속한 스코프가 종료되는 시점에 실행됩니다. 여러 개의 defer 문이 있을 경우, 이들은 스택(Stack)처럼 "나중에 들어온 것이 먼저 실행(LIFO: Last-In, First-Out)" 되는 순서로 동작합니다. 즉, 가장 마지막에 작성된 defer 블록이 가장 먼저 실행됩니다.func testDefer() { print("함수 시작") defer { print("defer 1") } defer { print("defer 2") } print("함수 종료")}testDe..
2025.04.07 -
[iOS] About Swift Concurrency
드디어..!Swift Concurrency에 대해 글을 쓰는 날이 왔습니다..!코드적으로 사용하는 것은 어렵지 않았으나 그 외적인 내용이 굉장히 많더군요..! 1. Swift Concurrency 도입 배경기존 비동기 프로그래밍 - GCD 에서의 문제점 콜백지옥(callback hell) 기존의 비동기 함수 정의 방식- 오래 걸려서 얻는 결과값을 콜백 클로저 형태로 돌려받음// 콜백 함수 형태로 사용func getImage(completionHandler: @escaping (UIImage?) -> Void) { DispatchQueue.global().async { sleep(5) let image = UIImage(systemName: "person") co..
2025.01.04 -
[iOS] About 동시성
동시성여러 작업을 동시에 실행되는 것 처럼 보이게 하는 것 프로그램 / 프로세스 / 스레드 프로그램- 단순한 코드 덩어리 프로세스- 프로그램이 실제로 실행되어 메모리에 올라가 실행 중인 것 스레드- 프로세스 내에서, 프로세스의 자원을 이용해서 실제로 작업을 수행하는 것 멀티 프로세스멀티 프로세스- 하나의 운영체제에서 동시에 프로세스를 여러개 실행시킬 수 있는 기술 멀티 프로세스 환경에서의 메모리 구조- 하나의 운영체제에서 여러 프로세스들이 각각의 독립적인 공간을 할당받음- 하나의 프로세스 내부에 코드, 데이터, 힙, 스택 영역들이 각각 존재 멀티 스레드멀티 스레드- 하나의 프로세스 내에서 둘 이상의 스레드가 동시에 작업을 수행하는 것 멀티 스레드 환경에서의 프로세스의 메모리 구조- 하나의 운영체제에..
2024.11.10