🐾 [Golang] 고루틴이 끝나기 전에 main이 끝나는 문제 해결 방법
배경
고루틴이 끝나지도 않았는데 main 함수가 종료가 된다.
해결방법
main은 고루틴이 끝났는지 알 수 없다. 그래서 WaitGroup 사용해야한다.
예시
func Add() {
sum := 1 + 2
fmt.Printf("합계 : %d \n", sum)
}
func GoroutineSolution() {
fmt.Println("Goroutine 시작")
var wg sync.WaitGroup
wg.Add(1)
go func() {
Add()
wg.Done()
}()
wg.Wait()
fmt.Println("Goroutine 끝")
}
wg.Wait() 는 0이 될 때까지 기다리고 있다. 즉 0이 되면 고루틴이 끝난 것이다. 그 후 다음 코드를 실행 시킨다.

참조
https://github.com/YooGenie/go-study/issues/54