Dispatch Queue에 작업을 보내면 GCD가 알아서 적절하게 스레드로 작업을 분배해준다.
이 때, 여러 스레드로 분산된 작업들이 끝나는 시점을 따로따로 파악하는게 아니라 그룹 단위로 한 번에 파악하고 싶을 때 사용하는 것이 Dispatch Group
⇒ 그룹 내에서 가장 마지막으로 작업이 끝나는 시점을 파악하기 위한 것이다.
<aside> 💡

출처 : https://sujinnaljin.medium.com/ios-차근차근-시작하는-gcd-7-4d9dbe901835
DispatchGroup 생성
// DispatchGroup 생성
let myGroup = DispatchGroup()
async로 작업을 보낼 때, group 파라미터에 DispatchGroup을 넘겨준다.
⇒ 큐로 보내는 작업을 해당 Dispatch Group에 포함시키게 됨
DispatchQueue.global().async(**group: myGroup**) {
print("작업1")
}
다른 큐로 보내는 작업도 같은 그룹에 지정 가능
// 위의 Dispatch Queue와 다른 큐
DispatchQueue.global(qos: .utility).async(group: myGroup) {
print("작업2")
}

출처 : https://sujinnaljin.medium.com/ios-차근차근-시작하는-gcd-7-4d9dbe901835