→ 엄청난 메모리가 낭비될 것
그것을 위해 cellForRowAt 메서드에서 dequeueReusableCellWithIdentifier에서 표시할 셀이 없다면 새로 생성하고, 있다면 이미 생성된 셀을 불러오는 역할을 해줍니다.
→ 즉 스크롤 할 때 마다 cellForRowAt 메서드가 호출되기 때문에 저 메소드에는 처리시간이 긴 로직을 포함하는게 좋지 않습니다.
이를 위한 비동기 처리가 바람직하다
동기 처리부터 먼저 알아보자면 앞서 실행되어야 할 일이 끝나기 전까지 다음 일을 하지 않는 것입니다.
그렇다면 비동기 처리는 시간이 많이 걸리는 일을 하는 동안 다른 일을 진행하는 것을 의미한다고 이해하면 되겠네요. 책에서 깔끔하게 정리한 문장을 봤는데 “긴 시간이 걸릴 것으로 예상하는 기능을 새로운 실행 흐름을 만들어서 실행하는 방식"을 비동기 프로그래밍이라 합니다. 지금 봤을 땐 아무리 봐도 비동기처리가 대기시간을 줄이는 똑똑한 방법이라고 생각되지만, 업무의 구성이 복잡해진다는 특징이 있습니다.