본문으로 바로가기
COMMUNITY모든 이야기

Go channel close 후 수신 시 제로값 반환 문제

빗방울 2026.10.30 17:39 1분 읽기 조회 6

워커 풀에서 작업 완료 후 채널 닫고 남은 데이터 처리 중입니다. 루프가 끝나지 않고 계속 돕니다.

코드:

package main

import "fmt"

func main() {
	ch := make(chan int, 2)
	ch <- 1
	ch <- 2
	close(ch)

	for {
		val := <-ch
		fmt.Println(val)
	}
}

오류: 1, 2 출력 이후 0이 무한 반복 출력됨

시도: for range 문으로 변경해봤으나 로직상 일반 for문 사용 필요함

질문: 채널이 닫혔는지 확인해서 루프를 종료하려면 어떻게 체크해야 합니까?

모든 이야기1496

가벼운 안부부터 깊은 생각까지, 함께 나눠요.

글쓰기
총 1496개의 이야기
댓글