GCD(3)
-
[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 -
[iOS] About GCD (Grand Central Dispatch)
드디어 무섭기도 하고, 어렵기도 해서.... 미루고 미뤄왔던.. GCD 차례입니다. GCD?제가 이해한 순서대로 글을 좀 적어볼게요 1. 우선 GCD란 멀티 스레드 환경에서 편리하게 개발할 수 있도록 해주는 기술 (설명이 부족해..)2. 이 말이 무슨 말이냐면, 해야할 일이 많아진 경우에 알아서 일을 분배해주고, 일할 쓰레드가 부족하면 알아서 늘려주는 기술3. 기본적으로 작업은 메인 스레드에만 할당되어 있는데, 메인스레드도 일을 하고 다른 스레드들 역시 일을 하도록 만듦. (동시성 프로그래밍) > 비동기 작업4. 개발자는 QUEUE라는 곳에 어떤 작업을 진행할지 코드를 넣어주기만 하면 되고, 일의 분배나 스레드 관리는 신경쓰지 않아도 됨. 저는 위 순서대로 GCD 개념을 익혔는데요, 음 확실히 1단계에서..
2024.08.24