jeon0976.log
로그인
jeon0976.log
로그인
[iOS] GCD (1) - 왜 동시성(Concurrent) 프로그래밍이 필요할까?
전성훈
·
2023년 10월 31일
팔로우
0
GCD
iOS
0
iOS/Concurrency
목록 보기
1/11
주제: 왜 동시성 프로그래밍이 필요할까?
What is Concurrency?
동시성(Concurrency)란 프로그램, 알고리즘 또는 문제를 순서에 관계없이 부분적으로 정렬된 구성 요소나 단위로 분해할 수 있는 속성으로 정의한다.
즉, 앱의 논리를 확인하여 동시에 또는 임의의 순서로 실행할 수 있는 조각을 분해하고 결정해서 데이터 흐름을 올바르게 구현할 수 있다.
왜 Concurrency를 사용해야 할까?
앱이 가능한 한 매끄럽게 실행되어야 하며, 이는 사용자가 언제나 무언가를 기다리지 않도록 하는 것이 중요하다.
1초는 컴퓨터와 관련되지 않은 대부분의 것에 대해 매우 작은 시간이다. 하지만 iPhone과 같은 기기에서 동작을 수행한 후 응답을 보려면 1초를 기다려야 한다면, 그것은 마치 영원처럼 느껴질 것이다. "너무 느려요"라는 불만은 앱이 삭제되는 주요 이유 중 하나이다.
이미지 테이블을 스크롤하는 것은 동시성 부족으로 영향을 받는 일반적인 상황 중 하나이다. 네트워크에서 이미지를 다운로드 받거나 이미지 처리를 수행하는 경우 스크롤이 끊어지고 예상한 이미지 대신 여러 개의"작업 중" 표시를 표시해야 한다.
동시성 사용의 이점 중 하나는 앱의 전반적인 아키텍쳐에 대해 좀 더 생각할 시간을 할애하는 데 있다는 것이다. "작업을 완료"하기 위해 방대한 방법을 사용하는 대신, 동시에 실행할 수 있는 더 작고 관리하기 쉬운 메서드를 작성하게 된다.
어떻게 Concurrency를 사용해야 하는가?
간단하게 설명하자면, 작업을 "대기행렬"에 보내기만 하면 된다. 즉, 작업을 Queue로 보내기만 하면 된다.
그렇게 되면 Queue에서 알아서 적절히 CPU로 작업을 나눠주게 된다.
출처(참고문헌)
https://www.inflearn.com/course/lecture?courseSlug=iOS-Concurrency-GCD-Operation&unitId=32550&tab=curriculum
https://www.kodeco.com/books/concurrency-by-tutorials/v2.0/chapters/1-introduction
제가 학습한 내용을 요약하여 정리한 것입니다. 내용에 오류가 있을 수 있으며, 어떠한 피드백도 감사히 받겠습니다.
감사합니다.
전성훈
팔로우
다음 포스트
[iOS] GCD (2) -GCD(Grand Central Dispatch) vs. Operation
0개의 댓글
댓글 작성