[iOS] GCD (1) - 왜 동시성(Concurrent) 프로그래밍이 필요할까?

전성훈·2023년 10월 31일
0

iOS/Concurrency

목록 보기
1/11
post-thumbnail

주제: 왜 동시성 프로그래밍이 필요할까?


What is Concurrency?

  • 동시성(Concurrency)란 프로그램, 알고리즘 또는 문제를 순서에 관계없이 부분적으로 정렬된 구성 요소나 단위로 분해할 수 있는 속성으로 정의한다.
  • 즉, 앱의 논리를 확인하여 동시에 또는 임의의 순서로 실행할 수 있는 조각을 분해하고 결정해서 데이터 흐름을 올바르게 구현할 수 있다.

왜 Concurrency를 사용해야 할까?

  • 앱이 가능한 한 매끄럽게 실행되어야 하며, 이는 사용자가 언제나 무언가를 기다리지 않도록 하는 것이 중요하다.
  • 1초는 컴퓨터와 관련되지 않은 대부분의 것에 대해 매우 작은 시간이다. 하지만 iPhone과 같은 기기에서 동작을 수행한 후 응답을 보려면 1초를 기다려야 한다면, 그것은 마치 영원처럼 느껴질 것이다. "너무 느려요"라는 불만은 앱이 삭제되는 주요 이유 중 하나이다.
  • 이미지 테이블을 스크롤하는 것은 동시성 부족으로 영향을 받는 일반적인 상황 중 하나이다. 네트워크에서 이미지를 다운로드 받거나 이미지 처리를 수행하는 경우 스크롤이 끊어지고 예상한 이미지 대신 여러 개의"작업 중" 표시를 표시해야 한다.
  • 동시성 사용의 이점 중 하나는 앱의 전반적인 아키텍쳐에 대해 좀 더 생각할 시간을 할애하는 데 있다는 것이다. "작업을 완료"하기 위해 방대한 방법을 사용하는 대신, 동시에 실행할 수 있는 더 작고 관리하기 쉬운 메서드를 작성하게 된다.

어떻게 Concurrency를 사용해야 하는가?

  • 간단하게 설명하자면, 작업을 "대기행렬"에 보내기만 하면 된다. 즉, 작업을 Queue로 보내기만 하면 된다.
  • 그렇게 되면 Queue에서 알아서 적절히 CPU로 작업을 나눠주게 된다.

출처(참고문헌)

제가 학습한 내용을 요약하여 정리한 것입니다. 내용에 오류가 있을 수 있으며, 어떠한 피드백도 감사히 받겠습니다.

감사합니다.

0개의 댓글