# 주의 사항 1) wg.Add(1) 위치가 중요하다 고루틴을 실행하기 전에 wg.Add(1) 를 실행야한다. waitGroup의 초기화를 로직 처리 전에 해줘야 타이밍 이슈를 피할 수 있다. 동시성 이슈가 있어서 add는 고루틴 실행 전에 한꺼번에 초기화를 해주는 것이 좋다. # 문제 발생 고루틴 안에서 add하고 done한다. func BadExWaitGroup() { fmt.Println("나쁜 예시 시작") size := 10 var wg sync.WaitGroup for i := 0; i < size; i++ { go func() { wg.Add(1) fmt.Printf("진행 중 %d \n", i) wg.Done() }() } wg.Wait() fmt.Println("나쁜 예시 끝") } 결과..